summaryrefslogtreecommitdiffstats
path: root/grammar
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2011-07-04 11:57:55 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2011-07-04 11:57:55 +0200
commitb966576f1e740966b35579d612050f4dfc09606c (patch)
treec77e7e97d79c9e898ec5156807b9699aba264720 /grammar
parent4598557192c46e43edc5cc09b89c30045aacdb33 (diff)
downloadrsyslog-b966576f1e740966b35579d612050f4dfc09606c.tar.gz
rsyslog-b966576f1e740966b35579d612050f4dfc09606c.tar.xz
rsyslog-b966576f1e740966b35579d612050f4dfc09606c.zip
milestone: added BSD-style blocks
Diffstat (limited to 'grammar')
-rw-r--r--grammar/debian.conf4
-rw-r--r--grammar/rscript.l8
-rw-r--r--grammar/rscript.y6
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($$);