我正在尝试在Antlr中定义一个纯粹的词法分析器语法,它以十六进制表示法识别32位。
现在我有:
lexer grammar Grammar;
WS : [ \r\t\n]+ -> skip;
fragment HexDigit : ([0-9]|[A-f]|[a-f]);
fragment HexDigitNoZero : ([1-9]|[A-f]|[a-f]);
fragment HexNumber : (HexDigitNoZero)(HexDigit)*;
fragment Eight : HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit;
Hex :'0x'Eight;
我想知道是否有任何方法可以在纯词法分析器语法中定义范围8。 就像Flex使用'a'{8}一样。
答案 0 :(得分:1)
您可以使用谓词(与操作相同但最后有yum
)
?
Tecnhically这是纯粹的词法分析器,但使用了gramar动作