2009-06-15 5 views
0

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

ответ

0

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

Например: ruby2ruby

http://seattlerb.rubyforge.org/ruby2ruby/ ruby2ruby

0

Я не знаю, каких-либо конкретных деталей о разборе рубин, или почему вы настаиваете на «нет возвратов». Я предполагаю, что вы считаете, что грамматика Ruby не LALR (1), например, не обрабатывается YACC или эквивалентами.

В любом случае, если проблема разобрать язык, чья грамматика является контекстно-свободной, можно сделать это с помощью синтаксического анализатора РВО, который не BACKTRACK:

http://en.wikipedia.org/wiki/GLR_parser

Я использовал это создавать парсеры для многих реальных языков.