2

私はBASICスクリプトをハックするためにGroovyでDSLを書いています。BASIC配列の扱い方を考えています。

MOPを使用して次のようなものを処理するのは簡単なようです。

100 LET X = A(5)

AがDIMされたときに、Aクロージャを動的に宣言します。このAクロージャは、引数に基づいて値を返します。しかし、処理はそれほど簡単ではありません。

110 LET A(5) = Y

Groovyから参照で戻ることができないので。A(5)が左辺値であるか右辺値であるかを解析する以外に、誰かがこれを回避する方法を考えることができますか?

4

1 に答える 1

0

簡単な答えはありません。この問題を解決したとしても、BASIC 条件 (たとえば、"IF a = 10 then ...") を処理する必要があることに注意してください。おそらく、AST 変換を適切に使用することで必要なものを得ることができますが、それはおそらく、独自のカスタム パーサーを作成することほど簡単ではありません。言い換えれば、あなたは運命にあると思います。可能であれば、BASIC スクリプトを書く以外のことをすべきです。

于 2012-06-18T17:22:01.330 に答える