Я хочу знать, можно ли разобрать рубиновый язык, используя только детерминированный парсер, не имеющий никакого возврата вообще?Ruby Parser
0
A
ответ
0
Вместо того, чтобы писать парсер, вы всегда можете использовать существующий интерпретатор, чтобы делать то, что вы хотите.
Например: ruby2ruby
0
Я не знаю, каких-либо конкретных деталей о разборе рубин, или почему вы настаиваете на «нет возвратов». Я предполагаю, что вы считаете, что грамматика Ruby не LALR (1), например, не обрабатывается YACC или эквивалентами.
В любом случае, если проблема разобрать язык, чья грамматика является контекстно-свободной, можно сделать это с помощью синтаксического анализатора РВО, который не BACKTRACK:
http://en.wikipedia.org/wiki/GLR_parser
Я использовал это создавать парсеры для многих реальных языков.