#ifndef __SYNTAXTREE_H__ #define __SYNTAXTREE_H__ #include #define SYNTAX_TREE_NODE_NAME_MAX 30 struct _syntax_tree_node { struct _syntax_tree_node * parent; struct _syntax_tree_node * children[10]; int children_num; char name[SYNTAX_TREE_NODE_NAME_MAX]; }; typedef struct _syntax_tree_node syntax_tree_node; syntax_tree_node * new_anon_syntax_tree_node(); syntax_tree_node * new_syntax_tree_node(const char * name); int syntax_tree_add_child(syntax_tree_node * parent, syntax_tree_node * child); void del_syntax_tree_node(syntax_tree_node * node, int recursive); struct _syntax_tree { syntax_tree_node * root; }; typedef struct _syntax_tree syntax_tree; syntax_tree* new_syntax_tree(); void del_syntax_tree(syntax_tree * tree); void print_syntax_tree(FILE * fout, syntax_tree * tree); #endif /* SyntaxTree.h */