f1828bccf63897daeffb79eb882e41d73603a55e
[ccc.git] / type.c
1 #include "ast.h"
2
3 struct vardecl *type_vardecl(struct vardecl *vardecl)
4 {
5 return vardecl;
6 }
7
8 struct decl *type_decl(struct decl *decl)
9 {
10 switch (decl->type) {
11 case dcomponent:
12 fprintf(stderr, "type_decl:component unsupported\n");
13 break;
14 case dfundecl:
15 fprintf(stderr, "type_decl:fundecl unsupported\n");
16 break;
17 case dvardecl:
18 decl->data.dvar = type_vardecl(decl->data.dvar);
19 break;
20 }
21 return decl;
22 }
23
24 struct ast *type(struct ast *ast)
25 {
26 for (int i = 0; i<ast->ndecls; i++)
27 ast->decls[i] = type_decl(ast->decls[i]);
28 return ast;
29 }