Использовать существующие языки в BNF с TinyPG? - PullRequest
2 голосов
/ 26 ноября 2008

Как я могу использовать эти грамматики BNF , которые в метасинтаксис GOLD (RegExp + BNF) с TinyPG? Я новичок в BNF, так что примерно, какое преобразование мне нужно будет сделать, чтобы преобразовать BNF в EBNF?

Я полагаю, это должно быть довольно просто, поскольку TinyPG требует RegExp + EBNF по сравнению с грамматиками GOLD, которые являются RegExp + BNF .

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

1 Ответ

1 голос
/ 06 ноября 2009

EBNF не полностью обратно совместим с BNF, однако различия на самом деле незначительны, вам следует ознакомиться с документом на

http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf

В первую очередь вы должны обрабатывать специальные символы <> |: = (заключенные в двойные кавычки).

Вы можете просто использовать механизм метасинтаксиса GOLD для вывода вашего парсера, если он может быть на одном из поддерживаемых языков - вместо использования TinyPG ...

Напрашивается вопрос - на каком языке будет работать ваш синтаксический анализатор, когда вы его реализуете?

...