From 0044bfde9f23898319ba94677b2e9d193a55ed1d Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Mon, 9 Jan 2012 03:13:25 +1000 Subject: Add most of the rest of the tokens, but ignore them. --- LuaSL/src/LuaSL_lexer.l | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) (limited to 'LuaSL/src/LuaSL_lexer.l') 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:]])* "/" { ECHO; return LSL_DIVIDE; } "!" { ECHO; return LSL_BOOL_NOT; } "~" { ECHO; return LSL_BIT_NOT; } + /* "<" { ECHO; return LSL_ANGLE_OPEN; } */ + /* ">" { ECHO; return LSL_ANGLE_CLOSE; } */ +"[" { ECHO; return LSL_BRACKET_OPEN; } +"]" { ECHO; return LSL_BRACKET_CLOSE; } "(" { ECHO; return LSL_PARENTHESIS_OPEN; } ")" { ECHO; return LSL_PARENTHESIS_CLOSE; } +"+=" { ECHO; return LSL_ASSIGNMENT_ADD; } +"-=" { ECHO; return LSL_ASSIGNMENT_SUBTRACT; } +"*=" { ECHO; return LSL_ASSIGNMENT_MULTIPLY; } +"%=" { ECHO; return LSL_ASSIGNMENT_MODULO; } +"/=" { ECHO; return LSL_ASSIGNMENT_DIVIDE; } +"=" { ECHO; return LSL_ASSIGNMENT_PLAIN; } +"." { ECHO; return LSL_DOT; } +"--" { ECHO; return LSL_DECREMENT_PRE; } +"++" { ECHO; return LSL_INCREMENT_PRE; } +"," { ECHO; return LSL_COMMA; } /* Types. */ {INTEGER} %{ ECHO; yylval->integerValue = atoi(yytext); return LSL_INTEGER; %} -{FLOAT} %{ ECHO; /* yylval->floatValue = atof(yytext); return LSL_FLOAT; */ %} +{FLOAT} %{ ECHO; yylval->floatValue = atof(yytext); return LSL_FLOAT; %} + + /* Type keywords. */ +"float" %{ ECHO; return LSL_TYPE_FLOAT; %} +"integer" %{ ECHO; return LSL_TYPE_INTEGER; %} +"key" %{ ECHO; return LSL_TYPE_KEY; %} +"list" %{ ECHO; return LSL_TYPE_LIST; %} +"rotation" %{ ECHO; return LSL_TYPE_ROTATION; %} +"string" %{ ECHO; return LSL_TYPE_STRING; %} +"vector" %{ ECHO; return LSL_TYPE_VECTOR; %} + + /* Statement keywords. */ +"do" %{ ECHO; return LSL_DO; %} +"for" %{ ECHO; return LSL_FOR; %} +"else" %{ ECHO; return LSL_ELSE; %} +"if" %{ ECHO; return LSL_IF; %} +"jump" %{ ECHO; return LSL_JUMP; %} +"return" %{ ECHO; return LSL_RETURN; %} +"state" %{ ECHO; return LSL_STATE_CHANGE; %} +"while" %{ ECHO; return LSL_WHILE; %} {NAME} %{ ECHO; /* yylval->nameValue = strdup(yytext); return LSL_NAME; */ %} + /* Other symbols. */ +"@" %{ ECHO; return LSL_LABEL; %} +"{" %{ ECHO; return LSL_BLOCK_OPEN; %} +"}" %{ ECHO; return LSL_BLOCK_CLOSE; %} ";" { ECHO; return LSL_STATEMENT; } <> { yyterminate(); } -- cgit v1.1