# HG changeset patch # User "Tomas Zeman " # Date 1257349416 -3600 # Node ID 23467e5d2602f9c1fc4ed5fe5f339339283041a7 # Parent 7b9f165f3a450e86f7ef7d2e51bb56a00a08fe77 ciena.grammar: device-wide vlan list diff -r 7b9f165f3a45 -r 23467e5d2602 ciena.grammar --- a/ciena.grammar Wed Nov 04 16:16:32 2009 +0100 +++ b/ciena.grammar Wed Nov 04 16:43:36 2009 +0100 @@ -25,10 +25,11 @@ $::res->{vc} = {}; $::res->{vs} = {}; $::res->{"vs-vlans"} = {}; - +$::res->{vlans} = {}; # local (current line) attribute-value-list, ie. property value my $avl = {}; +my $vlan_range = {}; # Consumes attribute value list. # @param type Type (port/sub_port/etc). @@ -78,6 +79,7 @@ | l_cfm_service | l_vc | l_vs + | l_vlan | word(s) eol word: /[0-9a-zA-Z:\/_\#\"\.,-]+/ @@ -256,3 +258,17 @@ } } +# Vlan +vlan_s_range: /\d+/"-"/\d+/ + { for (my $i = $item[1]; $i <= $item[3]; $i++) { $vlan_range->{$i} = 1; } } + | /\d+/ + { $vlan_range->{$item[1]} = 1 } +vlan_range: vlan_s_range","vlan_range + | vlan_s_range +l_vlan: "vlan" "create" "vlan" vlan_range + { + foreach my $vlan (keys %$vlan_range) { + $::res->{vlans}->{$vlan} = 1; + } + $vlan_range = {}; + }