From fc4398b4e1d18142a5c428a7c90484071a81ab9c Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Tue, 4 Jul 2023 19:07:30 +0200 Subject: [PATCH 1/7] Filter: Better syntax for function return types The C-style syntax does not really fit into rest of our syntax. --- conf/cf-lex.l | 1 + conf/confbase.Y | 4 ++-- doc/bird.sgml | 16 ++++++++-------- filter/config.Y | 30 +++++++++++++++--------------- filter/f-inst.c | 2 -- filter/test.conf | 26 +++++++++++++------------- 6 files changed, 39 insertions(+), 40 deletions(-) diff --git a/conf/cf-lex.l b/conf/cf-lex.l index dcd54b81..cee0e63e 100644 --- a/conf/cf-lex.l +++ b/conf/cf-lex.l @@ -380,6 +380,7 @@ else: { \>\= return GEQ; \&\& return AND; \|\| return OR; +\-\> return IMP; \[\= return PO; \=\] return PC; diff --git a/conf/confbase.Y b/conf/confbase.Y index 2efeb29f..7b368fc6 100644 --- a/conf/confbase.Y +++ b/conf/confbase.Y @@ -98,7 +98,7 @@ CF_DECLS } %token END CLI_MARKER INVALID_TOKEN ELSECOL DDOT -%token GEQ LEQ NEQ AND OR +%token GEQ LEQ NEQ AND OR IMP %token PO PC %token NUM ENUM %token IP4 @@ -125,7 +125,7 @@ CF_DECLS %nonassoc PREFIX_DUMMY %left AND OR -%nonassoc '=' '<' '>' '~' GEQ LEQ NEQ NMA PO PC +%nonassoc '=' '<' '>' '~' GEQ LEQ NEQ NMA IMP PO PC %left '+' '-' %left '*' '/' '%' %left '!' diff --git a/doc/bird.sgml b/doc/bird.sgml index 3fcf0025..3be266cb 100644 --- a/doc/bird.sgml +++ b/doc/bird.sgml @@ -539,7 +539,7 @@ include "tablename.conf";; Define a filter. You can learn more about filters in the following chapter. -