2008-12-09 5 views
5

HintergrundWas wäre ein guter Delphi Lexer/Parser für Javascript Sprachdatei?

ich Javascript Quelle in einer Delphi-Anwendung analysieren können, will. Ich muss in der Lage sein, Variablen und Funktionen innerhalb der Quelle zu identifizieren, um Änderungen am Code durch späteren Code vornehmen zu können. Ich verstehe, dass ich wahrscheinlich einen Lexer für diesen Zweck verwenden muss, aber nicht viel Glück gehabt habe, den lexer zu verwenden, den ich fand (Dyaclexx).

Frage

Gibt es eine passende Freeware oder Open-Source-delphi-Parser/Lexer, die bereits Tokenmengen für Javascript oder leicht zu diesem Zweck ohne allzu viel Mühe modifiziert werden könnte?

Wenn es ein solches Tool nicht schon gibt, was wäre dann der beste Weg, etwas über das Schreiben eines eigenen Lexers für diesen Zweck zu lernen?

Dankes-

Antwort

4

Für die Lexer können Sie Synedit's Quellcode für die Javascript-Highlighter sehen. Ein Highlighter im Synedit-Kontext ist ein Lexer mit speziellen Hooks zur Hervorhebung der Editor-Komponente. Diese Haken zu trimmen und einen einfachen Lexer zu bekommen, ist eine triviale Aufgabe.

Auch Synedit-Editor kann nützlich sein, während Sie lernen, wie man Lexer baut, da es eine Hilfe sein wird, um Ihre Lexer in Echtzeit visuell zu testen. Sie können die Demos sehen oder auf der Mailingliste nach mehr fragen.

0

Ich denke, Sie sollten GoldParser (http://www.devincook.com/goldparser) verwenden, um einen vollständigen JS-Parser in Delphi-Code zu generieren. GoldParser ist jedoch Freeware.

+0

Goldparser ist nett, aber es ist extrem langsam. Selbst in geschwindigkeitsoptimiertem C++ - Code dauert es 10 Sekunden, um 15000 Zeilen Code zu analysieren. Wenn Sie dies mit der Geschwindigkeit des PHP-Parsers vergleichen, ist das extrem langsam. – Elmue