【发布时间】:2010-02-04 19:01:55
【问题描述】:
我正在使用基于 XML 模式的 DSL,该模式支持函数式语言特性,例如循环、带有上下文的变量状态以及对外部 Java 类的调用。我想编写一个工具,它接收 XML 文档并将其转换为至少看起来像 Java 的东西,其中<set> 标签被转换为变量赋值,循环被转换为for 循环,等等。
我一直在研究 ANTLR 以及标准 XML 解析器,我想知道是否有推荐的方法来解决这个问题。如果不能直接将这样的 XML 文档转换为可转换为 Java 的内容,是否可以?
如果这是推荐的方式,我愿意通过 SAX 编写基于每个标签编写中间语言的解析,但让我暂停的部分是它以与语言相同的方式基于上下文的事实就像 Scheme 一样,任何标签的子元素都在父元素之前被完全评估。
【问题讨论】:
-
您能否详细说明“函数式语言功能,例如循环”。你对循环的定义是什么?
-
类似于:
myList 。有点像 JSP/EL。