summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Machek <pavel@ucw.cz>2000-05-16 14:24:33 +0000
committerPavel Machek <pavel@ucw.cz>2000-05-16 14:24:33 +0000
commit60de3356ab9b1996a84e3ba2865176a078b6d0ca (patch)
tree75334091f707d3ad949150b427e741aa0735f3f9
parente2f4f275646d21de363c32ff3c8fb4f492f07c04 (diff)
Resolved shift/reduce conflict
-rw-r--r--conf/confbase.Y1
-rw-r--r--filter/config.Y4
-rw-r--r--filter/test.conf2
3 files changed, 4 insertions, 3 deletions
diff --git a/conf/confbase.Y b/conf/confbase.Y
index 31b36173..b48a9290 100644
--- a/conf/confbase.Y
+++ b/conf/confbase.Y
@@ -56,6 +56,7 @@ CF_DECLS
%type <a> ipa
%type <px> prefix prefix_or_ipa
+%nonassoc PREFIX_DUMMY
%nonassoc '=' '<' '>' '~' '.' GEQ LEQ NEQ
%left '+' '-'
%left '*' '/' '%'
diff --git a/filter/config.Y b/filter/config.Y
index a99e4a54..accf3184 100644
--- a/filter/config.Y
+++ b/filter/config.Y
@@ -211,7 +211,7 @@ pair:
* Complex types, their bison value is struct f_val
*/
fprefix_s:
- IPA '/' NUM {
+ IPA '/' NUM %prec '/' {
if (!ip_is_prefix($1, $3)) cf_error("Invalid network prefix: %I/%d", $1, $3);
$$.type = T_PREFIX; $$.val.px.ip = $1; $$.val.px.len = $3;
}
@@ -225,7 +225,7 @@ fprefix:
;
fipa:
- IPA { $$.type = T_IP; $$.val.px.ip = $1; }
+ IPA %prec PREFIX_DUMMY { $$.type = T_IP; $$.val.px.ip = $1; }
;
set_atom:
diff --git a/filter/test.conf b/filter/test.conf
index bce8cfec..c7fe415f 100644
--- a/filter/test.conf
+++ b/filter/test.conf
@@ -6,7 +6,7 @@
router id 62.168.0.1;
-#define xyzzy = 120+10;
+define xyzzy = (120+10);
function callme(int arg1; int arg2)
int local1;