aboutsummaryrefslogtreecommitdiff
path: root/ast.h
diff options
context:
space:
mode:
authorTeddy <ted.sybil@gmail.com>2014-03-24 22:10:49 +0800
committerTeddy <ted.sybil@gmail.com>2014-03-24 22:10:49 +0800
commit34c3611f364b3ea2955cbfac934b17900390364d (patch)
treed2379577f95f3956be3e492ed5e38b4bba68d2d6 /ast.h
parentf218a80d6ca8a69ba0b22cb87f99e8b82162bbee (diff)
AST Construction: slightly modified
Diffstat (limited to 'ast.h')
-rw-r--r--ast.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/ast.h b/ast.h
index 0b0264a..41aad77 100644
--- a/ast.h
+++ b/ast.h
@@ -27,11 +27,15 @@ typedef struct CNode {
FUNC_DEF,
DECL, /* declaration */
DECLR, /* declarator */
+ DECLRS,
INIT_DECLR,
+ INIT_DECLRS,
INITR, /* initializer */
TYPE_SPEC,
FIELD, /* struct-or-union field */
PLAIN_DECL,
+ DECLS,
+ FUNCS,
/* Statments */
STMT,
@@ -65,7 +69,8 @@ typedef struct CNode {
void cnode_init();
CNode *cnode_create_nop();
CNode *cnode_create_general(int type, int subtype, int pnum, va_list ap);
-CNode *cnode_append(CNode *node, CNode *tail);
+CNode *cnode_list_append(CNode *list, CNode *tail);
+CNode *cnode_list_wrap(int type, CNode *list);
CNode *cnode_create_exp(int exp_type, int pnum, ...);
CNode *cnode_create_type_spec(int spec_type, int pnum, ...);
@@ -78,10 +83,6 @@ CNode *cnode_create_func(CNode *type, CNode *plain_decl, CNode *params, CNode *s
CNode *cnode_create_init_declr(CNode *declr, CNode *initr);
CNode *cnode_create_struct_field(CNode *type_spec, CNode *declrs);
CNode *cnode_create_plain_decl(CNode *type_spec, CNode *declr);
-CNode *cnode_create_comp_decls(CNode *decls);
-CNode *cnode_create_comp_stmts(CNode *stmts);
-CNode *cnode_create_args(CNode *arg_list);
-CNode *cnode_create_params(CNode *plist);
CNode *cnode_create_identifier(char *val);
CNode *cnode_create_int_const(int val);