rough pseudocode of AST.