使用Anltr4解析Objective-C头文件失败

时间:2019-06-25 08:12:13

标签: objective-c parsing abstract-syntax-tree preprocessor

我想解析Objective-C头文件。 我使用Clang创建AST,然后解析ast。要获取Ast,我需要构建代码,而我不想这样做。

今天,我找到了Anltr4。它不需要构建代码。 而且,我遵循ANTLR v4入门。我运行Hello.g4示例,并且很好。    但是,当我在语法v4中使用objc g4时,会出现一些错误。

我所做的是这些:    1. Git克隆语法-v4    2. CD语法-v4 / objc    3.将./ObjectiveCParser.g4移至两步处理(因为我不知道为什么这么多 .g4)    4. cd两步处理    5. antlr4 ObjectiveCPreprocessorLexer.g4 \ antlr4 ObjectiveCPreprocessorParser.g4 \ antlr4 ObjectiveCLexer.g4 \ antlr4 ObjectiveCParser.g4    6. javac目标 .java    7.我发现一些错误:错误信息是错误:找不到符号\错误:包ObjectiveCPreprocessorParser不存在

ObjectiveCPreprocessor.java:12: 错误: 找不到符号
public class ObjectiveCPreprocessor extends ObjectiveCPreprocessorParserBaseVisitor<String> {
                                            ^
  符号: 类 ObjectiveCPreprocessorParserBaseVisitor
ObjectiveCPreprocessor.java:26: 错误: 程序包ObjectiveCPreprocessorParser不存在
    public String visitObjectiveCDocument(ObjectiveCPreprocessorParser.ObjectiveCDocumentContext ctx) {
                                                                      ^
ObjectiveCPreprocessor.java:35: 错误: 程序包ObjectiveCPreprocessorParser不存在
    public String visitText(ObjectiveCPreprocessorParser.TextContext context)
                                                        ^
ObjectiveCPreprocessor.java:57: 错误: 程序包ObjectiveCPreprocessorParser不存在
    public String visitPreprocessorImport(ObjectiveCPreprocessorParser.PreprocessorImportContext context)
                                                                      ^
ObjectiveCPreprocessor.java:63: 错误: 程序包ObjectiveCPreprocessorParser不存在
    public String visitPreprocessorConditional(ObjectiveCPreprocessorParser.PreprocessorConditionalContext context)

似乎classpath是错误的。但是我不知道为什么。

而且,我尝试在Swift3上执行此操作。发生相同的错误。

我克隆了Antlr4存储库,但是找不到ObjectiveCPreprocessorParser。

0 个答案:

没有答案