int main() { Token *t; initline(); while (true) { if ((t = gettoken()) == 0) break; if (t->sym < ID) { if (isspace(t->sym)) printf("%c", t->sym); else printf("SEP<%c> ", t->sym); } else switch (t->sym) { case ID : printf("ID<%s> ", t->text); break; case LIT: printf("LIT<%s>(%d) ", t->text, t->ival); break; case OP: printf("OP<%s>(%d) ", t->text, t->ival); break; case CMT: printf("CMT<%s> ", t->text); break; case tIF: printf("IF<>"); break; case tELSE: printf("ELSE<>"); break; case tWHILE: printf("WHILE<>"); break; case tDO: printf("DO<>"); break; case tFOR: printf("FOR<>"); break; case tCALL: printf("CALL<>"); break; case tRETURN: printf("RETURN<>"); break; case tBREAK: printf("BREAK<>"); break; case tCONTINUE: printf("CONTINUE<>"); break; case tSWITCH: printf("SWITCH<>"); break; case tCASE: printf("CASE<>"); break; case tDEFAULT: printf("DEFAULT<>"); break; default: printf("ERROR<%s> ", t->text); break; } } printf("\n"); return 0; }
int main() { initline(); init_AST(); init_SYM(); init_LOC(); gettoken(); ast_root = program(); print_AST(ast_root); printf("\n\n"); if (ast_debug) { dump_AST(stdout); printf("\n"); } dump_SYM(stdout); printf("\n"); dump_LOC(stdout); printf("\n"); dump_STR(stdout); return 0; }
int main() { initline(); gettoken(); stmt(); printf("\n"); return 0; }