如何使用antlr纯lexer语法定义一个固定次数重复的模式规则

时间:2016-03-23 12:27:27

标签: grammar antlr4 lexer

我正在尝试在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}一样。

1 个答案:

答案 0 :(得分:1)

您可以使用谓词(与操作相同但最后有yum

?

Tecnhically这是纯粹的词法分析器,但使用了gramar动作