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:
parent
1127ac6ec7
commit
7f400d1c62
4 changed files with 27 additions and 29 deletions
|
@ -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>.
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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";
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
;
|
||||
|
|
Loading…
Reference in a new issue