ciena.grammar
changeset 27 99ddc553a868
parent 26 e2265c3545d7
child 28 3337257bf0e7
equal deleted inserted replaced
26:e2265c3545d7 27:99ddc553a868
    48 $::res->{'cfm-service'} = {};
    48 $::res->{'cfm-service'} = {};
    49 $::res->{vc} = {};
    49 $::res->{vc} = {};
    50 $::res->{vs} = {};
    50 $::res->{vs} = {};
    51 $::res->{"vs-vlans"} = {};
    51 $::res->{"vs-vlans"} = {};
    52 $::res->{vlans} = {};
    52 $::res->{vlans} = {};
       
    53 $::res->{interface} = {};
    53 
    54 
    54 # local (current line) attribute-value-list, ie. property value
    55 # local (current line) attribute-value-list, ie. property value
    55 my $avl = {};
    56 my $avl = {};
    56 my $vlan_range = {};
    57 my $vlan_range = {};
    57 
    58 
   102 		| l_tunnel
   103 		| l_tunnel
   103 		| l_cfm_service
   104 		| l_cfm_service
   104 		| l_vc
   105 		| l_vc
   105 		| l_vs
   106 		| l_vs
   106 		| l_vlan
   107 		| l_vlan
       
   108 		| l_iface
   107 		| word(s) #eol
   109 		| word(s) #eol
   108 
   110 
   109 word:		/[0-9a-zA-Z:\/_\#\"\.\$,+<>=-]+/
   111 word:		/[0-9a-zA-Z:\/_\#\"\.\$,+<>=-]+/
   110 		{ $item[1] }
   112 		{ $item[1] }
   111 
   113 
   112 identifier:	/[0-9a-zA-Z:_-]+/
   114 identifier:	/[0-9a-zA-Z:_-]+/
       
   115 		{ $item[1] }
       
   116 
       
   117 ip4:		/\d+\.\d+\.\d+\.\d+/
   113 		{ $item[1] }
   118 		{ $item[1] }
   114 
   119 
   115 quoted_text:	<perl_quotelike>
   120 quoted_text:	<perl_quotelike>
   116 		{ $item[1][2] }
   121 		{ $item[1][2] }
   117 		| /[0-9a-zA-Z:\/_\#\"\.,-]+/
   122 		| /[0-9a-zA-Z:\/_\#\"\.,-]+/
   311 			$::res->{port}->{$item{port_num}}->{vlans}->{$vlan} = $action;
   316 			$::res->{port}->{$item{port_num}}->{vlans}->{$vlan} = $action;
   312 		}
   317 		}
   313 		$vlan_range = {};
   318 		$vlan_range = {};
   314 		}
   319 		}
   315 
   320 
       
   321 # Interface
       
   322 l_iface:	"interface" "remote" "set" "ip" ip4 "subnet" ip4
       
   323 		{
       
   324 		my ($ip, $mask) = ($item[5], $item[7]);
       
   325 		$::res->{interface}->{remote} = {
       
   326 			ip => $ip,
       
   327 			mask => $mask
       
   328 		}
       
   329 		}
       
   330 		| "interface" "local" "disable"
       
   331 		{ $::res->{interface}->{'local'}->{disabled} = 1; }
       
   332 		| "interface" "set" "gateway" ip4
       
   333 		{ $::res->{interface}->{gateway} = $item{ip4}; }
       
   334 		| "interface" "create" "remote-interface" identifier "ip" ip4 "subnet" ip4 "vs" identifier
       
   335 		{
       
   336 		my ($iface, $ip, $mask, $vs) = ($item[4], $item[6], $item[8], $item[10]);
       
   337 		$::res->{interface}->{remote} = {
       
   338 			ip => $ip,
       
   339 			mask => $mask,
       
   340 			id => $iface,
       
   341 			vs => $vs,
       
   342 		}
       
   343 		}