私はこの文法を持っています:
name = /[_a-zA-Z][a-zA-Z0-9]*/;
expression = name '+' name;
def_body = 'def' name:name args:{name} body:expression;
しかし、解析しようとすると、常に式の名前が引数の一部として消費されます。args クロージャー内のすべての名前の前に、expression と一致し、渡された場合に終了できるかどうかをテストする方法はありますか?
前もって感謝します。
編集: セマンティクスを通じて解決しましたが、グラコ ebnf を通じて可能かどうかはまだ興味があります。