首页 > 解决方案 > 如何为 Swift 语言创建 Java ANTLR 解析器?

问题描述

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

我做了什么:

  1. 已下载antlr-4.7.1-complete.jar
  2. 将其添加到类路径
  3. 创建文件grun.bat并将antlr4.bat它们添加到 PATH
  4. 下载https://github.com/antlr/grammars-v4/blob/master/swift3/Swift3.g4
  5. antlr4 -Dlanguage=Java Swift3.g4
  6. Parser 创建了一些文件(包括 Java 源代码)
  7. antlr4-runtime-4.7.2-SNAPSHOT.jar使用这些说明构建https://github.com/antlr/antlr4/blob/master/doc/building-antlr.md

但是现在我不明白我应该如何处理https://github.com/antlr/grammars-v4/blob/master/swift3/src/main/java/SwiftSupport.java这也是 Swift 语法的一部分。我应该如何处理生成的文件?只需将它们添加到我的来源,定义package并完成工作?我还看到 ANTLR 只生成令牌,我必须自己构建 AST 吗?谢谢!

标签: javaswiftantlr

解决方案


看起来我做得很好,现在我可以用代码解析 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

推荐阅读