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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59faaa1677c7e57480d6a18470b0dec01f916d9c
|
4
|
+
data.tar.gz: 15ccf6ad23a02d98574f68aa0a2139a912d59669
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4d7f498e85e7a08aebf7b14f5c60862e13b2894674219f694ef60a3d8d018ab55603c72624f82e3b01505c7471dfde19859a8049c67794d49752c143bbd9a7bd
|
7
|
+
data.tar.gz: 27128fdaffadc31ba248b4574d1fef272daf25c1019fd66c031f39ba737f55f4cc03928d3b15cc8b1d3b62b654b3bbfc1042ae0f0bbea47f896c57858c32821f
|
data/vendor/leafo/moon/init.moon
CHANGED
@@ -66,9 +66,7 @@ end
|
|
66
66
|
moon_loader = function(name)
|
67
67
|
local name_path = name:gsub("%.", dirsep)
|
68
68
|
local file, file_path
|
69
|
-
|
70
|
-
for _index_0 = 1, #_list_0 do
|
71
|
-
local path = _list_0[_index_0]
|
69
|
+
for path in package.moonpath:gmatch("[^;]+") do
|
72
70
|
file_path = path:gsub("?", name_path)
|
73
71
|
file = io.open(file_path)
|
74
72
|
if file then
|
@@ -58,6 +58,7 @@ format_file = function(fname, positions)
|
|
58
58
|
end
|
59
59
|
local CodeCoverage
|
60
60
|
do
|
61
|
+
local _class_0
|
61
62
|
local _base_0 = {
|
62
63
|
reset = function(self)
|
63
64
|
self.line_counts = create_counter()
|
@@ -120,7 +121,7 @@ do
|
|
120
121
|
end
|
121
122
|
}
|
122
123
|
_base_0.__index = _base_0
|
123
|
-
|
124
|
+
_class_0 = setmetatable({
|
124
125
|
__init = function(self)
|
125
126
|
return self:reset()
|
126
127
|
end,
|
@@ -52,6 +52,7 @@ local default_whitelist = Set({
|
|
52
52
|
})
|
53
53
|
local LinterBlock
|
54
54
|
do
|
55
|
+
local _class_0
|
55
56
|
local _parent_0 = Block
|
56
57
|
local _base_0 = {
|
57
58
|
lint_mark_used = function(self, name)
|
@@ -120,11 +121,11 @@ do
|
|
120
121
|
end,
|
121
122
|
render = function(self, ...)
|
122
123
|
self:lint_check_unused()
|
123
|
-
return
|
124
|
+
return _class_0.__parent.__base.render(self, ...)
|
124
125
|
end,
|
125
126
|
block = function(self, ...)
|
126
127
|
do
|
127
|
-
local _with_0 =
|
128
|
+
local _with_0 = _class_0.__parent.__base.block(self, ...)
|
128
129
|
_with_0.block = self.block
|
129
130
|
_with_0.render = self.render
|
130
131
|
_with_0.get_root_block = self.get_root_block
|
@@ -138,12 +139,12 @@ do
|
|
138
139
|
}
|
139
140
|
_base_0.__index = _base_0
|
140
141
|
setmetatable(_base_0, _parent_0.__base)
|
141
|
-
|
142
|
+
_class_0 = setmetatable({
|
142
143
|
__init = function(self, whitelist_globals, ...)
|
143
144
|
if whitelist_globals == nil then
|
144
145
|
whitelist_globals = default_whitelist
|
145
146
|
end
|
146
|
-
|
147
|
+
_class_0.__parent.__init(self, ...)
|
147
148
|
self.get_root_block = function()
|
148
149
|
return self
|
149
150
|
end
|
@@ -206,7 +207,10 @@ do
|
|
206
207
|
__index = function(cls, name)
|
207
208
|
local val = rawget(_base_0, name)
|
208
209
|
if val == nil then
|
209
|
-
|
210
|
+
local parent = rawget(cls, "__parent")
|
211
|
+
if parent then
|
212
|
+
return parent[name]
|
213
|
+
end
|
210
214
|
else
|
211
215
|
return val
|
212
216
|
end
|
@@ -8,10 +8,10 @@ do
|
|
8
8
|
end
|
9
9
|
local Set
|
10
10
|
Set = require("moonscript.data").Set
|
11
|
-
local ntype,
|
11
|
+
local ntype, value_can_be_statement
|
12
12
|
do
|
13
13
|
local _obj_0 = require("moonscript.types")
|
14
|
-
ntype,
|
14
|
+
ntype, value_can_be_statement = _obj_0.ntype, _obj_0.value_can_be_statement
|
15
15
|
end
|
16
16
|
local statement_compilers = require("moonscript.compile.statement")
|
17
17
|
local value_compilers = require("moonscript.compile.value")
|
@@ -26,6 +26,7 @@ local mtype = util.moon.type
|
|
26
26
|
local indent_char = " "
|
27
27
|
local Line, DelayedLine, Lines, Block, RootBlock
|
28
28
|
do
|
29
|
+
local _class_0
|
29
30
|
local _base_0 = {
|
30
31
|
mark_pos = function(self, pos, line)
|
31
32
|
if line == nil then
|
@@ -127,7 +128,7 @@ do
|
|
127
128
|
end
|
128
129
|
}
|
129
130
|
_base_0.__index = _base_0
|
130
|
-
|
131
|
+
_class_0 = setmetatable({
|
131
132
|
__init = function(self)
|
132
133
|
self.posmap = { }
|
133
134
|
end,
|
@@ -145,6 +146,7 @@ do
|
|
145
146
|
Lines = _class_0
|
146
147
|
end
|
147
148
|
do
|
149
|
+
local _class_0
|
148
150
|
local _base_0 = {
|
149
151
|
pos = nil,
|
150
152
|
append_list = function(self, items, delim)
|
@@ -208,7 +210,7 @@ do
|
|
208
210
|
end
|
209
211
|
}
|
210
212
|
_base_0.__index = _base_0
|
211
|
-
|
213
|
+
_class_0 = setmetatable({
|
212
214
|
__init = function() end,
|
213
215
|
__base = _base_0,
|
214
216
|
__name = "Line"
|
@@ -224,6 +226,7 @@ do
|
|
224
226
|
Line = _class_0
|
225
227
|
end
|
226
228
|
do
|
229
|
+
local _class_0
|
227
230
|
local _base_0 = {
|
228
231
|
prepare = function() end,
|
229
232
|
render = function(self)
|
@@ -232,7 +235,7 @@ do
|
|
232
235
|
end
|
233
236
|
}
|
234
237
|
_base_0.__index = _base_0
|
235
|
-
|
238
|
+
_class_0 = setmetatable({
|
236
239
|
__init = function(self, fn)
|
237
240
|
self.prepare = fn
|
238
241
|
end,
|
@@ -250,6 +253,7 @@ do
|
|
250
253
|
DelayedLine = _class_0
|
251
254
|
end
|
252
255
|
do
|
256
|
+
local _class_0
|
253
257
|
local _base_0 = {
|
254
258
|
header = "do",
|
255
259
|
footer = "end",
|
@@ -525,7 +529,9 @@ do
|
|
525
529
|
if fn then
|
526
530
|
result = fn(self, node, ...)
|
527
531
|
else
|
528
|
-
if
|
532
|
+
if value_can_be_statement(node) then
|
533
|
+
result = self:value(node)
|
534
|
+
else
|
529
535
|
result = self:stm({
|
530
536
|
"assign",
|
531
537
|
{
|
@@ -535,8 +541,6 @@ do
|
|
535
541
|
node
|
536
542
|
}
|
537
543
|
})
|
538
|
-
else
|
539
|
-
result = self:value(node)
|
540
544
|
end
|
541
545
|
end
|
542
546
|
end
|
@@ -573,7 +577,7 @@ do
|
|
573
577
|
end
|
574
578
|
}
|
575
579
|
_base_0.__index = _base_0
|
576
|
-
|
580
|
+
_class_0 = setmetatable({
|
577
581
|
__init = function(self, parent, header, footer)
|
578
582
|
self.parent, self.header, self.footer = parent, header, footer
|
579
583
|
self._lines = Lines()
|
@@ -613,6 +617,7 @@ do
|
|
613
617
|
Block = _class_0
|
614
618
|
end
|
615
619
|
do
|
620
|
+
local _class_0
|
616
621
|
local _parent_0 = Block
|
617
622
|
local _base_0 = {
|
618
623
|
__tostring = function(self)
|
@@ -634,11 +639,11 @@ do
|
|
634
639
|
}
|
635
640
|
_base_0.__index = _base_0
|
636
641
|
setmetatable(_base_0, _parent_0.__base)
|
637
|
-
|
642
|
+
_class_0 = setmetatable({
|
638
643
|
__init = function(self, options)
|
639
644
|
self.options = options
|
640
645
|
self.root = self
|
641
|
-
return
|
646
|
+
return _class_0.__parent.__init(self)
|
642
647
|
end,
|
643
648
|
__base = _base_0,
|
644
649
|
__name = "RootBlock",
|
@@ -647,7 +652,10 @@ do
|
|
647
652
|
__index = function(cls, name)
|
648
653
|
local val = rawget(_base_0, name)
|
649
654
|
if val == nil then
|
650
|
-
|
655
|
+
local parent = rawget(cls, "__parent")
|
656
|
+
if parent then
|
657
|
+
return parent[name]
|
658
|
+
end
|
651
659
|
else
|
652
660
|
return val
|
653
661
|
end
|
@@ -1,6 +1,3 @@
|
|
1
|
-
local util = require("moonscript.util")
|
2
|
-
local reversed, unpack
|
3
|
-
reversed, unpack = util.reversed, util.unpack
|
4
1
|
local ntype
|
5
2
|
ntype = require("moonscript.types").ntype
|
6
3
|
local concat, insert
|
@@ -8,6 +5,8 @@ do
|
|
8
5
|
local _obj_0 = table
|
9
6
|
concat, insert = _obj_0.concat, _obj_0.insert
|
10
7
|
end
|
8
|
+
local unpack
|
9
|
+
unpack = require("moonscript.util").unpack
|
11
10
|
return {
|
12
11
|
raw = function(self, node)
|
13
12
|
return self:add(node[2])
|
@@ -17,6 +17,16 @@ local string_chars = {
|
|
17
17
|
["\n"] = "\\n"
|
18
18
|
}
|
19
19
|
return {
|
20
|
+
scoped = function(self, node)
|
21
|
+
local _, before, value, after
|
22
|
+
_, before, value, after = node[1], node[2], node[3], node[4]
|
23
|
+
_ = before and before:call(self)
|
24
|
+
do
|
25
|
+
local _with_0 = self:value(value)
|
26
|
+
_ = after and after:call(self)
|
27
|
+
return _with_0
|
28
|
+
end
|
29
|
+
end,
|
20
30
|
exp = function(self, node)
|
21
31
|
local _comp
|
22
32
|
_comp = function(i, value)
|
@@ -71,11 +81,13 @@ return {
|
|
71
81
|
chain = function(self, node)
|
72
82
|
local callee = node[2]
|
73
83
|
local callee_type = ntype(callee)
|
74
|
-
|
84
|
+
local item_offset = 3
|
85
|
+
if callee_type == "dot" or callee_type == "colon" or callee_type == "index" then
|
75
86
|
callee = self:get("scope_var")
|
76
|
-
if not callee then
|
87
|
+
if not (callee) then
|
77
88
|
user_error("Short-dot syntax must be called within a with block")
|
78
89
|
end
|
90
|
+
item_offset = 2
|
79
91
|
end
|
80
92
|
if callee_type == "ref" and callee[2] == "super" or callee == "super" then
|
81
93
|
do
|
@@ -95,7 +107,7 @@ return {
|
|
95
107
|
elseif t == "dot" then
|
96
108
|
return ".", tostring(arg)
|
97
109
|
elseif t == "colon" then
|
98
|
-
return ":", arg
|
110
|
+
return ":", tostring(arg)
|
99
111
|
elseif t == "colon_stub" then
|
100
112
|
return user_error("Uncalled colon stub")
|
101
113
|
else
|
@@ -112,7 +124,7 @@ return {
|
|
112
124
|
local actions
|
113
125
|
do
|
114
126
|
local _with_0 = self:line()
|
115
|
-
for _index_0 =
|
127
|
+
for _index_0 = item_offset, #node do
|
116
128
|
local action = node[_index_0]
|
117
129
|
_with_0:append(chain_item(action))
|
118
130
|
end
|
@@ -246,9 +258,7 @@ return {
|
|
246
258
|
else
|
247
259
|
assign = self:line("[", _with_0:value(key), "]")
|
248
260
|
end
|
249
|
-
_with_0:set("current_block", key)
|
250
261
|
local out = self:line(assign, " = ", _with_0:value(value))
|
251
|
-
_with_0:set("current_block", nil)
|
252
262
|
return out
|
253
263
|
else
|
254
264
|
return self:line(_with_0:value(tuple[1]))
|
@@ -14,6 +14,7 @@ Set = function(items)
|
|
14
14
|
end
|
15
15
|
local Stack
|
16
16
|
do
|
17
|
+
local _class_0
|
17
18
|
local _base_0 = {
|
18
19
|
__tostring = function(self)
|
19
20
|
return "<Stack {" .. concat(self, ", ") .. "}>"
|
@@ -34,7 +35,7 @@ do
|
|
34
35
|
end
|
35
36
|
}
|
36
37
|
_base_0.__index = _base_0
|
37
|
-
|
38
|
+
_class_0 = setmetatable({
|
38
39
|
__init = function(self, ...)
|
39
40
|
self:push(...)
|
40
41
|
return nil
|
@@ -27,18 +27,20 @@ Num = Space * (Num / function(v)
|
|
27
27
|
v
|
28
28
|
}
|
29
29
|
end)
|
30
|
-
local Indent, Cut, ensure, extract_line, mark, pos, flatten_or_mark, is_assignable, check_assignable, format_assign, format_single_assign, sym, symx, simple_string, wrap_func_arg,
|
30
|
+
local Indent, Cut, ensure, extract_line, mark, pos, flatten_or_mark, is_assignable, check_assignable, format_assign, format_single_assign, sym, symx, simple_string, wrap_func_arg, join_chain, wrap_decorator, check_lua_string, self_assign
|
31
31
|
do
|
32
32
|
local _obj_0 = require("moonscript.parse.util")
|
33
|
-
Indent, Cut, ensure, extract_line, mark, pos, flatten_or_mark, is_assignable, check_assignable, format_assign, format_single_assign, sym, symx, simple_string, wrap_func_arg,
|
33
|
+
Indent, Cut, ensure, extract_line, mark, pos, flatten_or_mark, is_assignable, check_assignable, format_assign, format_single_assign, sym, symx, simple_string, wrap_func_arg, join_chain, wrap_decorator, check_lua_string, self_assign = _obj_0.Indent, _obj_0.Cut, _obj_0.ensure, _obj_0.extract_line, _obj_0.mark, _obj_0.pos, _obj_0.flatten_or_mark, _obj_0.is_assignable, _obj_0.check_assignable, _obj_0.format_assign, _obj_0.format_single_assign, _obj_0.sym, _obj_0.symx, _obj_0.simple_string, _obj_0.wrap_func_arg, _obj_0.join_chain, _obj_0.wrap_decorator, _obj_0.check_lua_string, _obj_0.self_assign
|
34
34
|
end
|
35
|
-
local build_grammar = wrap_env(debug_grammar, function()
|
35
|
+
local build_grammar = wrap_env(debug_grammar, function(root)
|
36
36
|
local _indent = Stack(0)
|
37
37
|
local _do_stack = Stack(0)
|
38
|
-
local
|
38
|
+
local state = {
|
39
|
+
last_pos = 0
|
40
|
+
}
|
39
41
|
local check_indent
|
40
42
|
check_indent = function(str, pos, indent)
|
41
|
-
last_pos = pos
|
43
|
+
state.last_pos = pos
|
42
44
|
return _indent:top() == indent
|
43
45
|
end
|
44
46
|
local advance_indent
|
@@ -104,7 +106,7 @@ local build_grammar = wrap_env(debug_grammar, function()
|
|
104
106
|
local KeyName = SelfName + Space * _Name / mark("key_literal")
|
105
107
|
local VarArg = Space * P("...") / trim
|
106
108
|
local g = P({
|
107
|
-
File,
|
109
|
+
root or File,
|
108
110
|
File = Shebang ^ -1 * (Block + Ct("")),
|
109
111
|
Block = Ct(Line * (Break ^ 1 * Line) ^ 0),
|
110
112
|
CheckIndent = Cmt(Indent, check_indent),
|
@@ -118,7 +120,7 @@ local build_grammar = wrap_env(debug_grammar, function()
|
|
118
120
|
InBlock = Advance * Block * PopIndent,
|
119
121
|
Local = key("local") * ((op("*") + op("^")) / mark("declare_glob") + Ct(NameList) / mark("declare_with_shadows")),
|
120
122
|
Import = key("import") * Ct(ImportNameList) * SpaceBreak ^ 0 * key("from") * Exp / mark("import"),
|
121
|
-
ImportName = (sym("\\") * Ct(Cc("
|
123
|
+
ImportName = (sym("\\") * Ct(Cc("colon") * Name) + Name),
|
122
124
|
ImportNameList = SpaceBreak ^ 0 * ImportName * ((SpaceBreak ^ 1 + sym(",") * SpaceBreak ^ 0) * ImportName) ^ 0,
|
123
125
|
BreakLoop = Ct(key("break") / trim) + Ct(key("continue") / trim),
|
124
126
|
Return = key("return") * (ExpListLow / mark("explist") + C("")) / mark("return"),
|
@@ -146,13 +148,12 @@ local build_grammar = wrap_env(debug_grammar, function()
|
|
146
148
|
CharOperators = Space * C(S("+-*/%^><")),
|
147
149
|
WordOperators = op("or") + op("and") + op("<=") + op(">=") + op("~=") + op("!=") + op("==") + op(".."),
|
148
150
|
BinaryOperator = (WordOperators + CharOperators) * SpaceBreak ^ 0,
|
149
|
-
Assignable = Cmt(
|
151
|
+
Assignable = Cmt(Chain, check_assignable) + Name + SelfName,
|
150
152
|
Exp = Ct(Value * (BinaryOperator * Value) ^ 0) / flatten_or_mark("exp"),
|
151
153
|
SimpleValue = If + Unless + Switch + With + ClassDecl + ForEach + For + While + Cmt(Do, check_do) + sym("-") * -SomeSpace * Exp / mark("minus") + sym("#") * Exp / mark("length") + key("not") * Exp / mark("not") + TblComprehension + TableLit + Comprehension + FunLit + Num,
|
152
|
-
ChainValue =
|
153
|
-
Value = pos(SimpleValue + Ct(KeyValueList) / mark("table") + ChainValue),
|
154
|
+
ChainValue = (Chain + Callable) * Ct(InvokeArgs ^ -1) / join_chain,
|
155
|
+
Value = pos(SimpleValue + Ct(KeyValueList) / mark("table") + ChainValue + String),
|
154
156
|
SliceValue = SimpleValue + ChainValue,
|
155
|
-
StringChain = String * (Ct((ColonCall + ColonSuffix) * ChainTail ^ -1) * Ct(InvokeArgs ^ -1)) ^ -1 / flatten_string_chain,
|
156
157
|
String = Space * DoubleString + Space * SingleString + LuaString,
|
157
158
|
SingleString = simple_string("'"),
|
158
159
|
DoubleString = simple_string('"', true),
|
@@ -162,14 +163,14 @@ local build_grammar = wrap_env(debug_grammar, function()
|
|
162
163
|
Callable = pos(Name / mark("ref")) + SelfName + VarArg + Parens / mark("parens"),
|
163
164
|
Parens = sym("(") * SpaceBreak ^ 0 * Exp * SpaceBreak ^ 0 * sym(")"),
|
164
165
|
FnArgs = symx("(") * SpaceBreak ^ 0 * Ct(ExpList ^ -1) * SpaceBreak ^ 0 * sym(")") + sym("!") * -P("=") * Ct(""),
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
166
|
+
Chain = (Callable + String + -S(".\\")) * ChainItems / mark("chain") + Space * (DotChainItem * ChainItems ^ -1 + ColonChain) / mark("chain"),
|
167
|
+
ChainItems = ChainItem ^ 1 * ColonChain ^ -1 + ColonChain,
|
168
|
+
ChainItem = Invoke + DotChainItem + Slice + symx("[") * Exp / mark("index") * sym("]"),
|
169
|
+
DotChainItem = symx(".") * _Name / mark("dot"),
|
170
|
+
ColonChainItem = symx("\\") * _Name / mark("colon"),
|
171
|
+
ColonChain = ColonChainItem * (Invoke * ChainItems ^ -1) ^ -1,
|
169
172
|
Slice = symx("[") * (SliceValue + Cc(1)) * sym(",") * (SliceValue + Cc("")) * (sym(",") * SliceValue) ^ -1 * sym("]") / mark("slice"),
|
170
|
-
|
171
|
-
ColonSuffix = symx("\\") * _Name / mark("colon_stub"),
|
172
|
-
Invoke = FnArgs / mark("call") + SingleString / wrap_func_arg + DoubleString / wrap_func_arg,
|
173
|
+
Invoke = FnArgs / mark("call") + SingleString / wrap_func_arg + DoubleString / wrap_func_arg + #P("[") * LuaString / wrap_func_arg,
|
173
174
|
TableValue = KeyValue + Ct(Exp),
|
174
175
|
TableLit = sym("{") * Ct(TableValueList ^ -1 * sym(",") ^ -1 * (SpaceBreak * TableLitLine * (sym(",") ^ -1 * SpaceBreak * TableLitLine) ^ 0 * sym(",") ^ -1) ^ -1) * White * sym("}") / mark("table"),
|
175
176
|
TableValueList = TableValue * (sym(",") * TableValue) ^ 0,
|
@@ -196,6 +197,11 @@ local build_grammar = wrap_env(debug_grammar, function()
|
|
196
197
|
ArgBlock = ArgLine * (sym(",") * SpaceBreak * ArgLine) ^ 0 * PopIndent,
|
197
198
|
ArgLine = CheckIndent * ExpList
|
198
199
|
})
|
200
|
+
return g, state
|
201
|
+
end)
|
202
|
+
local file_parser
|
203
|
+
file_parser = function()
|
204
|
+
local g, state = build_grammar()
|
199
205
|
local file_grammar = White * g * White * -1
|
200
206
|
return {
|
201
207
|
match = function(self, str)
|
@@ -210,7 +216,7 @@ local build_grammar = wrap_env(debug_grammar, function()
|
|
210
216
|
end
|
211
217
|
if not (tree) then
|
212
218
|
local msg
|
213
|
-
local err_pos = last_pos
|
219
|
+
local err_pos = state.last_pos
|
214
220
|
if err then
|
215
221
|
local node
|
216
222
|
node, msg = unpack(err)
|
@@ -226,10 +232,11 @@ local build_grammar = wrap_env(debug_grammar, function()
|
|
226
232
|
return tree
|
227
233
|
end
|
228
234
|
}
|
229
|
-
end
|
235
|
+
end
|
230
236
|
return {
|
231
237
|
extract_line = extract_line,
|
238
|
+
build_grammar = build_grammar,
|
232
239
|
string = function(str)
|
233
|
-
return
|
240
|
+
return file_parser():match(str)
|
234
241
|
end
|
235
242
|
}
|
@@ -34,8 +34,9 @@ wrap_env = function(debug, fn)
|
|
34
34
|
end
|
35
35
|
wrap_name = function(name)
|
36
36
|
local v = V(name)
|
37
|
-
v = Cmt("", function()
|
38
|
-
|
37
|
+
v = Cmt("", function(str, pos)
|
38
|
+
local rest = str:sub(pos, -1):match("^([^\n]*)")
|
39
|
+
iprint("* " .. tostring(name) .. " (" .. tostring(rest) .. ")")
|
39
40
|
indent = indent + 1
|
40
41
|
return true
|
41
42
|
end) * Cmt(v, function(str, pos, ...)
|