как создать язык в php - PullRequest
2 голосов
/ 28 июня 2011

Я искал это некоторое время, хотя никогда не получал хорошего ответа.

Я ищу учебник или код, который анализирует определенный синтаксис, как новый язык.Предпочтительно использовать стрток или токенизатор.

Мне нужно написать простой язык, который я буду анализировать позже.

Спасибо за любую помощь.

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

edit Наверное, из полученного ответа заголовок не должен быть таким.Что-то вроде «как создать язык в php» было бы лучше.Спасибо.

Ответы [ 2 ]

4 голосов
/ 29 июня 2011

По сути, «создание языка» включает в себя несколько шагов. Во-первых, вам нужен «лексер», который разбивает ваш ввод на подстроки, принадлежащие разным классам символов (например, «идентификатор», «число», «оператор» и т. Д.). Во-вторых, вы записываете грамматику вашего языка, обычно используя какой-то BNF . Затем вы едите банан используете программу под названием «генератор парсера», которая превращает вашу грамматику в реальный код парсера и, наконец, вы комбинируете лексер и парсер, чтобы получить фактический компилятор.

Обычно такие вещи выполняются на C или Java, я никогда не слышал о работающих компиляторах, написанных на php. Тем не менее, вы можете использовать php tokenizer для первой части (лексера) - при условии, что ваш язык имеет синтаксис, похожий на php - и попробовать http://pear.php.net/package/PHP_ParserGenerator для генерации парсера.

Извините, если это звучит немного сложно, но это так.

2 голосов
/ 29 июня 2011

Эта ссылка Любой приличный парсер PHP, написанный на PHP? обсуждает разбор PHP, используя PHP.

Значение этого для OP состоит в том, что ответы предоставляют несколько способов получения генераторов синтаксического анализатора, некоторые из которых работают на самом PHP, что, вероятно, будет ему полезно.

...