我正在寻找用JavaScript语言编写的Java源代码解析器的实现。你知道任何?用JavaScript编写的Java解析器
回答
看一看ANTLR可以了Javascript为目标,与Java 1.5的语法在http://www.antlr.org/grammar/1152141644268/Java.g
编辑:链接停止工作 - 尝试https://github.com/antlr/grammars-v4/blob/master/java/Java.g4 :)
嗯......好主意!谢谢你,克里斯。但是,我不确定这种解析器的性能足以解析大量的源代码。 – 2011-05-13 15:38:28
好的。这不是我所期望的解决方案,但目前它只是解决这个问题的解决方案。 – 2011-05-13 16:47:39
@Eliah:“......不确定......大量的源代码”ANTLR总体上产生了非常高效的解析器。 (我个人的选择是为了它,而不是反对它。)我怀疑唯一能找到的方法是生成这样一个解析器并尝试它。如果你担心,为什么不使用Java或C++来做到这一点? – 2015-09-08 08:19:05
试试Rhino引擎?
OP正在寻找其他方法。 – 2011-05-13 15:01:01
Rhino解决了相反的问题:它在Java环境中解析JavaScript。 – 2011-05-13 15:11:44
我不知道一个Java解析器本身的,但这里有一些Java脚本解析器生成:
- http://jscc.jmksf.com/
- http://code.google.com/p/cruiser/wiki/Parse
- http://pegjs.majda.cz/
- http://zaach.github.com/jison/
- 和更多的列表here包括PGS的写在其他语言和目标Javascript ...
如果其中一个准备黄金时间,您应该能够将Java语法翻译成必需的形式,然后使用PGS生成Java解析器的JavaScript。
当然,这只会给你一个解析器。如果你想做类型分析(正如你的评论似乎在说),那不是解析器所做的。
谢谢您的回复,斯蒂芬。我正在使用其中一些解析器生成器。我认为它的性能不足以用C++语法(比如Java)解析大量的代码,不幸的是。 – 2011-05-13 15:25:58
@Eliah - 这看起来可能与直觉相反,但生成的解析器往往比手写解析器更快,特别是在PGS成熟的情况下。 – 2011-05-13 15:35:11
我注意到ANTLR也会在Javascript中生成解析器。 – 2011-05-13 16:10:07
下面是一个使用Java的PEG解析器1.7 http://mazko.github.io/jsjavaparser/ grammar by Roman R Redziejowski http://www.romanredz.se/Mouse/Java.1.7.peg
- 1. 用JavaScript编写的JavaScript解析器
- 2. 用JAVA编写的COBOL解析器
- 3. 用Wisent编写解析器
- 4. 为javascript代码编写解析器
- 5. 如何在java中编写JavaScript解析器
- 6. 用java编写的java解释器
- 7. 编写序言解析器
- 8. 试图编写解析器
- 9. 用PHP编写的SSI解析器?
- 10. 用Prolog编写的RegEx解析器
- 11. 使用Javascript编写解析器的教程
- 12. 是否有任何用Javascript编写的开源JSDoc解析器?
- 13. 用javascript编写的搜索表达式解析器
- 14. 是否有任何用Java编写的ADA解析器?
- 15. 在Haskell中使用解析器组合器库编写的分析解析器
- 16. 用Java解析JavaScript
- 17. 用pyparsing编写递归解析器
- 18. 编写通用XML解析器
- 19. 使用Text.ParserCombinators编写解析器
- 20. 技术用于在JavaScript编写XML解析器
- 21. 解析JavaScript的使用Java
- 22. PL/SQL源代码解析器(用Java编写)
- 23. 如何使用opencsv编写java csv解析器
- 24. 使用java解析器编写else if语句
- 25. 为GUI调试器编写解析器
- 26. 如何编写java解释器/词法分析器
- 27. 编写我自己的float解析器
- 28. 编写一个简单的解析器
- 29. 为haskell中的人编写解析器
- 30. 如何写解析器解析字符串中的Java
为了什么目的?解释代码并运行它?用HTML着色它?将其映射到JSON对象? – Jeff 2011-05-13 14:57:54
你究竟想要做什么? – 2011-05-13 14:58:00
@Jeff在结果中,我希望有某种抽象语法树。 – 2011-05-13 15:03:04