Antlr4:语法错误:无关输入。。。查找规则元素时应为GT

Antlr4:语法错误:无关输入。。。查找规则元素时应为GT,antlr4,Antlr4,这可能很简单,但我看不出解决方案。Antlr V4.0告诉我: error(50): C:\Users\Brenden\Dev\proj\WikiParser\antlr\wiki\wikigrammar.g4:27:8: syntax error: extraneous input '' LINK_BODY '' expecting GT while looking for rule element 这用于输入行: link: '<' LINK_BODY '>' ; 链接:“”

这可能很简单,但我看不出解决方案。Antlr V4.0告诉我:

error(50): C:\Users\Brenden\Dev\proj\WikiParser\antlr\wiki\wikigrammar.g4:27:8:
syntax error: extraneous input '' LINK_BODY '' expecting GT while looking for rule element
这用于输入行:

link: '<' LINK_BODY '>' ;
链接:“”;
27:8指<字符。不知道发生了什么事。你需要逃跑吗?我在维基上没看到。文件的其余部分似乎解析正常,有几行,这一行上面的那一行似乎正常,它以一个字母结尾;所以我不认为还有什么事情把这条线搞砸了。哈尔普

编辑:这里是LINK_BODY,如果重要的话:

LINK_BODY: ~[<">]+ ;

LINK\u BODY:~[此语法的问题源于在规则中使用了不正确的转义序列
'\'
,这导致了未终止的字符串文字。由于ANTLR 4.0允许lexer集(例如
[a-z]
)或lexer字符串文字(例如
'parser'
)为了包含换行符,从错误点到文件末尾的每个
字符都会导致文件在所有错误点切换到字符串文本或从字符串文本中切换出来

对于[the not released]ANTLR 4.0.1,这一行为已被改变,禁止在这两个标记中嵌入换行符


此语法的问题始于在规则中使用不正确的转义序列
'\'
,导致字符串文本未终止。由于ANTLR 4.0允许lexer集(例如
[a-z]
)或lexer字符串文本(例如
'parser'
)为了包含换行符,从错误点到文件末尾的每个
字符都会导致文件在所有错误点切换到字符串文本或从字符串文本中切换出来

对于[the not released]ANTLR 4.0.1,这一行为已被改变,禁止在这两个标记中嵌入换行符


是的,谢谢你在谷歌群组列表上帮助我。对于那些想知道发生了什么事情的人,我的语法(这里没有全文)有一行
escape:'\'ANY;
比我在原始帖子中引用的错误行高出大约6行。该\正在转义结尾引号,然后字符串文字消耗了文件的一大块。因此,如果没有完整的语法,就无法回答这个问题,但寓意是始终仔细检查您的反斜杠,否则您会得到错误是的,谢谢你在谷歌群组列表上帮助我。对于那些想知道发生了什么事的人,我的语法(这里没有全文)有一行
escape:'\'ANY;
比我在原始帖子中引用的错误行高出大约6行。该\正在转义结尾引号,然后字符串文字消耗了文件的一大块。因此,如果没有完整的语法,就无法回答这个问题,但寓意是始终仔细检查您的反斜杠,否则您会得到错误一点