如何在Java中解析REXX代码?

时间:2009-03-28 22:37:11

标签: java parsing rexx

我想解析REXX源代码,以便从Java中分析程序的结构。

我需要做一些事情,比如在语法上不同的源中规范化等效的逻辑结构,找到重复的变量声明等等。我已经有了Java背景。

比编写大量代码更简单的方法吗?

3 个答案:

答案 0 :(得分:8)

REXX不是一种易于使用常用工具解析的语言,特别是那些期望BNF语法的工具。与暴露于C的人设计的大多数语言不同,REXX没有任何保留字,使得任务有点复杂。每个看起来像保留字的术语实际上只能在其特定的上下文中解析(例如,“PULL”仅保留为PULL指令的第一个字或第二个字。 PARSE PULL指令 - 您还可以使用名为PULL(“PULL = 1 + 2”)的变量。此外,还有一些非常令人惊讶的评论效果。但是ANSI REXX standard具有完整的语法和所有规则。

答案 1 :(得分:5)

如果你有BNF Rexx语法,那么 javacc 可以帮助你构建该Rexx代码的AST(抽象语法树)表示。

更准确地说,javacc将构建 Java类,它将:

  • 解析Rexx代码和
  • 实际上构建了AST。

仍然会有“代码加载”,但你不会成为那个为Rexx代码解析器编写类的人。只有它的一代。

答案 2 :(得分:1)

看看ANTLR,它确实做了一个很好的工作来构建AST,转换它等等...... 它有一个很好的编辑器(ANTLRWorks),基于Java构建,可以在应用程序中运行时调试解析器/树步行器。非常值得研究任何类型的解析工作。