4 //#define YYSTYPE struct token
5 #include "ktrfmt.tab.h"
13 static struct token tokens[NR_TOKENS];
20 if (curr_tok == NR_TOKENS) {
22 fprintf(stderr, "Reached max number of tokens\n");
25 return &tokens[curr_tok];
29 tok_free(struct token *tok)
31 assert(&tokens[curr_tok] == tok);
38 %option prefix="__ktrfmt"
39 %option outfile="ktrfmt.yy.c"
46 ID [a-zA-Z_$][a-zA-Z0-9_]*
49 {WHITE}+ { /* ignore */ }
51 yylval->tok = tok_new();
52 yylval->tok->type = TOK_ID;
53 printd(LEX, "tok %p TOK_ID %p:%s\n", yylval->tok, yytext, yytext);
54 yylval->tok->str = strdup(yytext);
58 yylval->tok = tok_new();
59 yylval->tok->type = TOK_INT;
60 yylval->tok->str = strdup(yytext);
61 printd(LEX, "TOK_INT\n");
66 printd(LEX, "TOK_EQ\n");
71 printd(LEX, "TOK_LEFT_BRACK\n");
72 return TOK_LEFT_BRACK;
76 printd(LEX, "TOK_RIGHT_BRACK\n");
77 return TOK_RIGHT_BRACK;