У меня есть файл грамматики для нового языка программирования общего назначения, который я пытаюсь создать.Я пытаюсь сделать язык устойчивым и естественным для использования (он в значительной степени вдохновлен Ruby, и при этом я ввел некоторые леворекурсивные правила.
Я видел несколько примеровкоторые, кажется, указывают на следующее леворекурсивное правило:
rule l_recurse
l_recurse / 'something else'
end
можно сделать нерекурсивным, изменив его на:
rule r_recurse
'something else' / r_recurse
end
Для меня это выглядит так, как если быдругая проблема и все равно не получится.Я прав или это «просто сработает»?
Конкретные левые рекурсии, которые я пытаюсь (найти и) устранить, находятся в этом файле грамматики .Я не уверен, какие правила затрагиваются, но, по крайней мере, некоторые из них указали на левую рекурсию.(Кстати, я пытался устранить конкретную проблему диапазона, которую он упомянул, ужесточив правило диапазона.)