rufus-lua-moon 0.2.2 → 0.2.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e343762d37d17e9fc502fa6221ed3e376cb1a1a7
4
- data.tar.gz: 3d1b775db07fa27e42fbb475ba48bd06421b8822
3
+ metadata.gz: 8f13af8210eb004073fdf11246d1356b14ba446d
4
+ data.tar.gz: 02f5ad9b840120561df6e3d32c1a3ca3cb260cfa
5
5
  SHA512:
6
- metadata.gz: 13b413ebc32760c0d5bc13ea70450957554491bb46d34fea38aea574ab2602bd6f27aedfce728c68a8fcad10410b36dd2a854163e8e793ebb06754e15771cafe
7
- data.tar.gz: 9534f6e6fea762307abf43fb83029e7740444e013a295f8e9829f486db66cfc8f4e9f22e0415e815274fb690dcfd9a274a136a7aeecb124a32eb3ad76b9b17b5
6
+ metadata.gz: 36b11319d336fdd59eca5115a0b8dac529202e8fd6429e180ceda591de2ae0d7fecf0f92222a0906367b9f5467dcb161c99b740ec7a1f22c68745750987dcc75
7
+ data.tar.gz: 6cc4892809f47bd2c61ce32fc7c29159bd5af661da191c7fcf61ec046c551c6ed659eb2b7d03d5b4716154cfe5e32aef40caa66f80b3ec8e3179c3f95af83d25
@@ -129,7 +129,7 @@ fold = (items, fn)->
129
129
  if len > 1
130
130
  accum = fn items[1], items[2]
131
131
  for i=3,len
132
- accum = fn acum, items[i]
132
+ accum = fn accum, items[i]
133
133
  accum
134
134
  else
135
135
  items[1]
@@ -1,16 +1,13 @@
1
- module("moonscript.compile", package.seeall)
2
1
  local util = require("moonscript.util")
3
- require("moonscript.compile.format")
4
- local dump = require("moonscript.dump")
5
- local transform = require("moonscript.transform")
6
- local reversed = util.reversed
2
+ local data = require("moonscript.data")
3
+ local reversed, unpack = util.reversed, util.unpack
7
4
  local ntype
8
5
  do
9
6
  local _table_0 = require("moonscript.types")
10
7
  ntype = _table_0.ntype
11
8
  end
12
9
  local concat, insert = table.concat, table.insert
