我想要分析莱克西酒吧源,这样我可以分析的结构程序,从爪哇。

我需要做的事情一样正常化等同的逻辑结构的源是语法上的不同,查找重复的可变的声明,等等。我已经有一个Java背景。

任何容易的方法来做到这比编写的载荷的代码?

有帮助吗?

解决方案

如果你有 负责 莱克西酒吧语法,然后 javacc 可以帮助你们建立一个 AST (抽象的法树)的代表,莱克西酒吧的代码。

更准确地说,javacc将建立的 Java类 这将:

  • 分析代码和莱克西酒吧
  • 实际上是建立AST.

仍然会有"载荷的代码",但你不会是一个在做的写作课程,莱克西酒吧的代码分析器。只是它的产生。

其他提示

REXX不是一件容易的语言与常用工具来解析,尤其是那些期望BNF语法。不像人们所暴露到C设计的大多数语言,REXX没有任何保留字,使得任务有点复杂。看起来像一个保留字每学期实际上只在其特定的上下文来解析(例如的,“拉”只保留作为PULL指令的第一个字或一个PARSE PULL指令的第二个字 - 你还可以有一个变量称为PULL(“PULL = 1 + 2”))。另外也有评论一些非常令人惊讶的效果。但 ANSI标准REXX 有完整的语法和所有的规则。

看一看 ANTLR ,它确实建立一个AST,把它的一个不错的工作等... 它有一个很好的编辑器(ANTLRWorks),是建立在Java中,虽然他们在你的应用程序可以运行调试分析器/树步行者。真正值得探讨的任何类型的分析工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top