Java 位于'的令牌识别错误#i';解析c语法时

Java 位于'的令牌识别错误#i';解析c语法时,java,parsing,antlr4,Java,Parsing,Antlr4,我正在尝试使用位于的antlr v4语法解析一个非常简单的C文件。 该文件如下所示: #include <stdio.h> int main() { printf("hello world!"); return 0; } 当我试图解析它时,我将得到错误 line 1:0 token recognition error at: '#i' 我是否还需要执行另一个步骤来处理预处理?C语法是否不完整?提供的语法不支持当前提交版本中的“include”指令 事实上#include指

我正在尝试使用位于的antlr v4语法解析一个非常简单的C文件。 该文件如下所示:

#include <stdio.h>
int main()
{
  printf("hello world!");
  return 0;
}
当我试图解析它时,我将得到错误

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

我是否还需要执行另一个步骤来处理预处理?C语法是否不完整?

提供的语法不支持当前提交版本中的“include”指令

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


“include”不是C语法的一部分。它与#define、#ifdef等一起由预处理器处理,这是一个独立于解析和编译的阶段。那么在antlr中如何处理这个问题呢?我需要在解析代码之前预编译它吗?我是否需要添加预处理规则才能解析代码?这两种方法都可以。
line 1:0 token recognition error at: '#i'