From cd618f934b0e4a30bd6cd4e98f8c1005bf3d6193 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Sun, 25 Jun 2023 17:46:32 +0800 Subject: fix more ambiguous Lua codes generation cases. --- spec/inputs/ambiguous.yue | 21 +++++++++++++++++++++ spec/outputs/ambiguous.lua | 15 +++++++++++++++ spec/outputs/attrib.lua | 8 ++++---- spec/outputs/macro.lua | 8 ++++---- spec/outputs/teal-lang.lua | 10 +++++----- spec/outputs/teal-lang.tl | 8 ++++---- spec/outputs/using.lua | 2 +- 7 files changed, 54 insertions(+), 18 deletions(-) (limited to 'spec') diff --git a/spec/inputs/ambiguous.yue b/spec/inputs/ambiguous.yue index 3ae0bfc..37857fe 100644 --- a/spec/inputs/ambiguous.yue +++ b/spec/inputs/ambiguous.yue @@ -23,6 +23,27 @@ for i = 1, 10 goto abc (print) 5 +macro lua = (code)-> { + :code + type: "lua" +} + +do + print() + 1 |> b |> (a) + print() + <- (fn) + +do + print() + () <- async_fn() + print() + $lua[==[ + --[[a comment to insert]] + (haha)() + ]==] + nil + macro v = -> 'print 123' do global * diff --git a/spec/outputs/ambiguous.lua b/spec/outputs/ambiguous.lua index f96cee5..3da6f14 100644 --- a/spec/outputs/ambiguous.lua +++ b/spec/outputs/ambiguous.lua @@ -24,6 +24,21 @@ for i = 1, 10 do goto abc; (print)(5) end +do + print(); + (a)(b(1)) + print(); + (fn)(function() end) +end +do + print() + async_fn(function() + print(); +--[[a comment to insert]] + (haha)() + return nil + end) +end do print(123) end diff --git a/spec/outputs/attrib.lua b/spec/outputs/attrib.lua index fbac28e..aaff747 100644 --- a/spec/outputs/attrib.lua +++ b/spec/outputs/attrib.lua @@ -64,12 +64,12 @@ do local _with_0 = io.open("file.txt") _with_0:write("Hello") return _with_0 - end)(); + end)() local _ = setmetatable({ }, { __close = function(self) return print("second") end - }); + }) local _ = setmetatable({ }, { __close = function() return print("first") @@ -86,11 +86,11 @@ do _defers[#_defers + 1] = function() return print(3) end - local _ = _defers; + local _ = _defers _defers[#_defers + 1] = function() return print(2) end - local _ = _defers; + local _ = _defers _defers[#_defers + 1] = function() return print(1) end diff --git a/spec/outputs/macro.lua b/spec/outputs/macro.lua index fbc1d48..f18baed 100644 --- a/spec/outputs/macro.lua +++ b/spec/outputs/macro.lua @@ -1,4 +1,4 @@ -assert(item == nil); +assert(item == nil) local v = (item == nil) if f1() then print("OK") @@ -170,11 +170,11 @@ do end)() print(a) end -local x = 0; +local x = 0 local function f(a) return a + 1 end -x = x + f(3); +x = x + f(3) function tb:func() print(123) end @@ -277,7 +277,7 @@ print((setmetatable({ return 998 end })) -print("current line: " .. tostring(268)); +print("current line: " .. tostring(268)) -- TODO do print(1) diff --git a/spec/outputs/teal-lang.lua b/spec/outputs/teal-lang.lua index 0e627f4..28ba6f8 100644 --- a/spec/outputs/teal-lang.lua +++ b/spec/outputs/teal-lang.lua @@ -1,13 +1,13 @@ local a = { value = 123 -}; -local b = a.value; +} +local b = a.value local add = function(a, b) return a + b end local s = add(a.value, b) -print(s); -local Point = {}; +print(s) +local Point = {} Point.new = function(x, y) local point = setmetatable({ }, { __index = Point @@ -21,7 +21,7 @@ Point.move = function(self, dx, dy) self.y = self.y + dy end local p = Point.new(100, 100) -p:move(50, 50); +p:move(50, 50) local filter = function(tab, handler) local _accum_0 = { } local _len_0 = 1 diff --git a/spec/outputs/teal-lang.tl b/spec/outputs/teal-lang.tl index 8f0bf36..0dc25a1 100644 --- a/spec/outputs/teal-lang.tl +++ b/spec/outputs/teal-lang.tl @@ -1,14 +1,14 @@ local a:{string:number} = { value = 123 -}; -local b:number = a.value; +} +local b:number = a.value local function add(a:number, b:number):number return a + b end local s = add(a.value, b) -print(s); +print(s) local record Point x: number y: number @@ -28,7 +28,7 @@ function Point:move(dx:number, dy:number) end local p:Point = Point.new(100, 100) -p:move(50, 50); +p:move(50, 50) local function filter(tab:{string}, handler:function(item:string):boolean):{string} local _accum_0 = { } diff --git a/spec/outputs/using.lua b/spec/outputs/using.lua index ff23a30..8ecc21e 100644 --- a/spec/outputs/using.lua +++ b/spec/outputs/using.lua @@ -22,7 +22,7 @@ _ = function() local hello = hello or 2 end do - local a = { }; + local a = { } _(function() local x, y = a[1], a[2] end) -- cgit v1.2.3-55-g6feb