diff options
-rw-r--r-- | grammar/debian.conf | 4 | ||||
-rw-r--r-- | grammar/rscript.l | 8 | ||||
-rw-r--r-- | grammar/rscript.y | 6 |
3 files changed, 15 insertions, 3 deletions
diff --git a/grammar/debian.conf b/grammar/debian.conf index 79c1f07d..91a67307 100644 --- a/grammar/debian.conf +++ b/grammar/debian.conf @@ -110,6 +110,10 @@ news.notice -/var/log/news/news.notice # NOTE: adjust the list below, or you'll go crazy if you have a reasonably # busy site.. # +!ThisTag ++host1 +-host2 ++* daemon.*;mail.*;\ news.err;\ *.=debug;*.=info;\ diff --git a/grammar/rscript.l b/grammar/rscript.l index 7e7ab925..a4c37c81 100644 --- a/grammar/rscript.l +++ b/grammar/rscript.l @@ -122,9 +122,10 @@ char *currfn; /* name of currently processed file */ ^[ \t]*[,\*a-z]+\.[,!=;\.\*a-z]+ { printf("token prifilt '%s'\n", yytext); yylval.s = strdup(yytext); return PRIFILT; } "*" | +\-\/[^*][^\n]* | \/[^*][^\n]* | [\|\.\-\@:~][^\n]+ | -[a-z0-9_\-\+]+ { yylval.s = strdup(yytext); return LEGACY_ACTION; } +[a-z0-9_][a-z0-9_\-\+]* { yylval.s = strdup(yytext); printf("LEGACY_ACT: '%s'\n", yytext);return LEGACY_ACTION; } <INOBJ>")" { BEGIN INITIAL; return ENDOBJ; } <INOBJ>[a-z][a-z0-9_\.]* { yylval.estr = es_newStrFromCStr(yytext, yyleng); return NAME; } @@ -141,7 +142,6 @@ char *currfn; /* name of currently processed file */ <INOBJ>[ \n\t] <INOBJ>. { printf("INOBJ: invalid char '%s'\n", yytext); } - /* CFSYSLINE is valid in all modes */ \$[a-z]+.*$ { /* see common on $IncludeConfig above */ if(!strncasecmp(yytext, "$includeconfig ", 14)) { yyless(14); @@ -151,6 +151,10 @@ char *currfn; /* name of currently processed file */ return CFSYSLINE; } } +![^ \t\n]+[ \t]*$ { printf("BSD TAG '%s'\n", yytext); yylval.s = strdup(yytext); return BSD_TAG_SELECTOR; } +[+-]\*[ \t\n]*#.*$ { printf("BSD HOST '%s'\n", yytext); yylval.s = strdup(yytext); return BSD_HOST_SELECTOR; } +[+-]\*[ \t\n]*$ { printf("BSD HOST '%s'\n", yytext); yylval.s = strdup(yytext); return BSD_HOST_SELECTOR; } +^[ \t]*[+-][a-z0-9.:-]+[ \t]*$ { printf("BSD HOST '%s'\n", yytext); yylval.s = strdup(yytext); return BSD_HOST_SELECTOR; } \#.*\n /* skip comments in input */ [\n\t ] /* drop whitespace */ diff --git a/grammar/rscript.y b/grammar/rscript.y index 440a5525..186d0981 100644 --- a/grammar/rscript.y +++ b/grammar/rscript.y @@ -27,6 +27,8 @@ extern int yylineno; %token <s> LEGACY_ACTION %token <s> PRIFILT %token <s> PROPFILT +%token <s> BSD_TAG_SELECTOR +%token <s> BSD_HOST_SELECTOR %token IF %token THEN %token OR @@ -73,8 +75,10 @@ extern int yylineno; %% conf: /* empty (to end recursion) */ | obj conf - | cfsysline conf | rule conf + | cfsysline conf + | BSD_TAG_SELECTOR conf + | BSD_HOST_SELECTOR conf obj: BEGINOBJ nvlst ENDOBJ { $$ = cnfobjNew($1, $2); cnfobjPrint($$); |