Groovy返回参考难题

时间:2012-06-15 11:07:44

标签: java groovy dsl mop

我正在用Groovy编写一个DSL来破解BASIC脚本。我正在考虑如何处理BASIC数组。

使用MOP来处理类似的事情似乎很容易:

100 LET X = A(5)

当A是DIMed时,我会动态声明A闭包,这个A闭包将根据其参数返回一个值。但处理起来并不那么简单:

110 LET A(5) = Y

因为我无法通过Groovy返回引用。除了解析A(5)是左值还是右值之外,还有人能想出一个解决这个问题的方法吗?

1 个答案:

答案 0 :(得分:0)

没有简单的答案,请记住,即使你解决了这个问题,你仍然需要处理BASIC条件(例如“IF a = 10 then ......”)。您可以通过明智地使用AST转换来获得所需的内容,但这可能并不比编写自己的自定义解析器更容易。换句话说,我认为你注定要失败,除了尽可能写BASIC脚本之外还应该做些什么。