gpt4 book ai didi

java - : '#i' when parsing c grammar 处的 token 识别错误

转载 作者:行者123 更新时间:2023-11-30 03:59:02 25 4
gpt4 key购买 nike

我正在尝试使用 https://github.com/antlr/grammars-v4 中找到的 antlr v4 语法来解析一个非常简单的 C 文件。 。该文件如下所示:

#include <stdio.h>
int main()
{
printf("hello world!");
return 0;
}

我正在尝试像这样解析文件:

public void parse(FileInputStream myFile) throws IOException {
ANTLRInputStream source = new ANTLRInputStream(myFile);
CLexer lexer = new CLexer(source);
CommonTokenStream stream = new CommonTokenStream(lexer);
CParser parser = new CParser(stream);
ParseTree tree = parser.primaryExpression();
ParseTreeWalker.DEFAULT.walk(new MyParseListener(), tree);
}

当我尝试解析它时,我会收到错误。

line 1:0 token recognition error at: '#i'

我还需要执行其他步骤来处理预处理吗? C语法不完整吗?

最佳答案

据我在当前提交的版本中所见,提供的语法不支持#include指令。

事实上,#include 指令本身并不是 C 语法的一部分,因此它通常不会由编译器处理,而是由预处理器处理

Definition of the C preprocessor

关于java - : '#i' when parsing c grammar 处的 token 识别错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22377210/

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