2009-07-31 6 views
2

muss ich PHP & JavaScript Dokumente Struktur analysieren, um die Daten zu Dokumentenfunktionen erhalten & ihre Parameter, Klassen & ihre Methoden, Variablen und so weiter ... ich mich, wenn es gibt eine Lösung dafür (keine regulären Ausdrücke) ... Ich habe von etwas gehört, das "Lexing" genannt wird, aber ich konnte keine Beispiele finden, auch nicht diejenigen, die mir sagen könnten, ob das etwas ist, wonach ich suche oder ... nichtParsing PHP/JavaScript-Dokumentstruktur in Delphi

dank im Voraus

+0

Siehe http://stackoverflow.com/questions/354563/what-would-be-a-good-delphi-lexer-parser-for-javascript-language-file/355218#355218 –

Antwort

1

Durch "Lexing" Sie Ihre Bezugnahme auf Lexikalische Analyse, und es gibt einige alte Werkzeuge, die immer noch arbeiten mit dem Namen Lex und Yacc. Lex erstellt den Tokenizer und Yacc steht für "noch einen Compiler-Compiler" und ist der eigentliche Parser.

Das Konzept von lex/Yacc, erstellen Sie eine Grammatik für die Sprache, und führen Sie dann die Grammatik über das Paslex-Tool zum Generieren von Quellcode (normalerweise in C), mit dem Sie eine Datei analysieren und Maßnahmen ergreifen können bestimmte Schlüsselwörter und Token. Martin Waldenburg hat eine Pascal-Version von lex/yacc mit dem Namen PasLex geschrieben, die seit mehr als einem Jahrzehnt läuft und in Delphi umgewandelt wurde (obwohl es mit den neuesten Versionen ohne kleinere Arbeit nicht funktionieren könnte). Wenn ich mich richtig erinnere, verwendet es die gleichen .L Grammatik-Eingabedateien wie lex, so dass jede Dokumentation, die Sie für lex/yacc finden, auch auf Paslex angewendet werden kann, mit der Ausnahme, dass Sie Pascal-Code als Ausgabe erhalten.

Ich bin mir nicht sicher über aktuelle Dokumentationsverfügbarkeit. Vor dem Internet (keuchen) haben wir Bücher benutzt und das meiste davon war stark dokumentiert auf Papier, das schon lange gelb geworden ist ... Gerüchten zufolge könnte es sein, dass du ... vielleicht eine gebrauchte Kopie von Amazon abholen kannst. Ich schnitt meine Zähne auf diese ein Buch mit, das auch als „the dragon book“ bekannt ist, die als kürzlich


EDIT als 2006 erneut veröffentlicht zu haben scheint worden:

ich durch die irrte Werkzeug, war es TPLY. PasLex war eine Delphi-Grammatikimplementierung ... TPLY war das Lex/Yacc-Tool, das eine Pascal-Quelle aus einer .L-Datei erzeugte.

2

ich bin mir nicht sicher, ob dies machbar ist, aber für PHP würden Sie abl sein e, um die PHP CLI von Delphi aufzurufen, um die Informationen zu erhalten?

Wenn ja, könnten Sie token_get_all() aufrufen und dann das Ergebnis in etwas ausspucken, das Sie in Delphi parsen können (vielleicht xml, json, etc.). Das ist Lexing. Das Problem dabei ist, dass nur die Hälfte des Problems gelöst ist - Sie müssen immer noch jedes Token im Kontext verstehen, um die gewünschten Ergebnisse zu erhalten.

+0

, die mir helfen würde viel, nur wenn es als Delphi "stand alone" code, ohne php abhängigkeiten ... – migajek