gpt4 book ai didi

antlr3 - Antlr Lexer规则

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

我有一条规则来匹配看起来像这样的字符串:

STRING
: '"' ( ~( '"' | '\\' ) | '\\' . )* '"'
;

我不希望引号成为 token 文本的一部分。在Antlr2中,我只是将 '!'放在引号后面,以告诉Antlr不要将其添加到文本中。

注意 '!'下面的
 STRING
: '"'! ( ~( '"' | '\\' ) | '\\' . )* '"'!
;

但是在Antlr3中,由于出现错误,我无法再执行此操作:
warning(149): Crv__.g:0:0: rewrite syntax or operator with no output option; setting output=AST

我不知道是否可以在这里使用重写规则,因为我不知道如何将比赛所有标记写为“。”

我唯一的另一种想法是获取匹配的文本并在不带引号的情况下返回它,但是由于该 token 尚未创建,因此我不确定该怎么做。

我正在使用C Antlr运行时。
我该怎么做?

最佳答案

为了后代,我将提到我最终解决了这个问题的方式。

我用@after块去除了引号

STRING
@after
{
SETTEXT(GETTEXT()->substring(GETTEXT(),1,GETTEXT()->len-1))
}
: '"' ( ~( '"' | '\\' ) | '\\' . )* '"'
;

关于antlr3 - Antlr Lexer规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7060904/

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