13
- line_compile = {
10
+ local statement_compilers = {
14
11
  raw = function(self, node)
15
12
  return self:add(node[2])
16
13
  end,
@@ -29,12 +26,12 @@ line_compile = {
29
26
  local _with_0 = self:line("local ")
30
27
  _with_0:append_list((function()
31
28
  local _accum_0 = { }
32
- local _len_0 = 0
29
+ local _len_0 = 1
33
30
  local _list_0 = undeclared
34
31
  for _index_0 = 1, #_list_0 do
35
32
  local name = _list_0[_index_0]
36
- _len_0 = _len_0 + 1
37
33
  _accum_0[_len_0] = self:name(name)
34
+ _len_0 = _len_0 + 1
38
35
  end
39
36
  return _accum_0
40
37
  end)(), ", ")
@@ -49,12 +46,12 @@ line_compile = {
49
46
  local _with_0 = self:line("local ")
50
47
  _with_0:append_list((function()
51
48
  local _accum_0 = { }
52
- local _len_0 = 0
49
+ local _len_0 = 1
53
50
  local _list_0 = names
54
51
  for _index_0 = 1, #_list_0 do
55
52
  local name = _list_0[_index_0]
56
- _len_0 = _len_0 + 1
57
53
  _accum_0[_len_0] = self:name(name)
54
+ _len_0 = _len_0 + 1
58
55
  end
59
56
  return _accum_0
60
57
  end)(), ", ")
@@ -83,12 +80,12 @@ line_compile = {
83
80
  end
84
81
  _with_0:append_list((function()
85
82
  local _accum_0 = { }
86
- local _len_0 = 0
83
+ local _len_0 = 1
87
84
  local _list_0 = names
88
85
  for _index_0 = 1, #_list_0 do
89
86
  local name = _list_0[_index_0]
90
- _len_0 = _len_0 + 1
91
87
  _accum_0[_len_0] = self:value(name)
88
+ _len_0 = _len_0 + 1
92
89
  end
93
90
  return _accum_0
94
91
  end)(), ", ")
@@ -96,12 +93,12 @@ line_compile = {
96
93
  _with_0:append(" = ")
97
94
  _with_0:append_list((function()
98
95
  local _accum_0 = { }
99
- local _len_0 = 0
96
+ local _len_0 = 1
100
97
  local _list_0 = values
101
98
  for _index_0 = 1, #_list_0 do
102
99
  local v = _list_0[_index_0]
103
- _len_0 = _len_0 + 1
104
100
  _accum_0[_len_0] = self:value(v)
101
+ _len_0 = _len_0 + 1
105
102
  end
106
103
  return _accum_0
107
104
  end)(), ", ")
@@ -186,34 +183,34 @@ line_compile = {
186
183
  do
187
184
  local _with_0 = self:line()
188
185
  _with_0:append("for ")
189
- _with_0:append_list((function()
186
+ loop = _with_0
187
+ end
188
+ do
189
+ local _with_0 = self:block(loop)
190
+ loop:append_list((function()
190
191
  local _accum_0 = { }
191
- local _len_0 = 0
192
+ local _len_0 = 1
192
193
  local _list_0 = names
193
194
  for _index_0 = 1, #_list_0 do
194
195
  local name = _list_0[_index_0]
196
+ _accum_0[_len_0] = _with_0:name(name, false)
195
197
  _len_0 = _len_0 + 1
196
- _accum_0[_len_0] = self:name(name)
197
198
  end
198
199
  return _accum_0
199
200
  end)(), ", ")
200
- _with_0:append(" in ")
201
- _with_0:append_list((function()
201
+ loop:append(" in ")
202
+ loop:append_list((function()
202
203
  local _accum_0 = { }
203
- local _len_0 = 0
204
+ local _len_0 = 1
204
205
  local _list_0 = exps
205
206
  for _index_0 = 1, #_list_0 do
206
207
  local exp = _list_0[_index_0]
207
- _len_0 = _len_0 + 1
208
208
  _accum_0[_len_0] = self:value(exp)
209
+ _len_0 = _len_0 + 1
209
210
  end
210
211
  return _accum_0
211
212
  end)(), ",")
212
- _with_0:append(" do")
213
- loop = _with_0
214
- end
215
- do
216
- local _with_0 = self:block(loop)
213
+ loop:append(" do")
217
214
  _with_0:declare(names)
218
215
  _with_0:stms(block)
219
216
  return _with_0
@@ -247,3 +244,6 @@ line_compile = {
247
244
  end
248
245
  end
249
246
  }
247
+ return {
248
+ statement_compilers = statement_compilers
249
+ }
@@ -1,15 +1,19 @@
1
- module("moonscript.compile", package.seeall)
2
1
  local util = require("moonscript.util")
3
2
  local data = require("moonscript.data")
4
- require("moonscript.compile.format")
5
3
  local ntype
6
4
  do
7
5
  local _table_0 = require("moonscript.types")
8
6
  ntype = _table_0.ntype
9
7
  end
8
+ local user_error
9
+ do
10
+ local _table_0 = require("moonscript.errors")
11
+ user_error = _table_0.user_error
12
+ end
10
13
  local concat, insert = table.concat, table.insert
14
+ local unpack = util.unpack
11
15
  local table_delim = ","
12
- value_compile = {
16
+ local value_compilers = {
13
17
  exp = function(self, node)
14
18
  local _comp
15
19
  _comp = function(i, value)
@@ -22,11 +26,11 @@ value_compile = {
22
26
  local _with_0 = self:line()
23
27
  _with_0:append_list((function()
24
28
  local _accum_0 = { }
25
- local _len_0 = 0
29
+ local _len_0 = 1
26
30
  for i, v in ipairs(node) do
27
31
  if i > 1 then
28
- _len_0 = _len_0 + 1
29
32
  _accum_0[_len_0] = _comp(i, v)
33
+ _len_0 = _len_0 + 1
30
34
  end
31
35
  end
32
36
  return _accum_0
@@ -39,12 +43,12 @@ value_compile = {
39
43
  local _with_0 = self:line()
40
44
  _with_0:append_list((function()
41
45
  local _accum_0 = { }
42
- local _len_0 = 0
46
+ local _len_0 = 1
43
47
  local _list_0 = node
44
48
  for _index_0 = 2, #_list_0 do
45
49
  local v = _list_0[_index_0]
46
- _len_0 = _len_0 + 1
47
50
  _accum_0[_len_0] = self:value(v)
51
+ _len_0 = _len_0 + 1
48
52
  end
49
53
  return _accum_0
50
54
  end)(), ", ")
@@ -114,7 +118,7 @@ value_compile = {
114
118
  local self_args = { }
115
119
  local arg_names = (function()
116
120
  local _accum_0 = { }
117
- local _len_0 = 0
121
+ local _len_0 = 1
118
122
  local _list_0 = args
119
123
  for _index_0 = 1, #_list_0 do
120
124
  local arg = _list_0[_index_0]
@@ -131,10 +135,8 @@ value_compile = {
131
135
  insert(default_args, arg)
132
136
  end
133
137
  local _value_0 = name
134
- if _value_0 ~= nil then
135
- _len_0 = _len_0 + 1
136
- _accum_0[_len_0] = _value_0
137
- end
138
+ _accum_0[_len_0] = _value_0
139
+ _len_0 = _len_0 + 1
138
140
  end
139
141
  return _accum_0
140
142
  end)()
@@ -181,12 +183,12 @@ value_compile = {
181
183
  end
182
184
  local self_arg_values = (function()
183
185
  local _accum_0 = { }
184
- local _len_0 = 0
186
+ local _len_0 = 1
185
187
  local _list_2 = self_args
186
188
  for _index_0 = 1, #_list_2 do
187
189
  local arg = _list_2[_index_0]
188
- _len_0 = _len_0 + 1
189
190
  _accum_0[_len_0] = arg[2]
191
+ _len_0 = _len_0 + 1
190
192
  end
191
193
  return _accum_0
192
194
  end)()
@@ -201,15 +203,12 @@ value_compile = {
201
203
  if #args > #arg_names then
202
204
  arg_names = (function()
203
205
  local _accum_0 = { }
204
- local _len_0 = 0
206
+ local _len_0 = 1
205
207
  local _list_2 = args
206
208
  for _index_0 = 1, #_list_2 do
207
209
  local arg = _list_2[_index_0]
208
- local _value_0 = arg[1]
209
- if _value_0 ~= nil then
210
- _len_0 = _len_0 + 1
211
- _accum_0[_len_0] = _value_0
212
- end
210
+ _accum_0[_len_0] = arg[1]
211
+ _len_0 = _len_0 + 1
213
212
  end
214
213
  return _accum_0
215
214
  end)()
@@ -263,8 +262,8 @@ value_compile = {
263
262
  minus = function(self, node)
264
263
  return self:line("-", self:value(node[2]))
265
264
  end,
266
- temp_name = function(self, node)
267
- return node:get_name(self)
265
+ temp_name = function(self, node, ...)
266
+ return node:get_name(self, ...)
268
267
  end,
269
268
  number = function(self, node)
270
269
  return node[2]
@@ -298,3 +297,6 @@ value_compile = {
298
297
  return tostring(value)
299
298
  end
300
299
  }
300
+ return {
301
+ value_compilers = value_compilers
302
+ }
@@ -1,25 +1,36 @@
1
- module("moonscript.compile", package.seeall)
2
1
  local util = require("moonscript.util")
3
2
  local dump = require("moonscript.dump")
4
- require("moonscript.compile.format")
5
- require("moonscript.compile.statement")
6
- require("moonscript.compile.value")
7
3
  local transform = require("moonscript.transform")
8
- local NameProxy, LocalName = transform.NameProxy, transform.LocalName
4
+ local NameProxy, LocalName
5
+ do
6
+ local _table_0 = require("moonscript.transform.names")
7
+ NameProxy, LocalName = _table_0.NameProxy, _table_0.LocalName
8
+ end
9
9
  local Set
10
10
  do
11
11
  local _table_0 = require("moonscript.data")
12
12
  Set = _table_0.Set
13
13
  end
14
- local ntype
14
+ local ntype, has_value
15
15
  do
16
16
  local _table_0 = require("moonscript.types")
17
- ntype = _table_0.ntype
17
+ ntype, has_value = _table_0.ntype, _table_0.has_value
18
+ end
19
+ local statement_compilers
20
+ do
21
+ local _table_0 = require("moonscript.compile.statement")
22
+ statement_compilers = _table_0.statement_compilers
23
+ end
24
+ local value_compilers
25
+ do
26
+ local _table_0 = require("moonscript.compile.value")
27
+ value_compilers = _table_0.value_compilers
18
28
  end
19
29
  local concat, insert = table.concat, table.insert
20
- local pos_to_line, get_closest_line, trim = util.pos_to_line, util.get_closest_line, util.trim
30
+ local pos_to_line, get_closest_line, trim, unpack = util.pos_to_line, util.get_closest_line, util.trim, util.unpack
21
31
  local mtype = util.moon.type
22
- local Line, Lines
32
+ local indent_char = " "
33
+ local Line, DelayedLine, Lines, Block, RootBlock
23
34
  do
24
35
  local _parent_0 = nil
25
36
  local _base_0 = {
@@ -51,13 +62,15 @@ do
51
62
  end
52
63
  local posmap = self.posmap
53
64
  for i, l in ipairs(self) do
54
- local _exp_0 = type(l)
55
- if "table" == _exp_0 then
56
- local _
57
- _, line_no = l:flatten_posmap(line_no, out)
58
- elseif "string" == _exp_0 then
65
+ local _exp_0 = mtype(l)
66
+ if "string" == _exp_0 or DelayedLine == _exp_0 then
59
67
  line_no = line_no + 1
60
68
  out[line_no] = posmap[i]
69
+ elseif Lines == _exp_0 then
70
+ local _
71
+ _, line_no = l:flatten_posmap(line_no, out)
72
+ else
73
+ error("Unknown item in Lines: " .. tostring(l))
61
74
  end
62
75
  end
63
76
  return out, line_no
@@ -71,7 +84,12 @@ do
71
84
  end
72
85
  for i = 1, #self do
73
86
  local l = self[i]
74
- local _exp_0 = type(l)
87
+ local t = mtype(l)
88
+ if t == DelayedLine then
89
+ l = l:render()
90
+ t = "string"
91
+ end
92
+ local _exp_0 = t
75
93
  if "string" == _exp_0 then
76
94
  if indent then
77
95
  insert(buffer, indent)
@@ -85,8 +103,10 @@ do
85
103
  end
86
104
  insert(buffer, "\n")
87
105
  local last = l
88
- elseif "table" == _exp_0 then
106
+ elseif Lines == _exp_0 then
89
107
  l:flatten(indent and indent .. indent_char or indent_char, buffer)
108
+ else
109
+ error("Unknown item in Lines: " .. tostring(l))
90
110
  end
91
111
  end
92
112
  return buffer
@@ -97,12 +117,12 @@ do
97
117
  if "table" == type(t) then
98
118
  return (function()
99
119
  local _accum_0 = { }
100
- local _len_0 = 0
120
+ local _len_0 = 1
101
121
  local _list_0 = t
102
122
  for _index_0 = 1, #_list_0 do
103
123
  local v = _list_0[_index_0]
104
- _len_0 = _len_0 + 1
105
124
  _accum_0[_len_0] = strip(v)
125
+ _len_0 = _len_0 + 1
106
126
  end
107
127
  return _accum_0
108
128
  end)()
@@ -156,7 +176,7 @@ do
156
176
  end
157
177
  local _list_0 = item
158
178
  for _index_0 = 1, #_list_0 do
159
- value = _list_0[_index_0]
179
+ local value = _list_0[_index_0]
160
180
  self:_append_single(value)
161
181
  end
162
182
  else
@@ -253,6 +273,47 @@ do
253
273
  end
254
274
  Line = _class_0
255
275
  end
276
+ do
277
+ local _parent_0 = nil
278
+ local _base_0 = {
279
+ prepare = function() end,
280
+ render = function(self)
281
+ self:prepare()
282
+ return concat(self)
283
+ end
284
+ }
285
+ _base_0.__index = _base_0
286
+ if _parent_0 then
287
+ setmetatable(_base_0, _parent_0.__base)
288
+ end
289
+ local _class_0 = setmetatable({
290
+ __init = function(self, fn)
291
+ self.prepare = fn
292
+ end,
293
+ __base = _base_0,
294
+ __name = "DelayedLine",
295
+ __parent = _parent_0
296
+ }, {
297
+ __index = function(cls, name)
298
+ local val = rawget(_base_0, name)
299
+ if val == nil and _parent_0 then
300
+ return _parent_0[name]
301
+ else
302
+ return val
303
+ end
304
+ end,
305
+ __call = function(cls, ...)
306
+ local _self_0 = setmetatable({}, _base_0)
307
+ cls.__init(_self_0, ...)
308
+ return _self_0
309
+ end
310
+ })
311
+ _base_0.__class = _class_0
312
+ if _parent_0 and _parent_0.__inherited then
313
+ _parent_0.__inherited(_parent_0, _class_0)
314
+ end
315
+ DelayedLine = _class_0
316
+ end
256
317
  do
257
318
  local _parent_0 = nil
258
319
  local _base_0 = {
@@ -275,6 +336,9 @@ do
275
336
  get = function(self, name)
276
337
  return self._state[name]
277
338
  end,
339
+ get_current = function(self, name)
340
+ return rawget(self._state, name)
341
+ end,
278
342
  listen = function(self, name, fn)
279
343
  self._listeners[name] = fn
280
344
  end,
@@ -292,44 +356,58 @@ do
292
356
  declare = function(self, names)
293
357
  local undeclared = (function()
294
358
  local _accum_0 = { }
295
- local _len_0 = 0
359
+ local _len_0 = 1
296
360
  local _list_0 = names
297
361
  for _index_0 = 1, #_list_0 do
298
- local name = _list_0[_index_0]
299
- local is_local = false
300
- local real_name
301
- local _exp_0 = mtype(name)
302
- if LocalName == _exp_0 then
303
- is_local = true
304
- real_name = name:get_name(self)
305
- elseif NameProxy == _exp_0 then
306
- real_name = name:get_name(self)
307
- elseif "string" == _exp_0 then
308
- real_name = name
309
- end
310
- local _value_0
311
- if is_local or real_name and not self:has_name(real_name) then
312
- _value_0 = real_name
313
- end
314
- if _value_0 ~= nil then
315
- _len_0 = _len_0 + 1
362
+ local _continue_0 = false
363
+ repeat
364
+ local name = _list_0[_index_0]
365
+ local is_local = false
366
+ local real_name
367
+ local _exp_0 = mtype(name)
368
+ if LocalName == _exp_0 then
369
+ is_local = true
370
+ real_name = name:get_name(self)
371
+ elseif NameProxy == _exp_0 then
372
+ real_name = name:get_name(self)
373
+ elseif "string" == _exp_0 then
374
+ real_name = name
375
+ end
376
+ if not (is_local or real_name and not self:has_name(real_name, true)) then
377
+ _continue_0 = true
378
+ break
379
+ end
380
+ self:put_name(real_name)
381
+ if self:name_exported(real_name) then
382
+ _continue_0 = true
383
+ break
384
+ end
385
+ local _value_0 = real_name
316
386
  _accum_0[_len_0] = _value_0
387
+ _len_0 = _len_0 + 1
388
+ _continue_0 = true
389
+ until true
390
+ if not _continue_0 then
391
+ break
317
392
  end
318
393
  end
319
394
  return _accum_0
320
395
  end)()
321
- local _list_0 = undeclared
322
- for _index_0 = 1, #_list_0 do
323
- local name = _list_0[_index_0]
324
- self:put_name(name)
325
- end
326
396
  return undeclared
327
397
  end,
328
398
  whitelist_names = function(self, names)
329
399
  self._name_whitelist = Set(names)
330
400
  end,
401
+ name_exported = function(self, name)
402
+ if self.export_all then
403
+ return true
404
+ end
405
+ if self.export_proper and name:match("^%u") then
406
+ return true
407
+ end
408
+ end,
331
409
  put_name = function(self, name, ...)
332
- value = ...
410
+ local value = ...
333
411
  if select("#", ...) == 0 then
334
412
  value = true
335
413
  end
@@ -339,13 +417,8 @@ do
339
417
  self._names[name] = value
340
418
  end,
341
419
  has_name = function(self, name, skip_exports)
342
- if not skip_exports then
343
- if self.export_all then
344
- return true
345
- end
346
- if self.export_proper and name:match("^[A-Z]") then
347
- return true
348
- end
420
+ if not skip_exports and self:name_exported(name) then
421
+ return true
349
422
  end
350
423
  local yes = self._names[name]
351
424
  if yes == nil and self.parent then
@@ -419,14 +492,14 @@ do
419
492
  end
420
493
  end,
421
494
  is_stm = function(self, node)
422
- return line_compile[ntype(node)] ~= nil
495
+ return statement_compilers[ntype(node)] ~= nil
423
496
  end,
424
497
  is_value = function(self, node)
425
498
  local t = ntype(node)
426
- return value_compile[t] ~= nil or t == "value"
499
+ return value_compilers[t] ~= nil or t == "value"
427
500
  end,
428
- name = function(self, node)
429
- return self:value(node)
501
+ name = function(self, node, ...)
502
+ return self:value(node, ...)
430
503
  end,
431
504
  value = function(self, node, ...)
432
505
  node = self.transform.value(node)
@@ -436,7 +509,7 @@ do
436
509
  else
437
510
  action = node[1]
438
511
  end
439
- local fn = value_compile[action]
512
+ local fn = value_compilers[action]
440
513
  if not fn then
441
514
  error("Failed to compile value: " .. dump.value(node))
442
515
  end
@@ -459,12 +532,12 @@ do
459
532
  local _with_0 = Line()
460
533
  _with_0:append_list((function()
461
534
  local _accum_0 = { }
462
- local _len_0 = 0
535
+ local _len_0 = 1
463
536
  local _list_0 = values
464
537
  for _index_0 = 1, #_list_0 do
465
538
  local v = _list_0[_index_0]
466
- _len_0 = _len_0 + 1
467
539
  _accum_0[_len_0] = self:value(v)
540
+ _len_0 = _len_0 + 1
468
541
  end
469
542
  return _accum_0
470
543
  end)(), delim)
@@ -478,7 +551,7 @@ do
478
551
  node = self.transform.statement(node)
479
552
  local result
480
553
  do
481
- local fn = line_compile[ntype(node)]
554
+ local fn = statement_compilers[ntype(node)]
482
555
  if fn then
483
556
  result = fn(self, node, ...)
484
557
  else
@@ -509,11 +582,18 @@ do
509
582
  if ret then
510
583
  error("deprecated stms call, use transformer")
511
584
  end
512
- local _list_0 = stms
513
- for _index_0 = 1, #_list_0 do
514
- local stm = _list_0[_index_0]
515
- self:stm(stm)
585
+ local current_stms, current_stm_i
586
+ do
587
+ local _obj_0 = self
588
+ current_stms, current_stm_i = _obj_0.current_stms, _obj_0.current_stm_i
516
589
  end
590
+ self.current_stms = stms
591
+ for i = 1, #stms do
592
+ self.current_stm_i = i
593
+ self:stm(stms[i])
594
+ end
595
+ self.current_stms = current_stms
596
+ self.current_stm_i = current_stm_i
517
597
  return nil
518
598
  end,
519
599
  splice = function(self, fn)
@@ -590,11 +670,7 @@ do
590
670
  if not (self.options.implicitly_return_root == false) then
591
671
  stms = transform.Statement.transformers.root_stms(self, stms)
592
672
  end
593
- local _list_0 = stms
594
- for _index_0 = 1, #_list_0 do
595
- local s = _list_0[_index_0]
596
- self:stm(s)
597
- end
673
+ return self:stms(stms)
598
674
  end,
599
675
  render = function(self)
600
676
  local buffer = self._lines:flatten()
@@ -638,6 +714,7 @@ do
638
714
  end
639
715
  RootBlock = _class_0
640
716
  end
717
+ local format_error
641
718
  format_error = function(msg, pos, file_str)
642
719
  local line = pos_to_line(file_str, pos)
643
720
  local line_str
@@ -648,6 +725,7 @@ format_error = function(msg, pos, file_str)
648
725
  (" [%d] >> %s"):format(line, trim(line_str))
649
726
  }, "\n")
650
727
  end
728
+ local value
651
729
  value = function(value)
652
730
  local out = nil
653
731
  do
@@ -657,6 +735,7 @@ value = function(value)
657
735
  end
658
736
  return out
659
737
  end
738
+ local tree
660
739
  tree = function(tree, options)
661
740
  if options == nil then
662
741
  options = { }
@@ -689,3 +768,21 @@ tree = function(tree, options)
689
768
  return lua_code, posmap
690
769
  end
691
770
  end
771
+ do
772
+ local _with_0 = require("moonscript.data")
773
+ local data = _with_0
774
+ for name, cls in pairs({
775
+ Line = Line,
776
+ Lines = Lines,
777
+ DelayedLine = DelayedLine
778
+ }) do
779
+ data[name] = cls
780
+ end
781
+ end
782
+ return {
783
+ tree = tree,
784
+ value = value,
785
+ format_error = format_error,
786
+ Block = Block,
787
+ RootBlock = RootBlock
788
+ }