diff options
Diffstat (limited to 'LuaSL/src/LuaSL_lexer.l')
-rw-r--r-- | LuaSL/src/LuaSL_lexer.l | 36 |
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 | ||
19 | SPACE [ \r\n\t]* | 19 | SPACE [ \r\n\t]* |
20 | NAME [a-zA-Z_][a-zA-Z0-9_]* | 20 | LETTER [A-Za-z] |
21 | NUMBER [0-9]+ | 21 | DECIMAL [0-9] |
22 | HEX [0-9A-Fa-f] | ||
23 | |||
24 | NAME {LETTER}(_|{LETTER}|{DECIMAL})* | ||
25 | INTEGER {DECIMAL}+ | ||
26 | EXPONANT [eE][+-]?{INTEGER} | ||
27 | FLOAT {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 | %% |