Exemple #1
0
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;
}
Exemple #2
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;
}
Exemple #3
0
int main() {
    initline();
    gettoken();
  
    stmt();

    printf("\n");
    return 0;
}