Skip to content

Commit fc741a3

Browse files
committed
start building ast spec
1 parent 0998331 commit fc741a3

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

spec/compiler_spec.moon

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import Block from require "moonscript.compile"
2+
import ref from require "spec.factory"
3+
4+
-- no transform step
5+
class SimpleBlock extends Block
6+
new: (...) =>
7+
super ...
8+
@transform = {
9+
value: (...) -> ...
10+
statement: (...) -> ...
11+
}
12+
13+
value = require "moonscript.compile.value"
14+
15+
describe "moonscript.compile", ->
16+
compile_node = (node) ->
17+
block = SimpleBlock!
18+
block\add block\value node
19+
lines = block._lines\flatten!
20+
lines[#lines] = nil if lines[#lines] == "\n"
21+
table.concat lines
22+
23+
-- compiling lua ast
24+
describe "value", ->
25+
for {name, node, expected} in *{
26+
{
27+
"ref"
28+
-> {"ref", "hello_world"}
29+
"hello_world"
30+
}
31+
}
32+
it "compiles #{name}", ->
33+
node = node!
34+
assert.same expected, compile_node(node)
35+
36+

spec/factory.moon

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
2+
-- ast factory
3+
4+
ref = (name="val") ->
5+
{"ref", name}
6+
7+
{
8+
:var
9+
}

0 commit comments

Comments
 (0)