diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-05-21 07:38:16 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-05-22 20:32:29 +0300 |
commit | 024cfd63846c0c7ef630a5dab819ad97942264a1 (patch) | |
tree | d01c3d40a2008e1831de62957be8e0449d9611c0 /src | |
parent | d253fa956809a1497583212109d33fd4f1a05b31 (diff) | |
download | grecs-024cfd63846c0c7ef630a5dab819ad97942264a1.tar.gz grecs-024cfd63846c0c7ef630a5dab819ad97942264a1.tar.bz2 |
bind: handle ! prefix in acls.
Diffstat (limited to 'src')
-rw-r--r-- | src/bind-gram.y | 9 | ||||
-rw-r--r-- | src/bind-lex.l | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/bind-gram.y b/src/bind-gram.y index fadd3f5..5acc780 100644 --- a/src/bind-gram.y +++ b/src/bind-gram.y @@ -108,6 +108,15 @@ simple : BIND_IDENT vallist ';' $$->ident = $1; $$->v.value = NULL; } + | '!' string ';' + { + $$ = grecs_node_create(grecs_node_stmt, + &grecs_current_locus); + $$->ident = grecs_strdup("!"); + $$->v.value = grecs_malloc(sizeof($$->v.value[0])); + $$->v.value->type = GRECS_TYPE_STRING; + $$->v.value->v.string = $2; + } ; block : BIND_IDENT tag '{' stmtlist '}' ';' diff --git a/src/bind-lex.l b/src/bind-lex.l index f5fd66d..440b17a 100644 --- a/src/bind-lex.l +++ b/src/bind-lex.l @@ -90,7 +90,7 @@ P [1-9][0-9]* {WS} ; /* Other tokens */ \n { grecs_current_locus.line++; } -[,;{}()] return yytext[0]; +[,;{}()!] return yytext[0]; . { if (isascii(yytext[0]) && isprint(yytext[0])) grecs_error(&grecs_current_locus, 0, _("stray character %c"), yytext[0]); |