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 `}'.
This commit is contained in:
Martin Mares 1999-03-29 19:04:14 +00:00
parent 1127ac6ec7
commit 7f400d1c62
4 changed files with 27 additions and 29 deletions

View file

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

View file

@ -54,10 +54,10 @@ config: conf_entries END {
conf_entries: conf_entries:
/* EMPTY */ /* EMPTY */
| conf_entries conf ';' | conf_entries conf
; ;
CF_ADDTO(conf, /* EMPTY */) CF_ADDTO(conf, ';')
/* Constant expressions */ /* Constant expressions */
@ -74,7 +74,7 @@ expr:
CF_ADDTO(conf, definition) CF_ADDTO(conf, definition)
definition: definition:
DEFINE SYM '=' expr { DEFINE SYM '=' expr ';' {
if ($2->class != SYM_VOID) cf_error("Symbol already defined"); if ($2->class != SYM_VOID) cf_error("Symbol already defined");
$2->class = SYM_NUMBER; $2->class = SYM_NUMBER;
$2->aux = $4; $2->aux = $4;

View file

@ -4,44 +4,44 @@
# Yet another comment # 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 sink { reject; }
#filter okay { accept; } #filter okay { accept; }
#protocol rip MyRIP_test { #protocol rip MyRIP_test {
# preference xyzzy # preference xyzzy;
# debug all # debug all;
#} #}
protocol direct { protocol direct {
# disabled # disabled;
# interface "-eth*", "*" # interface "-eth*", "*";
} }
protocol kernel { protocol kernel {
# disabled # disabled;
# learn # Learn all routes from the kernel # learn; # Learn all routes from the kernel
persist # Don't remove routes on bird shutdown persist; # Don't remove routes on bird shutdown
scan time 20 # Scan kernel routing table every 20 seconds scan time 20; # Scan kernel routing table every 20 seconds
# async off # Netlink: Disable asynchronous events # async off; # Netlink: Disable asynchronous events
# input filter sink # input filter sink;
# output filter okay # output filter okay;
} }
protocol device { protocol device {
scan time 10 # Scan interfaces every 10 seconds scan time 10; # Scan interfaces every 10 seconds
} }
protocol static { protocol static {
# disabled # disabled;
# route 0.0.0.0/0 via 62.168.0.13 # route 0.0.0.0/0 via 62.168.0.13;
# route 62.168.0.0/25 reject # route 62.168.0.0/25 reject;
# route 10.0.0.0/8 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.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.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.1.3.0:255.255.255.0 via 62.168.0.4;
# route 10.2.0.0/24 via "arc0" # route 10.2.0.0/24 via "arc0";
} }

View file

@ -26,7 +26,7 @@ CF_GRAMMAR
/* Setting of router ID */ /* Setting of router ID */
CF_ADDTO(conf, rtrid) CF_ADDTO(conf, rtrid)
rtrid: ROUTER ID idval { rtrid: ROUTER ID idval ';' {
new_config->router_id = $3; new_config->router_id = $3;
} }
; ;