From e85ff16e367aaf3b0e68e6a79615496d179f85ca Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Fri, 6 Jan 2012 16:27:25 +1000 Subject: Even more debugging stuff, and make it selectable if the parser uses #defines or enums for tokens. NOTE - enum does not work anyway with btyacc. --- LuaSL/src/LuaSL_lexer.l | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'LuaSL/src/LuaSL_lexer.l') diff --git a/LuaSL/src/LuaSL_lexer.l b/LuaSL/src/LuaSL_lexer.l index 478e62c..5e7d930 100644 --- a/LuaSL/src/LuaSL_lexer.l +++ b/LuaSL/src/LuaSL_lexer.l @@ -3,26 +3,35 @@ #define excludeLexer #include "LuaSL_LSL_tree.h" +#ifdef LUASL_DEBUG + #undef ECHO + #define ECHO printf ("[%s]\n", yytext) +#else + #undef ECHO + #define ECHO {} +#endif + + %} %option reentrant noyywrap never-interactive nounistd %option bison-bridge SPACE [ \r\n\t]* +NAME [a-zA-Z_][a-zA-Z0-9_]* NUMBER [0-9]+ -NAME [a-zA-Z][a-zA-Z0-9]* %% -{SPACE} { /* Skip blanks. */ } -{NUMBER} { yylval->integerValue = atoi(yytext); return LSL_INTEGER; } -{NAME} { /* yylval->nameValue=strdup(yytext); return LSL_NAME; */ } +{SPACE} { ECHO; /* Skip blanks. */ } +{NAME} { ECHO; /* yylval->nameValue=strdup(yytext); return LSL_NAME; */ } +{NUMBER} { ECHO; yylval->integerValue = atoi(yytext); return LSL_INTEGER; } -"*" { return LSL_MULTIPLY; } -"+" { return LSL_ADD; } -"(" { return LSL_PARENTHESIS_OPEN; } -")" { return LSL_PARENTHESIS_CLOSE; } -. { /* This should return an "unknown character" error */ } +"(" { ECHO; return LSL_PARENTHESIS_OPEN; } +")" { ECHO; return LSL_PARENTHESIS_CLOSE; } +"*" { ECHO; return LSL_MULTIPLY; } +"+" { ECHO; return LSL_ADD; } +. { ECHO; printf(" unexpected character.\n"); } %% -- cgit v1.1