gpt4 book ai didi

c - 在 Antlr4 中保留空格和换行符

转载 作者:太空宇宙 更新时间:2023-11-04 08:17:59 28 4
gpt4 key购买 nike

我想保留空格和换行符来处理 C 源文件,我使用的语法如 here 所述.

我正在修改行形式 here如下,通过去掉重定向来跳过。

Whitespace
: [ \t]+
;

Newline
: ( '\r' '\n'?
| '\n'
)
;

但是在任何 C 程序上执行解析器时,请说以下内容:

void main(){
}

报错

line 1:13 mismatched input '\n' expecting <EOF>

如果能帮助解决这个问题,我们将不胜感激。谢谢!

最佳答案

这行不通。如果您不跳过空格(或至少将它们放在不同的 channel 上),它们将返回到解析器并且必须在那里考虑。由于您只更改了词法分析器规则,而没有更改解析器规则,因此实际上无法匹配任何内容。所以 translationUnit?

compilationUnit
: translationUnit? EOF
;

被简单地跳过并且 EOF 是预期的。

关于c - 在 Antlr4 中保留空格和换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34755957/

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