私は本当に大好きです。プログラミング言語としてはLuaが大好きですが、すべてのローカル変数に常に「local
」と入力する必要があります。私のDSL for Luaは...動作しますか?
これはちょうど私のコードをより煩雑に見せます。
私は、Luaの上にDomain Specific Language(DSL)を作成して、単に次の変数命名規則を持つことができますか?変数名はすべて大文字である場合
- 、それはグローバル変数エルス
- だ、変数は
local
変数
質問は次のとおりです。うこの作品 - [はい]または[いいえ?言い換えれば
:
-- In Lua 5.2
isGlobalinLua = "is global in default Lua"
GLOBALVAR = "is global var in default Lua"
local localvar = "is local var in default Lua"
-- In my DSL Lua language
isLocalinDSLLua = "is local in DSL Lua" -- translates to: local isLocalinDSLLua = ...
GLOBALVAR = "is global DSL Lua"
localvar = "is local var in DSL Lua" -- translates to: local localvar = ...
だから今、デフォルトのLuaに次のコード:
MYGLOBAL = 10
a = 1
if a > 1 then
b = 2
print b
else
c = 3
print c + MYGLOBAL
end
UPDATE:私のDSLのLuaで
myglobal = 10
local a = 1
if a > 1 then
local b = 2
print b
else
local c = 3
print c + myglobal
end
ローカル機能はどうですか?
次のコードはどのように動作しますか?
myfunc = function (...) -- local myfunc = function (...)
すべての大域機能をすべて大文字にしたいとは思っていません。
多分私は機能を無視し、 'local
'という識別子を必要とします...考えていますか?
興味深い質問です。 +1これが正しいかどうか、これを行う正しい方法が何であるかを見ることに興味があります。 –
もちろんこれを行うことができます。あなたのDSLを読み込んでLuaソースを出力するプリプロセッサを書く。これは簡単なことではないし、それがどれほど価値があるのかは明らかではない。私は、実装言語と同じレベルの抽象度で動作するDSLには、個人的には少ししか見ません。時間を節約したり、エラーを防ぎません。 「ドメイン特有の」言語における「ドメイン」は、通常、エンドユーザドメインを指す。このようなゲームプレイヤー、会計士、ビジネスマンなど。 –
それで、1年後、このアイデアから何が出ましたか? – lhf