我想解析REXX源代码,这样我就可以从Java中分析程序的结构。
我需要做一些事情,比如在源代码中规范化语法上不同的等价逻辑结构,查找重复的变量声明,等等,而且我已经有了Java背景。
有比写一大堆代码更简单的方法吗?
发布于 2009-03-28 22:45:38
如果您有Rexx语法,那么可以帮助您构建Rexx代码AST (抽象语法树)表示。
更准确地说,javacc将构建Java类,它将:
仍然需要“加载代码”,但您不会是为Rexx代码解析器编写类的人。只有它那一代人。
发布于 2010-01-01 12:42:34
REXX不是一种易于使用常用工具进行解析的语言,尤其是那些需要BNF语法的语言。与大多数接触C的人设计的语言不同,REXX没有任何保留字,这使得任务有点复杂。每个看起来像保留字的项实际上只在其特定上下文中被解析(例如," PULL“仅保留为PULL指令的第一个字或PARSE PULL指令的第二个字-您也可以有一个称为PULL(”PULL = 1 + 2“)的变量)。此外,评论还有一些非常令人惊讶的效果。但是ANSI REXX standard拥有完整的语法和所有的规则。
发布于 2009-03-28 23:51:59
看看ANTLR,它在构建、转换等方面做得很好……它有一个很好的编辑器(ANTLRWorks),是基于Java构建的,可以在解析器/树遍历器在应用程序中运行时对其进行调试。对于任何类型的解析工作,都非常值得研究。
https://stackoverflow.com/questions/693676
复制相似问题