構築しようとしている新しい汎用プログラミング言語用の文法ファイルがあります。私はこの言語を堅牢で自然に使えるようにしようとしています (Ruby などから大きな影響を受けています)。そのために、いくつかの左再帰規則を導入しました。
次の左再帰ルールを示していると思われる例をいくつか見てきました。
rule l_recurse
l_recurse / 'something else'
end
次のように変更することで、非左再帰にすることができます。
rule r_recurse
'something else' / r_recurse
end
私には、これには別の問題があり、それでも失敗するように見えます。私は正しいですか、それともこれは「うまくいく」でしょうか?
私が (見つけて) 排除しようとしている特定の左再帰は、この文法ファイルにあります。どのルールが影響を受けるかはわかりませんが、少なくともいくつかは左再帰があると指摘されました。(ちなみに、範囲のルールを強化することで、彼が言及した特定の範囲の問題を排除しようとしました。)