扩展Jython语法

问题描述:

我想向Jython添加语法以为用户启用更好的API。例如,像NumPy这样的矩阵库将受益于矩阵和元素操作,如Matlab的:**中缀运算符。扩展Jython语法

您可以使用在八度矩阵:

A = [ 1, 1, 2; 3, 5, 8; 13, 21, 34 ] 

比与NumPy的相当漂亮:

b = array([ (1.5,2,3), (4,5,6) ]) 

R使用公式 “Y〜X + Z” 在一个矩阵选择变量/数据框。这比替换["y"] ["x","z"]或解析字符串“y〜x + y”要好得多。

更复杂的例子可以在Cython中使用Easy Extend来实现。但EasyExtend不能在JVM上工作。

什么是最简单的方法,但相当健壮的方式添加语法到Jython?如果有一个框架来实现全新的语言结构,或者在jython中定义迷你语言,那将会很不错。

据我所知,尽管the developer of EasyExtend最近一直在研究一些jython项目(包括一些类似于EE的项目),但据我所知,没有类似于EasyExtend的宏/语法扩展工具。我想你可以编写某种类型的预处理程序,但是我倾向于建议在Python世界中语法扩展并不是非常受欢迎,如果你真的需要,你可能会更好地实现自己的DSL。