network:north = {
ip = 10.1.1.0; mask = 255.255.255.0;
host:asterix = {ip = 10.1.1.10;}
host:obelix = {ip = 10.1.1.11;}
host:idefix = {ip = 10.1.1.12;}
host:ix_13_20 = {range = 10.1.1.13 - 10.1.1.20;}
}
####
host:ix_13_20 = {ip = 10.1.1.13; ip = 10.1.1.14; ..... ; ip = 10.1.1.20 }
####
startrule: network_object(s)
ip: 'ip' '=' /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
ip_nosemi: 'ip' '=' /\d{1,3}\.\d{1,3}\.\d{1,3}\.d{1,3}/
mask: /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3};/
host: /host:\w+/ '=' '{' ip(s) '}'
host_range: /host:\w+/ '=' '{' 'range' '=' ip_nosemi '-' ip '}'
hosts_or_range: host(s?) | host_range
#hosts_or_range: host(s?) | host_range
network_object: /network:(\w+)/ '=' '{'
ip 'mask' '=' mask hosts_or_range '}'
{ print "Found network object named $item[1] " .
"with IP $item{ip} and MASK $item{mask}\n"; }