functions


void __assert(); /* assert.h:25 */
int atoi(); /* stdlib.h:64 */
void (*__builtin_alloca()); /* ??:?? */
void (*__builtin_memcpy()); /* ??:?? */
void __builtin_va_end(); /* ??:?? */
void __builtin_va_start(); /* ??:?? */
char (*codegen(struct AST (*ast))); /* codegen.c:73 */
struct AST (*create_AST(enum AST_type ast_type, int argp_len)); /* AST.c:69 */
struct Type (*create_function_type(struct Type (*ret_type))); /* type.c:14 */
char (*create_label()); /* codegen.c:14 */
struct Type (*create_pointer_type(struct Type (*pointedto_type))); /* type.c:145 */
struct Type (*create_prim_type(enum PrimType ptype)); /* type.c:122 */
char (*create_string_label()); /* symbol.c:178 */
void debug(struct AST (*ast), FILE (*fp)); /* debug.c:137 */
void efree(void (*ptr)); /* xcc.y:309 */
void (*emalloc(size_t nbytes)); /* xcc.y:301 */
void end_code(); /* codegen.c:62 */
int (*__errno()); /* errno.h:15 */
void exit(); /* stdlib.h:75 */
int fclose(); /* stdio.h:172 */
int fileno(); /* stdio.h:261 */
FILE (*fopen()); /* stdio.h:216 */
int fprintf(); /* stdio.h:177 */
size_t fread(); /* stdio.h:196 */
void free(); /* stdlib.h:76 */
size_t fwrite(); /* stdio.h:197 */
int getc(); /* stdio.h:189 */
char (*get_id_index(char (*name), struct AST (*ast))); /* AST.c:22 */
char (*get_opcode(enum AST_type ast_type, short int flag)); /* codegen.c:22 */
struct _reent (*__getreent()); /* reent.h:810 */
char (*get_string(enum AST_type ast_type)); /* debug.c:5 */
char (*get_string_label(char (*data), struct AST (*ast))); /* AST.c:9 */
void init(int argc, char (*(*argv))); /* xcc.y:279 */
int input(); /* lex.yy.c:1326 */
int isatty(); /* unistd.h:94 */
int main(int argc, char (*(*argv))); /* xcc.y:313 */
void (*malloc()); /* stdlib.h:86 */
void (*memset()); /* string.h:26 */
void perror(); /* stdio.h:214 */
int printf(); /* stdio.h:179 */
void (*realloc()); /* stdlib.h:105 */
struct AST (*search_AST_bottom(struct AST (*root), enum AST_type bottom, int (*n))); /* AST.c:58 */
void set_arg_types(struct AST (*ast_plist), struct Type (*type)); /* type.c:27 */
int set_offset(struct Symbol (*symbol), int base); /* symbol.c:85 */
int snprintf(); /* stdio.h:236 */
void start_code(char (*filename)); /* codegen.c:58 */
int strcmp(); /* string.h:29 */
char (*strdup()); /* string.h:61 */
void string_add_char(char c); /* xcc.l:85 */
void string_dump(struct String (*string)); /* symbol.c:52 */
void string_entry(char (*data)); /* symbol.c:186 */
void string_init(); /* xcc.l:81 */
struct String (*string_lookup(char (*data))); /* symbol.c:110 */
size_t strlen(); /* string.h:34 */
int strncmp(); /* string.h:36 */
void symbol_backpatch(struct AST (*ast), struct Type (*type)); /* symbol.c:241 */
void symbol_begin_block(); /* symbol.c:215 */
void symbol_begin_function(); /* symbol.c:195 */
struct Symbol (*symbol_check_var_decl(struct AST (*ast))); /* symbol.c:273 */
void symbol_dump(struct Symbol (*symbol)); /* symbol.c:43 */
void symbol_end_block(struct AST (*ast)); /* symbol.c:233 */
void symbol_end_function(struct AST (*ast)); /* symbol.c:203 */
void symbol_entry(struct AST (*ast)); /* symbol.c:124 */
void symbol_entry_param(struct Type (*func_type)); /* symbol.c:250 */
void symbol_free(struct Symbol (*symbol)); /* symbol.c:33 */
struct Symbol (*symbol_lookup(char (*name))); /* symbol.c:95 */
struct Symbol (*symbol_lookup_arg(char (*name))); /* symbol.c:65 */
struct Symbol (*symbol_lookup_at(char (*name), struct Symbol (*head))); /* symbol.c:23 */
struct Symbol (*symbol_lookup_current_local(char (*name))); /* symbol.c:69 */
struct Symbol (*symbol_lookup_global(char (*name))); /* symbol.c:61 */
struct Symbol (*symbol_lookup_label(char (*name))); /* symbol.c:120 */
struct Symbol (*symbol_lookup_local(char (*name))); /* symbol.c:73 */
void symbol_middle_block(); /* symbol.c:222 */
void symbol_table_dump(); /* symbol.c:285 */
struct Type (*type_add(struct Type (*type1), struct Type (*type2))); /* type.c:188 */
struct Type (*type_analyze_declarator(struct AST (*ast_decr), struct Type (*type))); /* type.c:155 */
struct Type (*type_check_pointer_deref(struct AST (*ast), struct Type (*type))); /* type.c:211 */
void type_dump(struct Type (*type)); /* type.c:220 */
void type_dump_sub(struct Type (*type), int depth); /* type.c:66 */
struct Type (*type_sub(struct Type (*type1), struct Type (*type2))); /* type.c:198 */
YY_BUFFER_STATE yy_create_buffer(FILE (*file), int size); /* lex.yy.c:1459 */
void yy_delete_buffer(YY_BUFFER_STATE b); /* lex.yy.c:1489 */
void yydestruct(int yytype, struct AST (*(*yyvaluep))); /* xcc.tab.c:857 */
int yyerror(char (*mesg)); /* xcc.y:296 */
void yy_fatal_error(char (*msg)); /* lex.yy.c:1726 */
void (*yy_flex_alloc(yy_size_t size)); /* lex.yy.c:1790 */
void yy_flex_free(void (*ptr)); /* lex.yy.c:1818 */
void (*yy_flex_realloc(void (*ptr), yy_size_t size)); /* lex.yy.c:1801 */
void yy_flush_buffer(YY_BUFFER_STATE b); /* lex.yy.c:1547 */
int yy_get_next_buffer(); /* lex.yy.c:1082 */
yy_state_type yy_get_previous_state(); /* lex.yy.c:1214 */
void yy_init_buffer(YY_BUFFER_STATE b, FILE (*file)); /* lex.yy.c:1522 */
int yylex(); /* lex.yy.c:602 */
void yy_load_buffer_state(); /* lex.yy.c:1444 */
int yyparse(); /* xcc.tab.c:920 */
void yyrestart(FILE (*input_file)); /* lex.yy.c:1400 */
YY_BUFFER_STATE yy_scan_buffer(char (*base), yy_size_t size); /* lex.yy.c:1578 */
YY_BUFFER_STATE yy_scan_bytes(char (*bytes), int len); /* lex.yy.c:1633 */
YY_BUFFER_STATE yy_scan_string(char (*yy_str)); /* lex.yy.c:1615 */
char (*yystpcpy(char (*yydest), char (*yysrc))); /* xcc.tab.c:790 */
unsigned int yystrlen(char (*yystr)); /* xcc.tab.c:765 */
void yy_switch_to_buffer(YY_BUFFER_STATE new_buffer); /* lex.yy.c:1415 */
yy_state_type yy_try_NUL_trans(yy_state_type yy_current_state); /* lex.yy.c:1253 */
void yyunput(int c, char (*yy_bp)); /* lex.yy.c:1284 */
int yywrap(); /* lex.yy.c:455 */