aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/LuaSL/src/LuaSL_lexer.l
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-06 16:27:25 +1000
committerDavid Walter Seikel2012-01-06 16:27:25 +1000
commite85ff16e367aaf3b0e68e6a79615496d179f85ca (patch)
tree91f7df33ee3d0247c7098bc5d0971b95a05a9712 /LuaSL/src/LuaSL_lexer.l
parentAdd more debugging stuff. (diff)
downloadSledjHamr-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.l27
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
11SPACE [ \r\n\t]* 20SPACE [ \r\n\t]*
21NAME [a-zA-Z_][a-zA-Z0-9_]*
12NUMBER [0-9]+ 22NUMBER [0-9]+
13NAME [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