int testapc_yyparse
()
{ int i, tok;
- char* tok_pattern = "T[%i]L[%i]";
- char* lval_type = tok_pattern + 8; //location of i
- tok_lval[NUM] = 'i';
- tok_lval[STR] = 's';
- tok_lval[SS] = 'i';
- tok_lval[NAME] = 's';
- tok_lval[REF] = 'x';
- tok_lval[SSD] = 'i';
- tok_lval[FPTR] = 'x';
- //lex 10 tokens
- printf(YELLOW);
- for (i = 0; i < 10; i++)
- { if ((tok = lexer()) != 0)
- { *lval_type = tok_lval[tok] ? tok_lval[tok] : 'i';
- printf(tok_pattern, tok, yylval.val);
- }
- else
- { printf(";");
- break;
+ static char tok_pattern[] = "[" RED " %5i " CLRC "][" CYAN " %-12i " CLRC "]";
+ for (i = 0; i < 1000; i++)
+ { switch (tok = lexer())
+ #define OFFS 27
+ { case STR:
+ case NAME:
+ tok_pattern[OFFS] = 's';
+ break;
+ case REF:
+ case FPTR:
+ tok_pattern[OFFS] = 'x';
+ break;
+ case NUM:
+ case SS:
+ case SSD:
+ default:
+ tok_pattern[OFFS] = 'i';
+ break;
+ case 0:
+ printf(";\n" GREEN "Done" CLRC ".\n");
+ return 0;
}
+ printf(tok_pattern, tok, yylval.val);
+ if (i % 4 == 0 || yylval.val == 1)
+ printf(";\n");
}
printf("\n" CLRC);
}