0
文法は少し違っています。それは1つのルール(巨大なもの)を持つ文法です。 Xtextを使ってこの文法を表現する方法はわかりませんが、これは学問的な作業であり、要件を指定する言語です。文法の左回帰呼び出しエラーと翻訳
と私のイライラの試みを以下に示します:記事から得た元の文法は、ある
Relax:
root+=General+;
//nao tinha o tipo boleano
terminal BOOLEAN returns ecore::EBoolean:
'true'|'false'
;
General:
root+=BOOLEAN|STRING|ShallOperator|MayOperator|EventuallyOperator|UntilOperator|BeforeOperator|AfterOperator|InOperator;
ShallOperator:
'shall' elements=General;
MayOperator:
"may" action1=General 'or' action2=General;
EventuallyOperator:
'eventually' element=General;
UntilOperator:
// {General.left=current}'&' right=General;
// ({General.left=current}) 'until' element2=General;
left=General 'until' right=General;
エラーがで起こる「このルールの呼び出しは、再帰呼び出しグラフの一部です」最後の行
このエラーの他に、文法の「正しい」部分であっても正しい結果が得られません。
が、私はエラーを探し、私は問題を理解することができませんでした、私はまだ初心者ですので、私は2つの質問があります:
が、それは私が文法を変換する方法は正しいですか?
この左回帰誤差を解決するにはどうすればよいですか?
ボーナスの質問:研究のための資料(私はすでに公式文書を読んでいます)。
助けを歓迎します。
ありがとうございます。