AST complete (closes #29)