mirror of
https://github.com/leafo/moonscript.git
synced 2025-01-09 00:04:22 +00:00
more ast
This commit is contained in:
parent
e75fceff68
commit
b367f7ed51
@ -30,12 +30,30 @@ describe "moonscript.compile", ->
|
||||
"hello_world"
|
||||
}
|
||||
|
||||
{
|
||||
"number"
|
||||
-> {"number", "14"}
|
||||
"14"
|
||||
}
|
||||
|
||||
{
|
||||
"minus"
|
||||
-> {"minus", ref!}
|
||||
"-val"
|
||||
}
|
||||
|
||||
{
|
||||
"explist"
|
||||
-> { "explist", ref("a"), ref("b"), ref("c")}
|
||||
"a, b, c"
|
||||
}
|
||||
|
||||
{
|
||||
"exp"
|
||||
-> {"exp", ref("a"), "+", ref("b"), "!=", ref("c")}
|
||||
"a + b ~= c"
|
||||
}
|
||||
|
||||
{
|
||||
"parens"
|
||||
-> { "parens", ref! }
|
||||
@ -61,6 +79,48 @@ describe "moonscript.compile", ->
|
||||
"[==[Hello's world]==]"
|
||||
}
|
||||
|
||||
{
|
||||
"self"
|
||||
-> {"self", ref!}
|
||||
"self.val"
|
||||
}
|
||||
|
||||
{
|
||||
"self_class"
|
||||
-> {"self_class", ref!}
|
||||
"self.__class.val"
|
||||
}
|
||||
|
||||
{
|
||||
"self_class_colon"
|
||||
-> {"self_class_colon", ref!}
|
||||
"self.__class:val"
|
||||
}
|
||||
|
||||
{
|
||||
"not"
|
||||
-> {"not", ref!}
|
||||
"not val"
|
||||
}
|
||||
|
||||
{
|
||||
"length"
|
||||
-> {"length", ref!}
|
||||
"#val"
|
||||
}
|
||||
|
||||
{
|
||||
"length"
|
||||
-> {"length", ref!}
|
||||
"#val"
|
||||
}
|
||||
|
||||
{
|
||||
"bitnot"
|
||||
-> {"bitnot", ref!}
|
||||
"~val"
|
||||
}
|
||||
|
||||
{
|
||||
"chain (single)"
|
||||
-> {"chain", ref!}
|
||||
@ -99,6 +159,22 @@ describe "moonscript.compile", ->
|
||||
'val.one["dogzone"]:two(arg)'
|
||||
}
|
||||
|
||||
{
|
||||
"chain (self receiver)"
|
||||
-> {
|
||||
"chain"
|
||||
{"self", ref!}
|
||||
{"call", {ref "arg"} }
|
||||
}
|
||||
"self:val(arg)"
|
||||
}
|
||||
|
||||
{
|
||||
"fndef (empty)"
|
||||
-> {"fndef", {}, {}, "slim", {}}
|
||||
"function() end"
|
||||
}
|
||||
|
||||
}
|
||||
it "compiles #{name}", ->
|
||||
node = node!
|
||||
|
Loading…
Reference in New Issue
Block a user