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}+
|
{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>.
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
Loading…
Reference in a new issue