저는 프로그래밍 언어로 Lua을 정말 좋아하지만, 모든 로컬 변수에 "local
"을 입력해야한다는 것은 믿을 수 없을 정도로 버그입니다.내 DSL for Lua가 작동합니까 ...? (이것은 너무 단순한 것 같습니다)
단지 코드가 좀 어지럽게 보입니다.
그래서 나는 다음과 같은 변수 명명 규칙을 사용하기 위해 Lua 위에 도메인 특정 언어 (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 = ...
그래서 지금, 기본 루아에 다음 코드 :
MYGLOBAL = 10
a = 1
if a > 1 then
b = 2
print b
else
c = 3
print c + MYGLOBAL
end
UPDATE : 내 DSL의 루아와
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을 읽고 루아 소스를 출력하는 전 처리기를 작성하십시오. 이것은 사소한 일이 아니며 그것이 얼마나 가치있는 일인지 분명하지 않습니다. 필자는 구현 언어와 동일한 수준의 추상화 수준에서 작동하는 DSL의 작은 부분을 개인적으로 보았습니다. 그들은 시간을 절약하거나 오류를 예방하지 않습니다. "도메인 특정"언어의 "도메인"은 대개 최종 사용자 도메인을 나타냅니다. 그러한 게임 플레이어, 회계사, 사업가 등. –
그래서 1 년 후,이 아이디어에서 무엇이 나왔습니까? – lhf