uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

GEP3の例

Groovy 1.8ではGEP3という機能拡張が予定されていて、それは何かと言うとカンマや括弧の解釈の優先度とか省略ルールを変えることで、「メソッド呼び出しっぽくなく」英語のようにメソッドが呼べるようになると言うものです。以下、glaforge氏による実行可能な例。

http://groovyconsole.appspot.com/edit/221001


おもろい!

trick#4の部分では、クロージャのマップを返すクロージャのマップを返すクロージャのマップを返していく・・・ことで、構文則を定めています。BNFを即値で繰り込んで書いてくイメージ。

A:=B|C
C:=D|E

なら、[A: { [B:{}, C:{ [D:{}, E:{} ] } ] ]を返せばいい。

Groovyの表現力の幅が広まりそうですね。