Minha nossa, Caotic tu é foda mano parabéns.
4
940
info
Grupo: Herói
Registrado: 12/06/12
Posts: 1k
Reputação: +362
Gênero: Masculino
Char no Tibia: Aarow

25 de setembro de 2013 às 13:34
info
Grupo: Infante
Registrado: 06/03/13
Posts: 1.6k
Reputação: +319
Gênero: Masculino
Char no Tibia: Lord Sorte

25 de setembro de 2013 às 13:53
Nossa vocé manja das paranaue.
info
Grupo: Marquês
Registrado: 22/07/12
Posts: 1.1k
Reputação: +400
Gênero: Masculino
Char no Tibia: Luck Oake

25 de setembro de 2013 às 18:50
Legal sua ideia, but...
Mano, isso é realmente muuuito confuso.
Tirando isso, maneiro o código. Só não acho que realmente será utilizada algum dia por não ser simples igual Lua normal.



info
Grupo: Infante
Registrado: 04/03/11
Posts: 1.6k
Reputação: +393
Char no Tibia: No Have
Tão lembrando do ctlua aquele codigo que com lua executa o mesmo funcionamento de uma linguagem.
Pois é eu resolvi fazer uma coisinha superior:
Codigo:
function string.explode(e, sep) local result = {} e:gsub("[^".. sep .."]+", function(s) table.insert(result, s:match("^%s*(.-)%s*$")) end) return result end function maior(x, y) if x == y then return "" end return "," end function interpreteFunctionInCt(str) for i in str:gmatch("--function (.*)") do local t = string.explode(i, "[") str = "" for x=2, #t do str = str..""..t[x]..""..maior(x, #t).."" end local str = t[1].."("..str..")" loadstring(str) () end end function declareVar(str) local t = string.explode(str, "[") local value = t[2] local var = value.."="..t[3] loadstring(var) () end function newFuncCt(str) local function transformInFuncLua(str) for i in str:gmatch("--function (.*)") do local t = string.explode(i, "[") str = "" for x=2, #t do str = str..""..t[x]..""..maior(x, #t).."" end str = t[1].."("..str..")" end return str end function transformTableFuncCtInFuncLua(table) str = "" for i =1, #table do str = str.."\n"..transformInFuncLua(table[i]) end return str end local t = string.explode(str, "[") local y = string.match(str, "{(.-)}") local params = string.explode(t[3], "/") local func = string.explode(y, "/") local st = "function "..t[2].."("..table.concat(params, ",")..")"..transformTableFuncCtInFuncLua(func).."\nend" loadstring(st) () end function declareVarByFunction(str) local function interpreteFunctionReturnInCt(str) for i in str:gmatch("--function (.*)") do local t = string.explode(i, "[") str = "" for x=2, #t do str = str..""..t[x]..""..maior(x, #t).."" end local str = t[1].."("..str..")" y = loadstring('return (' .. str .. ')')() end return y end local t = string.explode(str, "[") local y = interpreteFunctionReturnInCt(string.match(str, "{(.-)}")) local st = t[2].."=".."'"..y.."'" loadstring(st) () end function ifCT(str) local function transformOpe(string) for i=1, #string do local t = string.sub(string, i, i) if t == '/' then string = string.sub(string, 1, i-1).."and"..string.sub(string, i+1, #string) end end return string end for i in str:gmatch("--gets (.*)") do local t = string.explode(i, "[") local veri = transformOpe(t[1]) y = loadstring('return (' .. veri .. ')')() if y then local y = string.match(i, "{(.-)}") interpreteFunctionInCt(y) end end end function conditionRepeat(str) local function transformOpe(string) for i=1, #string do local t = string.sub(string, i, i) if t == '/' then string = string.sub(string, 1, i-1).."and"..string.sub(string, i+1, #string) end end return string end for i in str:gmatch("--condloop(.*)") do local t = string.explode(i, "[") for x =1, tonumber(t[2]) do value = transformOpe(t[3]) y = loadstring('return (' .. value .. ')')() if y then loadstring(value) () local y = string.match(i, "{(.-)}") StartCt(y) end end end end function loopCT(str) for i in str:gmatch("--loopCT (.*)") do local t = string.explode(i, "[") if t[1] == "inf" then x = 0 while true do value = t[2]:gsub("++", "").."="..x loadstring(value) () x = x+1 local y = string.match(i, "{(.-)}") interpreteFunctionInCt(y) end end for x =1, tonumber(t[1]) do value = t[2]:gsub("++", "").."="..x loadstring(value) () local y = string.match(i, "{(.-)}") interpreteFunctionInCt(y) end end end function StartCt(str) str = string.gsub(str, "\n", "") for i in str:gmatch("--(.-);") do if string.sub(i, 1, 6) == "--func" then interpreteFunctionInCt(i) end if string.sub(i, 1, 6) == "--loop" then loopCT(i) end if string.sub(i, 1, 6) == "--gets" then ifCT(i) end if string.sub(i, 1, 5) == "--var" then declareVar(i) end if string.sub(i, 1, 16) == "--declarefuncvar" then declareVarByFunction(i) end if string.sub(i, 1, 9) == "--newfunc" then newFuncCt(i) end if string.sub(i, 1, 10) == "--condloop" then conditionRepeat(i) end end return true end function ctRun(ctl) local x = io.open("./"..ctl..".ctl", "r") if not x then return false end local i = x:read("*a") StartCt(i) end ctRun("test")--function print ["oi hear"["ola"["verdade"; --function print ["oi"; --loopCT [4 [y++ [{--function print [y}; --gets [7 > 6 / 8 > 2 [{--function print ["oi"}; --var [a ["variavel"; --function print [a; --declarefuncvar [ab [{--function string.sub ["oi" [1 [1}; --function print [ab; --newfunc [newp [x/s [{--function print [x/--function print [s}; --function newp ["oi" ["YEAR"; --condloop [4 [[1 > 1 [{--function print [y};Editado Setembro 26 por caotic