2008-11-26 4 views
2

Как использовать these BNF grammars, которые находятся в GOLD meta-syntax (RegExp + BNF) с TinyPG? Я новичок в BNF, так что какое преобразование мне нужно сделать, чтобы преобразовать BNF в EBNF?Использовать существующие языки в BNF с TinyPG?

Я считаю, что это должно быть довольно просто, так как TinyPG нужно RegExp + EBNF по сравнению с ЗОЛОТЫХ грамматик, которые RegExp + BNF.

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

+0

Что такое TinyPG? Это http://www.codeproject.com/KB/recipes/TinyPG.aspx? – 2009-10-30 18:09:32

ответ

1

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

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

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

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

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