Commit 7f400d1c authored by Martin Mares's avatar Martin Mares
Browse files

After today's lengthy discussions about filter syntax, let's clean up

whitespace/semicolon rules for whole config file:

   o  All non-zero amounts of whitespace are equivalent to single space
      (aka `all the whitespace has been born equal' ;-)).
   o  Comments count as whitespace.
   o  Whitespace has no syntactic signifance (it can only separate lexical
      elements).
   o  Consequence: line ends are no longer treated as `;'s.
   o  Every declaration must be terminated by an explicit `;' unless
      or by a group enclosed in `{' and `}'.
parent 1127ac6e
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -119,8 +119,7 @@ WHITE [ \t]

{WHITE}+

\\\n	conf_lino++;
\n	{ conf_lino++; return ';'; }
\n	conf_lino++;

#	BEGIN(COMMENT);

@@ -131,7 +130,6 @@ WHITE [ \t]
<COMMENT>\n {
  conf_lino++;
  BEGIN(INITIAL);
  return ';';
}

<COMMENT>.
+3 −3
Original line number Diff line number Diff line
@@ -54,10 +54,10 @@ config: conf_entries END {

conf_entries:
   /* EMPTY */
 | conf_entries conf ';'
 | conf_entries conf
 ;

CF_ADDTO(conf, /* EMPTY */)
CF_ADDTO(conf, ';')

/* Constant expressions */

@@ -74,7 +74,7 @@ expr:

CF_ADDTO(conf, definition)
definition:
   DEFINE SYM '=' expr {
   DEFINE SYM '=' expr ';' {
     if ($2->class != SYM_VOID) cf_error("Symbol already defined");
     $2->class = SYM_NUMBER;
     $2->aux = $4;
+22 −22
Original line number Diff line number Diff line
@@ -4,44 +4,44 @@

# Yet another comment

#router id 62.168.0.1
#router id 62.168.0.1;

#define xyzzy = 120+10
#define xyzzy = 120+10;

#filter sink { reject; }
#filter okay { accept; }

#protocol rip MyRIP_test {
#	preference xyzzy
#	debug all
#	preference xyzzy;
#	debug all;
#}

protocol direct {
#	disabled
#	interface "-eth*", "*"
#	disabled;
#	interface "-eth*", "*";
}

protocol kernel {
#	disabled
#	learn			# Learn all routes from the kernel
	persist			# Don't remove routes on bird shutdown
	scan time 20		# Scan kernel routing table every 20 seconds
#	async off		# Netlink: Disable asynchronous events
#	input filter sink
#	output filter okay
#	disabled;
#	learn;			# Learn all routes from the kernel
	persist;		# Don't remove routes on bird shutdown
	scan time 20;		# Scan kernel routing table every 20 seconds
#	async off;		# Netlink: Disable asynchronous events
#	input filter sink;
#	output filter okay;
}

protocol device {
	scan time 10		# Scan interfaces every 10 seconds
	scan time 10;		# Scan interfaces every 10 seconds
}

protocol static {
#	disabled
#	route 0.0.0.0/0 via 62.168.0.13
#	route 62.168.0.0/25 reject
#	route 10.0.0.0/8 reject
#	route 10.1.1.0:255.255.255.0 via 62.168.0.3
#	route 10.1.2.0:255.255.255.0 via 62.168.0.3
#	route 10.1.3.0:255.255.255.0 via 62.168.0.4
#	route 10.2.0.0/24 via "arc0"
#	disabled;
#	route 0.0.0.0/0 via 62.168.0.13;
#	route 62.168.0.0/25 reject;
#	route 10.0.0.0/8 reject;
#	route 10.1.1.0:255.255.255.0 via 62.168.0.3;
#	route 10.1.2.0:255.255.255.0 via 62.168.0.3;
#	route 10.1.3.0:255.255.255.0 via 62.168.0.4;
#	route 10.2.0.0/24 via "arc0";
}
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ CF_GRAMMAR
/* Setting of router ID */

CF_ADDTO(conf, rtrid)
rtrid: ROUTER ID idval {
rtrid: ROUTER ID idval ';' {
   new_config->router_id = $3;
   }
 ;