ANTLR を使用して、英語に似たドメイン固有言語を構築しています。そのキーワードは状況依存です。(私はそれが汚いように聞こえることを知っていますが、プログラマー以外のターゲット ユーザーにとっては非常に理にかなっています。) たとえば、or
およびなどの通常の論理演算子not
は、角括弧で囲まれている場合、識別子として扱われる必要があります。 . 私の現在のアプローチは次のようになります。
bracketedStatement
: '[' bracketedWord+ ']'
;
bracketedWord
: (~(']')+
;
これは、次のような字句定義と組み合わせると、次のようになります。
AND: 'and' ;
OR: 'or' ;
警告を生成し"Decision can match input such as "{AND..PROCESS, RPAREN..'with'}" using multiple alternatives: 1, 2"
ます。明らかに ANTLR のあいまいさを生み出していますが、解決方法がわかりません。これを修正するにはどうすればよいですか?