•
Recursive traversal of the AST
•
E.g. for a simple addition expression
ExpTy transExp( Absyn.OpExp e ) {
switch (e.oper) {
case Absyn.OpExp.PLUS:
checkInt( transExp( e.left),
e.left.pos);
checkInt( transExp( e.right),
e.right.pos);
return new ExpTy( null, INT );
}
}