summaryrefslogtreecommitdiffstats
path: root/grammar/rscript.l
diff options
context:
space:
mode:
Diffstat (limited to 'grammar/rscript.l')
-rw-r--r--grammar/rscript.l13
1 files changed, 7 insertions, 6 deletions
diff --git a/grammar/rscript.l b/grammar/rscript.l
index 750a3e81..d6dab45b 100644
--- a/grammar/rscript.l
+++ b/grammar/rscript.l
@@ -43,8 +43,8 @@ static int preCommentState;
%%
/* keywords */
-"if" { printf("IF\n"); BEGIN EXPR; }
-<EXPR>"then" { printf("THEN\n"); BEGIN INITIAL; }
+"if" { BEGIN EXPR; return IF; }
+<EXPR>"then" { BEGIN INITIAL; return THEN; }
<EXPR>"or" { printf("OR\n"); }
<EXPR>"and" { printf("AND\n"); }
<EXPR>"not" { printf("NOT\n"); }
@@ -63,12 +63,14 @@ static int preCommentState;
<EXPR>"startswith_i" { printf("STARTSWITH_I\n"); }
<EXPR>-?0[0-7]+ { printf("NUMBER (oct) %s\n", yytext); }
<EXPR>-?0x[0-7a-f] { printf("NUMBER (hex) %s\n", yytext); }
-<EXPR>-?([1-9][0-9]*|0) { printf("NUMBER (dec) %s\n", yytext); }
+<EXPR>-?([1-9][0-9]*|0) { printf("NUMBER (dec) %s\n", yytext); return NUMBER; }
<EXPR>\$[$!]{0,1}[a-z][a-z0-9\-_\.]* { printf("VARNAME: '%s'\n", yytext); }
<EXPR>\'([^'\\]|\\['])*\' { printf("EXPR string: -%s-\n", yytext); }
<EXPR>[ \t\n]
<EXPR>. { printf("invalid char in expr: %s\n", yytext); }
"&" { return '&'; }
+"{" { return '{'; }
+"}" { return '}'; }
"ruleset" { printf("RULESET\n"); }
"global"[ \n\t]*"(" { yylval.objType = CNFOBJ_GLOBAL;
@@ -86,8 +88,8 @@ static int preCommentState;
"*" |
\/[^*][^\n]* |
-[\|\.\-:][^\n]+ { printf("toke legacy_action '%s'\n", yytext);yylval.s = strdup(yytext); return LEGACY_ACTION; }
-[a-z0-9_\-\+]+ { printf("name: '%s'\n", yytext); }
+[\|\.\-\@:~][^\n]+ |
+[a-z0-9_\-\+]+ { yylval.s = strdup(yytext); return LEGACY_ACTION; }
<INOBJ>")" { BEGIN INITIAL; return ENDOBJ; }
<INOBJ>[a-z][a-z0-9_\.]* { yylval.estr = es_newStrFromCStr(yytext, yyleng);
return NAME; }
@@ -106,7 +108,6 @@ static int preCommentState;
/* CFSYSLINE is valid in all modes */
\$[a-z]+.*$ { yylval.s = strdup(yytext); return CFSYSLINE; }
-<INOBJ>\$[a-z]+.*$ { yylval.s = strdup(yytext); return CFSYSLINE; }
\#.*\n /* skip comments in input */
[\n\t ] /* drop whitespace */