diff options
author | David Walter Seikel | 2012-01-06 16:27:25 +1000 |
---|---|---|
committer | David Walter Seikel | 2012-01-06 16:27:25 +1000 |
commit | e85ff16e367aaf3b0e68e6a79615496d179f85ca (patch) | |
tree | 91f7df33ee3d0247c7098bc5d0971b95a05a9712 /LuaSL/src/LuaSL_lexer.l | |
parent | Add more debugging stuff. (diff) | |
download | SledjHamr-e85ff16e367aaf3b0e68e6a79615496d179f85ca.zip SledjHamr-e85ff16e367aaf3b0e68e6a79615496d179f85ca.tar.gz SledjHamr-e85ff16e367aaf3b0e68e6a79615496d179f85ca.tar.bz2 SledjHamr-e85ff16e367aaf3b0e68e6a79615496d179f85ca.tar.xz |
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.
Diffstat (limited to '')
-rw-r--r-- | LuaSL/src/LuaSL_lexer.l | 27 |
1 files changed, 18 insertions, 9 deletions
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 @@ | |||
3 | #define excludeLexer | 3 | #define excludeLexer |
4 | #include "LuaSL_LSL_tree.h" | 4 | #include "LuaSL_LSL_tree.h" |
5 | 5 | ||
6 | #ifdef LUASL_DEBUG | ||
7 | #undef ECHO | ||
8 | #define ECHO printf ("[%s]\n", yytext) | ||
9 | #else | ||
10 | #undef ECHO | ||
11 | #define ECHO {} | ||
12 | #endif | ||
13 | |||
14 | |||
6 | %} | 15 | %} |
7 | 16 | ||
8 | %option reentrant noyywrap never-interactive nounistd | 17 | %option reentrant noyywrap never-interactive nounistd |
9 | %option bison-bridge | 18 | %option bison-bridge |
10 | 19 | ||
11 | SPACE [ \r\n\t]* | 20 | SPACE [ \r\n\t]* |
21 | NAME [a-zA-Z_][a-zA-Z0-9_]* | ||
12 | NUMBER [0-9]+ | 22 | NUMBER [0-9]+ |
13 | NAME [a-zA-Z][a-zA-Z0-9]* | ||
14 | 23 | ||
15 | %% | 24 | %% |
16 | 25 | ||
17 | {SPACE} { /* Skip blanks. */ } | 26 | {SPACE} { ECHO; /* Skip blanks. */ } |
18 | {NUMBER} { yylval->integerValue = atoi(yytext); return LSL_INTEGER; } | 27 | {NAME} { ECHO; /* yylval->nameValue=strdup(yytext); return LSL_NAME; */ } |
19 | {NAME} { /* yylval->nameValue=strdup(yytext); return LSL_NAME; */ } | 28 | {NUMBER} { ECHO; yylval->integerValue = atoi(yytext); return LSL_INTEGER; } |
20 | 29 | ||
21 | "*" { return LSL_MULTIPLY; } | 30 | "(" { ECHO; return LSL_PARENTHESIS_OPEN; } |
22 | "+" { return LSL_ADD; } | 31 | ")" { ECHO; return LSL_PARENTHESIS_CLOSE; } |
23 | "(" { return LSL_PARENTHESIS_OPEN; } | 32 | "*" { ECHO; return LSL_MULTIPLY; } |
24 | ")" { return LSL_PARENTHESIS_CLOSE; } | 33 | "+" { ECHO; return LSL_ADD; } |
25 | . { /* This should return an "unknown character" error */ } | 34 | . { ECHO; printf(" unexpected character.\n"); } |
26 | 35 | ||
27 | %% | 36 | %% |
28 | 37 | ||