From 3c15f48358ffd67aa53d02489594c949964f24f5 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Fri, 6 Jan 2012 22:49:04 +1000 Subject: Flex performance tweaks, and other options. --- LuaSL/build.sh | 2 +- LuaSL/src/LuaSL_LSL_tree.h | 4 ---- LuaSL/src/LuaSL_lexer.l | 23 ++++++++++++++++------- 3 files changed, 17 insertions(+), 12 deletions(-) (limited to 'LuaSL') diff --git a/LuaSL/build.sh b/LuaSL/build.sh index 2573073..b118f5a 100755 --- a/LuaSL/build.sh +++ b/LuaSL/build.sh @@ -74,7 +74,7 @@ $command names="LuaSL_LSL_tree LuaSL_lexer LuaSL_yaccer.tab" LFLAGS="-d" -command="flex -dbpv --outfile=LuaSL_lexer.c --header-file=LuaSL_lexer.h LuaSL_lexer.l" +command="flex -C --outfile=LuaSL_lexer.c --header-file=LuaSL_lexer.h LuaSL_lexer.l" echo $command $command diff --git a/LuaSL/src/LuaSL_LSL_tree.h b/LuaSL/src/LuaSL_LSL_tree.h index 42cf0ac..271f4a8 100644 --- a/LuaSL/src/LuaSL_LSL_tree.h +++ b/LuaSL/src/LuaSL_LSL_tree.h @@ -4,10 +4,6 @@ #ifndef __EXPRESSION_H__ #define __EXPRESSION_H__ -#ifndef YY_NO_UNISTD_H -#define YY_NO_UNISTD_H 1 -#endif // YY_NO_UNISTD_H - //#define LUASL_USE_ENUM #define LUASL_DEBUG 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 @@ %} -%option reentrant noyywrap never-interactive nounistd -%option bison-bridge +%option reentrant never-interactive batch +%option bison-bridge yylineno 8bit +%option noreject noyymore noyywrap +%option backup debug perf-report perf-report verbose warn +%option align full SPACE [ \r\n\t]* +ENDSPACE {SPACE}$ + LETTER [A-Za-z] DECIMAL [0-9] HEX [0-9A-Fa-f] @@ -28,11 +33,14 @@ FLOAT {INTEGER}("."{INTEGER})?{EXPONANT}? %% -{SPACE} { ECHO; /* Skip blanks. */ } -{NAME} { ECHO; /* yylval->nameValue=strdup(yytext); return LSL_NAME; */ } -{INTEGER} { ECHO; yylval->integerValue = atoi(yytext); return LSL_INTEGER; } -{FLOAT} { ECHO; /* yylval->floatValue = atof(yytext); return LSL_FLOAT; */ } + /* Basic tokens */ +{ENDSPACE} %{ /* Skip blanks at end of lines. */ %} +{SPACE} %{ ECHO; /* Skip blanks. */ %} +{NAME} %{ ECHO; /* yylval->nameValue=strdup(yytext); return LSL_NAME; */ %} +{INTEGER} %{ ECHO; yylval->integerValue = atoi(yytext); return LSL_INTEGER; %} +{FLOAT} %{ ECHO; /* yylval->floatValue = atof(yytext); return LSL_FLOAT; */ %} + /* Expression tokens */ "&&" { ECHO; return LSL_BOOL_AND; } "||" { ECHO; return LSL_BOOL_OR; } "|" { ECHO; return LSL_BIT_OR; } @@ -56,7 +64,8 @@ FLOAT {INTEGER}("."{INTEGER})?{EXPONANT}? "(" { ECHO; return LSL_PARENTHESIS_OPEN; } ")" { ECHO; return LSL_PARENTHESIS_CLOSE; } -. { ECHO; printf(" unexpected character.\n"); } + /* Everything else */ +. %{ ECHO; printf(" unexpected character.\n"); %} %% -- cgit v1.1