1
終端考慮以下簡化的語法:ANTLR如何區分從正則表達式
ID : ('a'..'z') ('a'..'z')*;
TYPE : 'int' '[' ']' |
'boolean' |
'int';
現在,如果我寫布爾作爲輸入,它可以被解析爲ID或作爲TYPE。我希望它被解析爲類型 - 如何?
終端考慮以下簡化的語法:ANTLR如何區分從正則表達式
ID : ('a'..'z') ('a'..'z')*;
TYPE : 'int' '[' ']' |
'boolean' |
'int';
現在,如果我寫布爾作爲輸入,它可以被解析爲ID或作爲TYPE。我希望它被解析爲類型 - 如何?
將TYPE
前ID
:
TYPE : 'int' '[' ']'
| 'boolean'
| 'int'
;
ID : ('a'..'z') ('a'..'z')*
;
ANTLR的詞法規則的工作原理是這樣的:
由於這些規則的,"boolean"
被標記化作爲TYPE
,而"booleans"
將被標記化作爲ID
"booleans"
是不標記化視爲兩個標記:TYPE
("boolean"
)和ID
("s"
))
很好的解釋,謝謝! –
不客氣@PrimožKralj –