Использовать существующие языки в BNF с TinyPG?
Как я могу использовать эти грамматики BNF с метасинтаксисом GOLD (RegExp + BNF) с TinyPG? Я новичок в BNF, так что примерно, какое преобразование мне нужно сделать, чтобы преобразовать BNF в EBNF?
Я считаю, что это должно быть довольно просто, так как TinyPG требует RegExp + EBNF по сравнению с GOLD-грамматиками RegExp + BNF.
Кроме того, есть ли исходный код TinyPG для любого доступного языка, просто чтобы посмотреть, какую конвертацию мне нужно будет сделать?
1 ответ
EBNF не полностью обратно совместим с BNF, однако различия на самом деле незначительны, вы должны ознакомиться с документом на
http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf
Прежде всего вы должны обрабатывать специальные символы <>|:= (заключенные в двойные кавычки).
Вы можете просто использовать метасинтаксический движок GOLD для вывода вашего парсера, если он может быть на одном из поддерживаемых языков - вместо использования TinyPG...
Возникает вопрос: на каком языке будет работать ваш парсер, когда вы его реализуете?