当我在ANTLR4中使用一个片段时,我可以使用另一个片段吗?
例如,我想定义一个使用其他片段的片段NUM_FRAGMENT
:
fragment DIGIT: [1-9];
fragment ZERO: [0];
fragment NUM_FRAGMENT: ZERO | DIGIT | [0-9];
ANTLR4 允许上面的示例吗?
最佳答案
是的,片段可以使用其他片段。
在您的示例中片段 NUM_FRAGMENT: ZERO |数字 | [0-9];
,你可以写fragment NUM_FRAGMENT: ZERO |数字;
。
请注意,规则的命名并不完全正确:DIGIT
建议它匹配任何数字(从 0 到 9)。 NUM_FRAGMENT
建议它匹配一个应该匹配一位或多位数字的数字。
我会这样写规则:
fragment NON_ZERO : [1-9];
fragment ZERO : '0';
fragment DIGIT : ZERO | NON_ZERO;
fragment NUM : DIGIT+;
关于antlr - ANTLR4 中一个片段可以使用另一个片段吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75467609/