0
私の文法で整数を定義しようとすると少し苦労しています。パーサルールに独自の数値リテラルがある場合、ANTLR4は整数を解析できません
のは、私はこの小さな文法を持っているとしましょう:
grammar Hello;
r : 'hello' INTEGER;
INTEGER : [0-9]+ ;
WS : [ \t\r\n]+ -> skip ;
を、私はそれを正しく解析し
hello 5
を入力した場合。
ただし、トークン '5'を定義する追加のパーサールール(使用されていなくても)がある場合、 私はもう前の例を解析できません。
ので、この文法:
hello 5
と
grammar Hello;
r : 'hello' INTEGER;
unusedRule: 'hi' '5';
INTEGER : [0-9]+ ;
WS : [ \t\r\n]+ -> skip ;
はもう解析されません。それは私に次のエラーを与えます:
Hello::r:1:6: mismatched input '5' expecting INTEGER
どのようにこれを回避できますか?
ご協力いただきありがとうございます。私の文法はどういう意味でしょうか?すべての数字(1つ、2つ、3つ、...)のためのレクサールールがありますか? –