ANTLR 中的片段是什么意思?
我已经看到了这两条规则:
fragment DIGIT : '0'..'9';
和
DIGIT : '0'..'9';
有什么区别?
最佳答案
片段有点类似于内联函数:它使语法更具可读性且更易于维护。
片段永远不会被视为 token ,它仅用于简化语法。
考虑:
NUMBER: DIGITS | OCTAL_DIGITS | HEX_DIGITS;
fragment DIGITS: '1'..'9' '0'..'9'*;
fragment OCTAL_DIGITS: '0' '0'..'7'+;
fragment HEX_DIGITS: '0x' ('0'..'9' | 'a'..'f' | 'A'..'F')+;
在此示例中,匹配 NUMBER 将始终向词法分析器返回一个 NUMBER,无论它是否匹配“1234”、“0xab12”或“0777”。
关于antlr - "fragment"在ANTLR中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6487593/