update AST function