// This is to test your parser function z(Int a,String b) {String foo; Int[40] andy; return 4;} record Z{ Int x; String[44] y; } Fobar hi; Fo[40] bye; function ifTest():Boolean { if 4 then {return 3;} fi; if 4 then {return 4;} else {return 5;} fi; if x == 4 then return 4; else_if 6 then return a; else return 2; fi; } pure function iterTest(){ for i = 1 to 10 do {return 4;} while i do return 4; a:= b*7 + 4*3*2 ; } function dispatch():Fobar { fobar(a,b,c); for i = fee() to fie(foo) do return a; } pure function fact(Integer x):Integer { if x then return 1; else return fact(x-1)*x; fi } record Event { Integer time; Boolean synthetic; String key; Window win; } function getEvent(Window w, Display d):Event { // does various stuff Event e; while x do e := yy[1].xx[4].zz.aa[3]; for i = 1 to 10 do print(i); for w = 30+40 to test(i) do print(w.id); if happy then print("happy"); else_if content then print("content"); else_if unhappy + true then if satanic then exit(666); else exit(0); fi else print("undetermined"); fi w.type.field := 6; x[4].id[5].foo[5] := 7; x.id[5].foo := 8; ; ; x := fee(foo(x[5]+5),fibble("sdfdsf")); y := 4+6 * (7-2*(4+6)) > 6 * 5 +(4+5+7*8); }