繁体   English   中英

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

[英]How to create Java ANTLR parser for Swift language?

我正在尝试用Java对Swift源代码进行AST。 我也使用Windows

我做了什么:

  1. 下载了antlr-4.7.1-complete.jar
  2. 将其添加到classpath
  3. 创建文件grun.batantlr4.bat ,将它们添加到PATH中
  4. 下载了https://github.com/antlr/grammars-v4/blob/master/swift3/Swift3.g4
  5. Ran antlr4 -Dlanguage=Java Swift3.g4
  6. 解析器创建了一些文件(包括Java源代码)
  7. 我使用这些指令https://github.com/antlr/antlr4/blob/master/doc/building-antlr.md构建了antlr4-runtime-4.7.2-SNAPSHOT.jar

但是现在我不明白该如何处理https://github.com/antlr/grammars-v4/blob/master/swift3/src/main/java/SwiftSupport.java ,它也是Swift语法的一部分。 我应该如何处理生成的文件? 只需将它们添加到我的资源中,定义package并完成工作即可? 我还看到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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM