lua 内でドメイン固有言語を実装するために、言語にベアワードを追加したいと考えています。したがって、それ
print("foo")
は次のように書くことができますprint(foo)
私がこれを行った方法は、環境テーブルのメタテーブルを変更すること_G
です。
mt = {__index = function(tbl,key) return key end}
setmetatable(_G, mt)
変数の値を取得するにfoo
は_G.foo
、_G["foo"]
これは良いアプローチですか?隠れた欠点はありますか?より良い方法はありますか?ベアワードが特定のファイル内でのみ機能するようにすることはできますか? (おそらく、別の luascript から を使用してそのファイルを実行することによってloadstring
)