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"
|
"hello_world"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
"number"
|
||||||
|
-> {"number", "14"}
|
||||||
|
"14"
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
"minus"
|
||||||
|
-> {"minus", ref!}
|
||||||
|
"-val"
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
"explist"
|
"explist"
|
||||||
-> { "explist", ref("a"), ref("b"), ref("c")}
|
-> { "explist", ref("a"), ref("b"), ref("c")}
|
||||||
"a, b, c"
|
"a, b, c"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
"exp"
|
||||||
|
-> {"exp", ref("a"), "+", ref("b"), "!=", ref("c")}
|
||||||
|
"a + b ~= c"
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
"parens"
|
"parens"
|
||||||
-> { "parens", ref! }
|
-> { "parens", ref! }
|
||||||
@ -61,6 +79,48 @@ describe "moonscript.compile", ->
|
|||||||
"[==[Hello's world]==]"
|
"[==[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 (single)"
|
||||||
-> {"chain", ref!}
|
-> {"chain", ref!}
|
||||||
@ -99,6 +159,22 @@ describe "moonscript.compile", ->
|
|||||||
'val.one["dogzone"]:two(arg)'
|
'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}", ->
|
it "compiles #{name}", ->
|
||||||
node = node!
|
node = node!
|
||||||
|
Loading…
Reference in New Issue
Block a user