gpt4 book ai didi

grammar - 如何使用antlr纯词法分析器语法定义重复固定次数的模式规则

转载 作者:行者123 更新时间:2023-12-02 02:06:20 25 4
gpt4 key购买 nike

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

最佳答案

您可以使用谓词(与操作相同,但末尾有 ?)

(HexDigitNoZero)(HexDigit)* {getText().lenght!= 8}? {do_something;};

从技术上讲,这是纯词法分析器,但使用语法操作

关于grammar - 如何使用antlr纯词法分析器语法定义重复固定次数的模式规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36178196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com