Implement AST data structure