summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;