/* iGASM example */ /* Evaluates "a div b" and "a mod b" using div function declared as static expression. */ FUNCTIONS static div : Number*Number -> Number*Number; par1, par2 : Number; done : Bool; FINAL done = true; EXPRESSIONS div := (floor($0/$1), $0%$1); RULES IF (par1,par2) != undef THEN writeln := toString(par1)+"\t div \t"+toString(par2) + " \t = " + toString( div(par1, par2)[0] ) + "\n " + toString(par1)+"\t mod \t"+toString(par2) + "\t = " + toString(div(par1, par2)[1]); done := true; ELSE par1 := toNumber(readln("Enter a positive natural number:")); par2 := toNumber(readln("Enter a positive natural number (quotient):")); ENDIF