rufus-lua-moon 0.3.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/vendor/leafo/moon/init.moon +1 -3
- data/vendor/leafo/moonscript/base.lua +1 -3
- data/vendor/leafo/moonscript/cmd/coverage.lua +2 -1
- data/vendor/leafo/moonscript/cmd/lint.lua +9 -5
- data/vendor/leafo/moonscript/compile.lua +20 -12
- data/vendor/leafo/moonscript/compile/statement.lua +2 -3
- data/vendor/leafo/moonscript/compile/value.lua +16 -6
- data/vendor/leafo/moonscript/data.lua +2 -1
- data/vendor/leafo/moonscript/parse.lua +28 -21
- data/vendor/leafo/moonscript/parse/env.lua +3 -2
- data/vendor/leafo/moonscript/parse/util.lua +4 -22
- data/vendor/leafo/moonscript/transform.lua +2 -1632
- data/vendor/leafo/moonscript/transform/accumulator.lua +110 -0
- data/vendor/leafo/moonscript/transform/class.lua +486 -0
- data/vendor/leafo/moonscript/transform/comprehension.lua +54 -0
- data/vendor/leafo/moonscript/transform/destructure.lua +3 -2
- data/vendor/leafo/moonscript/transform/names.lua +4 -2
- data/vendor/leafo/moonscript/transform/statement.lua +741 -0
- data/vendor/leafo/moonscript/transform/statements.lua +115 -0
- data/vendor/leafo/moonscript/transform/transformer.lua +74 -0
- data/vendor/leafo/moonscript/transform/value.lua +265 -0
- data/vendor/leafo/moonscript/types.lua +16 -14
- data/vendor/leafo/moonscript/util.lua +0 -9
- data/vendor/leafo/moonscript/version.lua +1 -1
- metadata +8 -1
@@ -19,6 +19,10 @@ local cascading = Set({
|
|
19
19
|
"class",
|
20
20
|
"do"
|
21
21
|
})
|
22
|
+
local terminating = Set({
|
23
|
+
"return",
|
24
|
+
"break"
|
25
|
+
})
|
22
26
|
local ntype
|
23
27
|
ntype = function(node)
|
24
28
|
local _exp_0 = type(node)
|
@@ -41,14 +45,12 @@ do
|
|
41
45
|
return moon_type(val)
|
42
46
|
end
|
43
47
|
end
|
44
|
-
local
|
45
|
-
|
46
|
-
if ntype(node) == "chain" then
|
47
|
-
|
48
|
-
return ctype ~= "call" and ctype ~= "colon"
|
49
|
-
else
|
50
|
-
return true
|
48
|
+
local value_can_be_statement
|
49
|
+
value_can_be_statement = function(node)
|
50
|
+
if not (ntype(node) == "chain") then
|
51
|
+
return false
|
51
52
|
end
|
53
|
+
return ntype(node[#node]) == "call"
|
52
54
|
end
|
53
55
|
local is_value
|
54
56
|
is_value = function(stm)
|
@@ -56,10 +58,6 @@ is_value = function(stm)
|
|
56
58
|
local transform = require("moonscript.transform")
|
57
59
|
return compile.Block:is_value(stm) or transform.Value:can_transform(stm)
|
58
60
|
end
|
59
|
-
local comprehension_has_value
|
60
|
-
comprehension_has_value = function(comp)
|
61
|
-
return is_value(comp[2])
|
62
|
-
end
|
63
61
|
local value_is_singular
|
64
62
|
value_is_singular = function(node)
|
65
63
|
return type(node) ~= "table" or node[1] ~= "exp" or #node == 2
|
@@ -306,6 +304,9 @@ local smart_node
|
|
306
304
|
smart_node = function(node)
|
307
305
|
return setmetatable(node, smart_node_mt[ntype(node)])
|
308
306
|
end
|
307
|
+
local NOOP = {
|
308
|
+
"noop"
|
309
|
+
}
|
309
310
|
return {
|
310
311
|
ntype = ntype,
|
311
312
|
smart_node = smart_node,
|
@@ -315,7 +316,8 @@ return {
|
|
315
316
|
manual_return = manual_return,
|
316
317
|
cascading = cascading,
|
317
318
|
value_is_singular = value_is_singular,
|
318
|
-
|
319
|
-
|
320
|
-
|
319
|
+
value_can_be_statement = value_can_be_statement,
|
320
|
+
mtype = mtype,
|
321
|
+
terminating = terminating,
|
322
|
+
NOOP = NOOP
|
321
323
|
}
|
@@ -60,14 +60,6 @@ get_closest_line = function(str, line_num)
|
|
60
60
|
return line, line_num
|
61
61
|
end
|
62
62
|
end
|
63
|
-
local reversed
|
64
|
-
reversed = function(seq)
|
65
|
-
return coroutine.wrap(function()
|
66
|
-
for i = #seq, 1, -1 do
|
67
|
-
coroutine.yield(i, seq[i])
|
68
|
-
end
|
69
|
-
end)
|
70
|
-
end
|
71
63
|
local split
|
72
64
|
split = function(str, delim)
|
73
65
|
if str == "" then
|
@@ -209,7 +201,6 @@ return {
|
|
209
201
|
pos_to_line = pos_to_line,
|
210
202
|
get_closest_line = get_closest_line,
|
211
203
|
get_line = get_line,
|
212
|
-
reversed = reversed,
|
213
204
|
trim = trim,
|
214
205
|
split = split,
|
215
206
|
dump = dump,
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rufus-lua-moon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stas Ukolov
|
@@ -123,8 +123,15 @@ files:
|
|
123
123
|
- vendor/leafo/moonscript/parse/literals.lua
|
124
124
|
- vendor/leafo/moonscript/parse/util.lua
|
125
125
|
- vendor/leafo/moonscript/transform.lua
|
126
|
+
- vendor/leafo/moonscript/transform/accumulator.lua
|
127
|
+
- vendor/leafo/moonscript/transform/class.lua
|
128
|
+
- vendor/leafo/moonscript/transform/comprehension.lua
|
126
129
|
- vendor/leafo/moonscript/transform/destructure.lua
|
127
130
|
- vendor/leafo/moonscript/transform/names.lua
|
131
|
+
- vendor/leafo/moonscript/transform/statement.lua
|
132
|
+
- vendor/leafo/moonscript/transform/statements.lua
|
133
|
+
- vendor/leafo/moonscript/transform/transformer.lua
|
134
|
+
- vendor/leafo/moonscript/transform/value.lua
|
128
135
|
- vendor/leafo/moonscript/types.lua
|
129
136
|
- vendor/leafo/moonscript/util.lua
|
130
137
|
- vendor/leafo/moonscript/version.lua
|