aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/LuaSL/src/LuaSL_lexer.l
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-06 22:49:04 +1000
committerDavid Walter Seikel2012-01-06 22:49:04 +1000
commit3c15f48358ffd67aa53d02489594c949964f24f5 (patch)
treea5d0ecbe2bb91774f28d78a8fc9054df868b2db1 /LuaSL/src/LuaSL_lexer.l
parentAdded most of the expression parser. (diff)
downloadSledjHamr-3c15f48358ffd67aa53d02489594c949964f24f5.zip
SledjHamr-3c15f48358ffd67aa53d02489594c949964f24f5.tar.gz
SledjHamr-3c15f48358ffd67aa53d02489594c949964f24f5.tar.bz2
SledjHamr-3c15f48358ffd67aa53d02489594c949964f24f5.tar.xz
Flex performance tweaks, and other options.
Diffstat (limited to 'LuaSL/src/LuaSL_lexer.l')
-rw-r--r--LuaSL/src/LuaSL_lexer.l23
1 files changed, 16 insertions, 7 deletions
diff --git a/LuaSL/src/LuaSL_lexer.l b/LuaSL/src/LuaSL_lexer.l
index 11c20a0..3eb59fb 100644
--- a/LuaSL/src/LuaSL_lexer.l
+++ b/LuaSL/src/LuaSL_lexer.l
@@ -13,10 +13,15 @@
13 13
14%} 14%}
15 15
16%option reentrant noyywrap never-interactive nounistd 16%option reentrant never-interactive batch
17%option bison-bridge 17%option bison-bridge yylineno 8bit
18%option noreject noyymore noyywrap
19%option backup debug perf-report perf-report verbose warn
20%option align full
18 21
19SPACE [ \r\n\t]* 22SPACE [ \r\n\t]*
23ENDSPACE {SPACE}$
24
20LETTER [A-Za-z] 25LETTER [A-Za-z]
21DECIMAL [0-9] 26DECIMAL [0-9]
22HEX [0-9A-Fa-f] 27HEX [0-9A-Fa-f]
@@ -28,11 +33,14 @@ FLOAT {INTEGER}("."{INTEGER})?{EXPONANT}?
28 33
29%% 34%%
30 35
31{SPACE} { ECHO; /* Skip blanks. */ } 36 /* Basic tokens */
32{NAME} { ECHO; /* yylval->nameValue=strdup(yytext); return LSL_NAME; */ } 37{ENDSPACE} %{ /* Skip blanks at end of lines. */ %}
33{INTEGER} { ECHO; yylval->integerValue = atoi(yytext); return LSL_INTEGER; } 38{SPACE} %{ ECHO; /* Skip blanks. */ %}
34{FLOAT} { ECHO; /* yylval->floatValue = atof(yytext); return LSL_FLOAT; */ } 39{NAME} %{ ECHO; /* yylval->nameValue=strdup(yytext); return LSL_NAME; */ %}
40{INTEGER} %{ ECHO; yylval->integerValue = atoi(yytext); return LSL_INTEGER; %}
41{FLOAT} %{ ECHO; /* yylval->floatValue = atof(yytext); return LSL_FLOAT; */ %}
35 42
43 /* Expression tokens */
36"&&" { ECHO; return LSL_BOOL_AND; } 44"&&" { ECHO; return LSL_BOOL_AND; }
37"||" { ECHO; return LSL_BOOL_OR; } 45"||" { ECHO; return LSL_BOOL_OR; }
38"|" { ECHO; return LSL_BIT_OR; } 46"|" { ECHO; return LSL_BIT_OR; }
@@ -56,7 +64,8 @@ FLOAT {INTEGER}("."{INTEGER})?{EXPONANT}?
56"(" { ECHO; return LSL_PARENTHESIS_OPEN; } 64"(" { ECHO; return LSL_PARENTHESIS_OPEN; }
57")" { ECHO; return LSL_PARENTHESIS_CLOSE; } 65")" { ECHO; return LSL_PARENTHESIS_CLOSE; }
58 66
59. { ECHO; printf(" unexpected character.\n"); } 67 /* Everything else */
68. %{ ECHO; printf(" unexpected character.\n"); %}
60 69
61%% 70%%
62 71