Groovy を使用して BASIC を処理する DSL を作成していますが、多次元 (2 次元以上) の配列を処理する方法について支援が必要です。
私はこのようなBASICコードを扱っています:
100 LET X = A(1, 2, 3)
1 次元の場合は簡単に処理できます。A の要素を返すクロージャを (MOP 経由で) 作成するだけですが、2 次元の場合は次の形式で同じことができます。
A(2, 3) == A.get(2)[3]
しかし、無制限の次元の配列をどのように処理すればよいでしょうか?
更新:これを少し明確にするために、DSLコンテキストで配列値を動的に返すにはどうすればよいですか? スクリプト インタープリタは A(1, 2, 3) を、MOP を使用してインターセプトできる関数呼び出しと見なします。しかし、そのコンテキストで配列要素の値を返すにはどうすればよいでしょうか?