Что было бы хорошим лексером / парсером Delphi для языкового файла Javascript?

Фон

Я хочу иметь возможность анализировать исходный код Javascript в приложении Delphi. Мне нужно иметь возможность идентифицировать переменные и функции в исходном коде с целью внесения изменений в код с помощью более позднего кода. Я понимаю, что мне, вероятно, нужно использовать для этой цели лексер, но мне не очень повезло с найденным мною лексером (Dyaclexx).

Вопрос

Есть ли подходящее бесплатное программное обеспечение или анализатор / лексер delphi с открытым исходным кодом, который уже имеет наборы токенов для Javascript или может быть легко модифицирован для этой цели без особых проблем?

Если такого инструмента еще нет, то как лучше всего научиться писать для этой цели собственный лексер?

Спасибо


person jamiei    schedule 09.12.2008    source источник


Ответы (2)


Для лексера вы можете увидеть исходный код Synedit для маркера Javascript. Подсветка в контексте Synedit - это лексер со специальными хуками для выделения компонента редактора. Обрезать эти хуки и получить простой лексер - тривиальная работа.

Также редактор Synedit может пригодиться при изучении создания лексеров, так как он поможет визуально протестировать ваши лексеры в реальном времени. Вы можете увидеть демонстрации или узнать больше в списке рассылки.

person utku_karatas    schedule 10.12.2008

Я думаю, вам стоит взглянуть на GoldParser (http://www.devincook.com/goldparser) для генерации полного парсера JS в коде Delphi. Однако GoldParser - бесплатное программное обеспечение.

person user45260    schedule 11.12.2008
comment
Goldparser хорош, но очень медленный. Даже в оптимизированном по скорости коде C ++ для анализа 15000 строк кода требуется 10 секунд. Если вы сравните это со скоростью парсера PHP, это будет очень медленно. - person Elmue; 26.09.2013