vielen Dank nochmals fuer deine Hilfsbereitschaft . Dein Code funktioniert super. Ich habe nur mit der 2ten Funktion Schwierigkeiten (Python Version 2.3.3). Der Interpreter meckert dort:BlackJack hat geschrieben:Okay ich bin jetzt bei folgendem gelandet:
Hier noch eine kleine Funktion, die aus einem Parser-Ergebnis wieder Quelltext erzeugt:Code: Alles auswählen
def ast2str(ast): def template2str(template): name, body = template return ('template %s := ' % name) + node2str(body) def node2str(node): if isinstance(node, basestring): return node node_type = node.getName() if node_type == 'assignments': result = ', '.join('%s := %s' % (identifier, node2str(value)) for identifier, value in node) elif node_type == 'list': result = ', '.join(map(node2str, node)) else: raise Exception('Unknown block type %r' % node_type) return '{ %s }' % result return '\n'.join(map(template2str, ast))
for identifier, value in node)
_^
SyntaxError: invalid syntax
Er mag die Schleife an dieser Stelle anscheinend nicht. Falls ich die betreffende Zeile aendere in
Code: Alles auswählen
for identifier, value in node:
result = ', '.join('%s := %s' % (identifier, node2str(value)) )
Code: Alles auswählen
template Typ2 := { a, 1, 1, , :, =, , {, , {, , {, , a, ,, , 1, ,, , 3, ,, , , ,, , :, ,, , =, ,, , , ,, , {, ,, , , ,, , a, ,, , ,, ,, , , ,, , 1, ,, , ,, ,, , , ,, , 4, ,, , ,, ,, , , ,, , , ,, , ,, ,, , , ,, , :, ,, , ,, ,, , , ,, , =, ,, , ,, ,, , , ,, , , ,, , ,, ,, , , ,, , 1, ,, , ,, ,, , , ,, , 7, ,, , , ,, , }, , }, , }, , } }
Wie lange programmierst du eigentlich schon in Python?
Im Moment finde ich den Einstieg in Python doch etwas muehselig, da ich es von C her gewohnt bin, mir die meisten Funktionen selbst zu programmieren. In Python hingegen geht dies auch, jedoch wenn man die Standardklassen und deren Funktionen kennt, scheint man diese nur noch kombinieren zu muessen und man loest das gleiche Problem mit einem Bruchteil an Quellcodezeilen.