diff options
author | Martin Mares <mj@ucw.cz> | 1999-01-15 19:04:28 +0100 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1999-01-15 19:04:28 +0100 |
commit | c9b6670608577521c883db4bccd75b871568b7f7 (patch) | |
tree | c5ad6bd07b93413875be03c156e4cd7db5e98763 /conf | |
parent | 3169cf699175a2489712eee955a9ee9890ef00c9 (diff) | |
download | bird-c9b6670608577521c883db4bccd75b871568b7f7.tar bird-c9b6670608577521c883db4bccd75b871568b7f7.zip |
Original `expr' is back, filter expressions renamed to `term'.
In the future, we'll allow any filter term in place of `expr' and we'll
just evaluate it immediately, but not now as we have no evaluation
routines.
Diffstat (limited to 'conf')
-rw-r--r-- | conf/confbase.Y | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/conf/confbase.Y b/conf/confbase.Y index 116cc8b..a5d6838 100644 --- a/conf/confbase.Y +++ b/conf/confbase.Y @@ -1,7 +1,7 @@ /* * BIRD -- Configuration Parser Top * - * (c) 1998 Martin Mares <mj@ucw.cz> + * (c) 1998--1999 Martin Mares <mj@ucw.cz> * * Can be freely distributed and used under the terms of the GNU GPL. */ @@ -34,7 +34,7 @@ CF_DECLS %token <s> SYM %token <t> TEXT -%type <i> cexpr bool pxlen +%type <i> expr bool pxlen %left '+' '-' %left '*' '/' '%' @@ -59,20 +59,20 @@ CF_ADDTO(conf, /* EMPTY */) /* Constant expressions */ -cexpr: +expr: NUM - | cexpr '+' cexpr { $$ = $1 + $3; } - | cexpr '-' cexpr { $$ = $1 - $3; } - | cexpr '*' cexpr { $$ = $1 * $3; } - | cexpr '/' cexpr { if ($3) $$ = $1 / $3; else cf_error("Division by zero"); } - | cexpr '%' cexpr { if ($3) $$ = $1 % $3; else cf_error("Division by zero"); } - | '(' cexpr ')' { $$ = $2; } + | expr '+' expr { $$ = $1 + $3; } + | expr '-' expr { $$ = $1 - $3; } + | expr '*' expr { $$ = $1 * $3; } + | expr '/' expr { if ($3) $$ = $1 / $3; else cf_error("Division by zero"); } + | expr '%' expr { if ($3) $$ = $1 % $3; else cf_error("Division by zero"); } + | '(' expr ')' { $$ = $2; } | SYM { if ($1->class != SYM_NUMBER) cf_error("Number expected"); else $$ = $1->aux; } ; CF_ADDTO(conf, definition) definition: - DEFINE SYM '=' cexpr { + DEFINE SYM '=' expr { if ($2->class != SYM_VOID) cf_error("Symbol already defined"); $2->class = SYM_NUMBER; $2->aux = $4; @@ -82,7 +82,7 @@ definition: /* Switches */ bool: - cexpr {$$ = !!$1; } + expr {$$ = !!$1; } | ON { $$ = 1; } | YES { $$ = 1; } | OFF { $$ = 0; } |