Şartlar ile Lua'da küçük bir DSL kurmaya çalışıyorum.Bir Lua DSL için koşullara sahip olmak?
x = '0'
function start()
return function() end
end
function set_x (v)
x = v
return function() end
end
function if_x (v)
if x == v then
print ("x = ", v)
else
print ("x != ", v)
end
return function() end
end
-- DSL here
start {
set_x '10',
if_x '10' { print ('x is 10') },
if_x '20' { print ('x is 20') }
}
Çıktı geçerli: x is 20
baskılı olmamasının sağlanması amacıyla
x = 10
x is 10
x != 20
x is 20
Nasıl zarif bir şekilde conditionals uygulamak? set_x
'da bir global değişken belirlemeden ve if_x
içinde kontrol etmeden bunu yapamadım, ancak bu çirkin görünüyor.
Herhangi bir ipucu?
Teşekkürler!
Ve BTW, neyiniz normal olarak ** E ** DSL (gömülü DSL) olarak adlandırılır, çünkü varolan dil yapılarını kullanır. –