次の簡略化された文法を検討してください。
ID : ('a'..'z') ('a'..'z')*;
TYPE : 'int' '[' ']' |
'boolean' |
'int';
ここで、ブール値を入力として記述すると、 IDまたはTYPEとして解析できます。TYPEとして解析したいのですが、どうすればよいですか?
次の簡略化された文法を検討してください。
ID : ('a'..'z') ('a'..'z')*;
TYPE : 'int' '[' ']' |
'boolean' |
'int';
ここで、ブール値を入力として記述すると、 IDまたはTYPEとして解析できます。TYPEとして解析したいのですが、どうすればよいですか?
TYPE
前に 置くID
:
TYPE : 'int' '[' ']'
| 'boolean'
| 'int'
;
ID : ('a'..'z') ('a'..'z')*
;
ANTLRのレクサールールは次のように機能します。
これらのルールにより、は"boolean"
としてトークン化されますが、 1としてトークン化されますTYPE
"booleans"
ID
1 "booleans"
は2つのトークンとしてトークン化されませんTYPE
:("boolean"
)とID
("s"
))