gpt4 book ai didi

ANTLR4 - 如何指定行不以特定字符开头?

转载 作者:行者123 更新时间:2023-12-04 02:52:57 27 4
gpt4 key购买 nike

给出以下来自 The Definitive ANTLR 4 Reference

的示例
STUFF: ~[\t\r\n]+ ; // match any chars except tab, newline

我正在尝试为以 * 开头的行定义备用路径。例如:

line : ~ASTERIX keys ;
ASTERIX : '*';

但是,我不想匹配所有不是 ASTERIX 的东西,我希望 line 规则在行不是以 ASTERIX 开头时执行 然后开始剩下的匹配。

最佳答案

您可以重新定义 ASTERISK 规则以仅匹配出现在行首的 *

ASTERISK : '*' {_input.LA(-2) == '\n'}?;

那么您的规则可以简单地不引用ASTERISK

line : keys;

只要 keys 不允许 ASTERISK 作为第一个符号,那么 line 就不能匹配第一个标记所在的行是 ASTERISK

关于ANTLR4 - 如何指定行不以特定字符开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17218096/

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