2008-12-09 6 views
5

TłoJaki byłby dobry lexer/parser Delphi dla pliku językowego JavaScript?

Chcę móc analizować źródło Javascript w aplikacji Delphi. Muszę być w stanie zidentyfikować zmienne i funkcje wewnątrz źródła w celu wprowadzenia zmian w kodzie za pomocą późniejszego kodu. Rozumiem, że prawdopodobnie potrzebuję użyć lexer w tym celu, ale nie miałem dużo szczęścia używając lexer, który znalazłem (Dyaclexx).

Pytanie

Czy istnieje odpowiednia darmowym lub open source Delphi parser/lexer, który ma już tokenów zestawy dla JavaScript lub mogą być łatwo modyfikowane do tego celu bez większych problemów?

Jeśli nie ma już takiego narzędzia, to jaki byłby najlepszy sposób, aby dowiedzieć się o pisaniu własnego lexera w tym celu?

podziękowaniem

Odpowiedz

4

Dla lexer można zobaczyć Synedit's kod źródłowy dla wyróżnienia Javascript. Zakreślacz w kontekście Synedit to lexer ze specjalnymi hakami, który zapewnia wyróżnienie komponentu redaktora. Przycinanie tych haczyków i uzyskiwanie zwykłego lexera to trywialna praca.

Również edytor Synedit może się przydać podczas nauki budowania leksykonów, ponieważ będzie to pomocne w wizualnym testowaniu twoich lexers w czasie rzeczywistym. Możesz zobaczyć dema lub zapytać na liście mailingowej o więcej.

0

Myślę, że powinieneś użyć powinien wyglądać na GoldParser (http://www.devincook.com/goldparser) do generowania pełnego parsera JS w kodzie Delphi. GoldParser jest jednak darmowy.

+0

Goldparser jest ładny, ale jest bardzo powolny. Nawet w zoptymalizowanym pod kątem szybkości kodowaniu w C++ parsowanie 15000 linii kodu zajmuje 10 sekund. Jeśli porównasz to z szybkością parsera PHP, jest to bardzo powolne. – Elmue