PHP Лексический и синтаксический анализатор, написанный на C / C ++ - PullRequest
1 голос
/ 22 февраля 2009

Я пишу PHP IDE в Qt4 для моего магистерского проекта. Я пытаюсь дублировать многие функциональные возможности Eclipse или Visual Studio без всяких хлопот и накладных расходов. Я пытаюсь выполнить некоторое завершение кода, но мне нужно выполнить некоторый синтаксический анализ, чтобы иметь интеллектуальное завершение кода. Я посмотрел на исходный код PHP и подумал о том, чтобы просто скомпилировать движок Zend в моем коде (и отдать должное, когда это необходимо), но даже после нескольких дней изучения кода я не уверен с чего начать с этим.

Кто-нибудь знает какой-нибудь код C ++, который уже выполняет это, или использовал движок Zend для своих собственных целей, или есть какие-то советы по написанию моего собственного?

1 Ответ

2 голосов
/ 22 февраля 2009

PHP не имеет ничего даже удаленно , близкого к формальной грамматике LALR (1) или LL (k), которую вы могли бы использовать, чтобы реализовать это способом, подходящим для академических кругов. Парсер Zend не учитывает контекст и полон особых разногласий из того, что я видел.

Это не значит, что вы не можете написать что-то, что делает простую подсветку синтаксиса. Возьмем для примера эту реализацию javascript . Код для их токенизатора: здесь , а активная нить о проекте здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...