Commit 7f400d1c authored by Martin Mareš's avatar Martin Mareš
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
......@@ -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;
}
;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment