diff options
Diffstat (limited to 'LuaSL/src/LuaSL_lexer.l')
-rw-r--r-- | LuaSL/src/LuaSL_lexer.l | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/LuaSL/src/LuaSL_lexer.l b/LuaSL/src/LuaSL_lexer.l index 9753a57..8628ca4 100644 --- a/LuaSL/src/LuaSL_lexer.l +++ b/LuaSL/src/LuaSL_lexer.l | |||
@@ -53,15 +53,52 @@ NAME [[:alpha:]](_|[[:alpha:]]|[[:digit:]])* | |||
53 | "/" { ECHO; return LSL_DIVIDE; } | 53 | "/" { ECHO; return LSL_DIVIDE; } |
54 | "!" { ECHO; return LSL_BOOL_NOT; } | 54 | "!" { ECHO; return LSL_BOOL_NOT; } |
55 | "~" { ECHO; return LSL_BIT_NOT; } | 55 | "~" { ECHO; return LSL_BIT_NOT; } |
56 | /* "<" { ECHO; return LSL_ANGLE_OPEN; } */ | ||
57 | /* ">" { ECHO; return LSL_ANGLE_CLOSE; } */ | ||
58 | "[" { ECHO; return LSL_BRACKET_OPEN; } | ||
59 | "]" { ECHO; return LSL_BRACKET_CLOSE; } | ||
56 | "(" { ECHO; return LSL_PARENTHESIS_OPEN; } | 60 | "(" { ECHO; return LSL_PARENTHESIS_OPEN; } |
57 | ")" { ECHO; return LSL_PARENTHESIS_CLOSE; } | 61 | ")" { ECHO; return LSL_PARENTHESIS_CLOSE; } |
62 | "+=" { ECHO; return LSL_ASSIGNMENT_ADD; } | ||
63 | "-=" { ECHO; return LSL_ASSIGNMENT_SUBTRACT; } | ||
64 | "*=" { ECHO; return LSL_ASSIGNMENT_MULTIPLY; } | ||
65 | "%=" { ECHO; return LSL_ASSIGNMENT_MODULO; } | ||
66 | "/=" { ECHO; return LSL_ASSIGNMENT_DIVIDE; } | ||
67 | "=" { ECHO; return LSL_ASSIGNMENT_PLAIN; } | ||
68 | "." { ECHO; return LSL_DOT; } | ||
69 | "--" { ECHO; return LSL_DECREMENT_PRE; } | ||
70 | "++" { ECHO; return LSL_INCREMENT_PRE; } | ||
71 | "," { ECHO; return LSL_COMMA; } | ||
58 | 72 | ||
59 | /* Types. */ | 73 | /* Types. */ |
60 | {INTEGER} %{ ECHO; yylval->integerValue = atoi(yytext); return LSL_INTEGER; %} | 74 | {INTEGER} %{ ECHO; yylval->integerValue = atoi(yytext); return LSL_INTEGER; %} |
61 | {FLOAT} %{ ECHO; /* yylval->floatValue = atof(yytext); return LSL_FLOAT; */ %} | 75 | {FLOAT} %{ ECHO; yylval->floatValue = atof(yytext); return LSL_FLOAT; %} |
76 | |||
77 | /* Type keywords. */ | ||
78 | "float" %{ ECHO; return LSL_TYPE_FLOAT; %} | ||
79 | "integer" %{ ECHO; return LSL_TYPE_INTEGER; %} | ||
80 | "key" %{ ECHO; return LSL_TYPE_KEY; %} | ||
81 | "list" %{ ECHO; return LSL_TYPE_LIST; %} | ||
82 | "rotation" %{ ECHO; return LSL_TYPE_ROTATION; %} | ||
83 | "string" %{ ECHO; return LSL_TYPE_STRING; %} | ||
84 | "vector" %{ ECHO; return LSL_TYPE_VECTOR; %} | ||
85 | |||
86 | /* Statement keywords. */ | ||
87 | "do" %{ ECHO; return LSL_DO; %} | ||
88 | "for" %{ ECHO; return LSL_FOR; %} | ||
89 | "else" %{ ECHO; return LSL_ELSE; %} | ||
90 | "if" %{ ECHO; return LSL_IF; %} | ||
91 | "jump" %{ ECHO; return LSL_JUMP; %} | ||
92 | "return" %{ ECHO; return LSL_RETURN; %} | ||
93 | "state" %{ ECHO; return LSL_STATE_CHANGE; %} | ||
94 | "while" %{ ECHO; return LSL_WHILE; %} | ||
62 | 95 | ||
63 | {NAME} %{ ECHO; /* yylval->nameValue = strdup(yytext); return LSL_NAME; */ %} | 96 | {NAME} %{ ECHO; /* yylval->nameValue = strdup(yytext); return LSL_NAME; */ %} |
64 | 97 | ||
98 | /* Other symbols. */ | ||
99 | "@" %{ ECHO; return LSL_LABEL; %} | ||
100 | "{" %{ ECHO; return LSL_BLOCK_OPEN; %} | ||
101 | "}" %{ ECHO; return LSL_BLOCK_CLOSE; %} | ||
65 | ";" { ECHO; return LSL_STATEMENT; } | 102 | ";" { ECHO; return LSL_STATEMENT; } |
66 | 103 | ||
67 | <<EOF>> { yyterminate(); } | 104 | <<EOF>> { yyterminate(); } |