Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为Swift语言创建Java ANTLR解析器?_Java_Swift_Antlr - Fatal编程技术网

如何为Swift语言创建Java ANTLR解析器?

如何为Swift语言创建Java ANTLR解析器?,java,swift,antlr,Java,Swift,Antlr,我正在尝试用Java制作Swift源代码的AST。我也使用Windows 我所做的: 下载的antlr-4.7.1-complete.jar 将其添加到类路径 创建了文件grun.bat和antlr4.bat,并将它们添加到路径中 下载 Ranantlr4-Dlanguage=javaswift3.g4 解析器创建了几个文件(包括Java源代码) 我使用这些指令构建了antlr4-runtime-4.7.2-SNAPSHOT.jar 但现在我不明白该怎么做,这也是Swift语法的一部分。我应该如

我正在尝试用Java制作Swift源代码的AST。我也使用Windows

我所做的:

  • 下载的
    antlr-4.7.1-complete.jar
  • 将其添加到类路径
  • 创建了文件
    grun.bat
    antlr4.bat
    ,并将它们添加到路径中
  • 下载
  • Ran
    antlr4-Dlanguage=javaswift3.g4
  • 解析器创建了几个文件(包括Java源代码)
  • 我使用这些指令构建了
    antlr4-runtime-4.7.2-SNAPSHOT.jar

  • 但现在我不明白该怎么做,这也是Swift语法的一部分。我应该如何处理生成的文件?只需将它们添加到我的源代码中,定义
    ,工作就完成了?我还看到ANTLR只生成令牌,我必须自己构建AST吗?谢谢

    看起来我做的一切都很好,现在我可以用代码解析Swift文件了

    Swift3Lexer swiftLexer = new Swift3Lexer(CharStreams.fromFileName(file.getAbsolutePath()));
    CommonTokenStream commonTokenStream = new CommonTokenStream(swiftLexer);
    Swift3Parser swiftParser = new Swift3Parser(commonTokenStream);
    
    Top_levelContext topLevel = swiftParser.top_level(); // it works