aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/LuaSL/src/LuaSL_lexer.l
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-06 18:50:14 +1000
committerDavid Walter Seikel2012-01-06 18:50:14 +1000
commitf1a48f173922785a4f18ad789f1d0cd7080bb3d1 (patch)
tree94f212d1a5dd924b5c4e25db851d19fee50a8efa /LuaSL/src/LuaSL_lexer.l
parentPrecedence changes. (diff)
downloadSledjHamr-f1a48f173922785a4f18ad789f1d0cd7080bb3d1.zip
SledjHamr-f1a48f173922785a4f18ad789f1d0cd7080bb3d1.tar.gz
SledjHamr-f1a48f173922785a4f18ad789f1d0cd7080bb3d1.tar.bz2
SledjHamr-f1a48f173922785a4f18ad789f1d0cd7080bb3d1.tar.xz
Added most of the expression parser.
Diffstat (limited to '')
-rw-r--r--LuaSL/src/LuaSL_lexer.l36
1 files changed, 31 insertions, 5 deletions
diff --git a/LuaSL/src/LuaSL_lexer.l b/LuaSL/src/LuaSL_lexer.l
index c496d1d..11c20a0 100644
--- a/LuaSL/src/LuaSL_lexer.l
+++ b/LuaSL/src/LuaSL_lexer.l
@@ -17,19 +17,45 @@
17%option bison-bridge 17%option bison-bridge
18 18
19SPACE [ \r\n\t]* 19SPACE [ \r\n\t]*
20NAME [a-zA-Z_][a-zA-Z0-9_]* 20LETTER [A-Za-z]
21NUMBER [0-9]+ 21DECIMAL [0-9]
22HEX [0-9A-Fa-f]
23
24NAME {LETTER}(_|{LETTER}|{DECIMAL})*
25INTEGER {DECIMAL}+
26EXPONANT [eE][+-]?{INTEGER}
27FLOAT {INTEGER}("."{INTEGER})?{EXPONANT}?
22 28
23%% 29%%
24 30
25{SPACE} { ECHO; /* Skip blanks. */ } 31{SPACE} { ECHO; /* Skip blanks. */ }
26{NAME} { ECHO; /* yylval->nameValue=strdup(yytext); return LSL_NAME; */ } 32{NAME} { ECHO; /* yylval->nameValue=strdup(yytext); return LSL_NAME; */ }
27{NUMBER} { ECHO; yylval->integerValue = atoi(yytext); return LSL_INTEGER; } 33{INTEGER} { ECHO; yylval->integerValue = atoi(yytext); return LSL_INTEGER; }
34{FLOAT} { ECHO; /* yylval->floatValue = atof(yytext); return LSL_FLOAT; */ }
28 35
36"&&" { ECHO; return LSL_BOOL_AND; }
37"||" { ECHO; return LSL_BOOL_OR; }
38"|" { ECHO; return LSL_BIT_OR; }
39"^" { ECHO; return LSL_BIT_XOR; }
40"&" { ECHO; return LSL_BIT_AND; }
41"!=" { ECHO; return LSL_NOT_EQUAL; }
42"==" { ECHO; return LSL_EQUAL; }
43">=" { ECHO; return LSL_GREATER_EQUAL; }
44"<=" { ECHO; return LSL_LESS_EQUAL; }
45">" { ECHO; return LSL_GREATER_THAN; }
46"<" { ECHO; return LSL_LESS_THAN; }
47">>" { ECHO; return LSL_RIGHT_SHIFT; }
48"<<" { ECHO; return LSL_LEFT_SHIFT; }
49"+" { ECHO; return LSL_ADD; }
50"-" { ECHO; return LSL_SUBTRACT; }
51"*" { ECHO; return LSL_MULTIPLY; }
52"%" { ECHO; return LSL_MODULO; }
53"/" { ECHO; return LSL_DIVIDE; }
54"!" { ECHO; return LSL_BOOL_NOT; }
55"~" { ECHO; return LSL_BIT_NOT; }
29"(" { ECHO; return LSL_PARENTHESIS_OPEN; } 56"(" { ECHO; return LSL_PARENTHESIS_OPEN; }
30")" { ECHO; return LSL_PARENTHESIS_CLOSE; } 57")" { ECHO; return LSL_PARENTHESIS_CLOSE; }
31"*" { ECHO; return LSL_MULTIPLY; } 58
32"+" { ECHO; return LSL_ADD; }
33. { ECHO; printf(" unexpected character.\n"); } 59. { ECHO; printf(" unexpected character.\n"); }
34 60
35%% 61%%