aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/LuaSL/src/LuaSL_lexer.l
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-16 01:12:56 +1000
committerDavid Walter Seikel2012-01-16 01:12:56 +1000
commit1e6a3b715654c9458d4e8619474bfcb947a37343 (patch)
treeb297eae518d46c7bbfc5580a93559f72b3061b18 /LuaSL/src/LuaSL_lexer.l
parentClean up space. (diff)
downloadSledjHamr-1e6a3b715654c9458d4e8619474bfcb947a37343.zip
SledjHamr-1e6a3b715654c9458d4e8619474bfcb947a37343.tar.gz
SledjHamr-1e6a3b715654c9458d4e8619474bfcb947a37343.tar.bz2
SledjHamr-1e6a3b715654c9458d4e8619474bfcb947a37343.tar.xz
Add key and string to the parser.
Diffstat (limited to 'LuaSL/src/LuaSL_lexer.l')
-rw-r--r--LuaSL/src/LuaSL_lexer.l3
1 files changed, 3 insertions, 0 deletions
diff --git a/LuaSL/src/LuaSL_lexer.l b/LuaSL/src/LuaSL_lexer.l
index 876d30a..333489a 100644
--- a/LuaSL/src/LuaSL_lexer.l
+++ b/LuaSL/src/LuaSL_lexer.l
@@ -22,6 +22,7 @@ EXPONANT [eE][+-]?{DECIMAL}+
22 /* Floats can be "0." or".0", but "." is not valid. At least in OpenSim. A single dot should be caught by the LSL_Dot rule first anyway.*/ 22 /* Floats can be "0." or".0", but "." is not valid. At least in OpenSim. A single dot should be caught by the LSL_Dot rule first anyway.*/
23FLOAT {DECIMAL}*"."{DECIMAL}*{EXPONANT}?[fF]? 23FLOAT {DECIMAL}*"."{DECIMAL}*{EXPONANT}?[fF]?
24CHAR '(\\.|[^\\'\n])+' 24CHAR '(\\.|[^\\'\n])+'
25KEY \"{HEX}{8}-{HEX}{4}-{HEX}{4}-{HEX}{4}-{HEX}{12}\"
25STRING \"(\\.|[^\\"\n])*\" 26STRING \"(\\.|[^\\"\n])*\"
26IDENTIFIER [[:alpha:]](_|[[:alpha:]]|[[:digit:]])* 27IDENTIFIER [[:alpha:]](_|[[:alpha:]]|[[:digit:]])*
27 28
@@ -74,6 +75,8 @@ IDENTIFIER [[:alpha:]](_|[[:alpha:]]|[[:digit:]])*
74 /* Types. */ 75 /* Types. */
75{INTEGER} %{ yylval->value.integerValue = atoi(yytext); return common(yylval, yytext, yyextra, TRUE, LSL_INTEGER); %} 76{INTEGER} %{ yylval->value.integerValue = atoi(yytext); return common(yylval, yytext, yyextra, TRUE, LSL_INTEGER); %}
76{FLOAT} %{ yylval->value.floatValue = atof(yytext); return common(yylval, yytext, yyextra, TRUE, LSL_FLOAT); %} 77{FLOAT} %{ yylval->value.floatValue = atof(yytext); return common(yylval, yytext, yyextra, TRUE, LSL_FLOAT); %}
78{KEY} %{ yylval->value.stringValue = strdup(yytext); return common(yylval, yytext, yyextra, TRUE, LSL_KEY); %}
79{STRING} %{ yylval->value.stringValue = strdup(yytext); return common(yylval, yytext, yyextra, TRUE, LSL_STRING); %}
77 80
78 /* Type keywords. */ 81 /* Type keywords. */
79"float" %{ return common(yylval, yytext, yyextra, TRUE, LSL_TYPE_FLOAT); %} 82"float" %{ return common(yylval, yytext, yyextra, TRUE, LSL_TYPE_FLOAT); %}