1
だから私は、私は、問題を示すために、同じくらい私ができるように文法をストリップダウンしているANTLR 4にかなり新しいです:私は奇妙なを取得abc and d
:使用した場合antlr 4が私のトークンを期待どおりに上回らないのはなぜですか?
grammar DumbGrammar;
equation
: expression (AND expression)*
;
expression
: ID
;
ID : LETTER(LETTER|DIGIT)* ;
AND: 'and';
LETTER: [a-zA-Z_];
DIGIT : [0-9];
WS : [ \r\n\t] + -> channel (HIDDEN);
この文法を、サンプルテキストを使用(IntelliJのとANTLR4は、プラグインを使用して)以下に示すように、予期しない構造を持つツリー:
私は単にAND: '&&';
を読み、その後、入力としてabc && d
を提出する端末ルールAND: 'and';
を変更した場合、私は元として、以下のツリーを取得pected:
私はそれが正しく"and"
を解析されていない理由を把握することはできませんが、正しく'&&'
を解析ありません。
うわー!痛いほど明白!ありがとう!! :) – shuri17
問題はありません。 –
ID == 'andy'が動作するかどうかを確認してください。 'と'トークンをIDルールに含める必要があります。したがって、 'と'の部分文字列を含むIDでも同様に動作します。 – Divisadero