
#i am macro

library "a"

<beginfold id='1'>function</beginfold id='1'> myfunc ( foo as Integer , bar as Float = 3.5 ) as Void
end <endfold id='1'>function</endfold id='1'>

<beginfold id='2'>sub</beginfold id='2'> mysub ( foo as Integer , bar as Float = 3.5 ) as Void
end <endfold id='2'>sub</endfold id='2'>

' my comment

<beginfold id='1'>Function</beginfold id='1'> MyCamelCaseFunction()
    lvalue = rvalue
a=5
a=5!
a=5#
a=5%
a=5&

a$=5
a!=5
a#=5
a%=5
a&=5

a=a$
a=a!
a=a#
a=a%
a=a&

foo()
a.foo()
a=a.foo()

eval=5
eval()
a.eval()

a=eval
a=eval()
a=a.eval()

sleep=5
sleep()
a.sleep()

a=sleep
a=sleep()
a=a.sleep()

if a=b c=d
if a foo()
if a then foo()

if a
end if

if a then
end if

if a
else if
else
end if

if a
elseif
endif

for each a in b
end for

for a=1 to 10 step 2
endFor

for each a in b
next

while a
end while

while a
endWhile

a [ "a" , 1, foo() ] = 1
a.foo()[1]=1

a = {
    a : 1
    b : "2"
    c : <beginfold id='1'>function</beginfold id='1'>() : end <endfold id='1'>function</endfold id='1'>
}

b.foo("string",1,{a:b},1.5,[1,2,3])
a = b.foo("string",1,{a:b},1.5,[1,2,3])

unnamed_function = <beginfold id='1'>function</beginfold id='1'> ( a as Integer ) as Float

a = +-b
a = &h42abcdef
c = var@attr
end <endfold id='1'>function</endfold id='1'>

unnamed_sub = <beginfold id='2'>sub</beginfold id='2'> ( a as Integer ) as Void
end <endfold id='2'>sub</endfold id='2'>
end<endfold id='1'>Function</endfold id='1'>

<beginfold id='2'>sub</beginfold id='2'> exceptions()
	try=1
	try()
	try.foo
	try foo

	catch=1
	catch()
	catch.foo
	catch foo

	try
	catch foo
	end try

	try ' comment
	endtry

	throw {a: "abc"}
end <endfold id='2'>sub</endfold id='2'>

<beginfold id='2'>sub</beginfold id='2'> inline_lambda()
	a(a, "string")(a, "string")

	a = <beginfold id='2'>sub</beginfold id='2'>()
	end <endfold id='2'>sub</endfold id='2'>(a, "string", [a, foo("string")])

	b = <beginfold id='1'>function</beginfold id='1'>()
	end <endfold id='1'>function</endfold id='1'>(a, "string")

	c = <beginfold id='2'>sub</beginfold id='2'>()
	end <endfold id='2'>sub</endfold id='2'>
end <endfold id='2'>sub</endfold id='2'>
