我想为JavaScript编写解析器。
我发现我需要对每个角色进行某种扫描,一旦我与任何{
进行互动,我必须跟踪下一个}
(关闭大括号)。
为了有效使用,我可以使用堆栈。
任何人都可以建议我使用Java构建JavaScript解析器的更好的想法或方法吗?
答案 0 :(得分:2)
您可能想要使用ANTLR进行调查 - 它是一个工具,它允许您根据您编写的语法文件生成java或其他语言的解析器类。您可能能够在线找到javascript的语法(或至少部分语法)。
包含教程的Antlr主页 - http://www.antlr.org/
如果你不熟悉语法的概念,你可能需要阅读它们并进行编译;一个良好的第一次开始可能是维基:http://en.wikipedia.org/wiki/Formal_grammar
答案 1 :(得分:1)
答案 2 :(得分:1)
已经有一个用Java编写的完整JavaScript引擎,名称为Rhino。显然它必须包含一个解析器,它是开源的,所以你可以看看它是如何在那里完成的。
我怀疑你会发现解析像JavaScript这样的语言比你期望的要复杂得多。
答案 3 :(得分:0)
还有JavaCC