From b2f14e90d89def30670ff665677842ea491ce947 Mon Sep 17 00:00:00 2001 From: ken Date: Thu, 20 Oct 2016 20:21:11 -0700 Subject: [PATCH] improved tester --- src/bin/tools/testapc.c | 43 +++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/src/bin/tools/testapc.c b/src/bin/tools/testapc.c index ea9cbe3..755cf74 100644 --- a/src/bin/tools/testapc.c +++ b/src/bin/tools/testapc.c @@ -66,26 +66,31 @@ char tok_lval[MAX_TOK]; 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); } -- 2.18.0