-void ast_set_output(FILE *out);
-void print_expression(const expression_t *expression);
-void print_initializer(const initializer_t *initializer);
-void print_ast(const translation_unit_t *unit);
-void print_indent(void);
-void print_declaration(const entity_t *entity);
-void print_entity(const entity_t *entity);
-void change_indent(int delta);
-void *allocate_ast(size_t size);
+/**
+ * Free the AST.
+ */
+void exit_ast(void);
+
+void print_expression(const expression_t *expression);
+void print_initializer(const initializer_t *initializer);
+void print_ast(const translation_unit_t *unit);
+void print_indent(void);
+void print_declaration(const entity_t *entity);
+void print_entity(const entity_t *entity);
+void change_indent(int delta);
+
+typedef enum expression_classification_t {
+ EXPR_CLASS_VARIABLE,
+ EXPR_CLASS_ERROR,
+ EXPR_CLASS_CONSTANT
+} expression_classification_t;