Ich habe dieses Stück Code:
%Vor%Von Funktion 'func' möchte ich extrahieren:
%Vor%oder so ähnlich:
%Vor%bearbeitet
Ich möchte den Code einer trivialen Python-Funktion in eine Tabellenkalkulationsformel konvertieren.
Also muss ich konvertieren:
%Vor%zu:
%Vor%Beispiel-Tabelle http://img441.imageshack.us/img441/1451/84516405.png
** erneut bearbeitet *
Das folgende Programm gibt aus:
%Vor%Der Code:
%Vor%Ich habe hier einige Ressourcen gefunden: Python-Interna: Arbeiten mit Python ASTs Ich habe mir ein funktionierendes Codegen-Modul geschnappt hier .
Ich bin mir nicht sicher, warum Sie Namen zurückholen müssen, eine sehr grobe Methode, um alle Namen und Punkte in Funktion zu bringen, ist
%Vor%Ausgabe:
%Vor%Vielleicht können Sie das verbessern, indem Sie den Syntaxbaum eleganter lesen, ich benutze Parser anstelle von Modul, weil ich auf Python 2.5 bin
Ich habe das neue ast-Modul noch nicht benutzt, aber ich habe einen funktionierenden Code, der den älteren compiler.ast verwendet, um etwas Ähnliches zu erreichen:
%Vor%Code leicht paraphrasiert, ich habe möglicherweise unbeabsichtigte Bugs eingeführt. Ich hoffe, das gibt Ihnen die allgemeine Idee: Sie müssen sowohl Name- als auch Getattr-Knoten aufrufen und gepunktete Namen konstruieren und auch damit umgehen, dass Sie auch alle Zwischenwerte sehen (zB 'foo' und 'foo.bar' ).
Tags und Links python abstract-syntax-tree codegen