ENTRY START LOAD test.dat [START]{ a=10>1 b=10<1 --[[ Fat Comment Sigh... ]] "test: $a$ $b$" test["name"]="Ryan" name=test["name"] "Hi $test[name]$! $name$" testfunc("hello",(5!),15@1) test("hello",sqrt(5!),(15@1)/2) } [@:construct]{ -- get % out of 100 ret=l/(r/100) return(ret) } [>:construct]{ -- get % out of 100 ret=rshift(l,r) return(ret) } [<:construct]{ -- get % out of 100 ret=lshift(l,r) return(ret) } [~:construct]{ -- negate variable if r~=NONE then GOTO(sub)|GOTO(neg) ::sub:: ret=l-r return(ret) GOTO(end) ::neg:: ret=0-r return(ret) ::end:: } [test:function(a,b,c)]{ "$a$ $b$ $c$" } -- You dont have too many symbols left to use though. For now a symbol is only 1 char long so you are limited [fact:function(n)]{ count=1 stop=n ::loop:: -- for loop kinda, can become a stateloop as well n=n*count count=count+1 if count==stop then GOTO(end)|GOTO(loop) ::end:: ret=n } [neg:function(n)]{ ret=n*(0-1) } --Bind the fact function to the symbol '!' [!:construct]{ env=fact(l) ret=env["ret"] return(ret) } [NOVAR]{ ::go:: "I AM HERE!!!" NOVAR="TEST" JUMP(START) } [TEST]{ "We are now here" }