Seite 1 von 1
Python --> JavaScript Konverter
Verfasst: Freitag 18. November 2005, 23:29
von mitsuhiko
So. Meine Neueste Erweiterung zu WSGIarea
ajax middleware mit python2javascript konverter
und eine
dazugehörige javascript lib, damit die fehlenden funktionen nachgerüstet werden.
Aktuell noch sehr broken, aber wer Ideen hat, immer her damit
Verfasst: Freitag 18. November 2005, 23:40
von mitsuhiko
Hier noch beispiele für den erstellen Code:
Original
Code: Alles auswählen
def test(data):
result = []
for key in data:
if not key.startswith('.'):
result.append(key)
return result
def publish():
return test(['.datei1', '.datei2', 'datei3', 'datei4'])
for item in publish():
print '<ul>'
print '<li>' + item + '</li>'
print '</ul>'
Javascript
Code: Alles auswählen
function test(data)
{
result = new __py_list();
var __key_container__ = data;
__key_container__.__start_iteration__();
while (true) {
var key = __key_container__.__iter__();
if (typeof key == 'undefined') {
break;
}
if (!key.startswith(new __py_string('.'))) {
result.append(key);
}
}
return result;
}
function publish()
{
return test(new
__py_list(new __py_string('.datei1'),
new __py_string('.datei2'),
new __py_string('datei3'),
new __py_string('datei4')));
}
var __item_container__ = publish();
__item_container__.__start_iteration__();
while (true) {
var item = __item_container__.__iter__();
if (typeof item == 'undefined') {
break;
}
__py_print(new __py_string('<ul>'));
__py_print(new __py_string('<li>').__add__(item).
__add__(new __py_string('</li>')));
__py_print(new __py_string('</ul>'));
}
Der Javascript Code wurde vorher aber durch "indent -kr" gejagt, damit das was gleischschaut.
Verfasst: Samstag 19. November 2005, 08:40
von Leonidas
Lustig. Aber: der generierte JavaScript-Code sieht nicht besonders gut lesbar aus. Vielleicht kann man da noch Hand anlegen?
Verfasst: Samstag 19. November 2005, 08:48
von mitsuhiko
Leonidas hat geschrieben:Lustig. Aber: der generierte JavaScript-Code sieht nicht besonders gut lesbar aus. Vielleicht kann man da noch Hand anlegen?
Ich hab zuert eine Version gehat, wo wirklich normaler Javascript Code herauskommen ist. Aber das hat einen Nachteil. Dann kann man keine Operatoren überladen, weil javascript das nciht kennt. Also hab ich in der aktuellen Version
jeden normalen Operator nochmal per Hand eingebaut, halt auf Kosten der Lesbarkeit.