module til-opt-lib imports liblib TIL til-eval strategies contains(|x) = // should be in stratego-lib oncetd(?x) elem-of(|xs) = // should be in stratego-lib ?x; where( xs) get-var-names = collect(?Var()) get-var-dependencies = collect(?Var(,)>)) EvalExp = EvalAdd <+ EvalMul <+ EvalSub <+ EvalDiv <+ EvalMod <+ EvalLt <+ EvalGt <+ EvalEqu <+ EvalNeq is-var = ?Var(_) is-value = ?Int(_) <+ ?String(_) is-pure-exp = ?Var(_) <+ ?Int(_) <+ ?String(_) <+ is-bin-op#([is-pure-exp, is-pure-exp]) is-bin-op = ?"Or" <+ ?"And" <+ ?"Neq" <+ ?"Equ" <+ ?"Gt" <+ ?"Lt" <+ ?"Sub" <+ ?"Add" <+ ?"Mod" <+ ?"Div" <+ ?"Mul"