moonscript/spec/inputs/syntax.moon
2022-11-04 13:23:54 -07:00

276 lines
3.1 KiB
Plaintext

#!/this/is/ignored
a = 1 + 2* 3 / 6
a, bunch, go, here = another, world
func arg1, arg2, another, arg3
here, we = () ->, yeah
the, different = () -> approach; yeah
dad()
dad(lord)
hello(one,two)()
(5 + 5)(world)
fun(a)(b)
fun(a) b
fun(a) b, bad hello
hello world what are you doing here
what(the)[3243] world, yeck heck
hairy[hands][are](gross) okay okay[world]
(get[something] + 5)[years]
i,x = 200, 300
yeah = (1 + 5) * 3
yeah = ((1+5)*3)/2
yeah = ((1+5)*3)/2 + i % 100
whoa = (1+2) * (3+4) * (4+5)
->
if something
return 1,2,4
print "hello"
->
if hello
"heloo", "world"
else
no, way
-> 1,2,34
return 5 + () -> 4 + 2
return 5 + (() -> 4) + 2
print 5 + () ->
34
good nads
something 'else', "ya"
something'else'
something"else"
something[[hey]] * 2
something[======[hey]======] * 2
something'else', 2
something"else", 2
something[[else]], 2
something 'else', 2
something "else", 2
something [[else]], 2
here(we)"go"[12123]
-- this runs
something =
test: 12323
what: -> print "hello world"
print something.test
frick = hello: "world"
argon =
num: 100
world: (self) ->
print self.num
return {
something: -> print "hi from something"
}
somethin: (self, str) ->
print "string is", str
return world: (a,b) -> print "sum", a + b
something.what()
argon\world().something()
argon\somethin"200".world(1,2)
x = -434
x = -hello world one two
hi = -"herfef"
x = -[x for x in x]
print "hello" if cool
print "hello" unless cool
print "hello" unless 1212 and 3434 -- hello
print "hello" for i=1,10
print "nutjob"
if hello then 343
print "what" if cool else whack
arg = {...}
x = (...) ->
dump {...}
x = not true
y = not(5+5)
y = #"hello"
x = #{#{},#{1},#{1,2}}
hello, world
something\hello(what) a,b
something\hello what
something.hello\world a,b
something.hello\world(1,2,3) a,b
x = 1232
x += 10 + 3
j -= "hello"
y *= 2
y /= 100
m %= 2
hello ..= "world"
@@something += 10
@something += 10
@@then += 10
@then += 10
a["hello"] += 10
a["hello#{tostring ff}"] += 10
a[four].x += 10
x = 0
(if ntype(v) == "fndef" then x += 1) for v in *values
hello =
something: world
if: "hello"
else: 3434
function: "okay"
good: 230203
div class: "cool"
5 + what wack
what whack + 5
5 - what wack
what whack - 5
x = hello - world - something
((something = with what
\cool 100) ->
print something)!
if something
03589
-- okay what about this
else
3434
if something
yeah
elseif "ymmm"
print "cool"
else
okay
-- test names containing keywords
x = notsomething
y = ifsomething
z = x and b
z = x andb
-- undelimited tables
while 10 > something
something: "world"
print "yeah"
x =
okay: sure
yeah
okay: man
sure: sir
hello "no comma"
yeah: dada
another: world
hello "comma",
something: hello_world
frick: you
-- creates two tables
another hello, one,
two, three, four, yeah: man
okay: yeah
--
a += 3 - 5
a *= 3 + 5
a *= 3
a >>= 3
a <<= 3
a /= func "cool"
---
x.then = "hello"
x.while.true = "hello"
--
x or= "hello"
x and= "hello"
--
z = a-b
z = a -b
z = a - b
z = a- b
-- cooool