From 59b13f9a1d684a632c2c73352f0ec08a63bc0913 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 21 Aug 2005 23:30:17 +0000 Subject: r9460: - Move pidl to lib/. This fixes standalone installation of pidl. - Update the README - Allow building the docs stand-alone (This used to be commit b56084ce251ab7a35dd1422f38de258e8e1e1477) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 2609 ++++++++++++++++++++++++++++++++++++ 1 file changed, 2609 insertions(+) create mode 100644 source4/pidl/lib/Parse/Pidl/IDL.pm (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm new file mode 100644 index 0000000000..7f7e5bcdca --- /dev/null +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -0,0 +1,2609 @@ +#################################################################### +# +# This file was generated using Parse::Yapp version 1.05. +# +# Don't edit this file, use source file instead. +# +# ANY CHANGE MADE HERE WILL BE LOST ! +# +#################################################################### +package Parse::Pidl::IDL; +use vars qw ( @ISA ); +use strict; + +@ISA= qw ( Parse::Yapp::Driver ); +#Included Parse/Yapp/Driver.pm file---------------------------------------- +{ +# +# Module Parse::Yapp::Driver +# +# This module is part of the Parse::Yapp package available on your +# nearest CPAN +# +# Any use of this module in a standalone parser make the included +# text under the same copyright as the Parse::Yapp module itself. +# +# This notice should remain unchanged. +# +# (c) Copyright 1998-2001 Francois Desarmenien, all rights reserved. +# (see the pod text in Parse::Yapp module for use and distribution rights) +# + +package Parse::Yapp::Driver; + +require 5.004; + +use strict; + +use vars qw ( $VERSION $COMPATIBLE $FILENAME ); + +$VERSION = '1.05'; +$COMPATIBLE = '0.07'; +$FILENAME=__FILE__; + +use Carp; + +#Known parameters, all starting with YY (leading YY will be discarded) +my(%params)=(YYLEX => 'CODE', 'YYERROR' => 'CODE', YYVERSION => '', + YYRULES => 'ARRAY', YYSTATES => 'ARRAY', YYDEBUG => ''); +#Mandatory parameters +my(@params)=('LEX','RULES','STATES'); + +sub new { + my($class)=shift; + my($errst,$nberr,$token,$value,$check,$dotpos); + my($self)={ ERROR => \&_Error, + ERRST => \$errst, + NBERR => \$nberr, + TOKEN => \$token, + VALUE => \$value, + DOTPOS => \$dotpos, + STACK => [], + DEBUG => 0, + CHECK => \$check }; + + _CheckParams( [], \%params, \@_, $self ); + + exists($$self{VERSION}) + and $$self{VERSION} < $COMPATIBLE + and croak "Yapp driver version $VERSION ". + "incompatible with version $$self{VERSION}:\n". + "Please recompile parser module."; + + ref($class) + and $class=ref($class); + + bless($self,$class); +} + +sub YYParse { + my($self)=shift; + my($retval); + + _CheckParams( \@params, \%params, \@_, $self ); + + if($$self{DEBUG}) { + _DBLoad(); + $retval = eval '$self->_DBParse()';#Do not create stab entry on compile + $@ and die $@; + } + else { + $retval = $self->_Parse(); + } + $retval +} + +sub YYData { + my($self)=shift; + + exists($$self{USER}) + or $$self{USER}={}; + + $$self{USER}; + +} + +sub YYErrok { + my($self)=shift; + + ${$$self{ERRST}}=0; + undef; +} + +sub YYNberr { + my($self)=shift; + + ${$$self{NBERR}}; +} + +sub YYRecovering { + my($self)=shift; + + ${$$self{ERRST}} != 0; +} + +sub YYAbort { + my($self)=shift; + + ${$$self{CHECK}}='ABORT'; + undef; +} + +sub YYAccept { + my($self)=shift; + + ${$$self{CHECK}}='ACCEPT'; + undef; +} + +sub YYError { + my($self)=shift; + + ${$$self{CHECK}}='ERROR'; + undef; +} + +sub YYSemval { + my($self)=shift; + my($index)= $_[0] - ${$$self{DOTPOS}} - 1; + + $index < 0 + and -$index <= @{$$self{STACK}} + and return $$self{STACK}[$index][1]; + + undef; #Invalid index +} + +sub YYCurtok { + my($self)=shift; + + @_ + and ${$$self{TOKEN}}=$_[0]; + ${$$self{TOKEN}}; +} + +sub YYCurval { + my($self)=shift; + + @_ + and ${$$self{VALUE}}=$_[0]; + ${$$self{VALUE}}; +} + +sub YYExpect { + my($self)=shift; + + keys %{$self->{STATES}[$self->{STACK}[-1][0]]{ACTIONS}} +} + +sub YYLexer { + my($self)=shift; + + $$self{LEX}; +} + + +################# +# Private stuff # +################# + + +sub _CheckParams { + my($mandatory,$checklist,$inarray,$outhash)=@_; + my($prm,$value); + my($prmlst)={}; + + while(($prm,$value)=splice(@$inarray,0,2)) { + $prm=uc($prm); + exists($$checklist{$prm}) + or croak("Unknow parameter '$prm'"); + ref($value) eq $$checklist{$prm} + or croak("Invalid value for parameter '$prm'"); + $prm=unpack('@2A*',$prm); + $$outhash{$prm}=$value; + } + for (@$mandatory) { + exists($$outhash{$_}) + or croak("Missing mandatory parameter '".lc($_)."'"); + } +} + +sub _Error { + print "Parse error.\n"; +} + +sub _DBLoad { + { + no strict 'refs'; + + exists(${__PACKAGE__.'::'}{_DBParse})#Already loaded ? + and return; + } + my($fname)=__FILE__; + my(@drv); + open(DRV,"<$fname") or die "Report this as a BUG: Cannot open $fname"; + while() { + /^\s*sub\s+_Parse\s*{\s*$/ .. /^\s*}\s*#\s*_Parse\s*$/ + and do { + s/^#DBG>//; + push(@drv,$_); + } + } + close(DRV); + + $drv[0]=~s/_P/_DBP/; + eval join('',@drv); +} + +#Note that for loading debugging version of the driver, +#this file will be parsed from 'sub _Parse' up to '}#_Parse' inclusive. +#So, DO NOT remove comment at end of sub !!! +sub _Parse { + my($self)=shift; + + my($rules,$states,$lex,$error) + = @$self{ 'RULES', 'STATES', 'LEX', 'ERROR' }; + my($errstatus,$nberror,$token,$value,$stack,$check,$dotpos) + = @$self{ 'ERRST', 'NBERR', 'TOKEN', 'VALUE', 'STACK', 'CHECK', 'DOTPOS' }; + +#DBG> my($debug)=$$self{DEBUG}; +#DBG> my($dbgerror)=0; + +#DBG> my($ShowCurToken) = sub { +#DBG> my($tok)='>'; +#DBG> for (split('',$$token)) { +#DBG> $tok.= (ord($_) < 32 or ord($_) > 126) +#DBG> ? sprintf('<%02X>',ord($_)) +#DBG> : $_; +#DBG> } +#DBG> $tok.='<'; +#DBG> }; + + $$errstatus=0; + $$nberror=0; + ($$token,$$value)=(undef,undef); + @$stack=( [ 0, undef ] ); + $$check=''; + + while(1) { + my($actions,$act,$stateno); + + $stateno=$$stack[-1][0]; + $actions=$$states[$stateno]; + +#DBG> print STDERR ('-' x 40),"\n"; +#DBG> $debug & 0x2 +#DBG> and print STDERR "In state $stateno:\n"; +#DBG> $debug & 0x08 +#DBG> and print STDERR "Stack:[". +#DBG> join(',',map { $$_[0] } @$stack). +#DBG> "]\n"; + + + if (exists($$actions{ACTIONS})) { + + defined($$token) + or do { + ($$token,$$value)=&$lex($self); +#DBG> $debug & 0x01 +#DBG> and print STDERR "Need token. Got ".&$ShowCurToken."\n"; + }; + + $act= exists($$actions{ACTIONS}{$$token}) + ? $$actions{ACTIONS}{$$token} + : exists($$actions{DEFAULT}) + ? $$actions{DEFAULT} + : undef; + } + else { + $act=$$actions{DEFAULT}; +#DBG> $debug & 0x01 +#DBG> and print STDERR "Don't need token.\n"; + } + + defined($act) + and do { + + $act > 0 + and do { #shift + +#DBG> $debug & 0x04 +#DBG> and print STDERR "Shift and go to state $act.\n"; + + $$errstatus + and do { + --$$errstatus; + +#DBG> $debug & 0x10 +#DBG> and $dbgerror +#DBG> and $$errstatus == 0 +#DBG> and do { +#DBG> print STDERR "**End of Error recovery.\n"; +#DBG> $dbgerror=0; +#DBG> }; + }; + + + push(@$stack,[ $act, $$value ]); + + $$token ne '' #Don't eat the eof + and $$token=$$value=undef; + next; + }; + + #reduce + my($lhs,$len,$code,@sempar,$semval); + ($lhs,$len,$code)=@{$$rules[-$act]}; + +#DBG> $debug & 0x04 +#DBG> and $act +#DBG> and print STDERR "Reduce using rule ".-$act." ($lhs,$len): "; + + $act + or $self->YYAccept(); + + $$dotpos=$len; + + unpack('A1',$lhs) eq '@' #In line rule + and do { + $lhs =~ /^\@[0-9]+\-([0-9]+)$/ + or die "In line rule name '$lhs' ill formed: ". + "report it as a BUG.\n"; + $$dotpos = $1; + }; + + @sempar = $$dotpos + ? map { $$_[1] } @$stack[ -$$dotpos .. -1 ] + : (); + + $semval = $code ? &$code( $self, @sempar ) + : @sempar ? $sempar[0] : undef; + + splice(@$stack,-$len,$len); + + $$check eq 'ACCEPT' + and do { + +#DBG> $debug & 0x04 +#DBG> and print STDERR "Accept.\n"; + + return($semval); + }; + + $$check eq 'ABORT' + and do { + +#DBG> $debug & 0x04 +#DBG> and print STDERR "Abort.\n"; + + return(undef); + + }; + +#DBG> $debug & 0x04 +#DBG> and print STDERR "Back to state $$stack[-1][0], then "; + + $$check eq 'ERROR' + or do { +#DBG> $debug & 0x04 +#DBG> and print STDERR +#DBG> "go to state $$states[$$stack[-1][0]]{GOTOS}{$lhs}.\n"; + +#DBG> $debug & 0x10 +#DBG> and $dbgerror +#DBG> and $$errstatus == 0 +#DBG> and do { +#DBG> print STDERR "**End of Error recovery.\n"; +#DBG> $dbgerror=0; +#DBG> }; + + push(@$stack, + [ $$states[$$stack[-1][0]]{GOTOS}{$lhs}, $semval ]); + $$check=''; + next; + }; + +#DBG> $debug & 0x04 +#DBG> and print STDERR "Forced Error recovery.\n"; + + $$check=''; + + }; + + #Error + $$errstatus + or do { + + $$errstatus = 1; + &$error($self); + $$errstatus # if 0, then YYErrok has been called + or next; # so continue parsing + +#DBG> $debug & 0x10 +#DBG> and do { +#DBG> print STDERR "**Entering Error recovery.\n"; +#DBG> ++$dbgerror; +#DBG> }; + + ++$$nberror; + + }; + + $$errstatus == 3 #The next token is not valid: discard it + and do { + $$token eq '' # End of input: no hope + and do { +#DBG> $debug & 0x10 +#DBG> and print STDERR "**At eof: aborting.\n"; + return(undef); + }; + +#DBG> $debug & 0x10 +#DBG> and print STDERR "**Dicard invalid token ".&$ShowCurToken.".\n"; + + $$token=$$value=undef; + }; + + $$errstatus=3; + + while( @$stack + and ( not exists($$states[$$stack[-1][0]]{ACTIONS}) + or not exists($$states[$$stack[-1][0]]{ACTIONS}{error}) + or $$states[$$stack[-1][0]]{ACTIONS}{error} <= 0)) { + +#DBG> $debug & 0x10 +#DBG> and print STDERR "**Pop state $$stack[-1][0].\n"; + + pop(@$stack); + } + + @$stack + or do { + +#DBG> $debug & 0x10 +#DBG> and print STDERR "**No state left on stack: aborting.\n"; + + return(undef); + }; + + #shift the error token + +#DBG> $debug & 0x10 +#DBG> and print STDERR "**Shift \$error token and go to state ". +#DBG> $$states[$$stack[-1][0]]{ACTIONS}{error}. +#DBG> ".\n"; + + push(@$stack, [ $$states[$$stack[-1][0]]{ACTIONS}{error}, undef ]); + + } + + #never reached + croak("Error in driver logic. Please, report it as a BUG"); + +}#_Parse +#DO NOT remove comment + +1; + +} +#End of include-------------------------------------------------- + + + + +sub new { + my($class)=shift; + ref($class) + and $class=ref($class); + + my($self)=$class->SUPER::new( yyversion => '1.05', + yystates => +[ + {#State 0 + DEFAULT => -1, + GOTOS => { + 'idl' => 1 + } + }, + {#State 1 + ACTIONS => { + '' => 2 + }, + DEFAULT => -63, + GOTOS => { + 'interface' => 3, + 'coclass' => 4, + 'property_list' => 5 + } + }, + {#State 2 + DEFAULT => 0 + }, + {#State 3 + DEFAULT => -2 + }, + {#State 4 + DEFAULT => -3 + }, + {#State 5 + ACTIONS => { + "coclass" => 6, + "interface" => 8, + "[" => 7 + } + }, + {#State 6 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 10 + } + }, + {#State 7 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 11, + 'properties' => 13, + 'property' => 12 + } + }, + {#State 8 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 14 + } + }, + {#State 9 + DEFAULT => -89 + }, + {#State 10 + ACTIONS => { + "{" => 15 + } + }, + {#State 11 + ACTIONS => { + "(" => 16 + }, + DEFAULT => -67 + }, + {#State 12 + DEFAULT => -65 + }, + {#State 13 + ACTIONS => { + "," => 17, + "]" => 18 + } + }, + {#State 14 + ACTIONS => { + ":" => 19 + }, + DEFAULT => -8, + GOTOS => { + 'base_interface' => 20 + } + }, + {#State 15 + DEFAULT => -5, + GOTOS => { + 'interface_names' => 21 + } + }, + {#State 16 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'listtext' => 26, + 'anytext' => 25, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 17 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 11, + 'property' => 29 + } + }, + {#State 18 + DEFAULT => -64 + }, + {#State 19 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 30 + } + }, + {#State 20 + ACTIONS => { + "{" => 31 + } + }, + {#State 21 + ACTIONS => { + "}" => 32, + "interface" => 33 + } + }, + {#State 22 + DEFAULT => -93 + }, + {#State 23 + DEFAULT => -74 + }, + {#State 24 + DEFAULT => -76 + }, + {#State 25 + ACTIONS => { + "-" => 34, + "<" => 35, + "+" => 37, + "~" => 36, + "&" => 39, + "{" => 38, + "/" => 40, + "(" => 41, + "|" => 42, + "*" => 43, + "." => 44, + ">" => 45 + }, + DEFAULT => -69 + }, + {#State 26 + ACTIONS => { + "," => 46, + ")" => 47 + } + }, + {#State 27 + DEFAULT => -75 + }, + {#State 28 + DEFAULT => -92 + }, + {#State 29 + DEFAULT => -66 + }, + {#State 30 + DEFAULT => -9 + }, + {#State 31 + ACTIONS => { + "typedef" => 48, + "union" => 49, + "enum" => 62, + "bitmap" => 63, + "declare" => 55, + "const" => 57, + "struct" => 60 + }, + DEFAULT => -63, + GOTOS => { + 'typedecl' => 61, + 'function' => 50, + 'bitmap' => 64, + 'definitions' => 51, + 'definition' => 54, + 'property_list' => 53, + 'usertype' => 52, + 'declare' => 66, + 'const' => 65, + 'struct' => 56, + 'enum' => 58, + 'typedef' => 59, + 'union' => 67 + } + }, + {#State 32 + ACTIONS => { + ";" => 68 + }, + DEFAULT => -94, + GOTOS => { + 'optional_semicolon' => 69 + } + }, + {#State 33 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 70 + } + }, + {#State 34 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 71, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 35 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 72, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 36 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 73, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 37 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 74, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 38 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 75, + 'text' => 24, + 'constant' => 27, + 'commalisttext' => 76 + } + }, + {#State 39 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 77, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 40 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 78, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 41 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 75, + 'text' => 24, + 'constant' => 27, + 'commalisttext' => 79 + } + }, + {#State 42 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 80, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 43 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 81, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 44 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 82, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 45 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 83, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 46 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 84, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 47 + DEFAULT => -68 + }, + {#State 48 + DEFAULT => -63, + GOTOS => { + 'property_list' => 85 + } + }, + {#State 49 + ACTIONS => { + 'IDENTIFIER' => 86 + }, + DEFAULT => -91, + GOTOS => { + 'optional_identifier' => 87 + } + }, + {#State 50 + DEFAULT => -12 + }, + {#State 51 + ACTIONS => { + "}" => 88, + "typedef" => 48, + "union" => 49, + "enum" => 62, + "bitmap" => 63, + "declare" => 55, + "const" => 57, + "struct" => 60 + }, + DEFAULT => -63, + GOTOS => { + 'typedecl' => 61, + 'function' => 50, + 'bitmap' => 64, + 'definition' => 89, + 'property_list' => 53, + 'usertype' => 52, + 'const' => 65, + 'struct' => 56, + 'declare' => 66, + 'enum' => 58, + 'typedef' => 59, + 'union' => 67 + } + }, + {#State 52 + ACTIONS => { + ";" => 90 + } + }, + {#State 53 + ACTIONS => { + 'IDENTIFIER' => 9, + "union" => 49, + "enum" => 62, + "bitmap" => 63, + "[" => 7, + 'void' => 91, + "struct" => 60 + }, + GOTOS => { + 'identifier' => 93, + 'struct' => 56, + 'enum' => 58, + 'type' => 94, + 'union' => 67, + 'bitmap' => 64, + 'usertype' => 92 + } + }, + {#State 54 + DEFAULT => -10 + }, + {#State 55 + DEFAULT => -63, + GOTOS => { + 'property_list' => 95 + } + }, + {#State 56 + DEFAULT => -26 + }, + {#State 57 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 96 + } + }, + {#State 58 + DEFAULT => -28 + }, + {#State 59 + DEFAULT => -14 + }, + {#State 60 + ACTIONS => { + 'IDENTIFIER' => 86 + }, + DEFAULT => -91, + GOTOS => { + 'optional_identifier' => 97 + } + }, + {#State 61 + DEFAULT => -16 + }, + {#State 62 + ACTIONS => { + 'IDENTIFIER' => 86 + }, + DEFAULT => -91, + GOTOS => { + 'optional_identifier' => 98 + } + }, + {#State 63 + ACTIONS => { + 'IDENTIFIER' => 86 + }, + DEFAULT => -91, + GOTOS => { + 'optional_identifier' => 99 + } + }, + {#State 64 + DEFAULT => -29 + }, + {#State 65 + DEFAULT => -13 + }, + {#State 66 + DEFAULT => -15 + }, + {#State 67 + DEFAULT => -27 + }, + {#State 68 + DEFAULT => -95 + }, + {#State 69 + DEFAULT => -4 + }, + {#State 70 + ACTIONS => { + ";" => 100 + } + }, + {#State 71 + ACTIONS => { + "<" => 35, + "~" => 36, + "{" => 38 + }, + DEFAULT => -77 + }, + {#State 72 + ACTIONS => { + "-" => 34, + "<" => 35, + "+" => 37, + "~" => 36, + "*" => 43, + "{" => 38, + "&" => 39, + "/" => 40, + "(" => 41, + "|" => 42, + "." => 44, + ">" => 45 + }, + DEFAULT => -81 + }, + {#State 73 + ACTIONS => { + "-" => 34, + "<" => 35, + "+" => 37, + "~" => 36, + "*" => 43, + "{" => 38, + "&" => 39, + "/" => 40, + "(" => 41, + "|" => 42, + "." => 44, + ">" => 45 + }, + DEFAULT => -86 + }, + {#State 74 + ACTIONS => { + "<" => 35, + "~" => 36, + "{" => 38 + }, + DEFAULT => -85 + }, + {#State 75 + ACTIONS => { + "-" => 34, + "<" => 35, + "+" => 37, + "~" => 36, + "*" => 43, + "{" => 38, + "&" => 39, + "/" => 40, + "(" => 41, + "|" => 42, + "." => 44, + ">" => 45 + }, + DEFAULT => -71 + }, + {#State 76 + ACTIONS => { + "}" => 101, + "," => 102 + } + }, + {#State 77 + ACTIONS => { + "<" => 35, + "~" => 36, + "{" => 38 + }, + DEFAULT => -83 + }, + {#State 78 + ACTIONS => { + "<" => 35, + "~" => 36, + "{" => 38 + }, + DEFAULT => -84 + }, + {#State 79 + ACTIONS => { + "," => 102, + ")" => 103 + } + }, + {#State 80 + ACTIONS => { + "<" => 35, + "~" => 36, + "{" => 38 + }, + DEFAULT => -82 + }, + {#State 81 + ACTIONS => { + "<" => 35, + "~" => 36, + "{" => 38 + }, + DEFAULT => -79 + }, + {#State 82 + ACTIONS => { + "<" => 35, + "~" => 36, + "{" => 38 + }, + DEFAULT => -78 + }, + {#State 83 + ACTIONS => { + "<" => 35, + "~" => 36, + "{" => 38 + }, + DEFAULT => -80 + }, + {#State 84 + ACTIONS => { + "-" => 34, + "<" => 35, + "+" => 37, + "~" => 36, + "&" => 39, + "{" => 38, + "/" => 40, + "|" => 42, + "(" => 41, + "*" => 43, + "." => 44, + ">" => 45 + }, + DEFAULT => -70 + }, + {#State 85 + ACTIONS => { + 'IDENTIFIER' => 9, + "union" => 49, + "enum" => 62, + "bitmap" => 63, + "[" => 7, + 'void' => 91, + "struct" => 60 + }, + GOTOS => { + 'identifier' => 93, + 'struct' => 56, + 'enum' => 58, + 'type' => 104, + 'union' => 67, + 'bitmap' => 64, + 'usertype' => 92 + } + }, + {#State 86 + DEFAULT => -90 + }, + {#State 87 + ACTIONS => { + "{" => 105 + } + }, + {#State 88 + ACTIONS => { + ";" => 68 + }, + DEFAULT => -94, + GOTOS => { + 'optional_semicolon' => 106 + } + }, + {#State 89 + DEFAULT => -11 + }, + {#State 90 + DEFAULT => -30 + }, + {#State 91 + DEFAULT => -33 + }, + {#State 92 + DEFAULT => -31 + }, + {#State 93 + DEFAULT => -32 + }, + {#State 94 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 107 + } + }, + {#State 95 + ACTIONS => { + "enum" => 111, + "bitmap" => 112, + "[" => 7 + }, + GOTOS => { + 'decl_enum' => 108, + 'decl_bitmap' => 109, + 'decl_type' => 110 + } + }, + {#State 96 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 113 + } + }, + {#State 97 + ACTIONS => { + "{" => 114 + } + }, + {#State 98 + ACTIONS => { + "{" => 115 + } + }, + {#State 99 + ACTIONS => { + "{" => 116 + } + }, + {#State 100 + DEFAULT => -6 + }, + {#State 101 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 117, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 102 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 118, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 103 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 119, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 104 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 120 + } + }, + {#State 105 + DEFAULT => -48, + GOTOS => { + 'union_elements' => 121 + } + }, + {#State 106 + DEFAULT => -7 + }, + {#State 107 + ACTIONS => { + "(" => 122 + } + }, + {#State 108 + DEFAULT => -21 + }, + {#State 109 + DEFAULT => -22 + }, + {#State 110 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 123 + } + }, + {#State 111 + DEFAULT => -23 + }, + {#State 112 + DEFAULT => -24 + }, + {#State 113 + ACTIONS => { + "[" => 124, + "=" => 126 + }, + GOTOS => { + 'array_len' => 125 + } + }, + {#State 114 + DEFAULT => -54, + GOTOS => { + 'element_list1' => 127 + } + }, + {#State 115 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 128, + 'enum_element' => 129, + 'enum_elements' => 130 + } + }, + {#State 116 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 133, + 'bitmap_elements' => 132, + 'bitmap_element' => 131 + } + }, + {#State 117 + ACTIONS => { + "-" => 34, + "<" => 35, + "+" => 37, + "~" => 36, + "*" => 43, + "{" => 38, + "&" => 39, + "/" => 40, + "(" => 41, + "|" => 42, + "." => 44, + ">" => 45 + }, + DEFAULT => -88 + }, + {#State 118 + ACTIONS => { + "-" => 34, + "<" => 35, + "+" => 37, + "~" => 36, + "*" => 43, + "{" => 38, + "&" => 39, + "/" => 40, + "(" => 41, + "|" => 42, + "." => 44, + ">" => 45 + }, + DEFAULT => -72 + }, + {#State 119 + ACTIONS => { + "<" => 35, + "~" => 36, + "{" => 38 + }, + DEFAULT => -87 + }, + {#State 120 + ACTIONS => { + "[" => 124 + }, + DEFAULT => -60, + GOTOS => { + 'array_len' => 134 + } + }, + {#State 121 + ACTIONS => { + "}" => 135 + }, + DEFAULT => -63, + GOTOS => { + 'optional_base_element' => 137, + 'property_list' => 136 + } + }, + {#State 122 + ACTIONS => { + "," => -56, + "void" => 141, + ")" => -56 + }, + DEFAULT => -63, + GOTOS => { + 'base_element' => 138, + 'element_list2' => 140, + 'property_list' => 139 + } + }, + {#State 123 + ACTIONS => { + ";" => 142 + } + }, + {#State 124 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + "]" => 143, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 144, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 125 + ACTIONS => { + "=" => 145 + } + }, + {#State 126 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 146, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 127 + ACTIONS => { + "}" => 147 + }, + DEFAULT => -63, + GOTOS => { + 'base_element' => 148, + 'property_list' => 139 + } + }, + {#State 128 + ACTIONS => { + "=" => 149 + }, + DEFAULT => -37 + }, + {#State 129 + DEFAULT => -35 + }, + {#State 130 + ACTIONS => { + "}" => 150, + "," => 151 + } + }, + {#State 131 + DEFAULT => -40 + }, + {#State 132 + ACTIONS => { + "}" => 152, + "," => 153 + } + }, + {#State 133 + ACTIONS => { + "=" => 154 + } + }, + {#State 134 + ACTIONS => { + ";" => 155 + } + }, + {#State 135 + DEFAULT => -50 + }, + {#State 136 + ACTIONS => { + "[" => 7 + }, + DEFAULT => -63, + GOTOS => { + 'base_or_empty' => 156, + 'base_element' => 157, + 'empty_element' => 158, + 'property_list' => 159 + } + }, + {#State 137 + DEFAULT => -49 + }, + {#State 138 + DEFAULT => -58 + }, + {#State 139 + ACTIONS => { + 'IDENTIFIER' => 9, + "union" => 49, + "enum" => 62, + "bitmap" => 63, + "[" => 7, + 'void' => 91, + "struct" => 60 + }, + GOTOS => { + 'identifier' => 93, + 'struct' => 56, + 'enum' => 58, + 'type' => 160, + 'union' => 67, + 'bitmap' => 64, + 'usertype' => 92 + } + }, + {#State 140 + ACTIONS => { + "," => 161, + ")" => 162 + } + }, + {#State 141 + DEFAULT => -57 + }, + {#State 142 + DEFAULT => -20 + }, + {#State 143 + ACTIONS => { + "[" => 124 + }, + DEFAULT => -60, + GOTOS => { + 'array_len' => 163 + } + }, + {#State 144 + ACTIONS => { + "-" => 34, + "<" => 35, + "+" => 37, + "~" => 36, + "&" => 39, + "{" => 38, + "/" => 40, + "|" => 42, + "(" => 41, + "*" => 43, + "." => 44, + "]" => 164, + ">" => 45 + } + }, + {#State 145 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 165, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 146 + ACTIONS => { + "-" => 34, + "<" => 35, + ";" => 166, + "+" => 37, + "~" => 36, + "&" => 39, + "{" => 38, + "/" => 40, + "|" => 42, + "(" => 41, + "*" => 43, + "." => 44, + ">" => 45 + } + }, + {#State 147 + DEFAULT => -43 + }, + {#State 148 + ACTIONS => { + ";" => 167 + } + }, + {#State 149 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 168, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 150 + DEFAULT => -34 + }, + {#State 151 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 128, + 'enum_element' => 169 + } + }, + {#State 152 + DEFAULT => -39 + }, + {#State 153 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 133, + 'bitmap_element' => 170 + } + }, + {#State 154 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 171, + 'text' => 24, + 'constant' => 27 + } + }, + {#State 155 + DEFAULT => -25 + }, + {#State 156 + DEFAULT => -47 + }, + {#State 157 + ACTIONS => { + ";" => 172 + } + }, + {#State 158 + DEFAULT => -46 + }, + {#State 159 + ACTIONS => { + 'IDENTIFIER' => 9, + "union" => 49, + ";" => 173, + "enum" => 62, + "bitmap" => 63, + 'void' => 91, + "[" => 7, + "struct" => 60 + }, + GOTOS => { + 'identifier' => 93, + 'struct' => 56, + 'enum' => 58, + 'type' => 160, + 'union' => 67, + 'bitmap' => 64, + 'usertype' => 92 + } + }, + {#State 160 + DEFAULT => -52, + GOTOS => { + 'pointers' => 174 + } + }, + {#State 161 + DEFAULT => -63, + GOTOS => { + 'base_element' => 175, + 'property_list' => 139 + } + }, + {#State 162 + ACTIONS => { + ";" => 176 + } + }, + {#State 163 + DEFAULT => -61 + }, + {#State 164 + ACTIONS => { + "[" => 124 + }, + DEFAULT => -60, + GOTOS => { + 'array_len' => 177 + } + }, + {#State 165 + ACTIONS => { + "-" => 34, + "<" => 35, + ";" => 178, + "+" => 37, + "~" => 36, + "&" => 39, + "{" => 38, + "/" => 40, + "|" => 42, + "(" => 41, + "*" => 43, + "." => 44, + ">" => 45 + } + }, + {#State 166 + DEFAULT => -17 + }, + {#State 167 + DEFAULT => -55 + }, + {#State 168 + ACTIONS => { + "-" => 34, + "<" => 35, + "+" => 37, + "~" => 36, + "&" => 39, + "{" => 38, + "/" => 40, + "|" => 42, + "(" => 41, + "*" => 43, + "." => 44, + ">" => 45 + }, + DEFAULT => -38 + }, + {#State 169 + DEFAULT => -36 + }, + {#State 170 + DEFAULT => -41 + }, + {#State 171 + ACTIONS => { + "-" => 34, + "<" => 35, + "+" => 37, + "~" => 36, + "&" => 39, + "{" => 38, + "/" => 40, + "|" => 42, + "(" => 41, + "*" => 43, + "." => 44, + ">" => 45 + }, + DEFAULT => -42 + }, + {#State 172 + DEFAULT => -45 + }, + {#State 173 + DEFAULT => -44 + }, + {#State 174 + ACTIONS => { + 'IDENTIFIER' => 9, + "*" => 180 + }, + GOTOS => { + 'identifier' => 179 + } + }, + {#State 175 + DEFAULT => -59 + }, + {#State 176 + DEFAULT => -19 + }, + {#State 177 + DEFAULT => -62 + }, + {#State 178 + DEFAULT => -18 + }, + {#State 179 + ACTIONS => { + "[" => 124 + }, + DEFAULT => -60, + GOTOS => { + 'array_len' => 181 + } + }, + {#State 180 + DEFAULT => -53 + }, + {#State 181 + DEFAULT => -51 + } +], + yyrules => +[ + [#Rule 0 + '$start', 2, undef + ], + [#Rule 1 + 'idl', 0, undef + ], + [#Rule 2 + 'idl', 2, +sub +#line 19 "build/pidl/idl.yp" +{ push(@{$_[1]}, $_[2]); $_[1] } + ], + [#Rule 3 + 'idl', 2, +sub +#line 20 "build/pidl/idl.yp" +{ push(@{$_[1]}, $_[2]); $_[1] } + ], + [#Rule 4 + 'coclass', 7, +sub +#line 24 "build/pidl/idl.yp" +{$_[3] => { + "TYPE" => "COCLASS", + "PROPERTIES" => $_[1], + "NAME" => $_[3], + "DATA" => $_[5], + "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "LINE" => $_[0]->YYData->{LINE}, + }} + ], + [#Rule 5 + 'interface_names', 0, undef + ], + [#Rule 6 + 'interface_names', 4, +sub +#line 36 "build/pidl/idl.yp" +{ push(@{$_[1]}, $_[2]); $_[1] } + ], + [#Rule 7 + 'interface', 8, +sub +#line 40 "build/pidl/idl.yp" +{$_[3] => { + "TYPE" => "INTERFACE", + "PROPERTIES" => $_[1], + "NAME" => $_[3], + "BASE" => $_[4], + "DATA" => $_[6], + "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "LINE" => $_[0]->YYData->{LINE}, + }} + ], + [#Rule 8 + 'base_interface', 0, undef + ], + [#Rule 9 + 'base_interface', 2, +sub +#line 53 "build/pidl/idl.yp" +{ $_[2] } + ], + [#Rule 10 + 'definitions', 1, +sub +#line 57 "build/pidl/idl.yp" +{ [ $_[1] ] } + ], + [#Rule 11 + 'definitions', 2, +sub +#line 58 "build/pidl/idl.yp" +{ push(@{$_[1]}, $_[2]); $_[1] } + ], + [#Rule 12 + 'definition', 1, undef + ], + [#Rule 13 + 'definition', 1, undef + ], + [#Rule 14 + 'definition', 1, undef + ], + [#Rule 15 + 'definition', 1, undef + ], + [#Rule 16 + 'definition', 1, undef + ], + [#Rule 17 + 'const', 6, +sub +#line 66 "build/pidl/idl.yp" +{{ + "TYPE" => "CONST", + "DTYPE" => $_[2], + "NAME" => $_[3], + "VALUE" => $_[5], + "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "LINE" => $_[0]->YYData->{LINE}, + }} + ], + [#Rule 18 + 'const', 7, +sub +#line 75 "build/pidl/idl.yp" +{{ + "TYPE" => "CONST", + "DTYPE" => $_[2], + "NAME" => $_[3], + "ARRAY_LEN" => $_[4], + "VALUE" => $_[6], + "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "LINE" => $_[0]->YYData->{LINE}, + }} + ], + [#Rule 19 + 'function', 7, +sub +#line 88 "build/pidl/idl.yp" +{{ + "TYPE" => "FUNCTION", + "NAME" => $_[3], + "RETURN_TYPE" => $_[2], + "PROPERTIES" => $_[1], + "ELEMENTS" => $_[5], + "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "LINE" => $_[0]->YYData->{LINE}, + }} + ], + [#Rule 20 + 'declare', 5, +sub +#line 100 "build/pidl/idl.yp" +{{ + "TYPE" => "DECLARE", + "PROPERTIES" => $_[2], + "NAME" => $_[4], + "DATA" => $_[3], + "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "LINE" => $_[0]->YYData->{LINE}, + }} + ], + [#Rule 21 + 'decl_type', 1, undef + ], + [#Rule 22 + 'decl_type', 1, undef + ], + [#Rule 23 + 'decl_enum', 1, +sub +#line 114 "build/pidl/idl.yp" +{{ + "TYPE" => "ENUM" + }} + ], + [#Rule 24 + 'decl_bitmap', 1, +sub +#line 120 "build/pidl/idl.yp" +{{ + "TYPE" => "BITMAP" + }} + ], + [#Rule 25 + 'typedef', 6, +sub +#line 126 "build/pidl/idl.yp" +{{ + "TYPE" => "TYPEDEF", + "PROPERTIES" => $_[2], + "NAME" => $_[4], + "DATA" => $_[3], + "ARRAY_LEN" => $_[5], + "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "LINE" => $_[0]->YYData->{LINE}, + }} + ], + [#Rule 26 + 'usertype', 1, undef + ], + [#Rule 27 + 'usertype', 1, undef + ], + [#Rule 28 + 'usertype', 1, undef + ], + [#Rule 29 + 'usertype', 1, undef + ], + [#Rule 30 + 'typedecl', 2, +sub +#line 139 "build/pidl/idl.yp" +{ $_[1] } + ], + [#Rule 31 + 'type', 1, undef + ], + [#Rule 32 + 'type', 1, undef + ], + [#Rule 33 + 'type', 1, +sub +#line 142 "build/pidl/idl.yp" +{ "void" } + ], + [#Rule 34 + 'enum', 5, +sub +#line 146 "build/pidl/idl.yp" +{{ + "TYPE" => "ENUM", + "NAME" => $_[2], + "ELEMENTS" => $_[4] + }} + ], + [#Rule 35 + 'enum_elements', 1, +sub +#line 154 "build/pidl/idl.yp" +{ [ $_[1] ] } + ], + [#Rule 36 + 'enum_elements', 3, +sub +#line 155 "build/pidl/idl.yp" +{ push(@{$_[1]}, $_[3]); $_[1] } + ], + [#Rule 37 + 'enum_element', 1, undef + ], + [#Rule 38 + 'enum_element', 3, +sub +#line 159 "build/pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 39 + 'bitmap', 5, +sub +#line 163 "build/pidl/idl.yp" +{{ + "TYPE" => "BITMAP", + "NAME" => $_[2], + "ELEMENTS" => $_[4] + }} + ], + [#Rule 40 + 'bitmap_elements', 1, +sub +#line 171 "build/pidl/idl.yp" +{ [ $_[1] ] } + ], + [#Rule 41 + 'bitmap_elements', 3, +sub +#line 172 "build/pidl/idl.yp" +{ push(@{$_[1]}, $_[3]); $_[1] } + ], + [#Rule 42 + 'bitmap_element', 3, +sub +#line 175 "build/pidl/idl.yp" +{ "$_[1] ( $_[3] )" } + ], + [#Rule 43 + 'struct', 5, +sub +#line 179 "build/pidl/idl.yp" +{{ + "TYPE" => "STRUCT", + "NAME" => $_[2], + "ELEMENTS" => $_[4] + }} + ], + [#Rule 44 + 'empty_element', 2, +sub +#line 187 "build/pidl/idl.yp" +{{ + "NAME" => "", + "TYPE" => "EMPTY", + "PROPERTIES" => $_[1], + "POINTERS" => 0, + "ARRAY_LEN" => [], + "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "LINE" => $_[0]->YYData->{LINE}, + }} + ], + [#Rule 45 + 'base_or_empty', 2, undef + ], + [#Rule 46 + 'base_or_empty', 1, undef + ], + [#Rule 47 + 'optional_base_element', 2, +sub +#line 201 "build/pidl/idl.yp" +{ $_[2]->{PROPERTIES} = Parse::Pidl::Util::FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } + ], + [#Rule 48 + 'union_elements', 0, undef + ], + [#Rule 49 + 'union_elements', 2, +sub +#line 206 "build/pidl/idl.yp" +{ push(@{$_[1]}, $_[2]); $_[1] } + ], + [#Rule 50 + 'union', 5, +sub +#line 210 "build/pidl/idl.yp" +{{ + "TYPE" => "UNION", + "NAME" => $_[2], + "ELEMENTS" => $_[4] + }} + ], + [#Rule 51 + 'base_element', 5, +sub +#line 218 "build/pidl/idl.yp" +{{ + "NAME" => $_[4], + "TYPE" => $_[2], + "PROPERTIES" => $_[1], + "POINTERS" => $_[3], + "ARRAY_LEN" => $_[5], + "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "LINE" => $_[0]->YYData->{LINE}, + }} + ], + [#Rule 52 + 'pointers', 0, +sub +#line 232 "build/pidl/idl.yp" +{ 0 } + ], + [#Rule 53 + 'pointers', 2, +sub +#line 233 "build/pidl/idl.yp" +{ $_[1]+1 } + ], + [#Rule 54 + 'element_list1', 0, undef + ], + [#Rule 55 + 'element_list1', 3, +sub +#line 238 "build/pidl/idl.yp" +{ push(@{$_[1]}, $_[2]); $_[1] } + ], + [#Rule 56 + 'element_list2', 0, undef + ], + [#Rule 57 + 'element_list2', 1, undef + ], + [#Rule 58 + 'element_list2', 1, +sub +#line 244 "build/pidl/idl.yp" +{ [ $_[1] ] } + ], + [#Rule 59 + 'element_list2', 3, +sub +#line 245 "build/pidl/idl.yp" +{ push(@{$_[1]}, $_[3]); $_[1] } + ], + [#Rule 60 + 'array_len', 0, undef + ], + [#Rule 61 + 'array_len', 3, +sub +#line 250 "build/pidl/idl.yp" +{ push(@{$_[3]}, "*"); $_[3] } + ], + [#Rule 62 + 'array_len', 4, +sub +#line 251 "build/pidl/idl.yp" +{ push(@{$_[4]}, "$_[2]"); $_[4] } + ], + [#Rule 63 + 'property_list', 0, undef + ], + [#Rule 64 + 'property_list', 4, +sub +#line 257 "build/pidl/idl.yp" +{ Parse::Pidl::Util::FlattenHash([$_[1],$_[3]]); } + ], + [#Rule 65 + 'properties', 1, +sub +#line 260 "build/pidl/idl.yp" +{ $_[1] } + ], + [#Rule 66 + 'properties', 3, +sub +#line 261 "build/pidl/idl.yp" +{ Parse::Pidl::Util::FlattenHash([$_[1], $_[3]]); } + ], + [#Rule 67 + 'property', 1, +sub +#line 264 "build/pidl/idl.yp" +{{ "$_[1]" => "1" }} + ], + [#Rule 68 + 'property', 4, +sub +#line 265 "build/pidl/idl.yp" +{{ "$_[1]" => "$_[3]" }} + ], + [#Rule 69 + 'listtext', 1, undef + ], + [#Rule 70 + 'listtext', 3, +sub +#line 270 "build/pidl/idl.yp" +{ "$_[1] $_[3]" } + ], + [#Rule 71 + 'commalisttext', 1, undef + ], + [#Rule 72 + 'commalisttext', 3, +sub +#line 275 "build/pidl/idl.yp" +{ "$_[1],$_[3]" } + ], + [#Rule 73 + 'anytext', 0, +sub +#line 279 "build/pidl/idl.yp" +{ "" } + ], + [#Rule 74 + 'anytext', 1, undef + ], + [#Rule 75 + 'anytext', 1, undef + ], + [#Rule 76 + 'anytext', 1, undef + ], + [#Rule 77 + 'anytext', 3, +sub +#line 281 "build/pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 78 + 'anytext', 3, +sub +#line 282 "build/pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 79 + 'anytext', 3, +sub +#line 283 "build/pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 80 + 'anytext', 3, +sub +#line 284 "build/pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 81 + 'anytext', 3, +sub +#line 285 "build/pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 82 + 'anytext', 3, +sub +#line 286 "build/pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 83 + 'anytext', 3, +sub +#line 287 "build/pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 84 + 'anytext', 3, +sub +#line 288 "build/pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 85 + 'anytext', 3, +sub +#line 289 "build/pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 86 + 'anytext', 3, +sub +#line 290 "build/pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 87 + 'anytext', 5, +sub +#line 291 "build/pidl/idl.yp" +{ "$_[1]$_[2]$_[3]$_[4]$_[5]" } + ], + [#Rule 88 + 'anytext', 5, +sub +#line 292 "build/pidl/idl.yp" +{ "$_[1]$_[2]$_[3]$_[4]$_[5]" } + ], + [#Rule 89 + 'identifier', 1, undef + ], + [#Rule 90 + 'optional_identifier', 1, undef + ], + [#Rule 91 + 'optional_identifier', 0, undef + ], + [#Rule 92 + 'constant', 1, undef + ], + [#Rule 93 + 'text', 1, +sub +#line 306 "build/pidl/idl.yp" +{ "\"$_[1]\"" } + ], + [#Rule 94 + 'optional_semicolon', 0, undef + ], + [#Rule 95 + 'optional_semicolon', 1, undef + ] +], + @_); + bless($self,$class); +} + +#line 317 "build/pidl/idl.yp" + + +use Parse::Pidl::Util; + +##################################################################### +# traverse a perl data structure removing any empty arrays or +# hashes and any hash elements that map to undef +sub CleanData($) +{ + sub CleanData($); + my($v) = shift; + if (ref($v) eq "ARRAY") { + foreach my $i (0 .. $#{$v}) { + CleanData($v->[$i]); + if (ref($v->[$i]) eq "ARRAY" && $#{$v->[$i]}==-1) { + $v->[$i] = undef; + next; + } + } + # this removes any undefined elements from the array + @{$v} = grep { defined $_ } @{$v}; + } elsif (ref($v) eq "HASH") { + foreach my $x (keys %{$v}) { + CleanData($v->{$x}); + if (!defined $v->{$x}) { delete($v->{$x}); next; } + if (ref($v->{$x}) eq "ARRAY" && $#{$v->{$x}}==-1) { delete($v->{$x}); next; } + } + } + return $v; +} + +sub _Error { + if (exists $_[0]->YYData->{ERRMSG}) { + print $_[0]->YYData->{ERRMSG}; + delete $_[0]->YYData->{ERRMSG}; + return; + }; + my $line = $_[0]->YYData->{LINE}; + my $last_token = $_[0]->YYData->{LAST_TOKEN}; + my $file = $_[0]->YYData->{INPUT_FILENAME}; + + print "$file:$line: Syntax error near '$last_token'\n"; +} + +sub _Lexer($) +{ + my($parser)=shift; + + $parser->YYData->{INPUT} or return('',undef); + +again: + $parser->YYData->{INPUT} =~ s/^[ \t]*//; + + for ($parser->YYData->{INPUT}) { + if (/^\#/) { + if (s/^\# (\d+) \"(.*?)\"( \d+|)//) { + $parser->YYData->{LINE} = $1-1; + $parser->YYData->{INPUT_FILENAME} = $2; + goto again; + } + if (s/^\#line (\d+) \"(.*?)\"( \d+|)//) { + $parser->YYData->{LINE} = $1-1; + $parser->YYData->{INPUT_FILENAME} = $2; + goto again; + } + if (s/^(\#.*)$//m) { + goto again; + } + } + if (s/^(\n)//) { + $parser->YYData->{LINE}++; + goto again; + } + if (s/^\"(.*?)\"//) { + $parser->YYData->{LAST_TOKEN} = $1; + return('TEXT',$1); + } + if (s/^(\d+)(\W|$)/$2/) { + $parser->YYData->{LAST_TOKEN} = $1; + return('CONSTANT',$1); + } + if (s/^([\w_]+)//) { + $parser->YYData->{LAST_TOKEN} = $1; + if ($1 =~ + /^(coclass|interface|const|typedef|declare|union + |struct|enum|bitmap|void)$/x) { + return $1; + } + return('IDENTIFIER',$1); + } + if (s/^(.)//s) { + $parser->YYData->{LAST_TOKEN} = $1; + return($1,$1); + } + } +} + +sub parse_idl($$) +{ + my ($self,$filename) = @_; + + my $saved_delim = $/; + undef $/; + my $cpp = $ENV{CPP}; + if (! defined $cpp) { + $cpp = "cpp" + } + my $data = `$cpp -D__PIDL__ -xc $filename`; + $/ = $saved_delim; + + $self->YYData->{INPUT} = $data; + $self->YYData->{LINE} = 0; + $self->YYData->{LAST_TOKEN} = "NONE"; + + my $idl = $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error ); + + return CleanData($idl); +} + +1; -- cgit From 2280017bbd8c21f4dc00f28692f57fe0692fcd8a Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 22 Aug 2005 00:06:35 +0000 Subject: r9462: Fix locations for generating the yapp files (This used to be commit 714f96b9bf2c6271f23bfcd35c58d5bf7b29aae2) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 120 ++++++++++++++++++------------------- 1 file changed, 60 insertions(+), 60 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 7f7e5bcdca..a73451d142 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -1936,19 +1936,19 @@ sub new { [#Rule 2 'idl', 2, sub -#line 19 "build/pidl/idl.yp" +#line 19 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 3 'idl', 2, sub -#line 20 "build/pidl/idl.yp" +#line 20 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 4 'coclass', 7, sub -#line 24 "build/pidl/idl.yp" +#line 24 "idl.yp" {$_[3] => { "TYPE" => "COCLASS", "PROPERTIES" => $_[1], @@ -1964,13 +1964,13 @@ sub [#Rule 6 'interface_names', 4, sub -#line 36 "build/pidl/idl.yp" +#line 36 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 7 'interface', 8, sub -#line 40 "build/pidl/idl.yp" +#line 40 "idl.yp" {$_[3] => { "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], @@ -1987,19 +1987,19 @@ sub [#Rule 9 'base_interface', 2, sub -#line 53 "build/pidl/idl.yp" +#line 53 "idl.yp" { $_[2] } ], [#Rule 10 'definitions', 1, sub -#line 57 "build/pidl/idl.yp" +#line 57 "idl.yp" { [ $_[1] ] } ], [#Rule 11 'definitions', 2, sub -#line 58 "build/pidl/idl.yp" +#line 58 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 12 @@ -2020,7 +2020,7 @@ sub [#Rule 17 'const', 6, sub -#line 66 "build/pidl/idl.yp" +#line 66 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2033,7 +2033,7 @@ sub [#Rule 18 'const', 7, sub -#line 75 "build/pidl/idl.yp" +#line 75 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2047,7 +2047,7 @@ sub [#Rule 19 'function', 7, sub -#line 88 "build/pidl/idl.yp" +#line 88 "idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -2061,7 +2061,7 @@ sub [#Rule 20 'declare', 5, sub -#line 100 "build/pidl/idl.yp" +#line 100 "idl.yp" {{ "TYPE" => "DECLARE", "PROPERTIES" => $_[2], @@ -2080,7 +2080,7 @@ sub [#Rule 23 'decl_enum', 1, sub -#line 114 "build/pidl/idl.yp" +#line 114 "idl.yp" {{ "TYPE" => "ENUM" }} @@ -2088,7 +2088,7 @@ sub [#Rule 24 'decl_bitmap', 1, sub -#line 120 "build/pidl/idl.yp" +#line 120 "idl.yp" {{ "TYPE" => "BITMAP" }} @@ -2096,7 +2096,7 @@ sub [#Rule 25 'typedef', 6, sub -#line 126 "build/pidl/idl.yp" +#line 126 "idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[2], @@ -2122,7 +2122,7 @@ sub [#Rule 30 'typedecl', 2, sub -#line 139 "build/pidl/idl.yp" +#line 139 "idl.yp" { $_[1] } ], [#Rule 31 @@ -2134,13 +2134,13 @@ sub [#Rule 33 'type', 1, sub -#line 142 "build/pidl/idl.yp" +#line 142 "idl.yp" { "void" } ], [#Rule 34 'enum', 5, sub -#line 146 "build/pidl/idl.yp" +#line 146 "idl.yp" {{ "TYPE" => "ENUM", "NAME" => $_[2], @@ -2150,13 +2150,13 @@ sub [#Rule 35 'enum_elements', 1, sub -#line 154 "build/pidl/idl.yp" +#line 154 "idl.yp" { [ $_[1] ] } ], [#Rule 36 'enum_elements', 3, sub -#line 155 "build/pidl/idl.yp" +#line 155 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 37 @@ -2165,13 +2165,13 @@ sub [#Rule 38 'enum_element', 3, sub -#line 159 "build/pidl/idl.yp" +#line 159 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 39 'bitmap', 5, sub -#line 163 "build/pidl/idl.yp" +#line 163 "idl.yp" {{ "TYPE" => "BITMAP", "NAME" => $_[2], @@ -2181,25 +2181,25 @@ sub [#Rule 40 'bitmap_elements', 1, sub -#line 171 "build/pidl/idl.yp" +#line 171 "idl.yp" { [ $_[1] ] } ], [#Rule 41 'bitmap_elements', 3, sub -#line 172 "build/pidl/idl.yp" +#line 172 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 42 'bitmap_element', 3, sub -#line 175 "build/pidl/idl.yp" +#line 175 "idl.yp" { "$_[1] ( $_[3] )" } ], [#Rule 43 'struct', 5, sub -#line 179 "build/pidl/idl.yp" +#line 179 "idl.yp" {{ "TYPE" => "STRUCT", "NAME" => $_[2], @@ -2209,7 +2209,7 @@ sub [#Rule 44 'empty_element', 2, sub -#line 187 "build/pidl/idl.yp" +#line 187 "idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2229,7 +2229,7 @@ sub [#Rule 47 'optional_base_element', 2, sub -#line 201 "build/pidl/idl.yp" +#line 201 "idl.yp" { $_[2]->{PROPERTIES} = Parse::Pidl::Util::FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], [#Rule 48 @@ -2238,13 +2238,13 @@ sub [#Rule 49 'union_elements', 2, sub -#line 206 "build/pidl/idl.yp" +#line 206 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 50 'union', 5, sub -#line 210 "build/pidl/idl.yp" +#line 210 "idl.yp" {{ "TYPE" => "UNION", "NAME" => $_[2], @@ -2254,7 +2254,7 @@ sub [#Rule 51 'base_element', 5, sub -#line 218 "build/pidl/idl.yp" +#line 218 "idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2268,13 +2268,13 @@ sub [#Rule 52 'pointers', 0, sub -#line 232 "build/pidl/idl.yp" +#line 232 "idl.yp" { 0 } ], [#Rule 53 'pointers', 2, sub -#line 233 "build/pidl/idl.yp" +#line 233 "idl.yp" { $_[1]+1 } ], [#Rule 54 @@ -2283,7 +2283,7 @@ sub [#Rule 55 'element_list1', 3, sub -#line 238 "build/pidl/idl.yp" +#line 238 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 56 @@ -2295,13 +2295,13 @@ sub [#Rule 58 'element_list2', 1, sub -#line 244 "build/pidl/idl.yp" +#line 244 "idl.yp" { [ $_[1] ] } ], [#Rule 59 'element_list2', 3, sub -#line 245 "build/pidl/idl.yp" +#line 245 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 60 @@ -2310,13 +2310,13 @@ sub [#Rule 61 'array_len', 3, sub -#line 250 "build/pidl/idl.yp" +#line 250 "idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], [#Rule 62 'array_len', 4, sub -#line 251 "build/pidl/idl.yp" +#line 251 "idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], [#Rule 63 @@ -2325,31 +2325,31 @@ sub [#Rule 64 'property_list', 4, sub -#line 257 "build/pidl/idl.yp" +#line 257 "idl.yp" { Parse::Pidl::Util::FlattenHash([$_[1],$_[3]]); } ], [#Rule 65 'properties', 1, sub -#line 260 "build/pidl/idl.yp" +#line 260 "idl.yp" { $_[1] } ], [#Rule 66 'properties', 3, sub -#line 261 "build/pidl/idl.yp" +#line 261 "idl.yp" { Parse::Pidl::Util::FlattenHash([$_[1], $_[3]]); } ], [#Rule 67 'property', 1, sub -#line 264 "build/pidl/idl.yp" +#line 264 "idl.yp" {{ "$_[1]" => "1" }} ], [#Rule 68 'property', 4, sub -#line 265 "build/pidl/idl.yp" +#line 265 "idl.yp" {{ "$_[1]" => "$_[3]" }} ], [#Rule 69 @@ -2358,7 +2358,7 @@ sub [#Rule 70 'listtext', 3, sub -#line 270 "build/pidl/idl.yp" +#line 270 "idl.yp" { "$_[1] $_[3]" } ], [#Rule 71 @@ -2367,13 +2367,13 @@ sub [#Rule 72 'commalisttext', 3, sub -#line 275 "build/pidl/idl.yp" +#line 275 "idl.yp" { "$_[1],$_[3]" } ], [#Rule 73 'anytext', 0, sub -#line 279 "build/pidl/idl.yp" +#line 279 "idl.yp" { "" } ], [#Rule 74 @@ -2388,73 +2388,73 @@ sub [#Rule 77 'anytext', 3, sub -#line 281 "build/pidl/idl.yp" +#line 281 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 78 'anytext', 3, sub -#line 282 "build/pidl/idl.yp" +#line 282 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 79 'anytext', 3, sub -#line 283 "build/pidl/idl.yp" +#line 283 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 80 'anytext', 3, sub -#line 284 "build/pidl/idl.yp" +#line 284 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 81 'anytext', 3, sub -#line 285 "build/pidl/idl.yp" +#line 285 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 82 'anytext', 3, sub -#line 286 "build/pidl/idl.yp" +#line 286 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 83 'anytext', 3, sub -#line 287 "build/pidl/idl.yp" +#line 287 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 84 'anytext', 3, sub -#line 288 "build/pidl/idl.yp" +#line 288 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 85 'anytext', 3, sub -#line 289 "build/pidl/idl.yp" +#line 289 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 86 'anytext', 3, sub -#line 290 "build/pidl/idl.yp" +#line 290 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 87 'anytext', 5, sub -#line 291 "build/pidl/idl.yp" +#line 291 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 88 'anytext', 5, sub -#line 292 "build/pidl/idl.yp" +#line 292 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 89 @@ -2472,7 +2472,7 @@ sub [#Rule 93 'text', 1, sub -#line 306 "build/pidl/idl.yp" +#line 306 "idl.yp" { "\"$_[1]\"" } ], [#Rule 94 @@ -2486,7 +2486,7 @@ sub bless($self,$class); } -#line 317 "build/pidl/idl.yp" +#line 317 "idl.yp" use Parse::Pidl::Util; -- cgit From 40cbd4625ae7f9799238594faa4f8cc54ead72e4 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 3 Sep 2005 22:58:04 +0000 Subject: r10015: Change the NT4 registry backend to use the IDL-generate parse functions. (This used to be commit 0ad46ef804c0654e927f9c14ea93c45f9e3c718c) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 1387 ++++++++++++++++++++---------------- 1 file changed, 785 insertions(+), 602 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index a73451d142..203e052022 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -559,7 +559,7 @@ sub new { } }, {#State 9 - DEFAULT => -89 + DEFAULT => -92 }, {#State 10 ACTIONS => { @@ -643,7 +643,7 @@ sub new { } }, {#State 22 - DEFAULT => -93 + DEFAULT => -96 }, {#State 23 DEFAULT => -74 @@ -653,32 +653,35 @@ sub new { }, {#State 25 ACTIONS => { - "-" => 34, - "<" => 35, - "+" => 37, - "~" => 36, - "&" => 39, - "{" => 38, - "/" => 40, - "(" => 41, - "|" => 42, - "*" => 43, - "." => 44, - ">" => 45 + "-" => 35, + ":" => 34, + "<" => 37, + "+" => 39, + "~" => 38, + "*" => 46, + "?" => 36, + "{" => 40, + "&" => 41, + "/" => 42, + "=" => 43, + "(" => 44, + "|" => 45, + "." => 47, + ">" => 48 }, DEFAULT => -69 }, {#State 26 ACTIONS => { - "," => 46, - ")" => 47 + "," => 49, + ")" => 50 } }, {#State 27 DEFAULT => -75 }, {#State 28 - DEFAULT => -92 + DEFAULT => -95 }, {#State 29 DEFAULT => -66 @@ -688,38 +691,38 @@ sub new { }, {#State 31 ACTIONS => { - "typedef" => 48, - "union" => 49, - "enum" => 62, - "bitmap" => 63, - "declare" => 55, - "const" => 57, - "struct" => 60 + "typedef" => 51, + "union" => 52, + "enum" => 65, + "bitmap" => 66, + "declare" => 58, + "const" => 60, + "struct" => 63 }, DEFAULT => -63, GOTOS => { - 'typedecl' => 61, - 'function' => 50, - 'bitmap' => 64, - 'definitions' => 51, - 'definition' => 54, - 'property_list' => 53, - 'usertype' => 52, - 'declare' => 66, - 'const' => 65, - 'struct' => 56, - 'enum' => 58, - 'typedef' => 59, - 'union' => 67 + 'typedecl' => 64, + 'function' => 53, + 'bitmap' => 67, + 'definitions' => 54, + 'definition' => 57, + 'property_list' => 56, + 'usertype' => 55, + 'declare' => 69, + 'const' => 68, + 'struct' => 59, + 'enum' => 61, + 'typedef' => 62, + 'union' => 70 } }, {#State 32 ACTIONS => { - ";" => 68 + ";" => 71 }, - DEFAULT => -94, + DEFAULT => -97, GOTOS => { - 'optional_semicolon' => 69 + 'optional_semicolon' => 72 } }, {#State 33 @@ -727,7 +730,7 @@ sub new { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 70 + 'identifier' => 73 } }, {#State 34 @@ -739,7 +742,7 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 71, + 'anytext' => 74, 'text' => 24, 'constant' => 27 } @@ -753,7 +756,7 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 72, + 'anytext' => 75, 'text' => 24, 'constant' => 27 } @@ -767,7 +770,7 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 73, + 'anytext' => 76, 'text' => 24, 'constant' => 27 } @@ -781,7 +784,7 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 74, + 'anytext' => 77, 'text' => 24, 'constant' => 27 } @@ -795,10 +798,9 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 75, + 'anytext' => 78, 'text' => 24, - 'constant' => 27, - 'commalisttext' => 76 + 'constant' => 27 } }, {#State 39 @@ -810,7 +812,7 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 77, + 'anytext' => 79, 'text' => 24, 'constant' => 27 } @@ -824,9 +826,10 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 78, + 'anytext' => 80, 'text' => 24, - 'constant' => 27 + 'constant' => 27, + 'commalisttext' => 81 } }, {#State 41 @@ -838,10 +841,9 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 75, + 'anytext' => 82, 'text' => 24, - 'constant' => 27, - 'commalisttext' => 79 + 'constant' => 27 } }, {#State 42 @@ -853,7 +855,7 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 80, + 'anytext' => 83, 'text' => 24, 'constant' => 27 } @@ -867,7 +869,7 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 81, + 'anytext' => 84, 'text' => 24, 'constant' => 27 } @@ -881,9 +883,10 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 82, + 'anytext' => 80, 'text' => 24, - 'constant' => 27 + 'constant' => 27, + 'commalisttext' => 85 } }, {#State 45 @@ -895,7 +898,7 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 83, + 'anytext' => 86, 'text' => 24, 'constant' => 27 } @@ -909,406 +912,544 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 84, + 'anytext' => 87, 'text' => 24, 'constant' => 27 } }, {#State 47 - DEFAULT => -68 + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 88, + 'text' => 24, + 'constant' => 27 + } }, {#State 48 - DEFAULT => -63, + ACTIONS => { + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, GOTOS => { - 'property_list' => 85 + 'identifier' => 23, + 'anytext' => 89, + 'text' => 24, + 'constant' => 27 } }, {#State 49 ACTIONS => { - 'IDENTIFIER' => 86 + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 }, - DEFAULT => -91, + DEFAULT => -73, GOTOS => { - 'optional_identifier' => 87 + 'identifier' => 23, + 'anytext' => 90, + 'text' => 24, + 'constant' => 27 } }, {#State 50 - DEFAULT => -12 + DEFAULT => -68 }, {#State 51 - ACTIONS => { - "}" => 88, - "typedef" => 48, - "union" => 49, - "enum" => 62, - "bitmap" => 63, - "declare" => 55, - "const" => 57, - "struct" => 60 - }, DEFAULT => -63, GOTOS => { - 'typedecl' => 61, - 'function' => 50, - 'bitmap' => 64, - 'definition' => 89, - 'property_list' => 53, - 'usertype' => 52, - 'const' => 65, - 'struct' => 56, - 'declare' => 66, - 'enum' => 58, - 'typedef' => 59, - 'union' => 67 + 'property_list' => 91 } }, {#State 52 ACTIONS => { - ";" => 90 + 'IDENTIFIER' => 92 + }, + DEFAULT => -94, + GOTOS => { + 'optional_identifier' => 93 } }, {#State 53 + DEFAULT => -12 + }, + {#State 54 + ACTIONS => { + "}" => 94, + "typedef" => 51, + "union" => 52, + "enum" => 65, + "bitmap" => 66, + "declare" => 58, + "const" => 60, + "struct" => 63 + }, + DEFAULT => -63, + GOTOS => { + 'typedecl' => 64, + 'function' => 53, + 'bitmap' => 67, + 'definition' => 95, + 'property_list' => 56, + 'usertype' => 55, + 'const' => 68, + 'struct' => 59, + 'declare' => 69, + 'enum' => 61, + 'typedef' => 62, + 'union' => 70 + } + }, + {#State 55 + ACTIONS => { + ";" => 96 + } + }, + {#State 56 ACTIONS => { 'IDENTIFIER' => 9, - "union" => 49, - "enum" => 62, - "bitmap" => 63, + "union" => 52, + "enum" => 65, + "bitmap" => 66, "[" => 7, - 'void' => 91, - "struct" => 60 + 'void' => 97, + "struct" => 63 }, GOTOS => { - 'identifier' => 93, - 'struct' => 56, - 'enum' => 58, - 'type' => 94, - 'union' => 67, - 'bitmap' => 64, - 'usertype' => 92 + 'identifier' => 99, + 'struct' => 59, + 'enum' => 61, + 'type' => 100, + 'union' => 70, + 'bitmap' => 67, + 'usertype' => 98 } }, - {#State 54 + {#State 57 DEFAULT => -10 }, - {#State 55 + {#State 58 DEFAULT => -63, GOTOS => { - 'property_list' => 95 + 'property_list' => 101 } }, - {#State 56 + {#State 59 DEFAULT => -26 }, - {#State 57 + {#State 60 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 96 + 'identifier' => 102 } }, - {#State 58 + {#State 61 DEFAULT => -28 }, - {#State 59 + {#State 62 DEFAULT => -14 }, - {#State 60 + {#State 63 ACTIONS => { - 'IDENTIFIER' => 86 + 'IDENTIFIER' => 92 }, - DEFAULT => -91, + DEFAULT => -94, GOTOS => { - 'optional_identifier' => 97 + 'optional_identifier' => 103 } }, - {#State 61 + {#State 64 DEFAULT => -16 }, - {#State 62 + {#State 65 ACTIONS => { - 'IDENTIFIER' => 86 + 'IDENTIFIER' => 92 }, - DEFAULT => -91, + DEFAULT => -94, GOTOS => { - 'optional_identifier' => 98 + 'optional_identifier' => 104 } }, - {#State 63 + {#State 66 ACTIONS => { - 'IDENTIFIER' => 86 + 'IDENTIFIER' => 92 }, - DEFAULT => -91, + DEFAULT => -94, GOTOS => { - 'optional_identifier' => 99 + 'optional_identifier' => 105 } }, - {#State 64 + {#State 67 DEFAULT => -29 }, - {#State 65 + {#State 68 DEFAULT => -13 }, - {#State 66 + {#State 69 DEFAULT => -15 }, - {#State 67 + {#State 70 DEFAULT => -27 }, - {#State 68 - DEFAULT => -95 + {#State 71 + DEFAULT => -98 }, - {#State 69 + {#State 72 DEFAULT => -4 }, - {#State 70 + {#State 73 ACTIONS => { - ";" => 100 + ";" => 106 } }, - {#State 71 + {#State 74 ACTIONS => { - "<" => 35, - "~" => 36, - "{" => 38 + "-" => 35, + ":" => 34, + "<" => 37, + "+" => 39, + "~" => 38, + "*" => 46, + "?" => 36, + "{" => 40, + "&" => 41, + "/" => 42, + "=" => 43, + "(" => 44, + "|" => 45, + "." => 47, + ">" => 48 + }, + DEFAULT => -86 + }, + {#State 75 + ACTIONS => { + ":" => 34, + "<" => 37, + "~" => 38, + "?" => 36, + "{" => 40, + "=" => 43 }, DEFAULT => -77 }, - {#State 72 + {#State 76 + ACTIONS => { + "-" => 35, + ":" => 34, + "<" => 37, + "+" => 39, + "~" => 38, + "*" => 46, + "?" => 36, + "{" => 40, + "&" => 41, + "/" => 42, + "=" => 43, + "(" => 44, + "|" => 45, + "." => 47, + ">" => 48 + }, + DEFAULT => -85 + }, + {#State 77 ACTIONS => { - "-" => 34, - "<" => 35, - "+" => 37, - "~" => 36, - "*" => 43, - "{" => 38, - "&" => 39, - "/" => 40, - "(" => 41, - "|" => 42, - "." => 44, - ">" => 45 + "-" => 35, + ":" => 34, + "<" => 37, + "+" => 39, + "~" => 38, + "*" => 46, + "?" => 36, + "{" => 40, + "&" => 41, + "/" => 42, + "=" => 43, + "(" => 44, + "|" => 45, + "." => 47, + ">" => 48 }, DEFAULT => -81 }, - {#State 73 + {#State 78 ACTIONS => { - "-" => 34, - "<" => 35, - "+" => 37, - "~" => 36, - "*" => 43, - "{" => 38, - "&" => 39, - "/" => 40, - "(" => 41, - "|" => 42, - "." => 44, - ">" => 45 + "-" => 35, + ":" => 34, + "<" => 37, + "+" => 39, + "~" => 38, + "*" => 46, + "?" => 36, + "{" => 40, + "&" => 41, + "/" => 42, + "=" => 43, + "(" => 44, + "|" => 45, + "." => 47, + ">" => 48 }, - DEFAULT => -86 + DEFAULT => -89 }, - {#State 74 + {#State 79 ACTIONS => { - "<" => 35, - "~" => 36, - "{" => 38 + ":" => 34, + "<" => 37, + "~" => 38, + "?" => 36, + "{" => 40, + "=" => 43 }, - DEFAULT => -85 + DEFAULT => -88 }, - {#State 75 + {#State 80 ACTIONS => { - "-" => 34, - "<" => 35, - "+" => 37, - "~" => 36, - "*" => 43, - "{" => 38, - "&" => 39, - "/" => 40, - "(" => 41, - "|" => 42, - "." => 44, - ">" => 45 + "-" => 35, + ":" => 34, + "<" => 37, + "+" => 39, + "~" => 38, + "*" => 46, + "?" => 36, + "{" => 40, + "&" => 41, + "/" => 42, + "=" => 43, + "(" => 44, + "|" => 45, + "." => 47, + ">" => 48 }, DEFAULT => -71 }, - {#State 76 + {#State 81 ACTIONS => { - "}" => 101, - "," => 102 + "}" => 107, + "," => 108 } }, - {#State 77 + {#State 82 ACTIONS => { - "<" => 35, - "~" => 36, - "{" => 38 + ":" => 34, + "<" => 37, + "~" => 38, + "?" => 36, + "{" => 40, + "=" => 43 }, DEFAULT => -83 }, - {#State 78 + {#State 83 ACTIONS => { - "<" => 35, - "~" => 36, - "{" => 38 + ":" => 34, + "<" => 37, + "~" => 38, + "?" => 36, + "{" => 40, + "=" => 43 }, DEFAULT => -84 }, - {#State 79 + {#State 84 ACTIONS => { - "," => 102, - ")" => 103 + "-" => 35, + ":" => 34, + "<" => 37, + "+" => 39, + "~" => 38, + "*" => 46, + "?" => 36, + "{" => 40, + "&" => 41, + "/" => 42, + "=" => 43, + "(" => 44, + "|" => 45, + "." => 47, + ">" => 48 + }, + DEFAULT => -87 + }, + {#State 85 + ACTIONS => { + "," => 108, + ")" => 109 } }, - {#State 80 + {#State 86 ACTIONS => { - "<" => 35, - "~" => 36, - "{" => 38 + ":" => 34, + "<" => 37, + "~" => 38, + "?" => 36, + "{" => 40, + "=" => 43 }, DEFAULT => -82 }, - {#State 81 + {#State 87 ACTIONS => { - "<" => 35, - "~" => 36, - "{" => 38 + ":" => 34, + "<" => 37, + "~" => 38, + "?" => 36, + "{" => 40, + "=" => 43 }, DEFAULT => -79 }, - {#State 82 + {#State 88 ACTIONS => { - "<" => 35, - "~" => 36, - "{" => 38 + ":" => 34, + "<" => 37, + "~" => 38, + "?" => 36, + "{" => 40, + "=" => 43 }, DEFAULT => -78 }, - {#State 83 + {#State 89 ACTIONS => { - "<" => 35, - "~" => 36, - "{" => 38 + ":" => 34, + "<" => 37, + "~" => 38, + "?" => 36, + "{" => 40, + "=" => 43 }, DEFAULT => -80 }, - {#State 84 + {#State 90 ACTIONS => { - "-" => 34, - "<" => 35, - "+" => 37, - "~" => 36, - "&" => 39, - "{" => 38, - "/" => 40, - "|" => 42, - "(" => 41, - "*" => 43, - "." => 44, - ">" => 45 + "-" => 35, + ":" => 34, + "<" => 37, + "+" => 39, + "~" => 38, + "*" => 46, + "?" => 36, + "{" => 40, + "&" => 41, + "/" => 42, + "=" => 43, + "(" => 44, + "|" => 45, + "." => 47, + ">" => 48 }, DEFAULT => -70 }, - {#State 85 + {#State 91 ACTIONS => { 'IDENTIFIER' => 9, - "union" => 49, - "enum" => 62, - "bitmap" => 63, + "union" => 52, + "enum" => 65, + "bitmap" => 66, "[" => 7, - 'void' => 91, - "struct" => 60 + 'void' => 97, + "struct" => 63 }, GOTOS => { - 'identifier' => 93, - 'struct' => 56, - 'enum' => 58, - 'type' => 104, - 'union' => 67, - 'bitmap' => 64, - 'usertype' => 92 + 'identifier' => 99, + 'struct' => 59, + 'enum' => 61, + 'type' => 110, + 'union' => 70, + 'bitmap' => 67, + 'usertype' => 98 } }, - {#State 86 - DEFAULT => -90 + {#State 92 + DEFAULT => -93 }, - {#State 87 + {#State 93 ACTIONS => { - "{" => 105 + "{" => 111 } }, - {#State 88 + {#State 94 ACTIONS => { - ";" => 68 + ";" => 71 }, - DEFAULT => -94, + DEFAULT => -97, GOTOS => { - 'optional_semicolon' => 106 + 'optional_semicolon' => 112 } }, - {#State 89 + {#State 95 DEFAULT => -11 }, - {#State 90 + {#State 96 DEFAULT => -30 }, - {#State 91 + {#State 97 DEFAULT => -33 }, - {#State 92 + {#State 98 DEFAULT => -31 }, - {#State 93 + {#State 99 DEFAULT => -32 }, - {#State 94 + {#State 100 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 107 + 'identifier' => 113 } }, - {#State 95 + {#State 101 ACTIONS => { - "enum" => 111, - "bitmap" => 112, + "enum" => 117, + "bitmap" => 118, "[" => 7 }, GOTOS => { - 'decl_enum' => 108, - 'decl_bitmap' => 109, - 'decl_type' => 110 + 'decl_enum' => 114, + 'decl_bitmap' => 115, + 'decl_type' => 116 } }, - {#State 96 + {#State 102 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 113 + 'identifier' => 119 } }, - {#State 97 + {#State 103 ACTIONS => { - "{" => 114 + "{" => 120 } }, - {#State 98 + {#State 104 ACTIONS => { - "{" => 115 + "{" => 121 } }, - {#State 99 + {#State 105 ACTIONS => { - "{" => 116 + "{" => 122 } }, - {#State 100 + {#State 106 DEFAULT => -6 }, - {#State 101 + {#State 107 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, @@ -1317,12 +1458,12 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 117, + 'anytext' => 123, 'text' => 24, 'constant' => 27 } }, - {#State 102 + {#State 108 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, @@ -1331,12 +1472,12 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 118, + 'anytext' => 124, 'text' => 24, 'constant' => 27 } }, - {#State 103 + {#State 109 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, @@ -1345,188 +1486,197 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 119, + 'anytext' => 125, 'text' => 24, 'constant' => 27 } }, - {#State 104 + {#State 110 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 120 + 'identifier' => 126 } }, - {#State 105 + {#State 111 DEFAULT => -48, GOTOS => { - 'union_elements' => 121 + 'union_elements' => 127 } }, - {#State 106 + {#State 112 DEFAULT => -7 }, - {#State 107 + {#State 113 ACTIONS => { - "(" => 122 + "(" => 128 } }, - {#State 108 + {#State 114 DEFAULT => -21 }, - {#State 109 + {#State 115 DEFAULT => -22 }, - {#State 110 + {#State 116 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 123 + 'identifier' => 129 } }, - {#State 111 + {#State 117 DEFAULT => -23 }, - {#State 112 + {#State 118 DEFAULT => -24 }, - {#State 113 + {#State 119 ACTIONS => { - "[" => 124, - "=" => 126 + "[" => 130, + "=" => 132 }, GOTOS => { - 'array_len' => 125 + 'array_len' => 131 } }, - {#State 114 + {#State 120 DEFAULT => -54, GOTOS => { - 'element_list1' => 127 + 'element_list1' => 133 } }, - {#State 115 + {#State 121 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 128, - 'enum_element' => 129, - 'enum_elements' => 130 + 'identifier' => 134, + 'enum_element' => 135, + 'enum_elements' => 136 } }, - {#State 116 + {#State 122 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 133, - 'bitmap_elements' => 132, - 'bitmap_element' => 131 + 'identifier' => 139, + 'bitmap_elements' => 138, + 'bitmap_element' => 137 } }, - {#State 117 + {#State 123 ACTIONS => { - "-" => 34, - "<" => 35, - "+" => 37, - "~" => 36, - "*" => 43, - "{" => 38, - "&" => 39, - "/" => 40, - "(" => 41, - "|" => 42, - "." => 44, - ">" => 45 - }, - DEFAULT => -88 + "-" => 35, + ":" => 34, + "<" => 37, + "+" => 39, + "~" => 38, + "*" => 46, + "?" => 36, + "{" => 40, + "&" => 41, + "/" => 42, + "=" => 43, + "(" => 44, + "|" => 45, + "." => 47, + ">" => 48 + }, + DEFAULT => -91 }, - {#State 118 + {#State 124 ACTIONS => { - "-" => 34, - "<" => 35, - "+" => 37, - "~" => 36, - "*" => 43, - "{" => 38, - "&" => 39, - "/" => 40, - "(" => 41, - "|" => 42, - "." => 44, - ">" => 45 + "-" => 35, + ":" => 34, + "<" => 37, + "+" => 39, + "~" => 38, + "*" => 46, + "?" => 36, + "{" => 40, + "&" => 41, + "/" => 42, + "=" => 43, + "(" => 44, + "|" => 45, + "." => 47, + ">" => 48 }, DEFAULT => -72 }, - {#State 119 + {#State 125 ACTIONS => { - "<" => 35, - "~" => 36, - "{" => 38 + ":" => 34, + "<" => 37, + "~" => 38, + "?" => 36, + "{" => 40, + "=" => 43 }, - DEFAULT => -87 + DEFAULT => -90 }, - {#State 120 + {#State 126 ACTIONS => { - "[" => 124 + "[" => 130 }, DEFAULT => -60, GOTOS => { - 'array_len' => 134 + 'array_len' => 140 } }, - {#State 121 + {#State 127 ACTIONS => { - "}" => 135 + "}" => 141 }, DEFAULT => -63, GOTOS => { - 'optional_base_element' => 137, - 'property_list' => 136 + 'optional_base_element' => 143, + 'property_list' => 142 } }, - {#State 122 + {#State 128 ACTIONS => { "," => -56, - "void" => 141, + "void" => 147, ")" => -56 }, DEFAULT => -63, GOTOS => { - 'base_element' => 138, - 'element_list2' => 140, - 'property_list' => 139 + 'base_element' => 144, + 'element_list2' => 146, + 'property_list' => 145 } }, - {#State 123 + {#State 129 ACTIONS => { - ";" => 142 + ";" => 148 } }, - {#State 124 + {#State 130 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, - "]" => 143, + "]" => 149, 'IDENTIFIER' => 9 }, DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 144, + 'anytext' => 150, 'text' => 24, 'constant' => 27 } }, - {#State 125 + {#State 131 ACTIONS => { - "=" => 145 + "=" => 151 } }, - {#State 126 + {#State 132 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, @@ -1535,135 +1685,138 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 146, + 'anytext' => 152, 'text' => 24, 'constant' => 27 } }, - {#State 127 + {#State 133 ACTIONS => { - "}" => 147 + "}" => 153 }, DEFAULT => -63, GOTOS => { - 'base_element' => 148, - 'property_list' => 139 + 'base_element' => 154, + 'property_list' => 145 } }, - {#State 128 + {#State 134 ACTIONS => { - "=" => 149 + "=" => 155 }, DEFAULT => -37 }, - {#State 129 + {#State 135 DEFAULT => -35 }, - {#State 130 + {#State 136 ACTIONS => { - "}" => 150, - "," => 151 + "}" => 156, + "," => 157 } }, - {#State 131 + {#State 137 DEFAULT => -40 }, - {#State 132 + {#State 138 ACTIONS => { - "}" => 152, - "," => 153 + "}" => 158, + "," => 159 } }, - {#State 133 + {#State 139 ACTIONS => { - "=" => 154 + "=" => 160 } }, - {#State 134 + {#State 140 ACTIONS => { - ";" => 155 + ";" => 161 } }, - {#State 135 + {#State 141 DEFAULT => -50 }, - {#State 136 + {#State 142 ACTIONS => { "[" => 7 }, DEFAULT => -63, GOTOS => { - 'base_or_empty' => 156, - 'base_element' => 157, - 'empty_element' => 158, - 'property_list' => 159 + 'base_or_empty' => 162, + 'base_element' => 163, + 'empty_element' => 164, + 'property_list' => 165 } }, - {#State 137 + {#State 143 DEFAULT => -49 }, - {#State 138 + {#State 144 DEFAULT => -58 }, - {#State 139 + {#State 145 ACTIONS => { 'IDENTIFIER' => 9, - "union" => 49, - "enum" => 62, - "bitmap" => 63, + "union" => 52, + "enum" => 65, + "bitmap" => 66, "[" => 7, - 'void' => 91, - "struct" => 60 + 'void' => 97, + "struct" => 63 }, GOTOS => { - 'identifier' => 93, - 'struct' => 56, - 'enum' => 58, - 'type' => 160, - 'union' => 67, - 'bitmap' => 64, - 'usertype' => 92 + 'identifier' => 99, + 'struct' => 59, + 'enum' => 61, + 'type' => 166, + 'union' => 70, + 'bitmap' => 67, + 'usertype' => 98 } }, - {#State 140 + {#State 146 ACTIONS => { - "," => 161, - ")" => 162 + "," => 167, + ")" => 168 } }, - {#State 141 + {#State 147 DEFAULT => -57 }, - {#State 142 + {#State 148 DEFAULT => -20 }, - {#State 143 + {#State 149 ACTIONS => { - "[" => 124 + "[" => 130 }, DEFAULT => -60, GOTOS => { - 'array_len' => 163 + 'array_len' => 169 } }, - {#State 144 + {#State 150 ACTIONS => { - "-" => 34, - "<" => 35, - "+" => 37, - "~" => 36, - "&" => 39, - "{" => 38, - "/" => 40, - "|" => 42, - "(" => 41, - "*" => 43, - "." => 44, - "]" => 164, - ">" => 45 + "-" => 35, + ":" => 34, + "?" => 36, + "<" => 37, + "+" => 39, + "~" => 38, + "&" => 41, + "{" => 40, + "/" => 42, + "=" => 43, + "|" => 45, + "(" => 44, + "*" => 46, + "." => 47, + "]" => 170, + ">" => 48 } }, - {#State 145 + {#State 151 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, @@ -1672,37 +1825,40 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 165, + 'anytext' => 171, 'text' => 24, 'constant' => 27 } }, - {#State 146 + {#State 152 ACTIONS => { - "-" => 34, - "<" => 35, - ";" => 166, - "+" => 37, - "~" => 36, - "&" => 39, - "{" => 38, - "/" => 40, - "|" => 42, - "(" => 41, - "*" => 43, - "." => 44, - ">" => 45 + "-" => 35, + ":" => 34, + "?" => 36, + "<" => 37, + ";" => 172, + "+" => 39, + "~" => 38, + "&" => 41, + "{" => 40, + "/" => 42, + "=" => 43, + "|" => 45, + "(" => 44, + "*" => 46, + "." => 47, + ">" => 48 } }, - {#State 147 + {#State 153 DEFAULT => -43 }, - {#State 148 + {#State 154 ACTIONS => { - ";" => 167 + ";" => 173 } }, - {#State 149 + {#State 155 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, @@ -1711,36 +1867,36 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 168, + 'anytext' => 174, 'text' => 24, 'constant' => 27 } }, - {#State 150 + {#State 156 DEFAULT => -34 }, - {#State 151 + {#State 157 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 128, - 'enum_element' => 169 + 'identifier' => 134, + 'enum_element' => 175 } }, - {#State 152 + {#State 158 DEFAULT => -39 }, - {#State 153 + {#State 159 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 133, - 'bitmap_element' => 170 + 'identifier' => 139, + 'bitmap_element' => 176 } }, - {#State 154 + {#State 160 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, @@ -1749,179 +1905,188 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 171, + 'anytext' => 177, 'text' => 24, 'constant' => 27 } }, - {#State 155 + {#State 161 DEFAULT => -25 }, - {#State 156 + {#State 162 DEFAULT => -47 }, - {#State 157 + {#State 163 ACTIONS => { - ";" => 172 + ";" => 178 } }, - {#State 158 + {#State 164 DEFAULT => -46 }, - {#State 159 + {#State 165 ACTIONS => { 'IDENTIFIER' => 9, - "union" => 49, - ";" => 173, - "enum" => 62, - "bitmap" => 63, - 'void' => 91, + "union" => 52, + ";" => 179, + "enum" => 65, + "bitmap" => 66, + 'void' => 97, "[" => 7, - "struct" => 60 + "struct" => 63 }, GOTOS => { - 'identifier' => 93, - 'struct' => 56, - 'enum' => 58, - 'type' => 160, - 'union' => 67, - 'bitmap' => 64, - 'usertype' => 92 + 'identifier' => 99, + 'struct' => 59, + 'enum' => 61, + 'type' => 166, + 'union' => 70, + 'bitmap' => 67, + 'usertype' => 98 } }, - {#State 160 + {#State 166 DEFAULT => -52, GOTOS => { - 'pointers' => 174 + 'pointers' => 180 } }, - {#State 161 + {#State 167 DEFAULT => -63, GOTOS => { - 'base_element' => 175, - 'property_list' => 139 + 'base_element' => 181, + 'property_list' => 145 } }, - {#State 162 + {#State 168 ACTIONS => { - ";" => 176 + ";" => 182 } }, - {#State 163 + {#State 169 DEFAULT => -61 }, - {#State 164 + {#State 170 ACTIONS => { - "[" => 124 + "[" => 130 }, DEFAULT => -60, GOTOS => { - 'array_len' => 177 + 'array_len' => 183 } }, - {#State 165 + {#State 171 ACTIONS => { - "-" => 34, - "<" => 35, - ";" => 178, - "+" => 37, - "~" => 36, - "&" => 39, - "{" => 38, - "/" => 40, - "|" => 42, - "(" => 41, - "*" => 43, - "." => 44, - ">" => 45 + "-" => 35, + ":" => 34, + "?" => 36, + "<" => 37, + ";" => 184, + "+" => 39, + "~" => 38, + "&" => 41, + "{" => 40, + "/" => 42, + "=" => 43, + "|" => 45, + "(" => 44, + "*" => 46, + "." => 47, + ">" => 48 } }, - {#State 166 + {#State 172 DEFAULT => -17 }, - {#State 167 + {#State 173 DEFAULT => -55 }, - {#State 168 + {#State 174 ACTIONS => { - "-" => 34, - "<" => 35, - "+" => 37, - "~" => 36, - "&" => 39, - "{" => 38, - "/" => 40, - "|" => 42, - "(" => 41, - "*" => 43, - "." => 44, - ">" => 45 + "-" => 35, + ":" => 34, + "<" => 37, + "+" => 39, + "~" => 38, + "*" => 46, + "?" => 36, + "{" => 40, + "&" => 41, + "/" => 42, + "=" => 43, + "(" => 44, + "|" => 45, + "." => 47, + ">" => 48 }, DEFAULT => -38 }, - {#State 169 + {#State 175 DEFAULT => -36 }, - {#State 170 + {#State 176 DEFAULT => -41 }, - {#State 171 + {#State 177 ACTIONS => { - "-" => 34, - "<" => 35, - "+" => 37, - "~" => 36, - "&" => 39, - "{" => 38, - "/" => 40, - "|" => 42, - "(" => 41, - "*" => 43, - "." => 44, - ">" => 45 + "-" => 35, + ":" => 34, + "<" => 37, + "+" => 39, + "~" => 38, + "*" => 46, + "?" => 36, + "{" => 40, + "&" => 41, + "/" => 42, + "=" => 43, + "(" => 44, + "|" => 45, + "." => 47, + ">" => 48 }, DEFAULT => -42 }, - {#State 172 + {#State 178 DEFAULT => -45 }, - {#State 173 + {#State 179 DEFAULT => -44 }, - {#State 174 + {#State 180 ACTIONS => { 'IDENTIFIER' => 9, - "*" => 180 + "*" => 186 }, GOTOS => { - 'identifier' => 179 + 'identifier' => 185 } }, - {#State 175 + {#State 181 DEFAULT => -59 }, - {#State 176 + {#State 182 DEFAULT => -19 }, - {#State 177 + {#State 183 DEFAULT => -62 }, - {#State 178 + {#State 184 DEFAULT => -18 }, - {#State 179 + {#State 185 ACTIONS => { - "[" => 124 + "[" => 130 }, DEFAULT => -60, GOTOS => { - 'array_len' => 181 + 'array_len' => 187 } }, - {#State 180 + {#State 186 DEFAULT => -53 }, - {#State 181 + {#State 187 DEFAULT => -51 } ], @@ -1936,19 +2101,19 @@ sub new { [#Rule 2 'idl', 2, sub -#line 19 "idl.yp" +#line 19 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 3 'idl', 2, sub -#line 20 "idl.yp" +#line 20 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 4 'coclass', 7, sub -#line 24 "idl.yp" +#line 24 "pidl/idl.yp" {$_[3] => { "TYPE" => "COCLASS", "PROPERTIES" => $_[1], @@ -1964,13 +2129,13 @@ sub [#Rule 6 'interface_names', 4, sub -#line 36 "idl.yp" +#line 36 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 7 'interface', 8, sub -#line 40 "idl.yp" +#line 40 "pidl/idl.yp" {$_[3] => { "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], @@ -1987,19 +2152,19 @@ sub [#Rule 9 'base_interface', 2, sub -#line 53 "idl.yp" +#line 53 "pidl/idl.yp" { $_[2] } ], [#Rule 10 'definitions', 1, sub -#line 57 "idl.yp" +#line 57 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 11 'definitions', 2, sub -#line 58 "idl.yp" +#line 58 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 12 @@ -2020,7 +2185,7 @@ sub [#Rule 17 'const', 6, sub -#line 66 "idl.yp" +#line 66 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2033,7 +2198,7 @@ sub [#Rule 18 'const', 7, sub -#line 75 "idl.yp" +#line 75 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2047,7 +2212,7 @@ sub [#Rule 19 'function', 7, sub -#line 88 "idl.yp" +#line 88 "pidl/idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -2061,7 +2226,7 @@ sub [#Rule 20 'declare', 5, sub -#line 100 "idl.yp" +#line 100 "pidl/idl.yp" {{ "TYPE" => "DECLARE", "PROPERTIES" => $_[2], @@ -2080,7 +2245,7 @@ sub [#Rule 23 'decl_enum', 1, sub -#line 114 "idl.yp" +#line 114 "pidl/idl.yp" {{ "TYPE" => "ENUM" }} @@ -2088,7 +2253,7 @@ sub [#Rule 24 'decl_bitmap', 1, sub -#line 120 "idl.yp" +#line 120 "pidl/idl.yp" {{ "TYPE" => "BITMAP" }} @@ -2096,7 +2261,7 @@ sub [#Rule 25 'typedef', 6, sub -#line 126 "idl.yp" +#line 126 "pidl/idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[2], @@ -2122,7 +2287,7 @@ sub [#Rule 30 'typedecl', 2, sub -#line 139 "idl.yp" +#line 139 "pidl/idl.yp" { $_[1] } ], [#Rule 31 @@ -2134,13 +2299,13 @@ sub [#Rule 33 'type', 1, sub -#line 142 "idl.yp" +#line 142 "pidl/idl.yp" { "void" } ], [#Rule 34 'enum', 5, sub -#line 146 "idl.yp" +#line 146 "pidl/idl.yp" {{ "TYPE" => "ENUM", "NAME" => $_[2], @@ -2150,13 +2315,13 @@ sub [#Rule 35 'enum_elements', 1, sub -#line 154 "idl.yp" +#line 154 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 36 'enum_elements', 3, sub -#line 155 "idl.yp" +#line 155 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 37 @@ -2165,13 +2330,13 @@ sub [#Rule 38 'enum_element', 3, sub -#line 159 "idl.yp" +#line 159 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 39 'bitmap', 5, sub -#line 163 "idl.yp" +#line 163 "pidl/idl.yp" {{ "TYPE" => "BITMAP", "NAME" => $_[2], @@ -2181,25 +2346,25 @@ sub [#Rule 40 'bitmap_elements', 1, sub -#line 171 "idl.yp" +#line 171 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 41 'bitmap_elements', 3, sub -#line 172 "idl.yp" +#line 172 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 42 'bitmap_element', 3, sub -#line 175 "idl.yp" +#line 175 "pidl/idl.yp" { "$_[1] ( $_[3] )" } ], [#Rule 43 'struct', 5, sub -#line 179 "idl.yp" +#line 179 "pidl/idl.yp" {{ "TYPE" => "STRUCT", "NAME" => $_[2], @@ -2209,7 +2374,7 @@ sub [#Rule 44 'empty_element', 2, sub -#line 187 "idl.yp" +#line 187 "pidl/idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2229,7 +2394,7 @@ sub [#Rule 47 'optional_base_element', 2, sub -#line 201 "idl.yp" +#line 201 "pidl/idl.yp" { $_[2]->{PROPERTIES} = Parse::Pidl::Util::FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], [#Rule 48 @@ -2238,13 +2403,13 @@ sub [#Rule 49 'union_elements', 2, sub -#line 206 "idl.yp" +#line 206 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 50 'union', 5, sub -#line 210 "idl.yp" +#line 210 "pidl/idl.yp" {{ "TYPE" => "UNION", "NAME" => $_[2], @@ -2254,7 +2419,7 @@ sub [#Rule 51 'base_element', 5, sub -#line 218 "idl.yp" +#line 218 "pidl/idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2268,13 +2433,13 @@ sub [#Rule 52 'pointers', 0, sub -#line 232 "idl.yp" +#line 232 "pidl/idl.yp" { 0 } ], [#Rule 53 'pointers', 2, sub -#line 233 "idl.yp" +#line 233 "pidl/idl.yp" { $_[1]+1 } ], [#Rule 54 @@ -2283,7 +2448,7 @@ sub [#Rule 55 'element_list1', 3, sub -#line 238 "idl.yp" +#line 238 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 56 @@ -2295,13 +2460,13 @@ sub [#Rule 58 'element_list2', 1, sub -#line 244 "idl.yp" +#line 244 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 59 'element_list2', 3, sub -#line 245 "idl.yp" +#line 245 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 60 @@ -2310,13 +2475,13 @@ sub [#Rule 61 'array_len', 3, sub -#line 250 "idl.yp" +#line 250 "pidl/idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], [#Rule 62 'array_len', 4, sub -#line 251 "idl.yp" +#line 251 "pidl/idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], [#Rule 63 @@ -2325,31 +2490,31 @@ sub [#Rule 64 'property_list', 4, sub -#line 257 "idl.yp" +#line 257 "pidl/idl.yp" { Parse::Pidl::Util::FlattenHash([$_[1],$_[3]]); } ], [#Rule 65 'properties', 1, sub -#line 260 "idl.yp" +#line 260 "pidl/idl.yp" { $_[1] } ], [#Rule 66 'properties', 3, sub -#line 261 "idl.yp" +#line 261 "pidl/idl.yp" { Parse::Pidl::Util::FlattenHash([$_[1], $_[3]]); } ], [#Rule 67 'property', 1, sub -#line 264 "idl.yp" +#line 264 "pidl/idl.yp" {{ "$_[1]" => "1" }} ], [#Rule 68 'property', 4, sub -#line 265 "idl.yp" +#line 265 "pidl/idl.yp" {{ "$_[1]" => "$_[3]" }} ], [#Rule 69 @@ -2358,7 +2523,7 @@ sub [#Rule 70 'listtext', 3, sub -#line 270 "idl.yp" +#line 270 "pidl/idl.yp" { "$_[1] $_[3]" } ], [#Rule 71 @@ -2367,13 +2532,13 @@ sub [#Rule 72 'commalisttext', 3, sub -#line 275 "idl.yp" +#line 275 "pidl/idl.yp" { "$_[1],$_[3]" } ], [#Rule 73 'anytext', 0, sub -#line 279 "idl.yp" +#line 279 "pidl/idl.yp" { "" } ], [#Rule 74 @@ -2388,97 +2553,115 @@ sub [#Rule 77 'anytext', 3, sub -#line 281 "idl.yp" +#line 281 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 78 'anytext', 3, sub -#line 282 "idl.yp" +#line 282 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 79 'anytext', 3, sub -#line 283 "idl.yp" +#line 283 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 80 'anytext', 3, sub -#line 284 "idl.yp" +#line 284 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 81 'anytext', 3, sub -#line 285 "idl.yp" +#line 285 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 82 'anytext', 3, sub -#line 286 "idl.yp" +#line 286 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 83 'anytext', 3, sub -#line 287 "idl.yp" +#line 287 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 84 'anytext', 3, sub -#line 288 "idl.yp" +#line 288 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 85 'anytext', 3, sub -#line 289 "idl.yp" +#line 289 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 86 'anytext', 3, sub -#line 290 "idl.yp" +#line 290 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 87 + 'anytext', 3, +sub +#line 291 "pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 88 + 'anytext', 3, +sub +#line 292 "pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 89 + 'anytext', 3, +sub +#line 293 "pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 90 'anytext', 5, sub -#line 291 "idl.yp" +#line 294 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 88 + [#Rule 91 'anytext', 5, sub -#line 292 "idl.yp" +#line 295 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 89 + [#Rule 92 'identifier', 1, undef ], - [#Rule 90 + [#Rule 93 'optional_identifier', 1, undef ], - [#Rule 91 + [#Rule 94 'optional_identifier', 0, undef ], - [#Rule 92 + [#Rule 95 'constant', 1, undef ], - [#Rule 93 + [#Rule 96 'text', 1, sub -#line 306 "idl.yp" +#line 309 "pidl/idl.yp" { "\"$_[1]\"" } ], - [#Rule 94 + [#Rule 97 'optional_semicolon', 0, undef ], - [#Rule 95 + [#Rule 98 'optional_semicolon', 1, undef ] ], @@ -2486,7 +2669,7 @@ sub bless($self,$class); } -#line 317 "idl.yp" +#line 320 "pidl/idl.yp" use Parse::Pidl::Util; -- cgit From e6190e6be55c8e6037b0cb2b357e133f5b313a02 Mon Sep 17 00:00:00 2001 From: James Peach Date: Thu, 8 Sep 2005 08:18:08 +0000 Subject: r10071: Configure checks for IRIX build environment. Test whether we can use the MIPSPro 7.4 -c99 option to get C99 support. Try to find a common perl that is more modern than /usr/bin/perl. (This used to be commit 82fab8b747bf68d8548c6f0f2f4bff98bd428d22) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 203e052022..2e73bd8410 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -2672,6 +2672,7 @@ sub #line 320 "pidl/idl.yp" +use config qw(%config); use Parse::Pidl::Util; ##################################################################### @@ -2775,7 +2776,7 @@ sub parse_idl($$) undef $/; my $cpp = $ENV{CPP}; if (! defined $cpp) { - $cpp = "cpp" + $cpp = $config::config{'CPP'}; } my $data = `$cpp -D__PIDL__ -xc $filename`; $/ = $saved_delim; -- cgit From c070fd62228a4fb0af0d275edc3d141e44dff389 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 8 Sep 2005 10:35:55 +0000 Subject: r10074: Pass CPP to pidl via environment variables rather then config.pm. This fixes the standalone pidl build (as used for ethereal) (This used to be commit 9c9ebd2214423c58357854f09bd744e13e807d8f) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 2e73bd8410..dd667cb9eb 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -2672,7 +2672,6 @@ sub #line 320 "pidl/idl.yp" -use config qw(%config); use Parse::Pidl::Util; ##################################################################### @@ -2776,7 +2775,7 @@ sub parse_idl($$) undef $/; my $cpp = $ENV{CPP}; if (! defined $cpp) { - $cpp = $config::config{'CPP'}; + $cpp = "CPP"; } my $data = `$cpp -D__PIDL__ -xc $filename`; $/ = $saved_delim; -- cgit From d9cdaccaa7049c773e876047320839dd6d2d9459 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 8 Sep 2005 21:59:40 +0000 Subject: r10093: Fix the HF_FIELD conformance file command (This used to be commit 0c0a4b55cff4079276073060dae91ff0c19af42f) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index dd667cb9eb..1aa4426cd6 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -2775,7 +2775,7 @@ sub parse_idl($$) undef $/; my $cpp = $ENV{CPP}; if (! defined $cpp) { - $cpp = "CPP"; + $cpp = "cpp"; } my $data = `$cpp -D__PIDL__ -xc $filename`; $/ = $saved_delim; -- cgit From c008f951cff74e5218c7ef7bbc90487433ab72c5 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 16 Oct 2005 17:17:42 +0000 Subject: r11097: Allow pointers in "const" (This used to be commit 88fcd56fb55ac3f7e1eef3b3c92a2593c79599d3) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 405 +++++++++++++++++++------------------ 1 file changed, 207 insertions(+), 198 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 1aa4426cd6..59a9aef76a 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -1424,11 +1424,9 @@ sub new { } }, {#State 102 - ACTIONS => { - 'IDENTIFIER' => 9 - }, + DEFAULT => -52, GOTOS => { - 'identifier' => 119 + 'pointers' => 119 } }, {#State 103 @@ -1535,17 +1533,17 @@ sub new { }, {#State 119 ACTIONS => { - "[" => 130, - "=" => 132 + 'IDENTIFIER' => 9, + "*" => 131 }, GOTOS => { - 'array_len' => 131 + 'identifier' => 130 } }, {#State 120 DEFAULT => -54, GOTOS => { - 'element_list1' => 133 + 'element_list1' => 132 } }, {#State 121 @@ -1553,9 +1551,9 @@ sub new { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 134, - 'enum_element' => 135, - 'enum_elements' => 136 + 'identifier' => 133, + 'enum_element' => 134, + 'enum_elements' => 135 } }, {#State 122 @@ -1563,9 +1561,9 @@ sub new { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 139, - 'bitmap_elements' => 138, - 'bitmap_element' => 137 + 'identifier' => 138, + 'bitmap_elements' => 137, + 'bitmap_element' => 136 } }, {#State 123 @@ -1621,7 +1619,7 @@ sub new { }, {#State 126 ACTIONS => { - "[" => 130 + "[" => 139 }, DEFAULT => -60, GOTOS => { @@ -1658,75 +1656,68 @@ sub new { }, {#State 130 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - "]" => 149, - 'IDENTIFIER' => 9 + "[" => 139, + "=" => 150 }, - DEFAULT => -73, GOTOS => { - 'identifier' => 23, - 'anytext' => 150, - 'text' => 24, - 'constant' => 27 + 'array_len' => 149 } }, {#State 131 - ACTIONS => { - "=" => 151 - } + DEFAULT => -53 }, {#State 132 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 - }, - DEFAULT => -73, - GOTOS => { - 'identifier' => 23, - 'anytext' => 152, - 'text' => 24, - 'constant' => 27 - } - }, - {#State 133 - ACTIONS => { - "}" => 153 + "}" => 151 }, DEFAULT => -63, GOTOS => { - 'base_element' => 154, + 'base_element' => 152, 'property_list' => 145 } }, - {#State 134 + {#State 133 ACTIONS => { - "=" => 155 + "=" => 153 }, DEFAULT => -37 }, - {#State 135 + {#State 134 DEFAULT => -35 }, + {#State 135 + ACTIONS => { + "}" => 154, + "," => 155 + } + }, {#State 136 + DEFAULT => -40 + }, + {#State 137 ACTIONS => { "}" => 156, "," => 157 } }, - {#State 137 - DEFAULT => -40 - }, {#State 138 ACTIONS => { - "}" => 158, - "," => 159 + "=" => 158 } }, {#State 139 ACTIONS => { - "=" => 160 + 'CONSTANT' => 28, + 'TEXT' => 22, + "]" => 159, + 'IDENTIFIER' => 9 + }, + DEFAULT => -73, + GOTOS => { + 'identifier' => 23, + 'anytext' => 160, + 'text' => 24, + 'constant' => 27 } }, {#State 140 @@ -1789,34 +1780,10 @@ sub new { }, {#State 149 ACTIONS => { - "[" => 130 - }, - DEFAULT => -60, - GOTOS => { - 'array_len' => 169 + "=" => 169 } }, {#State 150 - ACTIONS => { - "-" => 35, - ":" => 34, - "?" => 36, - "<" => 37, - "+" => 39, - "~" => 38, - "&" => 41, - "{" => 40, - "/" => 42, - "=" => 43, - "|" => 45, - "(" => 44, - "*" => 46, - "." => 47, - "]" => 170, - ">" => 48 - } - }, - {#State 151 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, @@ -1825,40 +1792,20 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 171, + 'anytext' => 170, 'text' => 24, 'constant' => 27 } }, - {#State 152 - ACTIONS => { - "-" => 35, - ":" => 34, - "?" => 36, - "<" => 37, - ";" => 172, - "+" => 39, - "~" => 38, - "&" => 41, - "{" => 40, - "/" => 42, - "=" => 43, - "|" => 45, - "(" => 44, - "*" => 46, - "." => 47, - ">" => 48 - } - }, - {#State 153 + {#State 151 DEFAULT => -43 }, - {#State 154 + {#State 152 ACTIONS => { - ";" => 173 + ";" => 171 } }, - {#State 155 + {#State 153 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, @@ -1867,36 +1814,36 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 174, + 'anytext' => 172, 'text' => 24, 'constant' => 27 } }, - {#State 156 + {#State 154 DEFAULT => -34 }, - {#State 157 + {#State 155 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 134, - 'enum_element' => 175 + 'identifier' => 133, + 'enum_element' => 173 } }, - {#State 158 + {#State 156 DEFAULT => -39 }, - {#State 159 + {#State 157 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 139, - 'bitmap_element' => 176 + 'identifier' => 138, + 'bitmap_element' => 174 } }, - {#State 160 + {#State 158 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, @@ -1905,11 +1852,40 @@ sub new { DEFAULT => -73, GOTOS => { 'identifier' => 23, - 'anytext' => 177, + 'anytext' => 175, 'text' => 24, 'constant' => 27 } }, + {#State 159 + ACTIONS => { + "[" => 139 + }, + DEFAULT => -60, + GOTOS => { + 'array_len' => 176 + } + }, + {#State 160 + ACTIONS => { + "-" => 35, + ":" => 34, + "?" => 36, + "<" => 37, + "+" => 39, + "~" => 38, + "&" => 41, + "{" => 40, + "/" => 42, + "=" => 43, + "|" => 45, + "(" => 44, + "*" => 46, + "." => 47, + "]" => 177, + ">" => 48 + } + }, {#State 161 DEFAULT => -25 }, @@ -1964,18 +1940,20 @@ sub new { } }, {#State 169 - DEFAULT => -61 - }, - {#State 170 ACTIONS => { - "[" => 130 + 'CONSTANT' => 28, + 'TEXT' => 22, + 'IDENTIFIER' => 9 }, - DEFAULT => -60, + DEFAULT => -73, GOTOS => { - 'array_len' => 183 + 'identifier' => 23, + 'anytext' => 183, + 'text' => 24, + 'constant' => 27 } }, - {#State 171 + {#State 170 ACTIONS => { "-" => 35, ":" => 34, @@ -1995,13 +1973,10 @@ sub new { ">" => 48 } }, - {#State 172 - DEFAULT => -17 - }, - {#State 173 + {#State 171 DEFAULT => -55 }, - {#State 174 + {#State 172 ACTIONS => { "-" => 35, ":" => 34, @@ -2021,13 +1996,13 @@ sub new { }, DEFAULT => -38 }, - {#State 175 + {#State 173 DEFAULT => -36 }, - {#State 176 + {#State 174 DEFAULT => -41 }, - {#State 177 + {#State 175 ACTIONS => { "-" => 35, ":" => 34, @@ -2047,6 +2022,18 @@ sub new { }, DEFAULT => -42 }, + {#State 176 + DEFAULT => -61 + }, + {#State 177 + ACTIONS => { + "[" => 139 + }, + DEFAULT => -60, + GOTOS => { + 'array_len' => 185 + } + }, {#State 178 DEFAULT => -45 }, @@ -2056,10 +2043,10 @@ sub new { {#State 180 ACTIONS => { 'IDENTIFIER' => 9, - "*" => 186 + "*" => 131 }, GOTOS => { - 'identifier' => 185 + 'identifier' => 186 } }, {#State 181 @@ -2069,24 +2056,44 @@ sub new { DEFAULT => -19 }, {#State 183 - DEFAULT => -62 + ACTIONS => { + "-" => 35, + ":" => 34, + "?" => 36, + "<" => 37, + ";" => 187, + "+" => 39, + "~" => 38, + "&" => 41, + "{" => 40, + "/" => 42, + "=" => 43, + "|" => 45, + "(" => 44, + "*" => 46, + "." => 47, + ">" => 48 + } }, {#State 184 - DEFAULT => -18 + DEFAULT => -17 }, {#State 185 + DEFAULT => -62 + }, + {#State 186 ACTIONS => { - "[" => 130 + "[" => 139 }, DEFAULT => -60, GOTOS => { - 'array_len' => 187 + 'array_len' => 188 } }, - {#State 186 - DEFAULT => -53 - }, {#State 187 + DEFAULT => -18 + }, + {#State 188 DEFAULT => -51 } ], @@ -2183,28 +2190,30 @@ sub 'definition', 1, undef ], [#Rule 17 - 'const', 6, + 'const', 7, sub #line 66 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], - "NAME" => $_[3], - "VALUE" => $_[5], + "POINTERS" => $_[3], + "NAME" => $_[4], + "VALUE" => $_[6], "FILE" => $_[0]->YYData->{INPUT_FILENAME}, "LINE" => $_[0]->YYData->{LINE}, }} ], [#Rule 18 - 'const', 7, + 'const', 8, sub -#line 75 "pidl/idl.yp" +#line 76 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], - "NAME" => $_[3], - "ARRAY_LEN" => $_[4], - "VALUE" => $_[6], + "POINTERS" => $_[3], + "NAME" => $_[4], + "ARRAY_LEN" => $_[5], + "VALUE" => $_[7], "FILE" => $_[0]->YYData->{INPUT_FILENAME}, "LINE" => $_[0]->YYData->{LINE}, }} @@ -2212,7 +2221,7 @@ sub [#Rule 19 'function', 7, sub -#line 88 "pidl/idl.yp" +#line 90 "pidl/idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -2226,7 +2235,7 @@ sub [#Rule 20 'declare', 5, sub -#line 100 "pidl/idl.yp" +#line 102 "pidl/idl.yp" {{ "TYPE" => "DECLARE", "PROPERTIES" => $_[2], @@ -2245,7 +2254,7 @@ sub [#Rule 23 'decl_enum', 1, sub -#line 114 "pidl/idl.yp" +#line 116 "pidl/idl.yp" {{ "TYPE" => "ENUM" }} @@ -2253,7 +2262,7 @@ sub [#Rule 24 'decl_bitmap', 1, sub -#line 120 "pidl/idl.yp" +#line 122 "pidl/idl.yp" {{ "TYPE" => "BITMAP" }} @@ -2261,7 +2270,7 @@ sub [#Rule 25 'typedef', 6, sub -#line 126 "pidl/idl.yp" +#line 128 "pidl/idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[2], @@ -2287,7 +2296,7 @@ sub [#Rule 30 'typedecl', 2, sub -#line 139 "pidl/idl.yp" +#line 141 "pidl/idl.yp" { $_[1] } ], [#Rule 31 @@ -2299,13 +2308,13 @@ sub [#Rule 33 'type', 1, sub -#line 142 "pidl/idl.yp" +#line 144 "pidl/idl.yp" { "void" } ], [#Rule 34 'enum', 5, sub -#line 146 "pidl/idl.yp" +#line 148 "pidl/idl.yp" {{ "TYPE" => "ENUM", "NAME" => $_[2], @@ -2315,13 +2324,13 @@ sub [#Rule 35 'enum_elements', 1, sub -#line 154 "pidl/idl.yp" +#line 156 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 36 'enum_elements', 3, sub -#line 155 "pidl/idl.yp" +#line 157 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 37 @@ -2330,13 +2339,13 @@ sub [#Rule 38 'enum_element', 3, sub -#line 159 "pidl/idl.yp" +#line 161 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 39 'bitmap', 5, sub -#line 163 "pidl/idl.yp" +#line 165 "pidl/idl.yp" {{ "TYPE" => "BITMAP", "NAME" => $_[2], @@ -2346,25 +2355,25 @@ sub [#Rule 40 'bitmap_elements', 1, sub -#line 171 "pidl/idl.yp" +#line 173 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 41 'bitmap_elements', 3, sub -#line 172 "pidl/idl.yp" +#line 174 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 42 'bitmap_element', 3, sub -#line 175 "pidl/idl.yp" +#line 177 "pidl/idl.yp" { "$_[1] ( $_[3] )" } ], [#Rule 43 'struct', 5, sub -#line 179 "pidl/idl.yp" +#line 181 "pidl/idl.yp" {{ "TYPE" => "STRUCT", "NAME" => $_[2], @@ -2374,7 +2383,7 @@ sub [#Rule 44 'empty_element', 2, sub -#line 187 "pidl/idl.yp" +#line 189 "pidl/idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2394,7 +2403,7 @@ sub [#Rule 47 'optional_base_element', 2, sub -#line 201 "pidl/idl.yp" +#line 203 "pidl/idl.yp" { $_[2]->{PROPERTIES} = Parse::Pidl::Util::FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], [#Rule 48 @@ -2403,13 +2412,13 @@ sub [#Rule 49 'union_elements', 2, sub -#line 206 "pidl/idl.yp" +#line 208 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 50 'union', 5, sub -#line 210 "pidl/idl.yp" +#line 212 "pidl/idl.yp" {{ "TYPE" => "UNION", "NAME" => $_[2], @@ -2419,7 +2428,7 @@ sub [#Rule 51 'base_element', 5, sub -#line 218 "pidl/idl.yp" +#line 220 "pidl/idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2433,13 +2442,13 @@ sub [#Rule 52 'pointers', 0, sub -#line 232 "pidl/idl.yp" +#line 234 "pidl/idl.yp" { 0 } ], [#Rule 53 'pointers', 2, sub -#line 233 "pidl/idl.yp" +#line 235 "pidl/idl.yp" { $_[1]+1 } ], [#Rule 54 @@ -2448,7 +2457,7 @@ sub [#Rule 55 'element_list1', 3, sub -#line 238 "pidl/idl.yp" +#line 240 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 56 @@ -2460,13 +2469,13 @@ sub [#Rule 58 'element_list2', 1, sub -#line 244 "pidl/idl.yp" +#line 246 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 59 'element_list2', 3, sub -#line 245 "pidl/idl.yp" +#line 247 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 60 @@ -2475,13 +2484,13 @@ sub [#Rule 61 'array_len', 3, sub -#line 250 "pidl/idl.yp" +#line 252 "pidl/idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], [#Rule 62 'array_len', 4, sub -#line 251 "pidl/idl.yp" +#line 253 "pidl/idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], [#Rule 63 @@ -2490,31 +2499,31 @@ sub [#Rule 64 'property_list', 4, sub -#line 257 "pidl/idl.yp" +#line 259 "pidl/idl.yp" { Parse::Pidl::Util::FlattenHash([$_[1],$_[3]]); } ], [#Rule 65 'properties', 1, sub -#line 260 "pidl/idl.yp" +#line 262 "pidl/idl.yp" { $_[1] } ], [#Rule 66 'properties', 3, sub -#line 261 "pidl/idl.yp" +#line 263 "pidl/idl.yp" { Parse::Pidl::Util::FlattenHash([$_[1], $_[3]]); } ], [#Rule 67 'property', 1, sub -#line 264 "pidl/idl.yp" +#line 266 "pidl/idl.yp" {{ "$_[1]" => "1" }} ], [#Rule 68 'property', 4, sub -#line 265 "pidl/idl.yp" +#line 267 "pidl/idl.yp" {{ "$_[1]" => "$_[3]" }} ], [#Rule 69 @@ -2523,7 +2532,7 @@ sub [#Rule 70 'listtext', 3, sub -#line 270 "pidl/idl.yp" +#line 272 "pidl/idl.yp" { "$_[1] $_[3]" } ], [#Rule 71 @@ -2532,13 +2541,13 @@ sub [#Rule 72 'commalisttext', 3, sub -#line 275 "pidl/idl.yp" +#line 277 "pidl/idl.yp" { "$_[1],$_[3]" } ], [#Rule 73 'anytext', 0, sub -#line 279 "pidl/idl.yp" +#line 281 "pidl/idl.yp" { "" } ], [#Rule 74 @@ -2553,91 +2562,91 @@ sub [#Rule 77 'anytext', 3, sub -#line 281 "pidl/idl.yp" +#line 283 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 78 'anytext', 3, sub -#line 282 "pidl/idl.yp" +#line 284 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 79 'anytext', 3, sub -#line 283 "pidl/idl.yp" +#line 285 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 80 'anytext', 3, sub -#line 284 "pidl/idl.yp" +#line 286 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 81 'anytext', 3, sub -#line 285 "pidl/idl.yp" +#line 287 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 82 'anytext', 3, sub -#line 286 "pidl/idl.yp" +#line 288 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 83 'anytext', 3, sub -#line 287 "pidl/idl.yp" +#line 289 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 84 'anytext', 3, sub -#line 288 "pidl/idl.yp" +#line 290 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 85 'anytext', 3, sub -#line 289 "pidl/idl.yp" +#line 291 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 86 'anytext', 3, sub -#line 290 "pidl/idl.yp" +#line 292 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 87 'anytext', 3, sub -#line 291 "pidl/idl.yp" +#line 293 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 88 'anytext', 3, sub -#line 292 "pidl/idl.yp" +#line 294 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 89 'anytext', 3, sub -#line 293 "pidl/idl.yp" +#line 295 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 90 'anytext', 5, sub -#line 294 "pidl/idl.yp" +#line 296 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 91 'anytext', 5, sub -#line 295 "pidl/idl.yp" +#line 297 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 92 @@ -2655,7 +2664,7 @@ sub [#Rule 96 'text', 1, sub -#line 309 "pidl/idl.yp" +#line 311 "pidl/idl.yp" { "\"$_[1]\"" } ], [#Rule 97 @@ -2669,7 +2678,7 @@ sub bless($self,$class); } -#line 320 "pidl/idl.yp" +#line 322 "pidl/idl.yp" use Parse::Pidl::Util; -- cgit From e791dd73b98308b949f4ecfb91b5c87183b5de76 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 24 Dec 2005 21:57:51 +0000 Subject: r12462: Hide oo magic from callers of the parser (This used to be commit 0c225d2978b11898d334ec2d6da910e0cca0f4cd) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 153 ++++++++++++++++++++----------------- 1 file changed, 81 insertions(+), 72 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 59a9aef76a..c948f1af33 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -2108,19 +2108,19 @@ sub new { [#Rule 2 'idl', 2, sub -#line 19 "pidl/idl.yp" +#line 19 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 3 'idl', 2, sub -#line 20 "pidl/idl.yp" +#line 20 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 4 'coclass', 7, sub -#line 24 "pidl/idl.yp" +#line 24 "idl.yp" {$_[3] => { "TYPE" => "COCLASS", "PROPERTIES" => $_[1], @@ -2136,13 +2136,13 @@ sub [#Rule 6 'interface_names', 4, sub -#line 36 "pidl/idl.yp" +#line 36 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 7 'interface', 8, sub -#line 40 "pidl/idl.yp" +#line 40 "idl.yp" {$_[3] => { "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], @@ -2159,19 +2159,19 @@ sub [#Rule 9 'base_interface', 2, sub -#line 53 "pidl/idl.yp" +#line 53 "idl.yp" { $_[2] } ], [#Rule 10 'definitions', 1, sub -#line 57 "pidl/idl.yp" +#line 57 "idl.yp" { [ $_[1] ] } ], [#Rule 11 'definitions', 2, sub -#line 58 "pidl/idl.yp" +#line 58 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 12 @@ -2192,7 +2192,7 @@ sub [#Rule 17 'const', 7, sub -#line 66 "pidl/idl.yp" +#line 66 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2206,7 +2206,7 @@ sub [#Rule 18 'const', 8, sub -#line 76 "pidl/idl.yp" +#line 76 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2221,7 +2221,7 @@ sub [#Rule 19 'function', 7, sub -#line 90 "pidl/idl.yp" +#line 90 "idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -2235,7 +2235,7 @@ sub [#Rule 20 'declare', 5, sub -#line 102 "pidl/idl.yp" +#line 102 "idl.yp" {{ "TYPE" => "DECLARE", "PROPERTIES" => $_[2], @@ -2254,7 +2254,7 @@ sub [#Rule 23 'decl_enum', 1, sub -#line 116 "pidl/idl.yp" +#line 116 "idl.yp" {{ "TYPE" => "ENUM" }} @@ -2262,7 +2262,7 @@ sub [#Rule 24 'decl_bitmap', 1, sub -#line 122 "pidl/idl.yp" +#line 122 "idl.yp" {{ "TYPE" => "BITMAP" }} @@ -2270,7 +2270,7 @@ sub [#Rule 25 'typedef', 6, sub -#line 128 "pidl/idl.yp" +#line 128 "idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[2], @@ -2296,7 +2296,7 @@ sub [#Rule 30 'typedecl', 2, sub -#line 141 "pidl/idl.yp" +#line 141 "idl.yp" { $_[1] } ], [#Rule 31 @@ -2308,13 +2308,13 @@ sub [#Rule 33 'type', 1, sub -#line 144 "pidl/idl.yp" +#line 144 "idl.yp" { "void" } ], [#Rule 34 'enum', 5, sub -#line 148 "pidl/idl.yp" +#line 148 "idl.yp" {{ "TYPE" => "ENUM", "NAME" => $_[2], @@ -2324,13 +2324,13 @@ sub [#Rule 35 'enum_elements', 1, sub -#line 156 "pidl/idl.yp" +#line 156 "idl.yp" { [ $_[1] ] } ], [#Rule 36 'enum_elements', 3, sub -#line 157 "pidl/idl.yp" +#line 157 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 37 @@ -2339,13 +2339,13 @@ sub [#Rule 38 'enum_element', 3, sub -#line 161 "pidl/idl.yp" +#line 161 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 39 'bitmap', 5, sub -#line 165 "pidl/idl.yp" +#line 165 "idl.yp" {{ "TYPE" => "BITMAP", "NAME" => $_[2], @@ -2355,25 +2355,25 @@ sub [#Rule 40 'bitmap_elements', 1, sub -#line 173 "pidl/idl.yp" +#line 173 "idl.yp" { [ $_[1] ] } ], [#Rule 41 'bitmap_elements', 3, sub -#line 174 "pidl/idl.yp" +#line 174 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 42 'bitmap_element', 3, sub -#line 177 "pidl/idl.yp" +#line 177 "idl.yp" { "$_[1] ( $_[3] )" } ], [#Rule 43 'struct', 5, sub -#line 181 "pidl/idl.yp" +#line 181 "idl.yp" {{ "TYPE" => "STRUCT", "NAME" => $_[2], @@ -2383,7 +2383,7 @@ sub [#Rule 44 'empty_element', 2, sub -#line 189 "pidl/idl.yp" +#line 189 "idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2403,7 +2403,7 @@ sub [#Rule 47 'optional_base_element', 2, sub -#line 203 "pidl/idl.yp" +#line 203 "idl.yp" { $_[2]->{PROPERTIES} = Parse::Pidl::Util::FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], [#Rule 48 @@ -2412,13 +2412,13 @@ sub [#Rule 49 'union_elements', 2, sub -#line 208 "pidl/idl.yp" +#line 208 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 50 'union', 5, sub -#line 212 "pidl/idl.yp" +#line 212 "idl.yp" {{ "TYPE" => "UNION", "NAME" => $_[2], @@ -2428,7 +2428,7 @@ sub [#Rule 51 'base_element', 5, sub -#line 220 "pidl/idl.yp" +#line 220 "idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2442,13 +2442,13 @@ sub [#Rule 52 'pointers', 0, sub -#line 234 "pidl/idl.yp" +#line 234 "idl.yp" { 0 } ], [#Rule 53 'pointers', 2, sub -#line 235 "pidl/idl.yp" +#line 235 "idl.yp" { $_[1]+1 } ], [#Rule 54 @@ -2457,7 +2457,7 @@ sub [#Rule 55 'element_list1', 3, sub -#line 240 "pidl/idl.yp" +#line 240 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 56 @@ -2469,13 +2469,13 @@ sub [#Rule 58 'element_list2', 1, sub -#line 246 "pidl/idl.yp" +#line 246 "idl.yp" { [ $_[1] ] } ], [#Rule 59 'element_list2', 3, sub -#line 247 "pidl/idl.yp" +#line 247 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 60 @@ -2484,13 +2484,13 @@ sub [#Rule 61 'array_len', 3, sub -#line 252 "pidl/idl.yp" +#line 252 "idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], [#Rule 62 'array_len', 4, sub -#line 253 "pidl/idl.yp" +#line 253 "idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], [#Rule 63 @@ -2499,31 +2499,31 @@ sub [#Rule 64 'property_list', 4, sub -#line 259 "pidl/idl.yp" +#line 259 "idl.yp" { Parse::Pidl::Util::FlattenHash([$_[1],$_[3]]); } ], [#Rule 65 'properties', 1, sub -#line 262 "pidl/idl.yp" +#line 262 "idl.yp" { $_[1] } ], [#Rule 66 'properties', 3, sub -#line 263 "pidl/idl.yp" +#line 263 "idl.yp" { Parse::Pidl::Util::FlattenHash([$_[1], $_[3]]); } ], [#Rule 67 'property', 1, sub -#line 266 "pidl/idl.yp" +#line 266 "idl.yp" {{ "$_[1]" => "1" }} ], [#Rule 68 'property', 4, sub -#line 267 "pidl/idl.yp" +#line 267 "idl.yp" {{ "$_[1]" => "$_[3]" }} ], [#Rule 69 @@ -2532,7 +2532,7 @@ sub [#Rule 70 'listtext', 3, sub -#line 272 "pidl/idl.yp" +#line 272 "idl.yp" { "$_[1] $_[3]" } ], [#Rule 71 @@ -2541,13 +2541,13 @@ sub [#Rule 72 'commalisttext', 3, sub -#line 277 "pidl/idl.yp" +#line 277 "idl.yp" { "$_[1],$_[3]" } ], [#Rule 73 'anytext', 0, sub -#line 281 "pidl/idl.yp" +#line 281 "idl.yp" { "" } ], [#Rule 74 @@ -2562,91 +2562,91 @@ sub [#Rule 77 'anytext', 3, sub -#line 283 "pidl/idl.yp" +#line 283 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 78 'anytext', 3, sub -#line 284 "pidl/idl.yp" +#line 284 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 79 'anytext', 3, sub -#line 285 "pidl/idl.yp" +#line 285 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 80 'anytext', 3, sub -#line 286 "pidl/idl.yp" +#line 286 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 81 'anytext', 3, sub -#line 287 "pidl/idl.yp" +#line 287 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 82 'anytext', 3, sub -#line 288 "pidl/idl.yp" +#line 288 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 83 'anytext', 3, sub -#line 289 "pidl/idl.yp" +#line 289 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 84 'anytext', 3, sub -#line 290 "pidl/idl.yp" +#line 290 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 85 'anytext', 3, sub -#line 291 "pidl/idl.yp" +#line 291 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 86 'anytext', 3, sub -#line 292 "pidl/idl.yp" +#line 292 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 87 'anytext', 3, sub -#line 293 "pidl/idl.yp" +#line 293 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 88 'anytext', 3, sub -#line 294 "pidl/idl.yp" +#line 294 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 89 'anytext', 3, sub -#line 295 "pidl/idl.yp" +#line 295 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 90 'anytext', 5, sub -#line 296 "pidl/idl.yp" +#line 296 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 91 'anytext', 5, sub -#line 297 "pidl/idl.yp" +#line 297 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 92 @@ -2664,7 +2664,7 @@ sub [#Rule 96 'text', 1, sub -#line 311 "pidl/idl.yp" +#line 311 "idl.yp" { "\"$_[1]\"" } ], [#Rule 97 @@ -2678,7 +2678,7 @@ sub bless($self,$class); } -#line 322 "pidl/idl.yp" +#line 322 "idl.yp" use Parse::Pidl::Util; @@ -2776,9 +2776,24 @@ again: } } -sub parse_idl($$) +sub parse_string($) { - my ($self,$filename) = @_; + my ($data) = @_; + + my $self = new Parse::Pidl::IDL; + + $self->YYData->{INPUT} = $data; + $self->YYData->{LINE} = 0; + $self->YYData->{LAST_TOKEN} = "NONE"; + + my $idl = $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error ); + + return CleanData($idl); +} + +sub parse_file($) +{ + my ($filename) = @_; my $saved_delim = $/; undef $/; @@ -2789,13 +2804,7 @@ sub parse_idl($$) my $data = `$cpp -D__PIDL__ -xc $filename`; $/ = $saved_delim; - $self->YYData->{INPUT} = $data; - $self->YYData->{LINE} = 0; - $self->YYData->{LAST_TOKEN} = "NONE"; - - my $idl = $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error ); - - return CleanData($idl); + return parse_string($data); } 1; -- cgit From 68ef82aac72c351f6e166b92bbb4573e8bcdbc86 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 24 Dec 2005 23:32:50 +0000 Subject: r12464: Add simple IDL parsing tests for pidl using the standard perl testing framework (Test::Simple, distributed with perl itself). Run these tests from 'make test' (This used to be commit 975d8816db6697dab828941b69a740e3a0a2c272) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index c948f1af33..4988ae572a 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -2690,6 +2690,7 @@ sub CleanData($) { sub CleanData($); my($v) = shift; + return undef if (not defined($v)); if (ref($v) eq "ARRAY") { foreach my $i (0 .. $#{$v}) { CleanData($v->[$i]); @@ -2776,12 +2777,13 @@ again: } } -sub parse_string($) +sub parse_string { - my ($data) = @_; + my ($data,$filename) = @_; my $self = new Parse::Pidl::IDL; + $self->YYData->{INPUT_FILENAME} = $filename; $self->YYData->{INPUT} = $data; $self->YYData->{LINE} = 0; $self->YYData->{LAST_TOKEN} = "NONE"; @@ -2804,7 +2806,7 @@ sub parse_file($) my $data = `$cpp -D__PIDL__ -xc $filename`; $/ = $saved_delim; - return parse_string($data); + return parse_string($data, $filename); } 1; -- cgit From a4fe56c06a95bf5278a4a0efdd976febc2b9866b Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 25 Dec 2005 14:59:21 +0000 Subject: r12481: Move parser-specific utility functions to idl.yp, remove some unused functions Allow the use of non-typedef structs and unions when declaring variables. Allow the use of the 'signed' and 'unsigned' qualifiers for integer types (This used to be commit bc6b45e242c8d7b2ef1a6e6d3eb172c27afd952d) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 1032 +++++++++++++++++++++--------------- 1 file changed, 597 insertions(+), 435 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 4988ae572a..60439b8601 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -509,7 +509,7 @@ sub new { ACTIONS => { '' => 2 }, - DEFAULT => -63, + DEFAULT => -80, GOTOS => { 'interface' => 3, 'coclass' => 4, @@ -559,7 +559,7 @@ sub new { } }, {#State 9 - DEFAULT => -92 + DEFAULT => -109 }, {#State 10 ACTIONS => { @@ -570,10 +570,10 @@ sub new { ACTIONS => { "(" => 16 }, - DEFAULT => -67 + DEFAULT => -84 }, {#State 12 - DEFAULT => -65 + DEFAULT => -82 }, {#State 13 ACTIONS => { @@ -602,7 +602,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'listtext' => 26, @@ -621,7 +621,7 @@ sub new { } }, {#State 18 - DEFAULT => -64 + DEFAULT => -81 }, {#State 19 ACTIONS => { @@ -643,13 +643,13 @@ sub new { } }, {#State 22 - DEFAULT => -96 + DEFAULT => -113 }, {#State 23 - DEFAULT => -74 + DEFAULT => -91 }, {#State 24 - DEFAULT => -76 + DEFAULT => -93 }, {#State 25 ACTIONS => { @@ -669,7 +669,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -69 + DEFAULT => -86 }, {#State 26 ACTIONS => { @@ -678,13 +678,13 @@ sub new { } }, {#State 27 - DEFAULT => -75 + DEFAULT => -92 }, {#State 28 - DEFAULT => -95 + DEFAULT => -112 }, {#State 29 - DEFAULT => -66 + DEFAULT => -83 }, {#State 30 DEFAULT => -9 @@ -699,7 +699,7 @@ sub new { "const" => 60, "struct" => 63 }, - DEFAULT => -63, + DEFAULT => -80, GOTOS => { 'typedecl' => 64, 'function' => 53, @@ -720,7 +720,7 @@ sub new { ACTIONS => { ";" => 71 }, - DEFAULT => -97, + DEFAULT => -114, GOTOS => { 'optional_semicolon' => 72 } @@ -739,7 +739,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 74, @@ -753,7 +753,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 75, @@ -767,7 +767,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 76, @@ -781,7 +781,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 77, @@ -795,7 +795,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 78, @@ -809,7 +809,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 79, @@ -823,7 +823,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 80, @@ -838,7 +838,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 82, @@ -852,7 +852,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 83, @@ -866,7 +866,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 84, @@ -880,7 +880,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 80, @@ -895,7 +895,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 86, @@ -909,7 +909,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 87, @@ -923,7 +923,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 88, @@ -937,7 +937,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 89, @@ -951,7 +951,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, 'anytext' => 90, @@ -960,10 +960,10 @@ sub new { } }, {#State 50 - DEFAULT => -68 + DEFAULT => -85 }, {#State 51 - DEFAULT => -63, + DEFAULT => -80, GOTOS => { 'property_list' => 91 } @@ -972,7 +972,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -94, + DEFAULT => -111, GOTOS => { 'optional_identifier' => 93 } @@ -991,7 +991,7 @@ sub new { "const" => 60, "struct" => 63 }, - DEFAULT => -63, + DEFAULT => -80, GOTOS => { 'typedecl' => 64, 'function' => 53, @@ -1015,30 +1015,34 @@ sub new { {#State 56 ACTIONS => { 'IDENTIFIER' => 9, + "signed" => 102, "union" => 52, "enum" => 65, "bitmap" => 66, - "[" => 7, 'void' => 97, + "unsigned" => 103, + "[" => 7, "struct" => 63 }, GOTOS => { + 'existingtype' => 101, + 'bitmap' => 67, + 'usertype' => 98, 'identifier' => 99, 'struct' => 59, 'enum' => 61, - 'type' => 100, + 'type' => 104, 'union' => 70, - 'bitmap' => 67, - 'usertype' => 98 + 'sign' => 100 } }, {#State 57 DEFAULT => -10 }, {#State 58 - DEFAULT => -63, + DEFAULT => -80, GOTOS => { - 'property_list' => 101 + 'property_list' => 105 } }, {#State 59 @@ -1049,7 +1053,7 @@ sub new { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 102 + 'identifier' => 106 } }, {#State 61 @@ -1062,9 +1066,9 @@ sub new { ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -94, + DEFAULT => -111, GOTOS => { - 'optional_identifier' => 103 + 'optional_identifier' => 107 } }, {#State 64 @@ -1074,18 +1078,18 @@ sub new { ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -94, + DEFAULT => -111, GOTOS => { - 'optional_identifier' => 104 + 'optional_identifier' => 108 } }, {#State 66 ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -94, + DEFAULT => -111, GOTOS => { - 'optional_identifier' => 105 + 'optional_identifier' => 109 } }, {#State 67 @@ -1101,14 +1105,14 @@ sub new { DEFAULT => -27 }, {#State 71 - DEFAULT => -98 + DEFAULT => -115 }, {#State 72 DEFAULT => -4 }, {#State 73 ACTIONS => { - ";" => 106 + ";" => 110 } }, {#State 74 @@ -1129,7 +1133,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -86 + DEFAULT => -103 }, {#State 75 ACTIONS => { @@ -1140,7 +1144,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -77 + DEFAULT => -94 }, {#State 76 ACTIONS => { @@ -1160,7 +1164,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -85 + DEFAULT => -102 }, {#State 77 ACTIONS => { @@ -1180,7 +1184,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -81 + DEFAULT => -98 }, {#State 78 ACTIONS => { @@ -1200,7 +1204,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -89 + DEFAULT => -106 }, {#State 79 ACTIONS => { @@ -1211,7 +1215,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -88 + DEFAULT => -105 }, {#State 80 ACTIONS => { @@ -1231,12 +1235,12 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -71 + DEFAULT => -88 }, {#State 81 ACTIONS => { - "}" => 107, - "," => 108 + "}" => 111, + "," => 112 } }, {#State 82 @@ -1248,7 +1252,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -83 + DEFAULT => -100 }, {#State 83 ACTIONS => { @@ -1259,7 +1263,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -84 + DEFAULT => -101 }, {#State 84 ACTIONS => { @@ -1279,12 +1283,12 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -87 + DEFAULT => -104 }, {#State 85 ACTIONS => { - "," => 108, - ")" => 109 + "," => 112, + ")" => 113 } }, {#State 86 @@ -1296,7 +1300,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -82 + DEFAULT => -99 }, {#State 87 ACTIONS => { @@ -1307,7 +1311,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -79 + DEFAULT => -96 }, {#State 88 ACTIONS => { @@ -1318,7 +1322,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -78 + DEFAULT => -95 }, {#State 89 ACTIONS => { @@ -1329,7 +1333,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -80 + DEFAULT => -97 }, {#State 90 ACTIONS => { @@ -1349,43 +1353,52 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -70 + DEFAULT => -87 }, {#State 91 ACTIONS => { 'IDENTIFIER' => 9, + "signed" => 102, "union" => 52, "enum" => 65, "bitmap" => 66, - "[" => 7, 'void' => 97, + "unsigned" => 103, + "[" => 7, "struct" => 63 }, GOTOS => { + 'existingtype' => 101, + 'bitmap' => 67, + 'usertype' => 98, 'identifier' => 99, 'struct' => 59, 'enum' => 61, - 'type' => 110, + 'type' => 114, 'union' => 70, - 'bitmap' => 67, - 'usertype' => 98 + 'sign' => 100 } }, {#State 92 - DEFAULT => -93 + DEFAULT => -110 }, {#State 93 ACTIONS => { - "{" => 111 + "{" => 116 + }, + DEFAULT => -65, + GOTOS => { + 'union_body' => 117, + 'opt_union_body' => 115 } }, {#State 94 ACTIONS => { ";" => 71 }, - DEFAULT => -97, + DEFAULT => -114, GOTOS => { - 'optional_semicolon' => 112 + 'optional_semicolon' => 118 } }, {#State 95 @@ -1395,178 +1408,237 @@ sub new { DEFAULT => -30 }, {#State 97 - DEFAULT => -33 + DEFAULT => -38 }, {#State 98 - DEFAULT => -31 + DEFAULT => -36 }, {#State 99 - DEFAULT => -32 + DEFAULT => -35 }, {#State 100 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 113 + 'identifier' => 119 } }, {#State 101 + DEFAULT => -37 + }, + {#State 102 + DEFAULT => -31 + }, + {#State 103 + DEFAULT => -32 + }, + {#State 104 ACTIONS => { - "enum" => 117, - "bitmap" => 118, + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 120 + } + }, + {#State 105 + ACTIONS => { + "enum" => 124, + "bitmap" => 125, "[" => 7 }, GOTOS => { - 'decl_enum' => 114, - 'decl_bitmap' => 115, - 'decl_type' => 116 + 'decl_enum' => 121, + 'decl_bitmap' => 122, + 'decl_type' => 123 } }, - {#State 102 - DEFAULT => -52, + {#State 106 + DEFAULT => -69, GOTOS => { - 'pointers' => 119 + 'pointers' => 126 } }, - {#State 103 + {#State 107 ACTIONS => { - "{" => 120 + "{" => 128 + }, + DEFAULT => -55, + GOTOS => { + 'struct_body' => 127, + 'opt_struct_body' => 129 } }, - {#State 104 + {#State 108 ACTIONS => { - "{" => 121 + "{" => 130 + }, + DEFAULT => -40, + GOTOS => { + 'opt_enum_body' => 132, + 'enum_body' => 131 } }, - {#State 105 + {#State 109 ACTIONS => { - "{" => 122 + "{" => 134 + }, + DEFAULT => -48, + GOTOS => { + 'bitmap_body' => 135, + 'opt_bitmap_body' => 133 } }, - {#State 106 + {#State 110 DEFAULT => -6 }, - {#State 107 + {#State 111 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, - 'anytext' => 123, + 'anytext' => 136, 'text' => 24, 'constant' => 27 } }, - {#State 108 + {#State 112 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, - 'anytext' => 124, + 'anytext' => 137, 'text' => 24, 'constant' => 27 } }, - {#State 109 + {#State 113 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, - 'anytext' => 125, + 'anytext' => 138, 'text' => 24, 'constant' => 27 } }, - {#State 110 + {#State 114 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 126 + 'identifier' => 139 } }, - {#State 111 - DEFAULT => -48, + {#State 115 + DEFAULT => -67 + }, + {#State 116 + DEFAULT => -62, GOTOS => { - 'union_elements' => 127 + 'union_elements' => 140 } }, - {#State 112 + {#State 117 + DEFAULT => -66 + }, + {#State 118 DEFAULT => -7 }, - {#State 113 + {#State 119 + DEFAULT => -34 + }, + {#State 120 ACTIONS => { - "(" => 128 + "(" => 141 } }, - {#State 114 + {#State 121 DEFAULT => -21 }, - {#State 115 + {#State 122 DEFAULT => -22 }, - {#State 116 + {#State 123 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 129 + 'identifier' => 142 } }, - {#State 117 + {#State 124 DEFAULT => -23 }, - {#State 118 + {#State 125 DEFAULT => -24 }, - {#State 119 + {#State 126 ACTIONS => { 'IDENTIFIER' => 9, - "*" => 131 + "*" => 144 }, GOTOS => { - 'identifier' => 130 + 'identifier' => 143 } }, - {#State 120 - DEFAULT => -54, + {#State 127 + DEFAULT => -56 + }, + {#State 128 + DEFAULT => -71, GOTOS => { - 'element_list1' => 132 + 'element_list1' => 145 } }, - {#State 121 + {#State 129 + DEFAULT => -57 + }, + {#State 130 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 133, - 'enum_element' => 134, - 'enum_elements' => 135 + 'identifier' => 146, + 'enum_element' => 147, + 'enum_elements' => 148 } }, - {#State 122 + {#State 131 + DEFAULT => -41 + }, + {#State 132 + DEFAULT => -42 + }, + {#State 133 + DEFAULT => -50 + }, + {#State 134 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 138, - 'bitmap_elements' => 137, - 'bitmap_element' => 136 + 'identifier' => 151, + 'bitmap_elements' => 150, + 'bitmap_element' => 149 } }, - {#State 123 + {#State 135 + DEFAULT => -49 + }, + {#State 136 ACTIONS => { "-" => 35, ":" => 34, @@ -1584,9 +1656,9 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -91 + DEFAULT => -108 }, - {#State 124 + {#State 137 ACTIONS => { "-" => 35, ":" => 34, @@ -1604,9 +1676,9 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -72 + DEFAULT => -89 }, - {#State 125 + {#State 138 ACTIONS => { ":" => 34, "<" => 37, @@ -1615,258 +1687,263 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -90 + DEFAULT => -107 }, - {#State 126 + {#State 139 ACTIONS => { - "[" => 139 + "[" => 152 }, - DEFAULT => -60, + DEFAULT => -77, GOTOS => { - 'array_len' => 140 + 'array_len' => 153 } }, - {#State 127 + {#State 140 ACTIONS => { - "}" => 141 + "}" => 154 }, - DEFAULT => -63, + DEFAULT => -80, GOTOS => { - 'optional_base_element' => 143, - 'property_list' => 142 + 'optional_base_element' => 156, + 'property_list' => 155 } }, - {#State 128 + {#State 141 ACTIONS => { - "," => -56, - "void" => 147, - ")" => -56 + "," => -73, + "void" => 160, + ")" => -73 }, - DEFAULT => -63, + DEFAULT => -80, GOTOS => { - 'base_element' => 144, - 'element_list2' => 146, - 'property_list' => 145 + 'base_element' => 157, + 'element_list2' => 159, + 'property_list' => 158 } }, - {#State 129 + {#State 142 ACTIONS => { - ";" => 148 + ";" => 161 } }, - {#State 130 + {#State 143 ACTIONS => { - "[" => 139, - "=" => 150 + "[" => 152, + "=" => 163 }, GOTOS => { - 'array_len' => 149 + 'array_len' => 162 } }, - {#State 131 - DEFAULT => -53 + {#State 144 + DEFAULT => -70 }, - {#State 132 + {#State 145 ACTIONS => { - "}" => 151 + "}" => 164 }, - DEFAULT => -63, + DEFAULT => -80, GOTOS => { - 'base_element' => 152, - 'property_list' => 145 + 'base_element' => 165, + 'property_list' => 158 } }, - {#State 133 + {#State 146 ACTIONS => { - "=" => 153 + "=" => 166 }, - DEFAULT => -37 + DEFAULT => -45 }, - {#State 134 - DEFAULT => -35 + {#State 147 + DEFAULT => -43 }, - {#State 135 + {#State 148 ACTIONS => { - "}" => 154, - "," => 155 + "}" => 167, + "," => 168 } }, - {#State 136 - DEFAULT => -40 + {#State 149 + DEFAULT => -51 }, - {#State 137 + {#State 150 ACTIONS => { - "}" => 156, - "," => 157 + "}" => 169, + "," => 170 } }, - {#State 138 + {#State 151 ACTIONS => { - "=" => 158 + "=" => 171 } }, - {#State 139 + {#State 152 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, - "]" => 159, + "]" => 172, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, - 'anytext' => 160, + 'anytext' => 173, 'text' => 24, 'constant' => 27 } }, - {#State 140 + {#State 153 ACTIONS => { - ";" => 161 + ";" => 174 } }, - {#State 141 - DEFAULT => -50 + {#State 154 + DEFAULT => -64 }, - {#State 142 + {#State 155 ACTIONS => { "[" => 7 }, - DEFAULT => -63, + DEFAULT => -80, GOTOS => { - 'base_or_empty' => 162, - 'base_element' => 163, - 'empty_element' => 164, - 'property_list' => 165 + 'base_or_empty' => 175, + 'base_element' => 176, + 'empty_element' => 177, + 'property_list' => 178 } }, - {#State 143 - DEFAULT => -49 + {#State 156 + DEFAULT => -63 }, - {#State 144 - DEFAULT => -58 + {#State 157 + DEFAULT => -75 }, - {#State 145 + {#State 158 ACTIONS => { 'IDENTIFIER' => 9, + "signed" => 102, "union" => 52, "enum" => 65, "bitmap" => 66, - "[" => 7, 'void' => 97, + "unsigned" => 103, + "[" => 7, "struct" => 63 }, + DEFAULT => -33, GOTOS => { + 'existingtype' => 101, + 'bitmap' => 67, + 'usertype' => 98, 'identifier' => 99, 'struct' => 59, 'enum' => 61, - 'type' => 166, + 'type' => 179, 'union' => 70, - 'bitmap' => 67, - 'usertype' => 98 + 'sign' => 100 } }, - {#State 146 + {#State 159 ACTIONS => { - "," => 167, - ")" => 168 + "," => 180, + ")" => 181 } }, - {#State 147 - DEFAULT => -57 + {#State 160 + DEFAULT => -74 }, - {#State 148 + {#State 161 DEFAULT => -20 }, - {#State 149 + {#State 162 ACTIONS => { - "=" => 169 + "=" => 182 } }, - {#State 150 + {#State 163 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, - 'anytext' => 170, + 'anytext' => 183, 'text' => 24, 'constant' => 27 } }, - {#State 151 - DEFAULT => -43 + {#State 164 + DEFAULT => -54 }, - {#State 152 + {#State 165 ACTIONS => { - ";" => 171 + ";" => 184 } }, - {#State 153 + {#State 166 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, - 'anytext' => 172, + 'anytext' => 185, 'text' => 24, 'constant' => 27 } }, - {#State 154 - DEFAULT => -34 + {#State 167 + DEFAULT => -39 }, - {#State 155 + {#State 168 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 133, - 'enum_element' => 173 + 'identifier' => 146, + 'enum_element' => 186 } }, - {#State 156 - DEFAULT => -39 + {#State 169 + DEFAULT => -47 }, - {#State 157 + {#State 170 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 138, - 'bitmap_element' => 174 + 'identifier' => 151, + 'bitmap_element' => 187 } }, - {#State 158 + {#State 171 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, - 'anytext' => 175, + 'anytext' => 188, 'text' => 24, 'constant' => 27 } }, - {#State 159 + {#State 172 ACTIONS => { - "[" => 139 + "[" => 152 }, - DEFAULT => -60, + DEFAULT => -77, GOTOS => { - 'array_len' => 176 + 'array_len' => 189 } }, - {#State 160 + {#State 173 ACTIONS => { "-" => 35, ":" => 34, @@ -1882,84 +1959,89 @@ sub new { "(" => 44, "*" => 46, "." => 47, - "]" => 177, + "]" => 190, ">" => 48 } }, - {#State 161 + {#State 174 DEFAULT => -25 }, - {#State 162 - DEFAULT => -47 + {#State 175 + DEFAULT => -61 }, - {#State 163 + {#State 176 ACTIONS => { - ";" => 178 + ";" => 191 } }, - {#State 164 - DEFAULT => -46 + {#State 177 + DEFAULT => -60 }, - {#State 165 + {#State 178 ACTIONS => { 'IDENTIFIER' => 9, + "signed" => 102, "union" => 52, - ";" => 179, + ";" => 192, "enum" => 65, "bitmap" => 66, 'void' => 97, + "unsigned" => 103, "[" => 7, "struct" => 63 }, + DEFAULT => -33, GOTOS => { + 'existingtype' => 101, + 'bitmap' => 67, + 'usertype' => 98, 'identifier' => 99, 'struct' => 59, 'enum' => 61, - 'type' => 166, + 'type' => 179, 'union' => 70, - 'bitmap' => 67, - 'usertype' => 98 + 'sign' => 100 } }, - {#State 166 - DEFAULT => -52, + {#State 179 + DEFAULT => -69, GOTOS => { - 'pointers' => 180 + 'pointers' => 193 } }, - {#State 167 - DEFAULT => -63, + {#State 180 + DEFAULT => -80, GOTOS => { - 'base_element' => 181, - 'property_list' => 145 + 'base_element' => 194, + 'property_list' => 158 } }, - {#State 168 + {#State 181 ACTIONS => { - ";" => 182 + ";" => 195 } }, - {#State 169 + {#State 182 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -73, + DEFAULT => -90, GOTOS => { 'identifier' => 23, - 'anytext' => 183, + 'anytext' => 196, 'text' => 24, 'constant' => 27 } }, - {#State 170 + {#State 183 ACTIONS => { "-" => 35, ":" => 34, "?" => 36, "<" => 37, - ";" => 184, + ";" => 197, "+" => 39, "~" => 38, "&" => 41, @@ -1973,10 +2055,10 @@ sub new { ">" => 48 } }, - {#State 171 - DEFAULT => -55 + {#State 184 + DEFAULT => -72 }, - {#State 172 + {#State 185 ACTIONS => { "-" => 35, ":" => 34, @@ -1994,15 +2076,15 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -38 + DEFAULT => -46 }, - {#State 173 - DEFAULT => -36 + {#State 186 + DEFAULT => -44 }, - {#State 174 - DEFAULT => -41 + {#State 187 + DEFAULT => -52 }, - {#State 175 + {#State 188 ACTIONS => { "-" => 35, ":" => 34, @@ -2020,48 +2102,48 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -42 + DEFAULT => -53 }, - {#State 176 - DEFAULT => -61 + {#State 189 + DEFAULT => -78 }, - {#State 177 + {#State 190 ACTIONS => { - "[" => 139 + "[" => 152 }, - DEFAULT => -60, + DEFAULT => -77, GOTOS => { - 'array_len' => 185 + 'array_len' => 198 } }, - {#State 178 - DEFAULT => -45 + {#State 191 + DEFAULT => -59 }, - {#State 179 - DEFAULT => -44 + {#State 192 + DEFAULT => -58 }, - {#State 180 + {#State 193 ACTIONS => { 'IDENTIFIER' => 9, - "*" => 131 + "*" => 144 }, GOTOS => { - 'identifier' => 186 + 'identifier' => 199 } }, - {#State 181 - DEFAULT => -59 + {#State 194 + DEFAULT => -76 }, - {#State 182 + {#State 195 DEFAULT => -19 }, - {#State 183 + {#State 196 ACTIONS => { "-" => 35, ":" => 34, "?" => 36, "<" => 37, - ";" => 187, + ";" => 200, "+" => 39, "~" => 38, "&" => 41, @@ -2075,26 +2157,26 @@ sub new { ">" => 48 } }, - {#State 184 + {#State 197 DEFAULT => -17 }, - {#State 185 - DEFAULT => -62 + {#State 198 + DEFAULT => -79 }, - {#State 186 + {#State 199 ACTIONS => { - "[" => 139 + "[" => 152 }, - DEFAULT => -60, + DEFAULT => -77, GOTOS => { - 'array_len' => 188 + 'array_len' => 201 } }, - {#State 187 + {#State 200 DEFAULT => -18 }, - {#State 188 - DEFAULT => -51 + {#State 201 + DEFAULT => -68 } ], yyrules => @@ -2300,90 +2382,144 @@ sub { $_[1] } ], [#Rule 31 - 'type', 1, undef + 'sign', 1, undef ], [#Rule 32 - 'type', 1, undef + 'sign', 1, undef ], [#Rule 33 + 'existingtype', 0, undef + ], + [#Rule 34 + 'existingtype', 2, +sub +#line 146 "idl.yp" +{ "$_[1] $_[2]" } + ], + [#Rule 35 + 'existingtype', 1, undef + ], + [#Rule 36 + 'type', 1, undef + ], + [#Rule 37 + 'type', 1, undef + ], + [#Rule 38 'type', 1, sub -#line 144 "idl.yp" +#line 150 "idl.yp" { "void" } ], - [#Rule 34 - 'enum', 5, + [#Rule 39 + 'enum_body', 3, +sub +#line 152 "idl.yp" +{ $_[2] } + ], + [#Rule 40 + 'opt_enum_body', 0, undef + ], + [#Rule 41 + 'opt_enum_body', 1, undef + ], + [#Rule 42 + 'enum', 3, sub -#line 148 "idl.yp" +#line 155 "idl.yp" {{ "TYPE" => "ENUM", "NAME" => $_[2], - "ELEMENTS" => $_[4] + "ELEMENTS" => $_[3] }} ], - [#Rule 35 + [#Rule 43 'enum_elements', 1, sub -#line 156 "idl.yp" +#line 163 "idl.yp" { [ $_[1] ] } ], - [#Rule 36 + [#Rule 44 'enum_elements', 3, sub -#line 157 "idl.yp" +#line 164 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 37 + [#Rule 45 'enum_element', 1, undef ], - [#Rule 38 + [#Rule 46 'enum_element', 3, sub -#line 161 "idl.yp" +#line 168 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 39 - 'bitmap', 5, + [#Rule 47 + 'bitmap_body', 3, +sub +#line 171 "idl.yp" +{ $_[2] } + ], + [#Rule 48 + 'opt_bitmap_body', 0, undef + ], + [#Rule 49 + 'opt_bitmap_body', 1, undef + ], + [#Rule 50 + 'bitmap', 3, sub -#line 165 "idl.yp" +#line 174 "idl.yp" {{ "TYPE" => "BITMAP", "NAME" => $_[2], - "ELEMENTS" => $_[4] + "ELEMENTS" => $_[3] }} ], - [#Rule 40 + [#Rule 51 'bitmap_elements', 1, sub -#line 173 "idl.yp" +#line 182 "idl.yp" { [ $_[1] ] } ], - [#Rule 41 + [#Rule 52 'bitmap_elements', 3, sub -#line 174 "idl.yp" +#line 183 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 42 + [#Rule 53 'bitmap_element', 3, sub -#line 177 "idl.yp" +#line 186 "idl.yp" { "$_[1] ( $_[3] )" } ], - [#Rule 43 - 'struct', 5, + [#Rule 54 + 'struct_body', 3, sub -#line 181 "idl.yp" +#line 189 "idl.yp" +{ $_[2] } + ], + [#Rule 55 + 'opt_struct_body', 0, undef + ], + [#Rule 56 + 'opt_struct_body', 1, undef + ], + [#Rule 57 + 'struct', 3, +sub +#line 193 "idl.yp" {{ "TYPE" => "STRUCT", "NAME" => $_[2], - "ELEMENTS" => $_[4] + "ELEMENTS" => $_[3] }} ], - [#Rule 44 + [#Rule 58 'empty_element', 2, sub -#line 189 "idl.yp" +#line 201 "idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2394,41 +2530,53 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 45 + [#Rule 59 'base_or_empty', 2, undef ], - [#Rule 46 + [#Rule 60 'base_or_empty', 1, undef ], - [#Rule 47 + [#Rule 61 'optional_base_element', 2, sub -#line 203 "idl.yp" -{ $_[2]->{PROPERTIES} = Parse::Pidl::Util::FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } +#line 215 "idl.yp" +{ $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], - [#Rule 48 + [#Rule 62 'union_elements', 0, undef ], - [#Rule 49 + [#Rule 63 'union_elements', 2, sub -#line 208 "idl.yp" +#line 220 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 50 - 'union', 5, + [#Rule 64 + 'union_body', 3, +sub +#line 223 "idl.yp" +{ $_[2] } + ], + [#Rule 65 + 'opt_union_body', 0, undef + ], + [#Rule 66 + 'opt_union_body', 1, undef + ], + [#Rule 67 + 'union', 3, sub -#line 212 "idl.yp" +#line 227 "idl.yp" {{ "TYPE" => "UNION", "NAME" => $_[2], - "ELEMENTS" => $_[4] + "ELEMENTS" => $_[3] }} ], - [#Rule 51 + [#Rule 68 'base_element', 5, sub -#line 220 "idl.yp" +#line 235 "idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2439,238 +2587,238 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 52 + [#Rule 69 'pointers', 0, sub -#line 234 "idl.yp" +#line 249 "idl.yp" { 0 } ], - [#Rule 53 + [#Rule 70 'pointers', 2, sub -#line 235 "idl.yp" +#line 250 "idl.yp" { $_[1]+1 } ], - [#Rule 54 + [#Rule 71 'element_list1', 0, undef ], - [#Rule 55 + [#Rule 72 'element_list1', 3, sub -#line 240 "idl.yp" +#line 255 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 56 + [#Rule 73 'element_list2', 0, undef ], - [#Rule 57 + [#Rule 74 'element_list2', 1, undef ], - [#Rule 58 + [#Rule 75 'element_list2', 1, sub -#line 246 "idl.yp" +#line 261 "idl.yp" { [ $_[1] ] } ], - [#Rule 59 + [#Rule 76 'element_list2', 3, sub -#line 247 "idl.yp" +#line 262 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 60 + [#Rule 77 'array_len', 0, undef ], - [#Rule 61 + [#Rule 78 'array_len', 3, sub -#line 252 "idl.yp" +#line 267 "idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], - [#Rule 62 + [#Rule 79 'array_len', 4, sub -#line 253 "idl.yp" +#line 268 "idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], - [#Rule 63 + [#Rule 80 'property_list', 0, undef ], - [#Rule 64 + [#Rule 81 'property_list', 4, sub -#line 259 "idl.yp" -{ Parse::Pidl::Util::FlattenHash([$_[1],$_[3]]); } +#line 274 "idl.yp" +{ FlattenHash([$_[1],$_[3]]); } ], - [#Rule 65 + [#Rule 82 'properties', 1, sub -#line 262 "idl.yp" +#line 277 "idl.yp" { $_[1] } ], - [#Rule 66 + [#Rule 83 'properties', 3, sub -#line 263 "idl.yp" -{ Parse::Pidl::Util::FlattenHash([$_[1], $_[3]]); } +#line 278 "idl.yp" +{ FlattenHash([$_[1], $_[3]]); } ], - [#Rule 67 + [#Rule 84 'property', 1, sub -#line 266 "idl.yp" +#line 281 "idl.yp" {{ "$_[1]" => "1" }} ], - [#Rule 68 + [#Rule 85 'property', 4, sub -#line 267 "idl.yp" +#line 282 "idl.yp" {{ "$_[1]" => "$_[3]" }} ], - [#Rule 69 + [#Rule 86 'listtext', 1, undef ], - [#Rule 70 + [#Rule 87 'listtext', 3, sub -#line 272 "idl.yp" +#line 287 "idl.yp" { "$_[1] $_[3]" } ], - [#Rule 71 + [#Rule 88 'commalisttext', 1, undef ], - [#Rule 72 + [#Rule 89 'commalisttext', 3, sub -#line 277 "idl.yp" +#line 292 "idl.yp" { "$_[1],$_[3]" } ], - [#Rule 73 + [#Rule 90 'anytext', 0, sub -#line 281 "idl.yp" +#line 296 "idl.yp" { "" } ], - [#Rule 74 + [#Rule 91 'anytext', 1, undef ], - [#Rule 75 + [#Rule 92 'anytext', 1, undef ], - [#Rule 76 + [#Rule 93 'anytext', 1, undef ], - [#Rule 77 + [#Rule 94 'anytext', 3, sub -#line 283 "idl.yp" +#line 298 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 78 + [#Rule 95 'anytext', 3, sub -#line 284 "idl.yp" +#line 299 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 79 + [#Rule 96 'anytext', 3, sub -#line 285 "idl.yp" +#line 300 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 80 + [#Rule 97 'anytext', 3, sub -#line 286 "idl.yp" +#line 301 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 81 + [#Rule 98 'anytext', 3, sub -#line 287 "idl.yp" +#line 302 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 82 + [#Rule 99 'anytext', 3, sub -#line 288 "idl.yp" +#line 303 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 83 + [#Rule 100 'anytext', 3, sub -#line 289 "idl.yp" +#line 304 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 84 + [#Rule 101 'anytext', 3, sub -#line 290 "idl.yp" +#line 305 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 85 + [#Rule 102 'anytext', 3, sub -#line 291 "idl.yp" +#line 306 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 86 + [#Rule 103 'anytext', 3, sub -#line 292 "idl.yp" +#line 307 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 87 + [#Rule 104 'anytext', 3, sub -#line 293 "idl.yp" +#line 308 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 88 + [#Rule 105 'anytext', 3, sub -#line 294 "idl.yp" +#line 309 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 89 + [#Rule 106 'anytext', 3, sub -#line 295 "idl.yp" +#line 310 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 90 + [#Rule 107 'anytext', 5, sub -#line 296 "idl.yp" +#line 311 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 91 + [#Rule 108 'anytext', 5, sub -#line 297 "idl.yp" +#line 312 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 92 + [#Rule 109 'identifier', 1, undef ], - [#Rule 93 + [#Rule 110 'optional_identifier', 1, undef ], - [#Rule 94 + [#Rule 111 'optional_identifier', 0, undef ], - [#Rule 95 + [#Rule 112 'constant', 1, undef ], - [#Rule 96 + [#Rule 113 'text', 1, sub -#line 311 "idl.yp" +#line 326 "idl.yp" { "\"$_[1]\"" } ], - [#Rule 97 + [#Rule 114 'optional_semicolon', 0, undef ], - [#Rule 98 + [#Rule 115 'optional_semicolon', 1, undef ] ], @@ -2678,10 +2826,24 @@ sub bless($self,$class); } -#line 322 "idl.yp" +#line 337 "idl.yp" + + +##################################################################### +# flatten an array of hashes into a single hash +sub FlattenHash($) +{ + my $a = shift; + my %b; + for my $d (@{$a}) { + for my $k (keys %{$d}) { + $b{$k} = $d->{$k}; + } + } + return \%b; +} -use Parse::Pidl::Util; ##################################################################### # traverse a perl data structure removing any empty arrays or @@ -2765,7 +2927,7 @@ again: $parser->YYData->{LAST_TOKEN} = $1; if ($1 =~ /^(coclass|interface|const|typedef|declare|union - |struct|enum|bitmap|void)$/x) { + |struct|enum|bitmap|void|unsigned|signed)$/x) { return $1; } return('IDENTIFIER',$1); -- cgit From 3d3bd93403c0a371f16cd8e13f7f563c4601122a Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Sat, 29 Jul 2006 06:00:58 +0000 Subject: r17305: allow 'declare [...] union foo;' metze (This used to be commit 15d37004b70d097a1431fb4d41fef363ed654ac7) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 939 +++++++++++++++++++------------------ 1 file changed, 479 insertions(+), 460 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 60439b8601..dddbb26e76 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -509,7 +509,7 @@ sub new { ACTIONS => { '' => 2 }, - DEFAULT => -80, + DEFAULT => -82, GOTOS => { 'interface' => 3, 'coclass' => 4, @@ -559,7 +559,7 @@ sub new { } }, {#State 9 - DEFAULT => -109 + DEFAULT => -111 }, {#State 10 ACTIONS => { @@ -570,10 +570,10 @@ sub new { ACTIONS => { "(" => 16 }, - DEFAULT => -84 + DEFAULT => -86 }, {#State 12 - DEFAULT => -82 + DEFAULT => -84 }, {#State 13 ACTIONS => { @@ -602,7 +602,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'listtext' => 26, @@ -621,7 +621,7 @@ sub new { } }, {#State 18 - DEFAULT => -81 + DEFAULT => -83 }, {#State 19 ACTIONS => { @@ -643,13 +643,13 @@ sub new { } }, {#State 22 - DEFAULT => -113 + DEFAULT => -115 }, {#State 23 - DEFAULT => -91 + DEFAULT => -93 }, {#State 24 - DEFAULT => -93 + DEFAULT => -95 }, {#State 25 ACTIONS => { @@ -669,7 +669,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -86 + DEFAULT => -88 }, {#State 26 ACTIONS => { @@ -678,13 +678,13 @@ sub new { } }, {#State 27 - DEFAULT => -92 + DEFAULT => -94 }, {#State 28 - DEFAULT => -112 + DEFAULT => -114 }, {#State 29 - DEFAULT => -83 + DEFAULT => -85 }, {#State 30 DEFAULT => -9 @@ -699,7 +699,7 @@ sub new { "const" => 60, "struct" => 63 }, - DEFAULT => -80, + DEFAULT => -82, GOTOS => { 'typedecl' => 64, 'function' => 53, @@ -720,7 +720,7 @@ sub new { ACTIONS => { ";" => 71 }, - DEFAULT => -114, + DEFAULT => -116, GOTOS => { 'optional_semicolon' => 72 } @@ -739,7 +739,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 74, @@ -753,7 +753,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 75, @@ -767,7 +767,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 76, @@ -781,7 +781,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 77, @@ -795,7 +795,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 78, @@ -809,7 +809,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 79, @@ -823,7 +823,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 80, @@ -838,7 +838,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 82, @@ -852,7 +852,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 83, @@ -866,7 +866,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 84, @@ -880,7 +880,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 80, @@ -895,7 +895,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 86, @@ -909,7 +909,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 87, @@ -923,7 +923,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 88, @@ -937,7 +937,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 89, @@ -951,7 +951,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, 'anytext' => 90, @@ -960,10 +960,10 @@ sub new { } }, {#State 50 - DEFAULT => -85 + DEFAULT => -87 }, {#State 51 - DEFAULT => -80, + DEFAULT => -82, GOTOS => { 'property_list' => 91 } @@ -972,7 +972,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -111, + DEFAULT => -113, GOTOS => { 'optional_identifier' => 93 } @@ -991,7 +991,7 @@ sub new { "const" => 60, "struct" => 63 }, - DEFAULT => -80, + DEFAULT => -82, GOTOS => { 'typedecl' => 64, 'function' => 53, @@ -1040,13 +1040,13 @@ sub new { DEFAULT => -10 }, {#State 58 - DEFAULT => -80, + DEFAULT => -82, GOTOS => { 'property_list' => 105 } }, {#State 59 - DEFAULT => -26 + DEFAULT => -28 }, {#State 60 ACTIONS => { @@ -1057,7 +1057,7 @@ sub new { } }, {#State 61 - DEFAULT => -28 + DEFAULT => -30 }, {#State 62 DEFAULT => -14 @@ -1066,7 +1066,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -111, + DEFAULT => -113, GOTOS => { 'optional_identifier' => 107 } @@ -1078,7 +1078,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -111, + DEFAULT => -113, GOTOS => { 'optional_identifier' => 108 } @@ -1087,13 +1087,13 @@ sub new { ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -111, + DEFAULT => -113, GOTOS => { 'optional_identifier' => 109 } }, {#State 67 - DEFAULT => -29 + DEFAULT => -31 }, {#State 68 DEFAULT => -13 @@ -1102,10 +1102,10 @@ sub new { DEFAULT => -15 }, {#State 70 - DEFAULT => -27 + DEFAULT => -29 }, {#State 71 - DEFAULT => -115 + DEFAULT => -117 }, {#State 72 DEFAULT => -4 @@ -1133,7 +1133,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -103 + DEFAULT => -105 }, {#State 75 ACTIONS => { @@ -1144,7 +1144,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -94 + DEFAULT => -96 }, {#State 76 ACTIONS => { @@ -1164,7 +1164,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -102 + DEFAULT => -104 }, {#State 77 ACTIONS => { @@ -1184,7 +1184,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -98 + DEFAULT => -100 }, {#State 78 ACTIONS => { @@ -1204,7 +1204,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -106 + DEFAULT => -108 }, {#State 79 ACTIONS => { @@ -1215,7 +1215,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -105 + DEFAULT => -107 }, {#State 80 ACTIONS => { @@ -1235,7 +1235,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -88 + DEFAULT => -90 }, {#State 81 ACTIONS => { @@ -1252,7 +1252,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -100 + DEFAULT => -102 }, {#State 83 ACTIONS => { @@ -1263,7 +1263,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -101 + DEFAULT => -103 }, {#State 84 ACTIONS => { @@ -1283,7 +1283,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -104 + DEFAULT => -106 }, {#State 85 ACTIONS => { @@ -1300,7 +1300,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -99 + DEFAULT => -101 }, {#State 87 ACTIONS => { @@ -1311,7 +1311,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -96 + DEFAULT => -98 }, {#State 88 ACTIONS => { @@ -1322,7 +1322,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -95 + DEFAULT => -97 }, {#State 89 ACTIONS => { @@ -1333,7 +1333,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -97 + DEFAULT => -99 }, {#State 90 ACTIONS => { @@ -1353,7 +1353,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -87 + DEFAULT => -89 }, {#State 91 ACTIONS => { @@ -1380,13 +1380,13 @@ sub new { } }, {#State 92 - DEFAULT => -110 + DEFAULT => -112 }, {#State 93 ACTIONS => { "{" => 116 }, - DEFAULT => -65, + DEFAULT => -67, GOTOS => { 'union_body' => 117, 'opt_union_body' => 115 @@ -1396,7 +1396,7 @@ sub new { ACTIONS => { ";" => 71 }, - DEFAULT => -114, + DEFAULT => -116, GOTOS => { 'optional_semicolon' => 118 } @@ -1405,16 +1405,16 @@ sub new { DEFAULT => -11 }, {#State 96 - DEFAULT => -30 + DEFAULT => -32 }, {#State 97 - DEFAULT => -38 + DEFAULT => -40 }, {#State 98 - DEFAULT => -36 + DEFAULT => -38 }, {#State 99 - DEFAULT => -35 + DEFAULT => -37 }, {#State 100 ACTIONS => { @@ -1425,13 +1425,13 @@ sub new { } }, {#State 101 - DEFAULT => -37 + DEFAULT => -39 }, {#State 102 - DEFAULT => -31 + DEFAULT => -33 }, {#State 103 - DEFAULT => -32 + DEFAULT => -34 }, {#State 104 ACTIONS => { @@ -1443,50 +1443,52 @@ sub new { }, {#State 105 ACTIONS => { - "enum" => 124, - "bitmap" => 125, + "union" => 121, + "enum" => 126, + "bitmap" => 127, "[" => 7 }, GOTOS => { - 'decl_enum' => 121, - 'decl_bitmap' => 122, - 'decl_type' => 123 + 'decl_enum' => 122, + 'decl_bitmap' => 123, + 'decl_type' => 125, + 'decl_union' => 124 } }, {#State 106 - DEFAULT => -69, + DEFAULT => -71, GOTOS => { - 'pointers' => 126 + 'pointers' => 128 } }, {#State 107 ACTIONS => { - "{" => 128 + "{" => 130 }, - DEFAULT => -55, + DEFAULT => -57, GOTOS => { - 'struct_body' => 127, - 'opt_struct_body' => 129 + 'struct_body' => 129, + 'opt_struct_body' => 131 } }, {#State 108 ACTIONS => { - "{" => 130 + "{" => 132 }, - DEFAULT => -40, + DEFAULT => -42, GOTOS => { - 'opt_enum_body' => 132, - 'enum_body' => 131 + 'opt_enum_body' => 134, + 'enum_body' => 133 } }, {#State 109 ACTIONS => { - "{" => 134 + "{" => 136 }, - DEFAULT => -48, + DEFAULT => -50, GOTOS => { - 'bitmap_body' => 135, - 'opt_bitmap_body' => 133 + 'bitmap_body' => 137, + 'opt_bitmap_body' => 135 } }, {#State 110 @@ -1498,10 +1500,10 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, - 'anytext' => 136, + 'anytext' => 138, 'text' => 24, 'constant' => 27 } @@ -1512,10 +1514,10 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, - 'anytext' => 137, + 'anytext' => 139, 'text' => 24, 'constant' => 27 } @@ -1526,10 +1528,10 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, - 'anytext' => 138, + 'anytext' => 140, 'text' => 24, 'constant' => 27 } @@ -1539,106 +1541,112 @@ sub new { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 139 + 'identifier' => 141 } }, {#State 115 - DEFAULT => -67 + DEFAULT => -69 }, {#State 116 - DEFAULT => -62, + DEFAULT => -64, GOTOS => { - 'union_elements' => 140 + 'union_elements' => 142 } }, {#State 117 - DEFAULT => -66 + DEFAULT => -68 }, {#State 118 DEFAULT => -7 }, {#State 119 - DEFAULT => -34 + DEFAULT => -36 }, {#State 120 ACTIONS => { - "(" => 141 + "(" => 143 } }, {#State 121 - DEFAULT => -21 + DEFAULT => -26 }, {#State 122 - DEFAULT => -22 + DEFAULT => -21 }, {#State 123 - ACTIONS => { - 'IDENTIFIER' => 9 - }, - GOTOS => { - 'identifier' => 142 - } + DEFAULT => -22 }, {#State 124 DEFAULT => -23 }, {#State 125 - DEFAULT => -24 - }, - {#State 126 ACTIONS => { - 'IDENTIFIER' => 9, - "*" => 144 + 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 143 + 'identifier' => 144 } }, + {#State 126 + DEFAULT => -24 + }, {#State 127 - DEFAULT => -56 + DEFAULT => -25 }, {#State 128 - DEFAULT => -71, + ACTIONS => { + 'IDENTIFIER' => 9, + "*" => 146 + }, GOTOS => { - 'element_list1' => 145 + 'identifier' => 145 } }, {#State 129 - DEFAULT => -57 + DEFAULT => -58 }, {#State 130 - ACTIONS => { - 'IDENTIFIER' => 9 - }, + DEFAULT => -73, GOTOS => { - 'identifier' => 146, - 'enum_element' => 147, - 'enum_elements' => 148 + 'element_list1' => 147 } }, {#State 131 - DEFAULT => -41 + DEFAULT => -59 }, {#State 132 - DEFAULT => -42 + ACTIONS => { + 'IDENTIFIER' => 9 + }, + GOTOS => { + 'identifier' => 148, + 'enum_element' => 149, + 'enum_elements' => 150 + } }, {#State 133 - DEFAULT => -50 + DEFAULT => -43 }, {#State 134 + DEFAULT => -44 + }, + {#State 135 + DEFAULT => -52 + }, + {#State 136 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 151, - 'bitmap_elements' => 150, - 'bitmap_element' => 149 + 'identifier' => 153, + 'bitmap_elements' => 152, + 'bitmap_element' => 151 } }, - {#State 135 - DEFAULT => -49 + {#State 137 + DEFAULT => -51 }, - {#State 136 + {#State 138 ACTIONS => { "-" => 35, ":" => 34, @@ -1656,9 +1664,9 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -108 + DEFAULT => -110 }, - {#State 137 + {#State 139 ACTIONS => { "-" => 35, ":" => 34, @@ -1676,9 +1684,9 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -89 + DEFAULT => -91 }, - {#State 138 + {#State 140 ACTIONS => { ":" => 34, "<" => 37, @@ -1687,84 +1695,75 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -107 + DEFAULT => -109 }, - {#State 139 + {#State 141 ACTIONS => { - "[" => 152 + "[" => 154 }, - DEFAULT => -77, + DEFAULT => -79, GOTOS => { - 'array_len' => 153 + 'array_len' => 155 } }, - {#State 140 + {#State 142 ACTIONS => { - "}" => 154 + "}" => 156 }, - DEFAULT => -80, + DEFAULT => -82, GOTOS => { - 'optional_base_element' => 156, - 'property_list' => 155 + 'optional_base_element' => 158, + 'property_list' => 157 } }, - {#State 141 + {#State 143 ACTIONS => { - "," => -73, - "void" => 160, - ")" => -73 + "," => -75, + "void" => 162, + ")" => -75 }, - DEFAULT => -80, + DEFAULT => -82, GOTOS => { - 'base_element' => 157, - 'element_list2' => 159, - 'property_list' => 158 + 'base_element' => 159, + 'element_list2' => 161, + 'property_list' => 160 } }, - {#State 142 + {#State 144 ACTIONS => { - ";" => 161 + ";" => 163 } }, - {#State 143 + {#State 145 ACTIONS => { - "[" => 152, - "=" => 163 + "[" => 154, + "=" => 165 }, GOTOS => { - 'array_len' => 162 + 'array_len' => 164 } }, - {#State 144 - DEFAULT => -70 + {#State 146 + DEFAULT => -72 }, - {#State 145 + {#State 147 ACTIONS => { - "}" => 164 + "}" => 166 }, - DEFAULT => -80, + DEFAULT => -82, GOTOS => { - 'base_element' => 165, - 'property_list' => 158 + 'base_element' => 167, + 'property_list' => 160 } }, - {#State 146 - ACTIONS => { - "=" => 166 - }, - DEFAULT => -45 - }, - {#State 147 - DEFAULT => -43 - }, {#State 148 ACTIONS => { - "}" => 167, - "," => 168 - } + "=" => 168 + }, + DEFAULT => -47 }, {#State 149 - DEFAULT => -51 + DEFAULT => -45 }, {#State 150 ACTIONS => { @@ -1773,52 +1772,61 @@ sub new { } }, {#State 151 + DEFAULT => -53 + }, + {#State 152 ACTIONS => { - "=" => 171 + "}" => 171, + "," => 172 } }, - {#State 152 + {#State 153 + ACTIONS => { + "=" => 173 + } + }, + {#State 154 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, - "]" => 172, + "]" => 174, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, - 'anytext' => 173, + 'anytext' => 175, 'text' => 24, 'constant' => 27 } }, - {#State 153 + {#State 155 ACTIONS => { - ";" => 174 + ";" => 176 } }, - {#State 154 - DEFAULT => -64 + {#State 156 + DEFAULT => -66 }, - {#State 155 + {#State 157 ACTIONS => { "[" => 7 }, - DEFAULT => -80, + DEFAULT => -82, GOTOS => { - 'base_or_empty' => 175, - 'base_element' => 176, - 'empty_element' => 177, - 'property_list' => 178 + 'base_or_empty' => 177, + 'base_element' => 178, + 'empty_element' => 179, + 'property_list' => 180 } }, - {#State 156 - DEFAULT => -63 + {#State 158 + DEFAULT => -65 }, - {#State 157 - DEFAULT => -75 + {#State 159 + DEFAULT => -77 }, - {#State 158 + {#State 160 ACTIONS => { 'IDENTIFIER' => 9, "signed" => 102, @@ -1830,7 +1838,7 @@ sub new { "[" => 7, "struct" => 63 }, - DEFAULT => -33, + DEFAULT => -35, GOTOS => { 'existingtype' => 101, 'bitmap' => 67, @@ -1838,112 +1846,112 @@ sub new { 'identifier' => 99, 'struct' => 59, 'enum' => 61, - 'type' => 179, + 'type' => 181, 'union' => 70, 'sign' => 100 } }, - {#State 159 + {#State 161 ACTIONS => { - "," => 180, - ")" => 181 + "," => 182, + ")" => 183 } }, - {#State 160 - DEFAULT => -74 + {#State 162 + DEFAULT => -76 }, - {#State 161 + {#State 163 DEFAULT => -20 }, - {#State 162 + {#State 164 ACTIONS => { - "=" => 182 + "=" => 184 } }, - {#State 163 + {#State 165 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, - 'anytext' => 183, + 'anytext' => 185, 'text' => 24, 'constant' => 27 } }, - {#State 164 - DEFAULT => -54 + {#State 166 + DEFAULT => -56 }, - {#State 165 + {#State 167 ACTIONS => { - ";" => 184 + ";" => 186 } }, - {#State 166 + {#State 168 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, - 'anytext' => 185, + 'anytext' => 187, 'text' => 24, 'constant' => 27 } }, - {#State 167 - DEFAULT => -39 + {#State 169 + DEFAULT => -41 }, - {#State 168 + {#State 170 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 146, - 'enum_element' => 186 + 'identifier' => 148, + 'enum_element' => 188 } }, - {#State 169 - DEFAULT => -47 + {#State 171 + DEFAULT => -49 }, - {#State 170 + {#State 172 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { - 'identifier' => 151, - 'bitmap_element' => 187 + 'identifier' => 153, + 'bitmap_element' => 189 } }, - {#State 171 + {#State 173 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, - 'anytext' => 188, + 'anytext' => 190, 'text' => 24, 'constant' => 27 } }, - {#State 172 + {#State 174 ACTIONS => { - "[" => 152 + "[" => 154 }, - DEFAULT => -77, + DEFAULT => -79, GOTOS => { - 'array_len' => 189 + 'array_len' => 191 } }, - {#State 173 + {#State 175 ACTIONS => { "-" => 35, ":" => 34, @@ -1959,30 +1967,30 @@ sub new { "(" => 44, "*" => 46, "." => 47, - "]" => 190, + "]" => 192, ">" => 48 } }, - {#State 174 - DEFAULT => -25 + {#State 176 + DEFAULT => -27 }, - {#State 175 - DEFAULT => -61 + {#State 177 + DEFAULT => -63 }, - {#State 176 + {#State 178 ACTIONS => { - ";" => 191 + ";" => 193 } }, - {#State 177 - DEFAULT => -60 + {#State 179 + DEFAULT => -62 }, - {#State 178 + {#State 180 ACTIONS => { 'IDENTIFIER' => 9, "signed" => 102, "union" => 52, - ";" => 192, + ";" => 194, "enum" => 65, "bitmap" => 66, 'void' => 97, @@ -1990,7 +1998,7 @@ sub new { "[" => 7, "struct" => 63 }, - DEFAULT => -33, + DEFAULT => -35, GOTOS => { 'existingtype' => 101, 'bitmap' => 67, @@ -1998,50 +2006,50 @@ sub new { 'identifier' => 99, 'struct' => 59, 'enum' => 61, - 'type' => 179, + 'type' => 181, 'union' => 70, 'sign' => 100 } }, - {#State 179 - DEFAULT => -69, + {#State 181 + DEFAULT => -71, GOTOS => { - 'pointers' => 193 + 'pointers' => 195 } }, - {#State 180 - DEFAULT => -80, + {#State 182 + DEFAULT => -82, GOTOS => { - 'base_element' => 194, - 'property_list' => 158 + 'base_element' => 196, + 'property_list' => 160 } }, - {#State 181 + {#State 183 ACTIONS => { - ";" => 195 + ";" => 197 } }, - {#State 182 + {#State 184 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'identifier' => 23, - 'anytext' => 196, + 'anytext' => 198, 'text' => 24, 'constant' => 27 } }, - {#State 183 + {#State 185 ACTIONS => { "-" => 35, ":" => 34, "?" => 36, "<" => 37, - ";" => 197, + ";" => 199, "+" => 39, "~" => 38, "&" => 41, @@ -2055,10 +2063,10 @@ sub new { ">" => 48 } }, - {#State 184 - DEFAULT => -72 + {#State 186 + DEFAULT => -74 }, - {#State 185 + {#State 187 ACTIONS => { "-" => 35, ":" => 34, @@ -2076,15 +2084,15 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -46 + DEFAULT => -48 }, - {#State 186 - DEFAULT => -44 + {#State 188 + DEFAULT => -46 }, - {#State 187 - DEFAULT => -52 + {#State 189 + DEFAULT => -54 }, - {#State 188 + {#State 190 ACTIONS => { "-" => 35, ":" => 34, @@ -2102,48 +2110,48 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -53 + DEFAULT => -55 }, - {#State 189 - DEFAULT => -78 + {#State 191 + DEFAULT => -80 }, - {#State 190 + {#State 192 ACTIONS => { - "[" => 152 + "[" => 154 }, - DEFAULT => -77, + DEFAULT => -79, GOTOS => { - 'array_len' => 198 + 'array_len' => 200 } }, - {#State 191 - DEFAULT => -59 + {#State 193 + DEFAULT => -61 }, - {#State 192 - DEFAULT => -58 + {#State 194 + DEFAULT => -60 }, - {#State 193 + {#State 195 ACTIONS => { 'IDENTIFIER' => 9, - "*" => 144 + "*" => 146 }, GOTOS => { - 'identifier' => 199 + 'identifier' => 201 } }, - {#State 194 - DEFAULT => -76 + {#State 196 + DEFAULT => -78 }, - {#State 195 + {#State 197 DEFAULT => -19 }, - {#State 196 + {#State 198 ACTIONS => { "-" => 35, ":" => 34, "?" => 36, "<" => 37, - ";" => 200, + ";" => 202, "+" => 39, "~" => 38, "&" => 41, @@ -2157,26 +2165,26 @@ sub new { ">" => 48 } }, - {#State 197 + {#State 199 DEFAULT => -17 }, - {#State 198 - DEFAULT => -79 + {#State 200 + DEFAULT => -81 }, - {#State 199 + {#State 201 ACTIONS => { - "[" => 152 + "[" => 154 }, - DEFAULT => -77, + DEFAULT => -79, GOTOS => { - 'array_len' => 201 + 'array_len' => 203 } }, - {#State 200 + {#State 202 DEFAULT => -18 }, - {#State 201 - DEFAULT => -68 + {#State 203 + DEFAULT => -70 } ], yyrules => @@ -2190,19 +2198,19 @@ sub new { [#Rule 2 'idl', 2, sub -#line 19 "idl.yp" +#line 19 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 3 'idl', 2, sub -#line 20 "idl.yp" +#line 20 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 4 'coclass', 7, sub -#line 24 "idl.yp" +#line 24 "pidl/idl.yp" {$_[3] => { "TYPE" => "COCLASS", "PROPERTIES" => $_[1], @@ -2218,13 +2226,13 @@ sub [#Rule 6 'interface_names', 4, sub -#line 36 "idl.yp" +#line 36 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 7 'interface', 8, sub -#line 40 "idl.yp" +#line 40 "pidl/idl.yp" {$_[3] => { "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], @@ -2241,19 +2249,19 @@ sub [#Rule 9 'base_interface', 2, sub -#line 53 "idl.yp" +#line 53 "pidl/idl.yp" { $_[2] } ], [#Rule 10 'definitions', 1, sub -#line 57 "idl.yp" +#line 57 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 11 'definitions', 2, sub -#line 58 "idl.yp" +#line 58 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 12 @@ -2274,7 +2282,7 @@ sub [#Rule 17 'const', 7, sub -#line 66 "idl.yp" +#line 66 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2288,7 +2296,7 @@ sub [#Rule 18 'const', 8, sub -#line 76 "idl.yp" +#line 76 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2303,7 +2311,7 @@ sub [#Rule 19 'function', 7, sub -#line 90 "idl.yp" +#line 90 "pidl/idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -2317,7 +2325,7 @@ sub [#Rule 20 'declare', 5, sub -#line 102 "idl.yp" +#line 102 "pidl/idl.yp" {{ "TYPE" => "DECLARE", "PROPERTIES" => $_[2], @@ -2334,25 +2342,36 @@ sub 'decl_type', 1, undef ], [#Rule 23 + 'decl_type', 1, undef + ], + [#Rule 24 'decl_enum', 1, sub -#line 116 "idl.yp" +#line 116 "pidl/idl.yp" {{ "TYPE" => "ENUM" }} ], - [#Rule 24 + [#Rule 25 'decl_bitmap', 1, sub -#line 122 "idl.yp" +#line 122 "pidl/idl.yp" {{ "TYPE" => "BITMAP" }} ], - [#Rule 25 + [#Rule 26 + 'decl_union', 1, +sub +#line 128 "pidl/idl.yp" +{{ + "TYPE" => "UNION" + }} + ], + [#Rule 27 'typedef', 6, sub -#line 128 "idl.yp" +#line 134 "pidl/idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[2], @@ -2363,163 +2382,163 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 26 + [#Rule 28 'usertype', 1, undef ], - [#Rule 27 + [#Rule 29 'usertype', 1, undef ], - [#Rule 28 + [#Rule 30 'usertype', 1, undef ], - [#Rule 29 + [#Rule 31 'usertype', 1, undef ], - [#Rule 30 + [#Rule 32 'typedecl', 2, sub -#line 141 "idl.yp" +#line 147 "pidl/idl.yp" { $_[1] } ], - [#Rule 31 + [#Rule 33 'sign', 1, undef ], - [#Rule 32 + [#Rule 34 'sign', 1, undef ], - [#Rule 33 + [#Rule 35 'existingtype', 0, undef ], - [#Rule 34 + [#Rule 36 'existingtype', 2, sub -#line 146 "idl.yp" +#line 152 "pidl/idl.yp" { "$_[1] $_[2]" } ], - [#Rule 35 + [#Rule 37 'existingtype', 1, undef ], - [#Rule 36 + [#Rule 38 'type', 1, undef ], - [#Rule 37 + [#Rule 39 'type', 1, undef ], - [#Rule 38 + [#Rule 40 'type', 1, sub -#line 150 "idl.yp" +#line 156 "pidl/idl.yp" { "void" } ], - [#Rule 39 + [#Rule 41 'enum_body', 3, sub -#line 152 "idl.yp" +#line 158 "pidl/idl.yp" { $_[2] } ], - [#Rule 40 + [#Rule 42 'opt_enum_body', 0, undef ], - [#Rule 41 + [#Rule 43 'opt_enum_body', 1, undef ], - [#Rule 42 + [#Rule 44 'enum', 3, sub -#line 155 "idl.yp" +#line 161 "pidl/idl.yp" {{ "TYPE" => "ENUM", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 43 + [#Rule 45 'enum_elements', 1, sub -#line 163 "idl.yp" +#line 169 "pidl/idl.yp" { [ $_[1] ] } ], - [#Rule 44 + [#Rule 46 'enum_elements', 3, sub -#line 164 "idl.yp" +#line 170 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 45 + [#Rule 47 'enum_element', 1, undef ], - [#Rule 46 + [#Rule 48 'enum_element', 3, sub -#line 168 "idl.yp" +#line 174 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 47 + [#Rule 49 'bitmap_body', 3, sub -#line 171 "idl.yp" +#line 177 "pidl/idl.yp" { $_[2] } ], - [#Rule 48 + [#Rule 50 'opt_bitmap_body', 0, undef ], - [#Rule 49 + [#Rule 51 'opt_bitmap_body', 1, undef ], - [#Rule 50 + [#Rule 52 'bitmap', 3, sub -#line 174 "idl.yp" +#line 180 "pidl/idl.yp" {{ "TYPE" => "BITMAP", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 51 + [#Rule 53 'bitmap_elements', 1, sub -#line 182 "idl.yp" +#line 188 "pidl/idl.yp" { [ $_[1] ] } ], - [#Rule 52 + [#Rule 54 'bitmap_elements', 3, sub -#line 183 "idl.yp" +#line 189 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 53 + [#Rule 55 'bitmap_element', 3, sub -#line 186 "idl.yp" +#line 192 "pidl/idl.yp" { "$_[1] ( $_[3] )" } ], - [#Rule 54 + [#Rule 56 'struct_body', 3, sub -#line 189 "idl.yp" +#line 195 "pidl/idl.yp" { $_[2] } ], - [#Rule 55 + [#Rule 57 'opt_struct_body', 0, undef ], - [#Rule 56 + [#Rule 58 'opt_struct_body', 1, undef ], - [#Rule 57 + [#Rule 59 'struct', 3, sub -#line 193 "idl.yp" +#line 199 "pidl/idl.yp" {{ "TYPE" => "STRUCT", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 58 + [#Rule 60 'empty_element', 2, sub -#line 201 "idl.yp" +#line 207 "pidl/idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2530,53 +2549,53 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 59 + [#Rule 61 'base_or_empty', 2, undef ], - [#Rule 60 + [#Rule 62 'base_or_empty', 1, undef ], - [#Rule 61 + [#Rule 63 'optional_base_element', 2, sub -#line 215 "idl.yp" +#line 221 "pidl/idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], - [#Rule 62 + [#Rule 64 'union_elements', 0, undef ], - [#Rule 63 + [#Rule 65 'union_elements', 2, sub -#line 220 "idl.yp" +#line 226 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 64 + [#Rule 66 'union_body', 3, sub -#line 223 "idl.yp" +#line 229 "pidl/idl.yp" { $_[2] } ], - [#Rule 65 + [#Rule 67 'opt_union_body', 0, undef ], - [#Rule 66 + [#Rule 68 'opt_union_body', 1, undef ], - [#Rule 67 + [#Rule 69 'union', 3, sub -#line 227 "idl.yp" +#line 233 "pidl/idl.yp" {{ "TYPE" => "UNION", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 68 + [#Rule 70 'base_element', 5, sub -#line 235 "idl.yp" +#line 241 "pidl/idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2587,238 +2606,238 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 69 + [#Rule 71 'pointers', 0, sub -#line 249 "idl.yp" +#line 255 "pidl/idl.yp" { 0 } ], - [#Rule 70 + [#Rule 72 'pointers', 2, sub -#line 250 "idl.yp" +#line 256 "pidl/idl.yp" { $_[1]+1 } ], - [#Rule 71 + [#Rule 73 'element_list1', 0, undef ], - [#Rule 72 + [#Rule 74 'element_list1', 3, sub -#line 255 "idl.yp" +#line 261 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 73 + [#Rule 75 'element_list2', 0, undef ], - [#Rule 74 + [#Rule 76 'element_list2', 1, undef ], - [#Rule 75 + [#Rule 77 'element_list2', 1, sub -#line 261 "idl.yp" +#line 267 "pidl/idl.yp" { [ $_[1] ] } ], - [#Rule 76 + [#Rule 78 'element_list2', 3, sub -#line 262 "idl.yp" +#line 268 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 77 + [#Rule 79 'array_len', 0, undef ], - [#Rule 78 + [#Rule 80 'array_len', 3, sub -#line 267 "idl.yp" +#line 273 "pidl/idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], - [#Rule 79 + [#Rule 81 'array_len', 4, sub -#line 268 "idl.yp" +#line 274 "pidl/idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], - [#Rule 80 + [#Rule 82 'property_list', 0, undef ], - [#Rule 81 + [#Rule 83 'property_list', 4, sub -#line 274 "idl.yp" +#line 280 "pidl/idl.yp" { FlattenHash([$_[1],$_[3]]); } ], - [#Rule 82 + [#Rule 84 'properties', 1, sub -#line 277 "idl.yp" +#line 283 "pidl/idl.yp" { $_[1] } ], - [#Rule 83 + [#Rule 85 'properties', 3, sub -#line 278 "idl.yp" +#line 284 "pidl/idl.yp" { FlattenHash([$_[1], $_[3]]); } ], - [#Rule 84 + [#Rule 86 'property', 1, sub -#line 281 "idl.yp" +#line 287 "pidl/idl.yp" {{ "$_[1]" => "1" }} ], - [#Rule 85 + [#Rule 87 'property', 4, sub -#line 282 "idl.yp" +#line 288 "pidl/idl.yp" {{ "$_[1]" => "$_[3]" }} ], - [#Rule 86 + [#Rule 88 'listtext', 1, undef ], - [#Rule 87 + [#Rule 89 'listtext', 3, sub -#line 287 "idl.yp" +#line 293 "pidl/idl.yp" { "$_[1] $_[3]" } ], - [#Rule 88 + [#Rule 90 'commalisttext', 1, undef ], - [#Rule 89 + [#Rule 91 'commalisttext', 3, sub -#line 292 "idl.yp" +#line 298 "pidl/idl.yp" { "$_[1],$_[3]" } ], - [#Rule 90 + [#Rule 92 'anytext', 0, sub -#line 296 "idl.yp" +#line 302 "pidl/idl.yp" { "" } ], - [#Rule 91 - 'anytext', 1, undef - ], - [#Rule 92 - 'anytext', 1, undef - ], [#Rule 93 'anytext', 1, undef ], [#Rule 94 - 'anytext', 3, -sub -#line 298 "idl.yp" -{ "$_[1]$_[2]$_[3]" } + 'anytext', 1, undef ], [#Rule 95 - 'anytext', 3, -sub -#line 299 "idl.yp" -{ "$_[1]$_[2]$_[3]" } + 'anytext', 1, undef ], [#Rule 96 'anytext', 3, sub -#line 300 "idl.yp" +#line 304 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 97 'anytext', 3, sub -#line 301 "idl.yp" +#line 305 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 98 'anytext', 3, sub -#line 302 "idl.yp" +#line 306 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 99 'anytext', 3, sub -#line 303 "idl.yp" +#line 307 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 100 'anytext', 3, sub -#line 304 "idl.yp" +#line 308 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 101 'anytext', 3, sub -#line 305 "idl.yp" +#line 309 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 102 'anytext', 3, sub -#line 306 "idl.yp" +#line 310 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 103 'anytext', 3, sub -#line 307 "idl.yp" +#line 311 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 104 'anytext', 3, sub -#line 308 "idl.yp" +#line 312 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 105 'anytext', 3, sub -#line 309 "idl.yp" +#line 313 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 106 'anytext', 3, sub -#line 310 "idl.yp" +#line 314 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 107 + 'anytext', 3, +sub +#line 315 "pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 108 + 'anytext', 3, +sub +#line 316 "pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 109 'anytext', 5, sub -#line 311 "idl.yp" +#line 317 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 108 + [#Rule 110 'anytext', 5, sub -#line 312 "idl.yp" +#line 318 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 109 + [#Rule 111 'identifier', 1, undef ], - [#Rule 110 + [#Rule 112 'optional_identifier', 1, undef ], - [#Rule 111 + [#Rule 113 'optional_identifier', 0, undef ], - [#Rule 112 + [#Rule 114 'constant', 1, undef ], - [#Rule 113 + [#Rule 115 'text', 1, sub -#line 326 "idl.yp" +#line 332 "pidl/idl.yp" { "\"$_[1]\"" } ], - [#Rule 114 + [#Rule 116 'optional_semicolon', 0, undef ], - [#Rule 115 + [#Rule 117 'optional_semicolon', 1, undef ] ], @@ -2826,7 +2845,7 @@ sub bless($self,$class); } -#line 337 "idl.yp" +#line 343 "pidl/idl.yp" ##################################################################### -- cgit From c92781b333de6d9f7e5a9330ad4b1681c402cf91 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 6 Sep 2006 22:25:54 +0000 Subject: r18194: Allow empty bitmap {} declarations. (This used to be commit 084b5002b9a8c9790ce81480fe26d57e52789dbb) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 689 +++++++++++++++++++------------------ 1 file changed, 351 insertions(+), 338 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index dddbb26e76..b9c39f186e 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -509,7 +509,7 @@ sub new { ACTIONS => { '' => 2 }, - DEFAULT => -82, + DEFAULT => -84, GOTOS => { 'interface' => 3, 'coclass' => 4, @@ -559,7 +559,7 @@ sub new { } }, {#State 9 - DEFAULT => -111 + DEFAULT => -113 }, {#State 10 ACTIONS => { @@ -570,10 +570,10 @@ sub new { ACTIONS => { "(" => 16 }, - DEFAULT => -86 + DEFAULT => -88 }, {#State 12 - DEFAULT => -84 + DEFAULT => -86 }, {#State 13 ACTIONS => { @@ -602,7 +602,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'listtext' => 26, @@ -621,7 +621,7 @@ sub new { } }, {#State 18 - DEFAULT => -83 + DEFAULT => -85 }, {#State 19 ACTIONS => { @@ -643,13 +643,13 @@ sub new { } }, {#State 22 - DEFAULT => -115 + DEFAULT => -117 }, {#State 23 - DEFAULT => -93 + DEFAULT => -95 }, {#State 24 - DEFAULT => -95 + DEFAULT => -97 }, {#State 25 ACTIONS => { @@ -669,7 +669,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -88 + DEFAULT => -90 }, {#State 26 ACTIONS => { @@ -678,13 +678,13 @@ sub new { } }, {#State 27 - DEFAULT => -94 + DEFAULT => -96 }, {#State 28 - DEFAULT => -114 + DEFAULT => -116 }, {#State 29 - DEFAULT => -85 + DEFAULT => -87 }, {#State 30 DEFAULT => -9 @@ -699,7 +699,7 @@ sub new { "const" => 60, "struct" => 63 }, - DEFAULT => -82, + DEFAULT => -84, GOTOS => { 'typedecl' => 64, 'function' => 53, @@ -720,7 +720,7 @@ sub new { ACTIONS => { ";" => 71 }, - DEFAULT => -116, + DEFAULT => -118, GOTOS => { 'optional_semicolon' => 72 } @@ -739,7 +739,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 74, @@ -753,7 +753,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 75, @@ -767,7 +767,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 76, @@ -781,7 +781,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 77, @@ -795,7 +795,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 78, @@ -809,7 +809,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 79, @@ -823,7 +823,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 80, @@ -838,7 +838,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 82, @@ -852,7 +852,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 83, @@ -866,7 +866,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 84, @@ -880,7 +880,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 80, @@ -895,7 +895,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 86, @@ -909,7 +909,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 87, @@ -923,7 +923,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 88, @@ -937,7 +937,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 89, @@ -951,7 +951,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 90, @@ -960,10 +960,10 @@ sub new { } }, {#State 50 - DEFAULT => -87 + DEFAULT => -89 }, {#State 51 - DEFAULT => -82, + DEFAULT => -84, GOTOS => { 'property_list' => 91 } @@ -972,7 +972,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -113, + DEFAULT => -115, GOTOS => { 'optional_identifier' => 93 } @@ -991,7 +991,7 @@ sub new { "const" => 60, "struct" => 63 }, - DEFAULT => -82, + DEFAULT => -84, GOTOS => { 'typedecl' => 64, 'function' => 53, @@ -1040,7 +1040,7 @@ sub new { DEFAULT => -10 }, {#State 58 - DEFAULT => -82, + DEFAULT => -84, GOTOS => { 'property_list' => 105 } @@ -1066,7 +1066,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -113, + DEFAULT => -115, GOTOS => { 'optional_identifier' => 107 } @@ -1078,7 +1078,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -113, + DEFAULT => -115, GOTOS => { 'optional_identifier' => 108 } @@ -1087,7 +1087,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -113, + DEFAULT => -115, GOTOS => { 'optional_identifier' => 109 } @@ -1105,7 +1105,7 @@ sub new { DEFAULT => -29 }, {#State 71 - DEFAULT => -117 + DEFAULT => -119 }, {#State 72 DEFAULT => -4 @@ -1133,7 +1133,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -105 + DEFAULT => -107 }, {#State 75 ACTIONS => { @@ -1144,7 +1144,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -96 + DEFAULT => -98 }, {#State 76 ACTIONS => { @@ -1164,7 +1164,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -104 + DEFAULT => -106 }, {#State 77 ACTIONS => { @@ -1184,7 +1184,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -100 + DEFAULT => -102 }, {#State 78 ACTIONS => { @@ -1204,7 +1204,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -108 + DEFAULT => -110 }, {#State 79 ACTIONS => { @@ -1215,7 +1215,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -107 + DEFAULT => -109 }, {#State 80 ACTIONS => { @@ -1235,7 +1235,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -90 + DEFAULT => -92 }, {#State 81 ACTIONS => { @@ -1252,7 +1252,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -102 + DEFAULT => -104 }, {#State 83 ACTIONS => { @@ -1263,7 +1263,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -103 + DEFAULT => -105 }, {#State 84 ACTIONS => { @@ -1283,7 +1283,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -106 + DEFAULT => -108 }, {#State 85 ACTIONS => { @@ -1300,7 +1300,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -101 + DEFAULT => -103 }, {#State 87 ACTIONS => { @@ -1311,7 +1311,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -98 + DEFAULT => -100 }, {#State 88 ACTIONS => { @@ -1322,7 +1322,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -97 + DEFAULT => -99 }, {#State 89 ACTIONS => { @@ -1333,7 +1333,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -99 + DEFAULT => -101 }, {#State 90 ACTIONS => { @@ -1353,7 +1353,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -89 + DEFAULT => -91 }, {#State 91 ACTIONS => { @@ -1380,13 +1380,13 @@ sub new { } }, {#State 92 - DEFAULT => -112 + DEFAULT => -114 }, {#State 93 ACTIONS => { "{" => 116 }, - DEFAULT => -67, + DEFAULT => -69, GOTOS => { 'union_body' => 117, 'opt_union_body' => 115 @@ -1396,7 +1396,7 @@ sub new { ACTIONS => { ";" => 71 }, - DEFAULT => -116, + DEFAULT => -118, GOTOS => { 'optional_semicolon' => 118 } @@ -1456,7 +1456,7 @@ sub new { } }, {#State 106 - DEFAULT => -71, + DEFAULT => -73, GOTOS => { 'pointers' => 128 } @@ -1465,7 +1465,7 @@ sub new { ACTIONS => { "{" => 130 }, - DEFAULT => -57, + DEFAULT => -59, GOTOS => { 'struct_body' => 129, 'opt_struct_body' => 131 @@ -1500,7 +1500,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 138, @@ -1514,7 +1514,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 139, @@ -1528,7 +1528,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 140, @@ -1545,16 +1545,16 @@ sub new { } }, {#State 115 - DEFAULT => -69 + DEFAULT => -71 }, {#State 116 - DEFAULT => -64, + DEFAULT => -66, GOTOS => { 'union_elements' => 142 } }, {#State 117 - DEFAULT => -68 + DEFAULT => -70 }, {#State 118 DEFAULT => -7 @@ -1603,16 +1603,16 @@ sub new { } }, {#State 129 - DEFAULT => -58 + DEFAULT => -60 }, {#State 130 - DEFAULT => -73, + DEFAULT => -75, GOTOS => { 'element_list1' => 147 } }, {#State 131 - DEFAULT => -59 + DEFAULT => -61 }, {#State 132 ACTIONS => { @@ -1637,10 +1637,12 @@ sub new { ACTIONS => { 'IDENTIFIER' => 9 }, + DEFAULT => -55, GOTOS => { 'identifier' => 153, - 'bitmap_elements' => 152, - 'bitmap_element' => 151 + 'bitmap_element' => 152, + 'bitmap_elements' => 151, + 'opt_bitmap_elements' => 154 } }, {#State 137 @@ -1664,7 +1666,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -110 + DEFAULT => -112 }, {#State 139 ACTIONS => { @@ -1684,7 +1686,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -91 + DEFAULT => -93 }, {#State 140 ACTIONS => { @@ -1695,70 +1697,70 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -109 + DEFAULT => -111 }, {#State 141 ACTIONS => { - "[" => 154 + "[" => 155 }, - DEFAULT => -79, + DEFAULT => -81, GOTOS => { - 'array_len' => 155 + 'array_len' => 156 } }, {#State 142 ACTIONS => { - "}" => 156 + "}" => 157 }, - DEFAULT => -82, + DEFAULT => -84, GOTOS => { - 'optional_base_element' => 158, - 'property_list' => 157 + 'optional_base_element' => 159, + 'property_list' => 158 } }, {#State 143 ACTIONS => { - "," => -75, - "void" => 162, - ")" => -75 + "," => -77, + "void" => 163, + ")" => -77 }, - DEFAULT => -82, + DEFAULT => -84, GOTOS => { - 'base_element' => 159, - 'element_list2' => 161, - 'property_list' => 160 + 'base_element' => 160, + 'element_list2' => 162, + 'property_list' => 161 } }, {#State 144 ACTIONS => { - ";" => 163 + ";" => 164 } }, {#State 145 ACTIONS => { - "[" => 154, - "=" => 165 + "[" => 155, + "=" => 166 }, GOTOS => { - 'array_len' => 164 + 'array_len' => 165 } }, {#State 146 - DEFAULT => -72 + DEFAULT => -74 }, {#State 147 ACTIONS => { - "}" => 166 + "}" => 167 }, - DEFAULT => -82, + DEFAULT => -84, GOTOS => { - 'base_element' => 167, - 'property_list' => 160 + 'base_element' => 168, + 'property_list' => 161 } }, {#State 148 ACTIONS => { - "=" => 168 + "=" => 169 }, DEFAULT => -47 }, @@ -1767,18 +1769,18 @@ sub new { }, {#State 150 ACTIONS => { - "}" => 169, - "," => 170 + "}" => 170, + "," => 171 } }, {#State 151 - DEFAULT => -53 - }, - {#State 152 ACTIONS => { - "}" => 171, "," => 172 - } + }, + DEFAULT => -56 + }, + {#State 152 + DEFAULT => -53 }, {#State 153 ACTIONS => { @@ -1786,47 +1788,52 @@ sub new { } }, {#State 154 + ACTIONS => { + "}" => 174 + } + }, + {#State 155 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, - "]" => 174, + "]" => 175, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, - 'anytext' => 175, + 'anytext' => 176, 'text' => 24, 'constant' => 27 } }, - {#State 155 + {#State 156 ACTIONS => { - ";" => 176 + ";" => 177 } }, - {#State 156 - DEFAULT => -66 - }, {#State 157 + DEFAULT => -68 + }, + {#State 158 ACTIONS => { "[" => 7 }, - DEFAULT => -82, + DEFAULT => -84, GOTOS => { - 'base_or_empty' => 177, - 'base_element' => 178, - 'empty_element' => 179, - 'property_list' => 180 + 'base_or_empty' => 178, + 'base_element' => 179, + 'empty_element' => 180, + 'property_list' => 181 } }, - {#State 158 - DEFAULT => -65 - }, {#State 159 - DEFAULT => -77 + DEFAULT => -67 }, {#State 160 + DEFAULT => -79 + }, + {#State 161 ACTIONS => { 'IDENTIFIER' => 9, "signed" => 102, @@ -1846,86 +1853,83 @@ sub new { 'identifier' => 99, 'struct' => 59, 'enum' => 61, - 'type' => 181, + 'type' => 182, 'union' => 70, 'sign' => 100 } }, - {#State 161 + {#State 162 ACTIONS => { - "," => 182, - ")" => 183 + "," => 183, + ")" => 184 } }, - {#State 162 - DEFAULT => -76 - }, {#State 163 - DEFAULT => -20 + DEFAULT => -78 }, {#State 164 + DEFAULT => -20 + }, + {#State 165 ACTIONS => { - "=" => 184 + "=" => 185 } }, - {#State 165 + {#State 166 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, - 'anytext' => 185, + 'anytext' => 186, 'text' => 24, 'constant' => 27 } }, - {#State 166 - DEFAULT => -56 - }, {#State 167 + DEFAULT => -58 + }, + {#State 168 ACTIONS => { - ";" => 186 + ";" => 187 } }, - {#State 168 + {#State 169 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, - 'anytext' => 187, + 'anytext' => 188, 'text' => 24, 'constant' => 27 } }, - {#State 169 + {#State 170 DEFAULT => -41 }, - {#State 170 + {#State 171 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { 'identifier' => 148, - 'enum_element' => 188 + 'enum_element' => 189 } }, - {#State 171 - DEFAULT => -49 - }, {#State 172 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { 'identifier' => 153, - 'bitmap_element' => 189 + 'bitmap_element' => 190 } }, {#State 173 @@ -1934,24 +1938,27 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, - 'anytext' => 190, + 'anytext' => 191, 'text' => 24, 'constant' => 27 } }, {#State 174 + DEFAULT => -49 + }, + {#State 175 ACTIONS => { - "[" => 154 + "[" => 155 }, - DEFAULT => -79, + DEFAULT => -81, GOTOS => { - 'array_len' => 191 + 'array_len' => 192 } }, - {#State 175 + {#State 176 ACTIONS => { "-" => 35, ":" => 34, @@ -1967,30 +1974,30 @@ sub new { "(" => 44, "*" => 46, "." => 47, - "]" => 192, + "]" => 193, ">" => 48 } }, - {#State 176 - DEFAULT => -27 - }, {#State 177 - DEFAULT => -63 + DEFAULT => -27 }, {#State 178 - ACTIONS => { - ";" => 193 - } + DEFAULT => -65 }, {#State 179 - DEFAULT => -62 + ACTIONS => { + ";" => 194 + } }, {#State 180 + DEFAULT => -64 + }, + {#State 181 ACTIONS => { 'IDENTIFIER' => 9, "signed" => 102, "union" => 52, - ";" => 194, + ";" => 195, "enum" => 65, "bitmap" => 66, 'void' => 97, @@ -2006,50 +2013,50 @@ sub new { 'identifier' => 99, 'struct' => 59, 'enum' => 61, - 'type' => 181, + 'type' => 182, 'union' => 70, 'sign' => 100 } }, - {#State 181 - DEFAULT => -71, + {#State 182 + DEFAULT => -73, GOTOS => { - 'pointers' => 195 + 'pointers' => 196 } }, - {#State 182 - DEFAULT => -82, + {#State 183 + DEFAULT => -84, GOTOS => { - 'base_element' => 196, - 'property_list' => 160 + 'base_element' => 197, + 'property_list' => 161 } }, - {#State 183 + {#State 184 ACTIONS => { - ";" => 197 + ";" => 198 } }, - {#State 184 + {#State 185 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, - 'anytext' => 198, + 'anytext' => 199, 'text' => 24, 'constant' => 27 } }, - {#State 185 + {#State 186 ACTIONS => { "-" => 35, ":" => 34, "?" => 36, "<" => 37, - ";" => 199, + ";" => 200, "+" => 39, "~" => 38, "&" => 41, @@ -2063,10 +2070,10 @@ sub new { ">" => 48 } }, - {#State 186 - DEFAULT => -74 - }, {#State 187 + DEFAULT => -76 + }, + {#State 188 ACTIONS => { "-" => 35, ":" => 34, @@ -2086,13 +2093,13 @@ sub new { }, DEFAULT => -48 }, - {#State 188 + {#State 189 DEFAULT => -46 }, - {#State 189 + {#State 190 DEFAULT => -54 }, - {#State 190 + {#State 191 ACTIONS => { "-" => 35, ":" => 34, @@ -2110,48 +2117,48 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -55 - }, - {#State 191 - DEFAULT => -80 + DEFAULT => -57 }, {#State 192 + DEFAULT => -82 + }, + {#State 193 ACTIONS => { - "[" => 154 + "[" => 155 }, - DEFAULT => -79, + DEFAULT => -81, GOTOS => { - 'array_len' => 200 + 'array_len' => 201 } }, - {#State 193 - DEFAULT => -61 - }, {#State 194 - DEFAULT => -60 + DEFAULT => -63 }, {#State 195 + DEFAULT => -62 + }, + {#State 196 ACTIONS => { 'IDENTIFIER' => 9, "*" => 146 }, GOTOS => { - 'identifier' => 201 + 'identifier' => 202 } }, - {#State 196 - DEFAULT => -78 - }, {#State 197 - DEFAULT => -19 + DEFAULT => -80 }, {#State 198 + DEFAULT => -19 + }, + {#State 199 ACTIONS => { "-" => 35, ":" => 34, "?" => 36, "<" => 37, - ";" => 202, + ";" => 203, "+" => 39, "~" => 38, "&" => 41, @@ -2165,26 +2172,26 @@ sub new { ">" => 48 } }, - {#State 199 - DEFAULT => -17 - }, {#State 200 - DEFAULT => -81 + DEFAULT => -17 }, {#State 201 + DEFAULT => -83 + }, + {#State 202 ACTIONS => { - "[" => 154 + "[" => 155 }, - DEFAULT => -79, + DEFAULT => -81, GOTOS => { - 'array_len' => 203 + 'array_len' => 204 } }, - {#State 202 + {#State 203 DEFAULT => -18 }, - {#State 203 - DEFAULT => -70 + {#State 204 + DEFAULT => -72 } ], yyrules => @@ -2198,19 +2205,19 @@ sub new { [#Rule 2 'idl', 2, sub -#line 19 "pidl/idl.yp" +#line 19 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 3 'idl', 2, sub -#line 20 "pidl/idl.yp" +#line 20 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 4 'coclass', 7, sub -#line 24 "pidl/idl.yp" +#line 24 "idl.yp" {$_[3] => { "TYPE" => "COCLASS", "PROPERTIES" => $_[1], @@ -2226,13 +2233,13 @@ sub [#Rule 6 'interface_names', 4, sub -#line 36 "pidl/idl.yp" +#line 36 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 7 'interface', 8, sub -#line 40 "pidl/idl.yp" +#line 40 "idl.yp" {$_[3] => { "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], @@ -2249,19 +2256,19 @@ sub [#Rule 9 'base_interface', 2, sub -#line 53 "pidl/idl.yp" +#line 53 "idl.yp" { $_[2] } ], [#Rule 10 'definitions', 1, sub -#line 57 "pidl/idl.yp" +#line 57 "idl.yp" { [ $_[1] ] } ], [#Rule 11 'definitions', 2, sub -#line 58 "pidl/idl.yp" +#line 58 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 12 @@ -2282,7 +2289,7 @@ sub [#Rule 17 'const', 7, sub -#line 66 "pidl/idl.yp" +#line 66 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2296,7 +2303,7 @@ sub [#Rule 18 'const', 8, sub -#line 76 "pidl/idl.yp" +#line 76 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2311,7 +2318,7 @@ sub [#Rule 19 'function', 7, sub -#line 90 "pidl/idl.yp" +#line 90 "idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -2325,7 +2332,7 @@ sub [#Rule 20 'declare', 5, sub -#line 102 "pidl/idl.yp" +#line 102 "idl.yp" {{ "TYPE" => "DECLARE", "PROPERTIES" => $_[2], @@ -2347,7 +2354,7 @@ sub [#Rule 24 'decl_enum', 1, sub -#line 116 "pidl/idl.yp" +#line 116 "idl.yp" {{ "TYPE" => "ENUM" }} @@ -2355,7 +2362,7 @@ sub [#Rule 25 'decl_bitmap', 1, sub -#line 122 "pidl/idl.yp" +#line 122 "idl.yp" {{ "TYPE" => "BITMAP" }} @@ -2363,7 +2370,7 @@ sub [#Rule 26 'decl_union', 1, sub -#line 128 "pidl/idl.yp" +#line 128 "idl.yp" {{ "TYPE" => "UNION" }} @@ -2371,7 +2378,7 @@ sub [#Rule 27 'typedef', 6, sub -#line 134 "pidl/idl.yp" +#line 134 "idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[2], @@ -2397,7 +2404,7 @@ sub [#Rule 32 'typedecl', 2, sub -#line 147 "pidl/idl.yp" +#line 147 "idl.yp" { $_[1] } ], [#Rule 33 @@ -2412,7 +2419,7 @@ sub [#Rule 36 'existingtype', 2, sub -#line 152 "pidl/idl.yp" +#line 152 "idl.yp" { "$_[1] $_[2]" } ], [#Rule 37 @@ -2427,13 +2434,13 @@ sub [#Rule 40 'type', 1, sub -#line 156 "pidl/idl.yp" +#line 156 "idl.yp" { "void" } ], [#Rule 41 'enum_body', 3, sub -#line 158 "pidl/idl.yp" +#line 158 "idl.yp" { $_[2] } ], [#Rule 42 @@ -2445,7 +2452,7 @@ sub [#Rule 44 'enum', 3, sub -#line 161 "pidl/idl.yp" +#line 161 "idl.yp" {{ "TYPE" => "ENUM", "NAME" => $_[2], @@ -2455,13 +2462,13 @@ sub [#Rule 45 'enum_elements', 1, sub -#line 169 "pidl/idl.yp" +#line 169 "idl.yp" { [ $_[1] ] } ], [#Rule 46 'enum_elements', 3, sub -#line 170 "pidl/idl.yp" +#line 170 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 47 @@ -2470,13 +2477,13 @@ sub [#Rule 48 'enum_element', 3, sub -#line 174 "pidl/idl.yp" +#line 174 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 49 'bitmap_body', 3, sub -#line 177 "pidl/idl.yp" +#line 177 "idl.yp" { $_[2] } ], [#Rule 50 @@ -2488,7 +2495,7 @@ sub [#Rule 52 'bitmap', 3, sub -#line 180 "pidl/idl.yp" +#line 180 "idl.yp" {{ "TYPE" => "BITMAP", "NAME" => $_[2], @@ -2498,47 +2505,53 @@ sub [#Rule 53 'bitmap_elements', 1, sub -#line 188 "pidl/idl.yp" +#line 188 "idl.yp" { [ $_[1] ] } ], [#Rule 54 'bitmap_elements', 3, sub -#line 189 "pidl/idl.yp" +#line 189 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 55 + 'opt_bitmap_elements', 0, undef + ], + [#Rule 56 + 'opt_bitmap_elements', 1, undef + ], + [#Rule 57 'bitmap_element', 3, sub -#line 192 "pidl/idl.yp" +#line 194 "idl.yp" { "$_[1] ( $_[3] )" } ], - [#Rule 56 + [#Rule 58 'struct_body', 3, sub -#line 195 "pidl/idl.yp" +#line 197 "idl.yp" { $_[2] } ], - [#Rule 57 + [#Rule 59 'opt_struct_body', 0, undef ], - [#Rule 58 + [#Rule 60 'opt_struct_body', 1, undef ], - [#Rule 59 + [#Rule 61 'struct', 3, sub -#line 199 "pidl/idl.yp" +#line 201 "idl.yp" {{ "TYPE" => "STRUCT", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 60 + [#Rule 62 'empty_element', 2, sub -#line 207 "pidl/idl.yp" +#line 209 "idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2549,53 +2562,53 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 61 + [#Rule 63 'base_or_empty', 2, undef ], - [#Rule 62 + [#Rule 64 'base_or_empty', 1, undef ], - [#Rule 63 + [#Rule 65 'optional_base_element', 2, sub -#line 221 "pidl/idl.yp" +#line 223 "idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], - [#Rule 64 + [#Rule 66 'union_elements', 0, undef ], - [#Rule 65 + [#Rule 67 'union_elements', 2, sub -#line 226 "pidl/idl.yp" +#line 228 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 66 + [#Rule 68 'union_body', 3, sub -#line 229 "pidl/idl.yp" +#line 231 "idl.yp" { $_[2] } ], - [#Rule 67 + [#Rule 69 'opt_union_body', 0, undef ], - [#Rule 68 + [#Rule 70 'opt_union_body', 1, undef ], - [#Rule 69 + [#Rule 71 'union', 3, sub -#line 233 "pidl/idl.yp" +#line 235 "idl.yp" {{ "TYPE" => "UNION", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 70 + [#Rule 72 'base_element', 5, sub -#line 241 "pidl/idl.yp" +#line 243 "idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2606,238 +2619,238 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 71 + [#Rule 73 'pointers', 0, sub -#line 255 "pidl/idl.yp" +#line 257 "idl.yp" { 0 } ], - [#Rule 72 + [#Rule 74 'pointers', 2, sub -#line 256 "pidl/idl.yp" +#line 258 "idl.yp" { $_[1]+1 } ], - [#Rule 73 + [#Rule 75 'element_list1', 0, undef ], - [#Rule 74 + [#Rule 76 'element_list1', 3, sub -#line 261 "pidl/idl.yp" +#line 263 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 75 + [#Rule 77 'element_list2', 0, undef ], - [#Rule 76 + [#Rule 78 'element_list2', 1, undef ], - [#Rule 77 + [#Rule 79 'element_list2', 1, sub -#line 267 "pidl/idl.yp" +#line 269 "idl.yp" { [ $_[1] ] } ], - [#Rule 78 + [#Rule 80 'element_list2', 3, sub -#line 268 "pidl/idl.yp" +#line 270 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 79 + [#Rule 81 'array_len', 0, undef ], - [#Rule 80 + [#Rule 82 'array_len', 3, sub -#line 273 "pidl/idl.yp" +#line 275 "idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], - [#Rule 81 + [#Rule 83 'array_len', 4, sub -#line 274 "pidl/idl.yp" +#line 276 "idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], - [#Rule 82 + [#Rule 84 'property_list', 0, undef ], - [#Rule 83 + [#Rule 85 'property_list', 4, sub -#line 280 "pidl/idl.yp" +#line 282 "idl.yp" { FlattenHash([$_[1],$_[3]]); } ], - [#Rule 84 + [#Rule 86 'properties', 1, sub -#line 283 "pidl/idl.yp" +#line 285 "idl.yp" { $_[1] } ], - [#Rule 85 + [#Rule 87 'properties', 3, sub -#line 284 "pidl/idl.yp" +#line 286 "idl.yp" { FlattenHash([$_[1], $_[3]]); } ], - [#Rule 86 + [#Rule 88 'property', 1, sub -#line 287 "pidl/idl.yp" +#line 289 "idl.yp" {{ "$_[1]" => "1" }} ], - [#Rule 87 + [#Rule 89 'property', 4, sub -#line 288 "pidl/idl.yp" +#line 290 "idl.yp" {{ "$_[1]" => "$_[3]" }} ], - [#Rule 88 + [#Rule 90 'listtext', 1, undef ], - [#Rule 89 + [#Rule 91 'listtext', 3, sub -#line 293 "pidl/idl.yp" +#line 295 "idl.yp" { "$_[1] $_[3]" } ], - [#Rule 90 + [#Rule 92 'commalisttext', 1, undef ], - [#Rule 91 + [#Rule 93 'commalisttext', 3, sub -#line 298 "pidl/idl.yp" +#line 300 "idl.yp" { "$_[1],$_[3]" } ], - [#Rule 92 + [#Rule 94 'anytext', 0, sub -#line 302 "pidl/idl.yp" +#line 304 "idl.yp" { "" } ], - [#Rule 93 - 'anytext', 1, undef - ], - [#Rule 94 - 'anytext', 1, undef - ], [#Rule 95 'anytext', 1, undef ], [#Rule 96 - 'anytext', 3, -sub -#line 304 "pidl/idl.yp" -{ "$_[1]$_[2]$_[3]" } + 'anytext', 1, undef ], [#Rule 97 - 'anytext', 3, -sub -#line 305 "pidl/idl.yp" -{ "$_[1]$_[2]$_[3]" } + 'anytext', 1, undef ], [#Rule 98 'anytext', 3, sub -#line 306 "pidl/idl.yp" +#line 306 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 99 'anytext', 3, sub -#line 307 "pidl/idl.yp" +#line 307 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 100 'anytext', 3, sub -#line 308 "pidl/idl.yp" +#line 308 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 101 'anytext', 3, sub -#line 309 "pidl/idl.yp" +#line 309 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 102 'anytext', 3, sub -#line 310 "pidl/idl.yp" +#line 310 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 103 'anytext', 3, sub -#line 311 "pidl/idl.yp" +#line 311 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 104 'anytext', 3, sub -#line 312 "pidl/idl.yp" +#line 312 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 105 'anytext', 3, sub -#line 313 "pidl/idl.yp" +#line 313 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 106 'anytext', 3, sub -#line 314 "pidl/idl.yp" +#line 314 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 107 'anytext', 3, sub -#line 315 "pidl/idl.yp" +#line 315 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 108 'anytext', 3, sub -#line 316 "pidl/idl.yp" +#line 316 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 109 + 'anytext', 3, +sub +#line 317 "idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 110 + 'anytext', 3, +sub +#line 318 "idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 111 'anytext', 5, sub -#line 317 "pidl/idl.yp" +#line 319 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 110 + [#Rule 112 'anytext', 5, sub -#line 318 "pidl/idl.yp" +#line 320 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 111 + [#Rule 113 'identifier', 1, undef ], - [#Rule 112 + [#Rule 114 'optional_identifier', 1, undef ], - [#Rule 113 + [#Rule 115 'optional_identifier', 0, undef ], - [#Rule 114 + [#Rule 116 'constant', 1, undef ], - [#Rule 115 + [#Rule 117 'text', 1, sub -#line 332 "pidl/idl.yp" +#line 334 "idl.yp" { "\"$_[1]\"" } ], - [#Rule 116 + [#Rule 118 'optional_semicolon', 0, undef ], - [#Rule 117 + [#Rule 119 'optional_semicolon', 1, undef ] ], @@ -2845,7 +2858,7 @@ sub bless($self,$class); } -#line 343 "pidl/idl.yp" +#line 345 "idl.yp" ##################################################################### -- cgit From 5c3fd8e4717ec7167a67f9e9ee1e2d86f7d515a8 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 6 Nov 2006 20:01:22 +0000 Subject: r19580: Add --includedir option. (This used to be commit b076bfa39fefafcf30ac5be5056abfd629338fa5) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index b9c39f186e..87b4ccb5e5 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -2987,9 +2987,9 @@ sub parse_string return CleanData($idl); } -sub parse_file($) +sub parse_file($$) { - my ($filename) = @_; + my ($filename,$incdirs) = @_; my $saved_delim = $/; undef $/; @@ -2997,7 +2997,8 @@ sub parse_file($) if (! defined $cpp) { $cpp = "cpp"; } - my $data = `$cpp -D__PIDL__ -xc $filename`; + my $includes = map { " -I$_" } @$incdirs; + my $data = `$cpp -D__PIDL__$includes -xc $filename`; $/ = $saved_delim; return parse_string($data, $filename); -- cgit From d8ecabe452f36302105c6412ae5ab93cabfe5cf2 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 6 Nov 2006 21:54:19 +0000 Subject: r19585: Add support for some more standard IDL instructions: - `include' (replaces helper()) - `import' (replaces depends()) Add support for parsing importlib() - importlib() is now ignored (with a warning), but no longer causes syntax errors. helper() and depends() are now marked deprecated and will cause warnings. (This used to be commit 1ccab71cb8a9e3db9448b6679d01ad00e1c1e9a3) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 2668 +++++++++++++++++++----------------- 1 file changed, 1391 insertions(+), 1277 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 87b4ccb5e5..e400862795 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -507,12 +507,17 @@ sub new { }, {#State 1 ACTIONS => { - '' => 2 + '' => 2, + "importlib" => 3, + "import" => 6 }, - DEFAULT => -84, + DEFAULT => -90, GOTOS => { - 'interface' => 3, - 'coclass' => 4, + 'importlib' => 9, + 'interface' => 8, + 'include' => 4, + 'coclass' => 10, + 'import' => 7, 'property_list' => 5 } }, @@ -520,1678 +525,1735 @@ sub new { DEFAULT => 0 }, {#State 3 - DEFAULT => -2 + ACTIONS => { + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 + }, + DEFAULT => -100, + GOTOS => { + 'identifier' => 17, + 'text' => 18, + 'anytext' => 12, + 'constant' => 13, + 'commalisttext' => 15 + } }, {#State 4 - DEFAULT => -3 + DEFAULT => -5 }, {#State 5 ACTIONS => { - "coclass" => 6, - "interface" => 8, - "[" => 7 + "coclass" => 19, + "[" => 21, + "interface" => 20 } }, {#State 6 ACTIONS => { - 'IDENTIFIER' => 9 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 }, + DEFAULT => -100, GOTOS => { - 'identifier' => 10 + 'identifier' => 17, + 'text' => 18, + 'anytext' => 12, + 'constant' => 13, + 'commalisttext' => 22 } }, {#State 7 - ACTIONS => { - 'IDENTIFIER' => 9 - }, - GOTOS => { - 'identifier' => 11, - 'properties' => 13, - 'property' => 12 - } + DEFAULT => -4 }, {#State 8 - ACTIONS => { - 'IDENTIFIER' => 9 - }, - GOTOS => { - 'identifier' => 14 - } + DEFAULT => -2 }, {#State 9 - DEFAULT => -113 + DEFAULT => -6 }, {#State 10 - ACTIONS => { - "{" => 15 - } + DEFAULT => -3 }, {#State 11 - ACTIONS => { - "(" => 16 - }, - DEFAULT => -88 + DEFAULT => -119 }, {#State 12 - DEFAULT => -86 + ACTIONS => { + "-" => 24, + ":" => 23, + "<" => 26, + "+" => 28, + "~" => 27, + "*" => 35, + "?" => 25, + "{" => 29, + "&" => 30, + "/" => 31, + "=" => 32, + "(" => 33, + "|" => 34, + "." => 36, + ">" => 37 + }, + DEFAULT => -98 }, {#State 13 - ACTIONS => { - "," => 17, - "]" => 18 - } + DEFAULT => -102 }, {#State 14 - ACTIONS => { - ":" => 19 - }, - DEFAULT => -8, - GOTOS => { - 'base_interface' => 20 - } + DEFAULT => -122 }, {#State 15 - DEFAULT => -5, - GOTOS => { - 'interface_names' => 21 + ACTIONS => { + ";" => 38, + "," => 39 } }, {#State 16 - ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 - }, - DEFAULT => -94, - GOTOS => { - 'identifier' => 23, - 'listtext' => 26, - 'anytext' => 25, - 'text' => 24, - 'constant' => 27 - } + DEFAULT => -123 }, {#State 17 - ACTIONS => { - 'IDENTIFIER' => 9 - }, - GOTOS => { - 'identifier' => 11, - 'property' => 29 - } + DEFAULT => -101 }, {#State 18 - DEFAULT => -85 + DEFAULT => -103 }, {#State 19 ACTIONS => { - 'IDENTIFIER' => 9 + 'IDENTIFIER' => 11 }, GOTOS => { - 'identifier' => 30 + 'identifier' => 40 } }, {#State 20 ACTIONS => { - "{" => 31 + 'IDENTIFIER' => 11 + }, + GOTOS => { + 'identifier' => 41 } }, {#State 21 ACTIONS => { - "}" => 32, - "interface" => 33 + 'IDENTIFIER' => 11 + }, + GOTOS => { + 'identifier' => 43, + 'property' => 44, + 'properties' => 42 } }, {#State 22 - DEFAULT => -117 + ACTIONS => { + ";" => 45, + "," => 39 + } }, {#State 23 - DEFAULT => -95 + ACTIONS => { + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 + }, + DEFAULT => -100, + GOTOS => { + 'identifier' => 17, + 'text' => 18, + 'anytext' => 46, + 'constant' => 13 + } }, {#State 24 - DEFAULT => -97 + ACTIONS => { + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 + }, + DEFAULT => -100, + GOTOS => { + 'identifier' => 17, + 'text' => 18, + 'anytext' => 47, + 'constant' => 13 + } }, {#State 25 ACTIONS => { - "-" => 35, - ":" => 34, - "<" => 37, - "+" => 39, - "~" => 38, - "*" => 46, - "?" => 36, - "{" => 40, - "&" => 41, - "/" => 42, - "=" => 43, - "(" => 44, - "|" => 45, - "." => 47, - ">" => 48 - }, - DEFAULT => -90 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 + }, + DEFAULT => -100, + GOTOS => { + 'identifier' => 17, + 'text' => 18, + 'anytext' => 48, + 'constant' => 13 + } }, {#State 26 ACTIONS => { - "," => 49, - ")" => 50 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 + }, + DEFAULT => -100, + GOTOS => { + 'identifier' => 17, + 'text' => 18, + 'anytext' => 49, + 'constant' => 13 } }, {#State 27 - DEFAULT => -96 + ACTIONS => { + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 + }, + DEFAULT => -100, + GOTOS => { + 'identifier' => 17, + 'text' => 18, + 'anytext' => 50, + 'constant' => 13 + } }, {#State 28 - DEFAULT => -116 + ACTIONS => { + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 + }, + DEFAULT => -100, + GOTOS => { + 'identifier' => 17, + 'text' => 18, + 'anytext' => 51, + 'constant' => 13 + } }, {#State 29 - DEFAULT => -87 + ACTIONS => { + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 + }, + DEFAULT => -100, + GOTOS => { + 'identifier' => 17, + 'text' => 18, + 'anytext' => 12, + 'constant' => 13, + 'commalisttext' => 52 + } }, {#State 30 - DEFAULT => -9 + ACTIONS => { + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 + }, + DEFAULT => -100, + GOTOS => { + 'identifier' => 17, + 'text' => 18, + 'anytext' => 53, + 'constant' => 13 + } }, {#State 31 ACTIONS => { - "typedef" => 51, - "union" => 52, - "enum" => 65, - "bitmap" => 66, - "declare" => 58, - "const" => 60, - "struct" => 63 - }, - DEFAULT => -84, - GOTOS => { - 'typedecl' => 64, - 'function' => 53, - 'bitmap' => 67, - 'definitions' => 54, - 'definition' => 57, - 'property_list' => 56, - 'usertype' => 55, - 'declare' => 69, - 'const' => 68, - 'struct' => 59, - 'enum' => 61, - 'typedef' => 62, - 'union' => 70 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 + }, + DEFAULT => -100, + GOTOS => { + 'identifier' => 17, + 'text' => 18, + 'anytext' => 54, + 'constant' => 13 } }, {#State 32 ACTIONS => { - ";" => 71 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 }, - DEFAULT => -118, + DEFAULT => -100, GOTOS => { - 'optional_semicolon' => 72 + 'identifier' => 17, + 'text' => 18, + 'anytext' => 55, + 'constant' => 13 } }, {#State 33 ACTIONS => { - 'IDENTIFIER' => 9 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 }, + DEFAULT => -100, GOTOS => { - 'identifier' => 73 + 'identifier' => 17, + 'text' => 18, + 'anytext' => 12, + 'constant' => 13, + 'commalisttext' => 56 } }, {#State 34 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 }, - DEFAULT => -94, + DEFAULT => -100, GOTOS => { - 'identifier' => 23, - 'anytext' => 74, - 'text' => 24, - 'constant' => 27 + 'identifier' => 17, + 'text' => 18, + 'anytext' => 57, + 'constant' => 13 } }, {#State 35 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 }, - DEFAULT => -94, + DEFAULT => -100, GOTOS => { - 'identifier' => 23, - 'anytext' => 75, - 'text' => 24, - 'constant' => 27 + 'identifier' => 17, + 'text' => 18, + 'anytext' => 58, + 'constant' => 13 } }, {#State 36 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 }, - DEFAULT => -94, + DEFAULT => -100, GOTOS => { - 'identifier' => 23, - 'anytext' => 76, - 'text' => 24, - 'constant' => 27 + 'identifier' => 17, + 'text' => 18, + 'anytext' => 59, + 'constant' => 13 } }, {#State 37 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 }, - DEFAULT => -94, + DEFAULT => -100, GOTOS => { - 'identifier' => 23, - 'anytext' => 77, - 'text' => 24, - 'constant' => 27 + 'identifier' => 17, + 'text' => 18, + 'anytext' => 60, + 'constant' => 13 } }, {#State 38 - ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 - }, - DEFAULT => -94, - GOTOS => { - 'identifier' => 23, - 'anytext' => 78, - 'text' => 24, - 'constant' => 27 - } + DEFAULT => -9 }, {#State 39 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 }, - DEFAULT => -94, + DEFAULT => -100, GOTOS => { - 'identifier' => 23, - 'anytext' => 79, - 'text' => 24, - 'constant' => 27 + 'identifier' => 17, + 'text' => 18, + 'anytext' => 61, + 'constant' => 13 } }, {#State 40 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 - }, - DEFAULT => -94, - GOTOS => { - 'identifier' => 23, - 'anytext' => 80, - 'text' => 24, - 'constant' => 27, - 'commalisttext' => 81 + "{" => 62 } }, {#State 41 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 + ":" => 63 }, - DEFAULT => -94, + DEFAULT => -14, GOTOS => { - 'identifier' => 23, - 'anytext' => 82, - 'text' => 24, - 'constant' => 27 + 'base_interface' => 64 } }, {#State 42 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 - }, - DEFAULT => -94, - GOTOS => { - 'identifier' => 23, - 'anytext' => 83, - 'text' => 24, - 'constant' => 27 + "," => 65, + "]" => 66 } }, {#State 43 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 + "(" => 67 }, - DEFAULT => -94, - GOTOS => { - 'identifier' => 23, - 'anytext' => 84, - 'text' => 24, - 'constant' => 27 - } + DEFAULT => -94 }, {#State 44 - ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 - }, - DEFAULT => -94, - GOTOS => { - 'identifier' => 23, - 'anytext' => 80, - 'text' => 24, - 'constant' => 27, - 'commalisttext' => 85 - } + DEFAULT => -92 }, {#State 45 - ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 - }, - DEFAULT => -94, - GOTOS => { - 'identifier' => 23, - 'anytext' => 86, - 'text' => 24, - 'constant' => 27 - } + DEFAULT => -7 }, {#State 46 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 + "-" => 24, + ":" => 23, + "<" => 26, + "+" => 28, + "~" => 27, + "*" => 35, + "?" => 25, + "{" => 29, + "&" => 30, + "/" => 31, + "=" => 32, + "(" => 33, + "|" => 34, + "." => 36, + ">" => 37 }, - DEFAULT => -94, - GOTOS => { - 'identifier' => 23, - 'anytext' => 87, - 'text' => 24, - 'constant' => 27 - } + DEFAULT => -113 }, {#State 47 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 + ":" => 23, + "<" => 26, + "~" => 27, + "?" => 25, + "{" => 29, + "=" => 32 }, - DEFAULT => -94, - GOTOS => { - 'identifier' => 23, - 'anytext' => 88, - 'text' => 24, - 'constant' => 27 - } + DEFAULT => -104 }, {#State 48 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 + "-" => 24, + ":" => 23, + "<" => 26, + "+" => 28, + "~" => 27, + "*" => 35, + "?" => 25, + "{" => 29, + "&" => 30, + "/" => 31, + "=" => 32, + "(" => 33, + "|" => 34, + "." => 36, + ">" => 37 }, - DEFAULT => -94, - GOTOS => { - 'identifier' => 23, - 'anytext' => 89, - 'text' => 24, - 'constant' => 27 - } + DEFAULT => -112 }, {#State 49 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 + "-" => 24, + ":" => 23, + "<" => 26, + "+" => 28, + "~" => 27, + "*" => 35, + "?" => 25, + "{" => 29, + "&" => 30, + "/" => 31, + "=" => 32, + "(" => 33, + "|" => 34, + "." => 36, + ">" => 37 }, - DEFAULT => -94, - GOTOS => { - 'identifier' => 23, - 'anytext' => 90, - 'text' => 24, - 'constant' => 27 - } + DEFAULT => -108 }, {#State 50 - DEFAULT => -89 + ACTIONS => { + "-" => 24, + ":" => 23, + "<" => 26, + "+" => 28, + "~" => 27, + "*" => 35, + "?" => 25, + "{" => 29, + "&" => 30, + "/" => 31, + "=" => 32, + "(" => 33, + "|" => 34, + "." => 36, + ">" => 37 + }, + DEFAULT => -116 }, {#State 51 - DEFAULT => -84, - GOTOS => { - 'property_list' => 91 - } + ACTIONS => { + ":" => 23, + "<" => 26, + "~" => 27, + "?" => 25, + "{" => 29, + "=" => 32 + }, + DEFAULT => -115 }, {#State 52 ACTIONS => { - 'IDENTIFIER' => 92 - }, - DEFAULT => -115, - GOTOS => { - 'optional_identifier' => 93 + "}" => 68, + "," => 39 } }, {#State 53 - DEFAULT => -12 + ACTIONS => { + ":" => 23, + "<" => 26, + "~" => 27, + "?" => 25, + "{" => 29, + "=" => 32 + }, + DEFAULT => -110 }, {#State 54 ACTIONS => { - "}" => 94, - "typedef" => 51, - "union" => 52, - "enum" => 65, - "bitmap" => 66, - "declare" => 58, - "const" => 60, - "struct" => 63 - }, - DEFAULT => -84, - GOTOS => { - 'typedecl' => 64, - 'function' => 53, - 'bitmap' => 67, - 'definition' => 95, - 'property_list' => 56, - 'usertype' => 55, - 'const' => 68, - 'struct' => 59, - 'declare' => 69, - 'enum' => 61, - 'typedef' => 62, - 'union' => 70 - } + ":" => 23, + "<" => 26, + "~" => 27, + "?" => 25, + "{" => 29, + "=" => 32 + }, + DEFAULT => -111 }, {#State 55 ACTIONS => { - ";" => 96 - } + "-" => 24, + ":" => 23, + "<" => 26, + "+" => 28, + "~" => 27, + "*" => 35, + "?" => 25, + "{" => 29, + "&" => 30, + "/" => 31, + "=" => 32, + "(" => 33, + "|" => 34, + "." => 36, + ">" => 37 + }, + DEFAULT => -114 }, {#State 56 ACTIONS => { - 'IDENTIFIER' => 9, - "signed" => 102, - "union" => 52, - "enum" => 65, - "bitmap" => 66, - 'void' => 97, - "unsigned" => 103, - "[" => 7, - "struct" => 63 - }, - GOTOS => { - 'existingtype' => 101, - 'bitmap' => 67, - 'usertype' => 98, - 'identifier' => 99, - 'struct' => 59, - 'enum' => 61, - 'type' => 104, - 'union' => 70, - 'sign' => 100 + "," => 39, + ")" => 69 } }, {#State 57 - DEFAULT => -10 + ACTIONS => { + ":" => 23, + "<" => 26, + "~" => 27, + "?" => 25, + "{" => 29, + "=" => 32 + }, + DEFAULT => -109 }, {#State 58 - DEFAULT => -84, - GOTOS => { - 'property_list' => 105 - } + ACTIONS => { + ":" => 23, + "<" => 26, + "~" => 27, + "?" => 25, + "{" => 29, + "=" => 32 + }, + DEFAULT => -106 }, {#State 59 - DEFAULT => -28 + ACTIONS => { + ":" => 23, + "<" => 26, + "~" => 27, + "?" => 25, + "{" => 29, + "=" => 32 + }, + DEFAULT => -105 }, {#State 60 ACTIONS => { - 'IDENTIFIER' => 9 + ":" => 23, + "<" => 26, + "~" => 27, + "?" => 25, + "{" => 29, + "=" => 32 }, - GOTOS => { - 'identifier' => 106 - } + DEFAULT => -107 }, {#State 61 - DEFAULT => -30 + ACTIONS => { + "-" => 24, + ":" => 23, + "<" => 26, + "+" => 28, + "~" => 27, + "*" => 35, + "?" => 25, + "{" => 29, + "&" => 30, + "/" => 31, + "=" => 32, + "(" => 33, + "|" => 34, + "." => 36, + ">" => 37 + }, + DEFAULT => -99 }, {#State 62 - DEFAULT => -14 + DEFAULT => -11, + GOTOS => { + 'interface_names' => 70 + } }, {#State 63 ACTIONS => { - 'IDENTIFIER' => 92 + 'IDENTIFIER' => 11 }, - DEFAULT => -115, GOTOS => { - 'optional_identifier' => 107 + 'identifier' => 71 } }, {#State 64 - DEFAULT => -16 + ACTIONS => { + "{" => 72 + } }, {#State 65 ACTIONS => { - 'IDENTIFIER' => 92 + 'IDENTIFIER' => 11 }, - DEFAULT => -115, GOTOS => { - 'optional_identifier' => 108 + 'identifier' => 43, + 'property' => 73 } }, {#State 66 + DEFAULT => -91 + }, + {#State 67 ACTIONS => { - 'IDENTIFIER' => 92 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 }, - DEFAULT => -115, + DEFAULT => -100, GOTOS => { - 'optional_identifier' => 109 + 'identifier' => 17, + 'text' => 18, + 'listtext' => 75, + 'anytext' => 74, + 'constant' => 13 } }, - {#State 67 - DEFAULT => -31 - }, {#State 68 - DEFAULT => -13 + ACTIONS => { + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 + }, + DEFAULT => -100, + GOTOS => { + 'identifier' => 17, + 'text' => 18, + 'anytext' => 76, + 'constant' => 13 + } }, {#State 69 - DEFAULT => -15 + ACTIONS => { + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 + }, + DEFAULT => -100, + GOTOS => { + 'identifier' => 17, + 'text' => 18, + 'anytext' => 77, + 'constant' => 13 + } }, {#State 70 - DEFAULT => -29 + ACTIONS => { + "}" => 78, + "interface" => 79 + } }, {#State 71 - DEFAULT => -119 + DEFAULT => -15 }, {#State 72 - DEFAULT => -4 - }, - {#State 73 ACTIONS => { - ";" => 110 + "typedef" => 80, + "union" => 81, + "enum" => 94, + "bitmap" => 95, + "declare" => 87, + "const" => 89, + "struct" => 92 + }, + DEFAULT => -90, + GOTOS => { + 'typedecl' => 93, + 'function' => 82, + 'bitmap' => 96, + 'definitions' => 83, + 'definition' => 86, + 'property_list' => 85, + 'usertype' => 84, + 'declare' => 98, + 'const' => 97, + 'struct' => 88, + 'enum' => 90, + 'typedef' => 91, + 'union' => 99 } }, + {#State 73 + DEFAULT => -93 + }, {#State 74 ACTIONS => { - "-" => 35, - ":" => 34, - "<" => 37, - "+" => 39, - "~" => 38, - "*" => 46, - "?" => 36, - "{" => 40, - "&" => 41, - "/" => 42, - "=" => 43, - "(" => 44, - "|" => 45, - "." => 47, - ">" => 48 + "-" => 24, + ":" => 23, + "<" => 26, + "+" => 28, + "~" => 27, + "*" => 35, + "?" => 25, + "{" => 29, + "&" => 30, + "/" => 31, + "=" => 32, + "(" => 33, + "|" => 34, + "." => 36, + ">" => 37 }, - DEFAULT => -107 + DEFAULT => -96 }, {#State 75 ACTIONS => { - ":" => 34, - "<" => 37, - "~" => 38, - "?" => 36, - "{" => 40, - "=" => 43 - }, - DEFAULT => -98 + "," => 100, + ")" => 101 + } }, {#State 76 ACTIONS => { - "-" => 35, - ":" => 34, - "<" => 37, - "+" => 39, - "~" => 38, - "*" => 46, - "?" => 36, - "{" => 40, - "&" => 41, - "/" => 42, - "=" => 43, - "(" => 44, - "|" => 45, - "." => 47, - ">" => 48 - }, - DEFAULT => -106 + "-" => 24, + ":" => 23, + "<" => 26, + "+" => 28, + "~" => 27, + "*" => 35, + "?" => 25, + "{" => 29, + "&" => 30, + "/" => 31, + "=" => 32, + "(" => 33, + "|" => 34, + "." => 36, + ">" => 37 + }, + DEFAULT => -118 }, {#State 77 ACTIONS => { - "-" => 35, - ":" => 34, - "<" => 37, - "+" => 39, - "~" => 38, - "*" => 46, - "?" => 36, - "{" => 40, - "&" => 41, - "/" => 42, - "=" => 43, - "(" => 44, - "|" => 45, - "." => 47, - ">" => 48 + ":" => 23, + "<" => 26, + "~" => 27, + "?" => 25, + "{" => 29, + "=" => 32 }, - DEFAULT => -102 + DEFAULT => -117 }, {#State 78 ACTIONS => { - "-" => 35, - ":" => 34, - "<" => 37, - "+" => 39, - "~" => 38, - "*" => 46, - "?" => 36, - "{" => 40, - "&" => 41, - "/" => 42, - "=" => 43, - "(" => 44, - "|" => 45, - "." => 47, - ">" => 48 + ";" => 102 }, - DEFAULT => -110 + DEFAULT => -124, + GOTOS => { + 'optional_semicolon' => 103 + } }, {#State 79 ACTIONS => { - ":" => 34, - "<" => 37, - "~" => 38, - "?" => 36, - "{" => 40, - "=" => 43 + 'IDENTIFIER' => 11 }, - DEFAULT => -109 + GOTOS => { + 'identifier' => 104 + } }, {#State 80 - ACTIONS => { - "-" => 35, - ":" => 34, - "<" => 37, - "+" => 39, - "~" => 38, - "*" => 46, - "?" => 36, - "{" => 40, - "&" => 41, - "/" => 42, - "=" => 43, - "(" => 44, - "|" => 45, - "." => 47, - ">" => 48 - }, - DEFAULT => -92 + DEFAULT => -90, + GOTOS => { + 'property_list' => 105 + } }, {#State 81 ACTIONS => { - "}" => 111, - "," => 112 + 'IDENTIFIER' => 106 + }, + DEFAULT => -121, + GOTOS => { + 'optional_identifier' => 107 } }, {#State 82 - ACTIONS => { - ":" => 34, - "<" => 37, - "~" => 38, - "?" => 36, - "{" => 40, - "=" => 43 - }, - DEFAULT => -104 + DEFAULT => -18 }, {#State 83 ACTIONS => { - ":" => 34, - "<" => 37, - "~" => 38, - "?" => 36, - "{" => 40, - "=" => 43 - }, - DEFAULT => -105 + "}" => 108, + "typedef" => 80, + "union" => 81, + "enum" => 94, + "bitmap" => 95, + "declare" => 87, + "const" => 89, + "struct" => 92 + }, + DEFAULT => -90, + GOTOS => { + 'typedecl' => 93, + 'function' => 82, + 'bitmap' => 96, + 'definition' => 109, + 'property_list' => 85, + 'usertype' => 84, + 'const' => 97, + 'struct' => 88, + 'declare' => 98, + 'enum' => 90, + 'typedef' => 91, + 'union' => 99 + } }, {#State 84 ACTIONS => { - "-" => 35, - ":" => 34, - "<" => 37, - "+" => 39, - "~" => 38, - "*" => 46, - "?" => 36, - "{" => 40, - "&" => 41, - "/" => 42, - "=" => 43, - "(" => 44, - "|" => 45, - "." => 47, - ">" => 48 - }, - DEFAULT => -108 + ";" => 110 + } }, {#State 85 ACTIONS => { - "," => 112, - ")" => 113 + 'IDENTIFIER' => 11, + "signed" => 116, + "union" => 81, + "enum" => 94, + "bitmap" => 95, + 'void' => 111, + "unsigned" => 117, + "[" => 21, + "struct" => 92 + }, + GOTOS => { + 'existingtype' => 115, + 'bitmap' => 96, + 'usertype' => 112, + 'identifier' => 113, + 'struct' => 88, + 'enum' => 90, + 'type' => 118, + 'union' => 99, + 'sign' => 114 } }, {#State 86 - ACTIONS => { - ":" => 34, - "<" => 37, - "~" => 38, - "?" => 36, - "{" => 40, - "=" => 43 - }, - DEFAULT => -103 + DEFAULT => -16 }, {#State 87 - ACTIONS => { - ":" => 34, - "<" => 37, - "~" => 38, - "?" => 36, - "{" => 40, - "=" => 43 - }, - DEFAULT => -100 + DEFAULT => -90, + GOTOS => { + 'property_list' => 119 + } }, {#State 88 + DEFAULT => -34 + }, + {#State 89 ACTIONS => { - ":" => 34, - "<" => 37, - "~" => 38, - "?" => 36, - "{" => 40, - "=" => 43 + 'IDENTIFIER' => 11 }, - DEFAULT => -99 - }, - {#State 89 - ACTIONS => { - ":" => 34, - "<" => 37, - "~" => 38, - "?" => 36, - "{" => 40, - "=" => 43 - }, - DEFAULT => -101 + GOTOS => { + 'identifier' => 120 + } }, {#State 90 - ACTIONS => { - "-" => 35, - ":" => 34, - "<" => 37, - "+" => 39, - "~" => 38, - "*" => 46, - "?" => 36, - "{" => 40, - "&" => 41, - "/" => 42, - "=" => 43, - "(" => 44, - "|" => 45, - "." => 47, - ">" => 48 - }, - DEFAULT => -91 + DEFAULT => -36 }, {#State 91 + DEFAULT => -20 + }, + {#State 92 ACTIONS => { - 'IDENTIFIER' => 9, - "signed" => 102, - "union" => 52, - "enum" => 65, - "bitmap" => 66, - 'void' => 97, - "unsigned" => 103, - "[" => 7, - "struct" => 63 + 'IDENTIFIER' => 106 }, + DEFAULT => -121, GOTOS => { - 'existingtype' => 101, - 'bitmap' => 67, - 'usertype' => 98, - 'identifier' => 99, - 'struct' => 59, - 'enum' => 61, - 'type' => 114, - 'union' => 70, - 'sign' => 100 + 'optional_identifier' => 121 } }, - {#State 92 - DEFAULT => -114 - }, {#State 93 + DEFAULT => -22 + }, + {#State 94 ACTIONS => { - "{" => 116 + 'IDENTIFIER' => 106 }, - DEFAULT => -69, + DEFAULT => -121, GOTOS => { - 'union_body' => 117, - 'opt_union_body' => 115 + 'optional_identifier' => 122 } }, - {#State 94 + {#State 95 ACTIONS => { - ";" => 71 + 'IDENTIFIER' => 106 }, - DEFAULT => -118, + DEFAULT => -121, GOTOS => { - 'optional_semicolon' => 118 + 'optional_identifier' => 123 } }, - {#State 95 - DEFAULT => -11 - }, {#State 96 - DEFAULT => -32 + DEFAULT => -37 }, {#State 97 - DEFAULT => -40 + DEFAULT => -19 }, {#State 98 - DEFAULT => -38 + DEFAULT => -21 }, {#State 99 - DEFAULT => -37 + DEFAULT => -35 }, {#State 100 ACTIONS => { - 'IDENTIFIER' => 9 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 }, + DEFAULT => -100, GOTOS => { - 'identifier' => 119 + 'identifier' => 17, + 'anytext' => 124, + 'text' => 18, + 'constant' => 13 } }, {#State 101 - DEFAULT => -39 + DEFAULT => -95 }, {#State 102 - DEFAULT => -33 + DEFAULT => -125 }, {#State 103 - DEFAULT => -34 + DEFAULT => -10 }, {#State 104 ACTIONS => { - 'IDENTIFIER' => 9 - }, - GOTOS => { - 'identifier' => 120 + ";" => 125 } }, {#State 105 ACTIONS => { - "union" => 121, - "enum" => 126, - "bitmap" => 127, - "[" => 7 + 'IDENTIFIER' => 11, + "signed" => 116, + "union" => 81, + "enum" => 94, + "bitmap" => 95, + 'void' => 111, + "unsigned" => 117, + "[" => 21, + "struct" => 92 }, GOTOS => { - 'decl_enum' => 122, - 'decl_bitmap' => 123, - 'decl_type' => 125, - 'decl_union' => 124 + 'existingtype' => 115, + 'bitmap' => 96, + 'usertype' => 112, + 'identifier' => 113, + 'struct' => 88, + 'enum' => 90, + 'type' => 126, + 'union' => 99, + 'sign' => 114 } }, {#State 106 - DEFAULT => -73, - GOTOS => { - 'pointers' => 128 - } + DEFAULT => -120 }, {#State 107 ACTIONS => { - "{" => 130 + "{" => 128 }, - DEFAULT => -59, + DEFAULT => -75, GOTOS => { - 'struct_body' => 129, - 'opt_struct_body' => 131 + 'union_body' => 129, + 'opt_union_body' => 127 } }, {#State 108 ACTIONS => { - "{" => 132 + ";" => 102 }, - DEFAULT => -42, + DEFAULT => -124, GOTOS => { - 'opt_enum_body' => 134, - 'enum_body' => 133 + 'optional_semicolon' => 130 } }, {#State 109 - ACTIONS => { - "{" => 136 - }, - DEFAULT => -50, - GOTOS => { - 'bitmap_body' => 137, - 'opt_bitmap_body' => 135 - } + DEFAULT => -17 }, {#State 110 - DEFAULT => -6 + DEFAULT => -38 }, {#State 111 - ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 - }, - DEFAULT => -94, - GOTOS => { - 'identifier' => 23, - 'anytext' => 138, - 'text' => 24, - 'constant' => 27 - } + DEFAULT => -46 }, {#State 112 - ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 - }, - DEFAULT => -94, - GOTOS => { - 'identifier' => 23, - 'anytext' => 139, - 'text' => 24, - 'constant' => 27 - } + DEFAULT => -44 }, {#State 113 - ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 - }, - DEFAULT => -94, - GOTOS => { - 'identifier' => 23, - 'anytext' => 140, - 'text' => 24, - 'constant' => 27 - } + DEFAULT => -43 }, {#State 114 ACTIONS => { - 'IDENTIFIER' => 9 + 'IDENTIFIER' => 11 }, GOTOS => { - 'identifier' => 141 + 'identifier' => 131 } }, {#State 115 - DEFAULT => -71 + DEFAULT => -45 }, {#State 116 - DEFAULT => -66, - GOTOS => { - 'union_elements' => 142 - } + DEFAULT => -39 }, {#State 117 - DEFAULT => -70 + DEFAULT => -40 }, {#State 118 - DEFAULT => -7 + ACTIONS => { + 'IDENTIFIER' => 11 + }, + GOTOS => { + 'identifier' => 132 + } }, {#State 119 - DEFAULT => -36 + ACTIONS => { + "union" => 133, + "enum" => 138, + "bitmap" => 139, + "[" => 21 + }, + GOTOS => { + 'decl_enum' => 134, + 'decl_bitmap' => 135, + 'decl_type' => 137, + 'decl_union' => 136 + } }, {#State 120 - ACTIONS => { - "(" => 143 + DEFAULT => -79, + GOTOS => { + 'pointers' => 140 } }, {#State 121 - DEFAULT => -26 + ACTIONS => { + "{" => 142 + }, + DEFAULT => -65, + GOTOS => { + 'struct_body' => 141, + 'opt_struct_body' => 143 + } }, {#State 122 - DEFAULT => -21 + ACTIONS => { + "{" => 144 + }, + DEFAULT => -48, + GOTOS => { + 'opt_enum_body' => 146, + 'enum_body' => 145 + } }, {#State 123 - DEFAULT => -22 + ACTIONS => { + "{" => 148 + }, + DEFAULT => -56, + GOTOS => { + 'bitmap_body' => 149, + 'opt_bitmap_body' => 147 + } }, {#State 124 - DEFAULT => -23 + ACTIONS => { + "-" => 24, + ":" => 23, + "<" => 26, + "+" => 28, + "~" => 27, + "*" => 35, + "?" => 25, + "{" => 29, + "&" => 30, + "/" => 31, + "=" => 32, + "(" => 33, + "|" => 34, + "." => 36, + ">" => 37 + }, + DEFAULT => -97 }, {#State 125 + DEFAULT => -12 + }, + {#State 126 ACTIONS => { - 'IDENTIFIER' => 9 + 'IDENTIFIER' => 11 }, GOTOS => { - 'identifier' => 144 + 'identifier' => 150 } }, - {#State 126 - DEFAULT => -24 - }, {#State 127 - DEFAULT => -25 + DEFAULT => -77 }, {#State 128 - ACTIONS => { - 'IDENTIFIER' => 9, - "*" => 146 - }, + DEFAULT => -72, GOTOS => { - 'identifier' => 145 + 'union_elements' => 151 } }, {#State 129 - DEFAULT => -60 + DEFAULT => -76 }, {#State 130 - DEFAULT => -75, - GOTOS => { - 'element_list1' => 147 - } + DEFAULT => -13 }, {#State 131 - DEFAULT => -61 + DEFAULT => -42 }, {#State 132 ACTIONS => { - 'IDENTIFIER' => 9 - }, - GOTOS => { - 'identifier' => 148, - 'enum_element' => 149, - 'enum_elements' => 150 + "(" => 152 } }, {#State 133 - DEFAULT => -43 + DEFAULT => -32 }, {#State 134 - DEFAULT => -44 + DEFAULT => -27 }, {#State 135 - DEFAULT => -52 + DEFAULT => -28 }, {#State 136 + DEFAULT => -29 + }, + {#State 137 ACTIONS => { - 'IDENTIFIER' => 9 + 'IDENTIFIER' => 11 }, - DEFAULT => -55, GOTOS => { - 'identifier' => 153, - 'bitmap_element' => 152, - 'bitmap_elements' => 151, - 'opt_bitmap_elements' => 154 + 'identifier' => 153 } }, - {#State 137 - DEFAULT => -51 - }, {#State 138 + DEFAULT => -30 + }, + {#State 139 + DEFAULT => -31 + }, + {#State 140 ACTIONS => { - "-" => 35, - ":" => 34, - "<" => 37, - "+" => 39, - "~" => 38, - "*" => 46, - "?" => 36, - "{" => 40, - "&" => 41, - "/" => 42, - "=" => 43, - "(" => 44, - "|" => 45, - "." => 47, - ">" => 48 + 'IDENTIFIER' => 11, + "*" => 155 }, - DEFAULT => -112 + GOTOS => { + 'identifier' => 154 + } }, - {#State 139 + {#State 141 + DEFAULT => -66 + }, + {#State 142 + DEFAULT => -81, + GOTOS => { + 'element_list1' => 156 + } + }, + {#State 143 + DEFAULT => -67 + }, + {#State 144 ACTIONS => { - "-" => 35, - ":" => 34, - "<" => 37, - "+" => 39, - "~" => 38, - "*" => 46, - "?" => 36, - "{" => 40, - "&" => 41, - "/" => 42, - "=" => 43, - "(" => 44, - "|" => 45, - "." => 47, - ">" => 48 + 'IDENTIFIER' => 11 }, - DEFAULT => -93 + GOTOS => { + 'identifier' => 157, + 'enum_element' => 158, + 'enum_elements' => 159 + } }, - {#State 140 + {#State 145 + DEFAULT => -49 + }, + {#State 146 + DEFAULT => -50 + }, + {#State 147 + DEFAULT => -58 + }, + {#State 148 ACTIONS => { - ":" => 34, - "<" => 37, - "~" => 38, - "?" => 36, - "{" => 40, - "=" => 43 + 'IDENTIFIER' => 11 }, - DEFAULT => -111 + DEFAULT => -61, + GOTOS => { + 'identifier' => 162, + 'bitmap_element' => 161, + 'bitmap_elements' => 160, + 'opt_bitmap_elements' => 163 + } }, - {#State 141 + {#State 149 + DEFAULT => -57 + }, + {#State 150 ACTIONS => { - "[" => 155 + "[" => 164 }, - DEFAULT => -81, + DEFAULT => -87, GOTOS => { - 'array_len' => 156 + 'array_len' => 165 } }, - {#State 142 + {#State 151 ACTIONS => { - "}" => 157 + "}" => 166 }, - DEFAULT => -84, + DEFAULT => -90, GOTOS => { - 'optional_base_element' => 159, - 'property_list' => 158 + 'optional_base_element' => 168, + 'property_list' => 167 } }, - {#State 143 + {#State 152 ACTIONS => { - "," => -77, - "void" => 163, - ")" => -77 + "," => -83, + "void" => 172, + ")" => -83 }, - DEFAULT => -84, + DEFAULT => -90, GOTOS => { - 'base_element' => 160, - 'element_list2' => 162, - 'property_list' => 161 + 'base_element' => 169, + 'element_list2' => 171, + 'property_list' => 170 } }, - {#State 144 + {#State 153 ACTIONS => { - ";" => 164 + ";" => 173 } }, - {#State 145 + {#State 154 ACTIONS => { - "[" => 155, - "=" => 166 + "[" => 164, + "=" => 175 }, GOTOS => { - 'array_len' => 165 + 'array_len' => 174 } }, - {#State 146 - DEFAULT => -74 + {#State 155 + DEFAULT => -80 }, - {#State 147 + {#State 156 ACTIONS => { - "}" => 167 + "}" => 176 }, - DEFAULT => -84, + DEFAULT => -90, GOTOS => { - 'base_element' => 168, - 'property_list' => 161 + 'base_element' => 177, + 'property_list' => 170 } }, - {#State 148 + {#State 157 ACTIONS => { - "=" => 169 + "=" => 178 }, - DEFAULT => -47 + DEFAULT => -53 }, - {#State 149 - DEFAULT => -45 + {#State 158 + DEFAULT => -51 }, - {#State 150 + {#State 159 ACTIONS => { - "}" => 170, - "," => 171 + "}" => 179, + "," => 180 } }, - {#State 151 + {#State 160 ACTIONS => { - "," => 172 + "," => 181 }, - DEFAULT => -56 + DEFAULT => -62 }, - {#State 152 - DEFAULT => -53 + {#State 161 + DEFAULT => -59 }, - {#State 153 + {#State 162 ACTIONS => { - "=" => 173 + "=" => 182 } }, - {#State 154 + {#State 163 ACTIONS => { - "}" => 174 + "}" => 183 } }, - {#State 155 + {#State 164 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - "]" => 175, - 'IDENTIFIER' => 9 + 'CONSTANT' => 14, + 'TEXT' => 16, + "]" => 184, + 'IDENTIFIER' => 11 }, - DEFAULT => -94, + DEFAULT => -100, GOTOS => { - 'identifier' => 23, - 'anytext' => 176, - 'text' => 24, - 'constant' => 27 + 'identifier' => 17, + 'anytext' => 185, + 'text' => 18, + 'constant' => 13 } }, - {#State 156 + {#State 165 ACTIONS => { - ";" => 177 + ";" => 186 } }, - {#State 157 - DEFAULT => -68 + {#State 166 + DEFAULT => -74 }, - {#State 158 + {#State 167 ACTIONS => { - "[" => 7 + "[" => 21 }, - DEFAULT => -84, + DEFAULT => -90, GOTOS => { - 'base_or_empty' => 178, - 'base_element' => 179, - 'empty_element' => 180, - 'property_list' => 181 + 'base_or_empty' => 187, + 'base_element' => 188, + 'empty_element' => 189, + 'property_list' => 190 } }, - {#State 159 - DEFAULT => -67 + {#State 168 + DEFAULT => -73 }, - {#State 160 - DEFAULT => -79 + {#State 169 + DEFAULT => -85 }, - {#State 161 + {#State 170 ACTIONS => { - 'IDENTIFIER' => 9, - "signed" => 102, - "union" => 52, - "enum" => 65, - "bitmap" => 66, - 'void' => 97, - "unsigned" => 103, - "[" => 7, - "struct" => 63 - }, - DEFAULT => -35, - GOTOS => { - 'existingtype' => 101, - 'bitmap' => 67, - 'usertype' => 98, - 'identifier' => 99, - 'struct' => 59, - 'enum' => 61, - 'type' => 182, - 'union' => 70, - 'sign' => 100 + 'IDENTIFIER' => 11, + "signed" => 116, + "union" => 81, + "enum" => 94, + "bitmap" => 95, + 'void' => 111, + "unsigned" => 117, + "[" => 21, + "struct" => 92 + }, + DEFAULT => -41, + GOTOS => { + 'existingtype' => 115, + 'bitmap' => 96, + 'usertype' => 112, + 'identifier' => 113, + 'struct' => 88, + 'enum' => 90, + 'type' => 191, + 'union' => 99, + 'sign' => 114 } }, - {#State 162 + {#State 171 ACTIONS => { - "," => 183, - ")" => 184 + "," => 192, + ")" => 193 } }, - {#State 163 - DEFAULT => -78 + {#State 172 + DEFAULT => -84 }, - {#State 164 - DEFAULT => -20 + {#State 173 + DEFAULT => -26 }, - {#State 165 + {#State 174 ACTIONS => { - "=" => 185 + "=" => 194 } }, - {#State 166 + {#State 175 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 }, - DEFAULT => -94, + DEFAULT => -100, GOTOS => { - 'identifier' => 23, - 'anytext' => 186, - 'text' => 24, - 'constant' => 27 + 'identifier' => 17, + 'anytext' => 195, + 'text' => 18, + 'constant' => 13 } }, - {#State 167 - DEFAULT => -58 + {#State 176 + DEFAULT => -64 }, - {#State 168 + {#State 177 ACTIONS => { - ";" => 187 + ";" => 196 } }, - {#State 169 + {#State 178 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 }, - DEFAULT => -94, + DEFAULT => -100, GOTOS => { - 'identifier' => 23, - 'anytext' => 188, - 'text' => 24, - 'constant' => 27 + 'identifier' => 17, + 'anytext' => 197, + 'text' => 18, + 'constant' => 13 } }, - {#State 170 - DEFAULT => -41 + {#State 179 + DEFAULT => -47 }, - {#State 171 + {#State 180 ACTIONS => { - 'IDENTIFIER' => 9 + 'IDENTIFIER' => 11 }, GOTOS => { - 'identifier' => 148, - 'enum_element' => 189 + 'identifier' => 157, + 'enum_element' => 198 } }, - {#State 172 + {#State 181 ACTIONS => { - 'IDENTIFIER' => 9 + 'IDENTIFIER' => 11 }, GOTOS => { - 'identifier' => 153, - 'bitmap_element' => 190 + 'identifier' => 162, + 'bitmap_element' => 199 } }, - {#State 173 + {#State 182 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 }, - DEFAULT => -94, + DEFAULT => -100, GOTOS => { - 'identifier' => 23, - 'anytext' => 191, - 'text' => 24, - 'constant' => 27 + 'identifier' => 17, + 'anytext' => 200, + 'text' => 18, + 'constant' => 13 } }, - {#State 174 - DEFAULT => -49 + {#State 183 + DEFAULT => -55 }, - {#State 175 + {#State 184 ACTIONS => { - "[" => 155 + "[" => 164 }, - DEFAULT => -81, + DEFAULT => -87, GOTOS => { - 'array_len' => 192 + 'array_len' => 201 } }, - {#State 176 + {#State 185 ACTIONS => { - "-" => 35, - ":" => 34, - "?" => 36, - "<" => 37, - "+" => 39, - "~" => 38, - "&" => 41, - "{" => 40, - "/" => 42, - "=" => 43, - "|" => 45, - "(" => 44, - "*" => 46, - "." => 47, - "]" => 193, - ">" => 48 + "-" => 24, + ":" => 23, + "?" => 25, + "<" => 26, + "+" => 28, + "~" => 27, + "&" => 30, + "{" => 29, + "/" => 31, + "=" => 32, + "|" => 34, + "(" => 33, + "*" => 35, + "." => 36, + "]" => 202, + ">" => 37 } }, - {#State 177 - DEFAULT => -27 + {#State 186 + DEFAULT => -33 }, - {#State 178 - DEFAULT => -65 + {#State 187 + DEFAULT => -71 }, - {#State 179 + {#State 188 ACTIONS => { - ";" => 194 + ";" => 203 } }, - {#State 180 - DEFAULT => -64 + {#State 189 + DEFAULT => -70 }, - {#State 181 + {#State 190 ACTIONS => { - 'IDENTIFIER' => 9, - "signed" => 102, - "union" => 52, - ";" => 195, - "enum" => 65, - "bitmap" => 66, - 'void' => 97, - "unsigned" => 103, - "[" => 7, - "struct" => 63 - }, - DEFAULT => -35, - GOTOS => { - 'existingtype' => 101, - 'bitmap' => 67, - 'usertype' => 98, - 'identifier' => 99, - 'struct' => 59, - 'enum' => 61, - 'type' => 182, - 'union' => 70, - 'sign' => 100 + 'IDENTIFIER' => 11, + "signed" => 116, + "union" => 81, + ";" => 204, + "enum" => 94, + "bitmap" => 95, + 'void' => 111, + "unsigned" => 117, + "[" => 21, + "struct" => 92 + }, + DEFAULT => -41, + GOTOS => { + 'existingtype' => 115, + 'bitmap' => 96, + 'usertype' => 112, + 'identifier' => 113, + 'struct' => 88, + 'enum' => 90, + 'type' => 191, + 'union' => 99, + 'sign' => 114 } }, - {#State 182 - DEFAULT => -73, + {#State 191 + DEFAULT => -79, GOTOS => { - 'pointers' => 196 + 'pointers' => 205 } }, - {#State 183 - DEFAULT => -84, + {#State 192 + DEFAULT => -90, GOTOS => { - 'base_element' => 197, - 'property_list' => 161 + 'base_element' => 206, + 'property_list' => 170 } }, - {#State 184 + {#State 193 ACTIONS => { - ";" => 198 + ";" => 207 } }, - {#State 185 + {#State 194 ACTIONS => { - 'CONSTANT' => 28, - 'TEXT' => 22, - 'IDENTIFIER' => 9 + 'CONSTANT' => 14, + 'TEXT' => 16, + 'IDENTIFIER' => 11 }, - DEFAULT => -94, + DEFAULT => -100, GOTOS => { - 'identifier' => 23, - 'anytext' => 199, - 'text' => 24, - 'constant' => 27 + 'identifier' => 17, + 'anytext' => 208, + 'text' => 18, + 'constant' => 13 } }, - {#State 186 + {#State 195 ACTIONS => { - "-" => 35, - ":" => 34, - "?" => 36, - "<" => 37, - ";" => 200, - "+" => 39, - "~" => 38, - "&" => 41, - "{" => 40, - "/" => 42, - "=" => 43, - "|" => 45, - "(" => 44, - "*" => 46, - "." => 47, - ">" => 48 + "-" => 24, + ":" => 23, + "?" => 25, + "<" => 26, + ";" => 209, + "+" => 28, + "~" => 27, + "&" => 30, + "{" => 29, + "/" => 31, + "=" => 32, + "|" => 34, + "(" => 33, + "*" => 35, + "." => 36, + ">" => 37 } }, - {#State 187 - DEFAULT => -76 + {#State 196 + DEFAULT => -82 }, - {#State 188 + {#State 197 ACTIONS => { - "-" => 35, - ":" => 34, - "<" => 37, - "+" => 39, - "~" => 38, - "*" => 46, - "?" => 36, - "{" => 40, - "&" => 41, - "/" => 42, - "=" => 43, - "(" => 44, - "|" => 45, - "." => 47, - ">" => 48 - }, - DEFAULT => -48 + "-" => 24, + ":" => 23, + "<" => 26, + "+" => 28, + "~" => 27, + "*" => 35, + "?" => 25, + "{" => 29, + "&" => 30, + "/" => 31, + "=" => 32, + "(" => 33, + "|" => 34, + "." => 36, + ">" => 37 + }, + DEFAULT => -54 }, - {#State 189 - DEFAULT => -46 + {#State 198 + DEFAULT => -52 }, - {#State 190 - DEFAULT => -54 + {#State 199 + DEFAULT => -60 }, - {#State 191 + {#State 200 ACTIONS => { - "-" => 35, - ":" => 34, - "<" => 37, - "+" => 39, - "~" => 38, - "*" => 46, - "?" => 36, - "{" => 40, - "&" => 41, - "/" => 42, - "=" => 43, - "(" => 44, - "|" => 45, - "." => 47, - ">" => 48 + "-" => 24, + ":" => 23, + "<" => 26, + "+" => 28, + "~" => 27, + "*" => 35, + "?" => 25, + "{" => 29, + "&" => 30, + "/" => 31, + "=" => 32, + "(" => 33, + "|" => 34, + "." => 36, + ">" => 37 }, - DEFAULT => -57 + DEFAULT => -63 }, - {#State 192 - DEFAULT => -82 + {#State 201 + DEFAULT => -88 }, - {#State 193 + {#State 202 ACTIONS => { - "[" => 155 + "[" => 164 }, - DEFAULT => -81, + DEFAULT => -87, GOTOS => { - 'array_len' => 201 + 'array_len' => 210 } }, - {#State 194 - DEFAULT => -63 + {#State 203 + DEFAULT => -69 }, - {#State 195 - DEFAULT => -62 + {#State 204 + DEFAULT => -68 }, - {#State 196 + {#State 205 ACTIONS => { - 'IDENTIFIER' => 9, - "*" => 146 + 'IDENTIFIER' => 11, + "*" => 155 }, GOTOS => { - 'identifier' => 202 + 'identifier' => 211 } }, - {#State 197 - DEFAULT => -80 - }, - {#State 198 - DEFAULT => -19 + {#State 206 + DEFAULT => -86 }, - {#State 199 - ACTIONS => { - "-" => 35, - ":" => 34, - "?" => 36, - "<" => 37, - ";" => 203, - "+" => 39, - "~" => 38, - "&" => 41, - "{" => 40, - "/" => 42, - "=" => 43, - "|" => 45, - "(" => 44, - "*" => 46, - "." => 47, - ">" => 48 - } + {#State 207 + DEFAULT => -25 }, - {#State 200 - DEFAULT => -17 + {#State 208 + ACTIONS => { + "-" => 24, + ":" => 23, + "?" => 25, + "<" => 26, + ";" => 212, + "+" => 28, + "~" => 27, + "&" => 30, + "{" => 29, + "/" => 31, + "=" => 32, + "|" => 34, + "(" => 33, + "*" => 35, + "." => 36, + ">" => 37 + } + }, + {#State 209 + DEFAULT => -23 }, - {#State 201 - DEFAULT => -83 + {#State 210 + DEFAULT => -89 }, - {#State 202 + {#State 211 ACTIONS => { - "[" => 155 + "[" => 164 }, - DEFAULT => -81, + DEFAULT => -87, GOTOS => { - 'array_len' => 204 + 'array_len' => 213 } }, - {#State 203 - DEFAULT => -18 + {#State 212 + DEFAULT => -24 }, - {#State 204 - DEFAULT => -72 + {#State 213 + DEFAULT => -78 } ], yyrules => @@ -2205,20 +2267,71 @@ sub new { [#Rule 2 'idl', 2, sub -#line 19 "idl.yp" +#line 19 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 3 'idl', 2, sub -#line 20 "idl.yp" +#line 20 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 4 + 'idl', 2, +sub +#line 21 "pidl/idl.yp" +{ push(@{$_[1]}, $_[2]); $_[1] } + ], + [#Rule 5 + 'idl', 2, +sub +#line 22 "pidl/idl.yp" +{ push(@{$_[1]}, $_[2]); $_[1] } + ], + [#Rule 6 + 'idl', 2, +sub +#line 23 "pidl/idl.yp" +{ push(@{$_[1]}, $_[2]); $_[1] } + ], + [#Rule 7 + 'import', 3, +sub +#line 26 "pidl/idl.yp" +{{ + "TYPE" => "IMPORT", + "PATHS" => [ $_[2] ], + "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "LINE" => $_[0]->YYData->{LINE} + }} + ], + [#Rule 8 + 'include', 3, +sub +#line 33 "pidl/idl.yp" +{{ + "TYPE" => "INCLUDE", + "PATHS" => [ $_[2] ], + "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "LINE" => $_[0]->YYData->{LINE} + }} + ], + [#Rule 9 + 'importlib', 3, +sub +#line 40 "pidl/idl.yp" +{{ + "TYPE" => "IMPORTLIB", + "PATHS" => [ $_[2] ], + "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "LINE" => $_[0]->YYData->{LINE} + }} + ], + [#Rule 10 'coclass', 7, sub -#line 24 "idl.yp" -{$_[3] => { +#line 49 "pidl/idl.yp" +{{ "TYPE" => "COCLASS", "PROPERTIES" => $_[1], "NAME" => $_[3], @@ -2227,20 +2340,20 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 5 + [#Rule 11 'interface_names', 0, undef ], - [#Rule 6 + [#Rule 12 'interface_names', 4, sub -#line 36 "idl.yp" +#line 61 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 7 + [#Rule 13 'interface', 8, sub -#line 40 "idl.yp" -{$_[3] => { +#line 65 "pidl/idl.yp" +{{ "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], "NAME" => $_[3], @@ -2250,46 +2363,46 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 8 + [#Rule 14 'base_interface', 0, undef ], - [#Rule 9 + [#Rule 15 'base_interface', 2, sub -#line 53 "idl.yp" +#line 78 "pidl/idl.yp" { $_[2] } ], - [#Rule 10 + [#Rule 16 'definitions', 1, sub -#line 57 "idl.yp" +#line 82 "pidl/idl.yp" { [ $_[1] ] } ], - [#Rule 11 + [#Rule 17 'definitions', 2, sub -#line 58 "idl.yp" +#line 83 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 12 + [#Rule 18 'definition', 1, undef ], - [#Rule 13 + [#Rule 19 'definition', 1, undef ], - [#Rule 14 + [#Rule 20 'definition', 1, undef ], - [#Rule 15 + [#Rule 21 'definition', 1, undef ], - [#Rule 16 + [#Rule 22 'definition', 1, undef ], - [#Rule 17 + [#Rule 23 'const', 7, sub -#line 66 "idl.yp" +#line 91 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2300,10 +2413,10 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 18 + [#Rule 24 'const', 8, sub -#line 76 "idl.yp" +#line 101 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2315,10 +2428,10 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 19 + [#Rule 25 'function', 7, sub -#line 90 "idl.yp" +#line 115 "pidl/idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -2329,10 +2442,10 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 20 + [#Rule 26 'declare', 5, sub -#line 102 "idl.yp" +#line 127 "pidl/idl.yp" {{ "TYPE" => "DECLARE", "PROPERTIES" => $_[2], @@ -2342,43 +2455,43 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 21 + [#Rule 27 'decl_type', 1, undef ], - [#Rule 22 + [#Rule 28 'decl_type', 1, undef ], - [#Rule 23 + [#Rule 29 'decl_type', 1, undef ], - [#Rule 24 + [#Rule 30 'decl_enum', 1, sub -#line 116 "idl.yp" +#line 141 "pidl/idl.yp" {{ "TYPE" => "ENUM" }} ], - [#Rule 25 + [#Rule 31 'decl_bitmap', 1, sub -#line 122 "idl.yp" +#line 147 "pidl/idl.yp" {{ "TYPE" => "BITMAP" }} ], - [#Rule 26 + [#Rule 32 'decl_union', 1, sub -#line 128 "idl.yp" +#line 153 "pidl/idl.yp" {{ "TYPE" => "UNION" }} ], - [#Rule 27 + [#Rule 33 'typedef', 6, sub -#line 134 "idl.yp" +#line 159 "pidl/idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[2], @@ -2389,169 +2502,169 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 28 + [#Rule 34 'usertype', 1, undef ], - [#Rule 29 + [#Rule 35 'usertype', 1, undef ], - [#Rule 30 + [#Rule 36 'usertype', 1, undef ], - [#Rule 31 + [#Rule 37 'usertype', 1, undef ], - [#Rule 32 + [#Rule 38 'typedecl', 2, sub -#line 147 "idl.yp" +#line 172 "pidl/idl.yp" { $_[1] } ], - [#Rule 33 + [#Rule 39 'sign', 1, undef ], - [#Rule 34 + [#Rule 40 'sign', 1, undef ], - [#Rule 35 + [#Rule 41 'existingtype', 0, undef ], - [#Rule 36 + [#Rule 42 'existingtype', 2, sub -#line 152 "idl.yp" +#line 177 "pidl/idl.yp" { "$_[1] $_[2]" } ], - [#Rule 37 + [#Rule 43 'existingtype', 1, undef ], - [#Rule 38 + [#Rule 44 'type', 1, undef ], - [#Rule 39 + [#Rule 45 'type', 1, undef ], - [#Rule 40 + [#Rule 46 'type', 1, sub -#line 156 "idl.yp" +#line 181 "pidl/idl.yp" { "void" } ], - [#Rule 41 + [#Rule 47 'enum_body', 3, sub -#line 158 "idl.yp" +#line 183 "pidl/idl.yp" { $_[2] } ], - [#Rule 42 + [#Rule 48 'opt_enum_body', 0, undef ], - [#Rule 43 + [#Rule 49 'opt_enum_body', 1, undef ], - [#Rule 44 + [#Rule 50 'enum', 3, sub -#line 161 "idl.yp" +#line 186 "pidl/idl.yp" {{ "TYPE" => "ENUM", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 45 + [#Rule 51 'enum_elements', 1, sub -#line 169 "idl.yp" +#line 194 "pidl/idl.yp" { [ $_[1] ] } ], - [#Rule 46 + [#Rule 52 'enum_elements', 3, sub -#line 170 "idl.yp" +#line 195 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 47 + [#Rule 53 'enum_element', 1, undef ], - [#Rule 48 + [#Rule 54 'enum_element', 3, sub -#line 174 "idl.yp" +#line 199 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 49 + [#Rule 55 'bitmap_body', 3, sub -#line 177 "idl.yp" +#line 202 "pidl/idl.yp" { $_[2] } ], - [#Rule 50 + [#Rule 56 'opt_bitmap_body', 0, undef ], - [#Rule 51 + [#Rule 57 'opt_bitmap_body', 1, undef ], - [#Rule 52 + [#Rule 58 'bitmap', 3, sub -#line 180 "idl.yp" +#line 205 "pidl/idl.yp" {{ "TYPE" => "BITMAP", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 53 + [#Rule 59 'bitmap_elements', 1, sub -#line 188 "idl.yp" +#line 213 "pidl/idl.yp" { [ $_[1] ] } ], - [#Rule 54 + [#Rule 60 'bitmap_elements', 3, sub -#line 189 "idl.yp" +#line 214 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 55 + [#Rule 61 'opt_bitmap_elements', 0, undef ], - [#Rule 56 + [#Rule 62 'opt_bitmap_elements', 1, undef ], - [#Rule 57 + [#Rule 63 'bitmap_element', 3, sub -#line 194 "idl.yp" +#line 219 "pidl/idl.yp" { "$_[1] ( $_[3] )" } ], - [#Rule 58 + [#Rule 64 'struct_body', 3, sub -#line 197 "idl.yp" +#line 222 "pidl/idl.yp" { $_[2] } ], - [#Rule 59 + [#Rule 65 'opt_struct_body', 0, undef ], - [#Rule 60 + [#Rule 66 'opt_struct_body', 1, undef ], - [#Rule 61 + [#Rule 67 'struct', 3, sub -#line 201 "idl.yp" +#line 226 "pidl/idl.yp" {{ "TYPE" => "STRUCT", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 62 + [#Rule 68 'empty_element', 2, sub -#line 209 "idl.yp" +#line 234 "pidl/idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2562,53 +2675,53 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 63 + [#Rule 69 'base_or_empty', 2, undef ], - [#Rule 64 + [#Rule 70 'base_or_empty', 1, undef ], - [#Rule 65 + [#Rule 71 'optional_base_element', 2, sub -#line 223 "idl.yp" +#line 248 "pidl/idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], - [#Rule 66 + [#Rule 72 'union_elements', 0, undef ], - [#Rule 67 + [#Rule 73 'union_elements', 2, sub -#line 228 "idl.yp" +#line 253 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 68 + [#Rule 74 'union_body', 3, sub -#line 231 "idl.yp" +#line 256 "pidl/idl.yp" { $_[2] } ], - [#Rule 69 + [#Rule 75 'opt_union_body', 0, undef ], - [#Rule 70 + [#Rule 76 'opt_union_body', 1, undef ], - [#Rule 71 + [#Rule 77 'union', 3, sub -#line 235 "idl.yp" +#line 260 "pidl/idl.yp" {{ "TYPE" => "UNION", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 72 + [#Rule 78 'base_element', 5, sub -#line 243 "idl.yp" +#line 268 "pidl/idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2619,238 +2732,238 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 73 + [#Rule 79 'pointers', 0, sub -#line 257 "idl.yp" +#line 282 "pidl/idl.yp" { 0 } ], - [#Rule 74 + [#Rule 80 'pointers', 2, sub -#line 258 "idl.yp" +#line 283 "pidl/idl.yp" { $_[1]+1 } ], - [#Rule 75 + [#Rule 81 'element_list1', 0, undef ], - [#Rule 76 + [#Rule 82 'element_list1', 3, sub -#line 263 "idl.yp" +#line 288 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 77 + [#Rule 83 'element_list2', 0, undef ], - [#Rule 78 + [#Rule 84 'element_list2', 1, undef ], - [#Rule 79 + [#Rule 85 'element_list2', 1, sub -#line 269 "idl.yp" +#line 294 "pidl/idl.yp" { [ $_[1] ] } ], - [#Rule 80 + [#Rule 86 'element_list2', 3, sub -#line 270 "idl.yp" +#line 295 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 81 + [#Rule 87 'array_len', 0, undef ], - [#Rule 82 + [#Rule 88 'array_len', 3, sub -#line 275 "idl.yp" +#line 300 "pidl/idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], - [#Rule 83 + [#Rule 89 'array_len', 4, sub -#line 276 "idl.yp" +#line 301 "pidl/idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], - [#Rule 84 + [#Rule 90 'property_list', 0, undef ], - [#Rule 85 + [#Rule 91 'property_list', 4, sub -#line 282 "idl.yp" +#line 307 "pidl/idl.yp" { FlattenHash([$_[1],$_[3]]); } ], - [#Rule 86 + [#Rule 92 'properties', 1, sub -#line 285 "idl.yp" +#line 310 "pidl/idl.yp" { $_[1] } ], - [#Rule 87 + [#Rule 93 'properties', 3, sub -#line 286 "idl.yp" +#line 311 "pidl/idl.yp" { FlattenHash([$_[1], $_[3]]); } ], - [#Rule 88 + [#Rule 94 'property', 1, sub -#line 289 "idl.yp" +#line 314 "pidl/idl.yp" {{ "$_[1]" => "1" }} ], - [#Rule 89 + [#Rule 95 'property', 4, sub -#line 290 "idl.yp" +#line 315 "pidl/idl.yp" {{ "$_[1]" => "$_[3]" }} ], - [#Rule 90 + [#Rule 96 'listtext', 1, undef ], - [#Rule 91 + [#Rule 97 'listtext', 3, sub -#line 295 "idl.yp" +#line 320 "pidl/idl.yp" { "$_[1] $_[3]" } ], - [#Rule 92 + [#Rule 98 'commalisttext', 1, undef ], - [#Rule 93 + [#Rule 99 'commalisttext', 3, sub -#line 300 "idl.yp" +#line 325 "pidl/idl.yp" { "$_[1],$_[3]" } ], - [#Rule 94 + [#Rule 100 'anytext', 0, sub -#line 304 "idl.yp" +#line 329 "pidl/idl.yp" { "" } ], - [#Rule 95 + [#Rule 101 'anytext', 1, undef ], - [#Rule 96 + [#Rule 102 'anytext', 1, undef ], - [#Rule 97 + [#Rule 103 'anytext', 1, undef ], - [#Rule 98 + [#Rule 104 'anytext', 3, sub -#line 306 "idl.yp" +#line 331 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 99 + [#Rule 105 'anytext', 3, sub -#line 307 "idl.yp" +#line 332 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 100 + [#Rule 106 'anytext', 3, sub -#line 308 "idl.yp" +#line 333 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 101 + [#Rule 107 'anytext', 3, sub -#line 309 "idl.yp" +#line 334 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 102 + [#Rule 108 'anytext', 3, sub -#line 310 "idl.yp" +#line 335 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 103 + [#Rule 109 'anytext', 3, sub -#line 311 "idl.yp" +#line 336 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 104 + [#Rule 110 'anytext', 3, sub -#line 312 "idl.yp" +#line 337 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 105 + [#Rule 111 'anytext', 3, sub -#line 313 "idl.yp" +#line 338 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 106 + [#Rule 112 'anytext', 3, sub -#line 314 "idl.yp" +#line 339 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 107 + [#Rule 113 'anytext', 3, sub -#line 315 "idl.yp" +#line 340 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 108 + [#Rule 114 'anytext', 3, sub -#line 316 "idl.yp" +#line 341 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 109 + [#Rule 115 'anytext', 3, sub -#line 317 "idl.yp" +#line 342 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 110 + [#Rule 116 'anytext', 3, sub -#line 318 "idl.yp" +#line 343 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 111 + [#Rule 117 'anytext', 5, sub -#line 319 "idl.yp" +#line 344 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 112 + [#Rule 118 'anytext', 5, sub -#line 320 "idl.yp" +#line 345 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 113 + [#Rule 119 'identifier', 1, undef ], - [#Rule 114 + [#Rule 120 'optional_identifier', 1, undef ], - [#Rule 115 + [#Rule 121 'optional_identifier', 0, undef ], - [#Rule 116 + [#Rule 122 'constant', 1, undef ], - [#Rule 117 + [#Rule 123 'text', 1, sub -#line 334 "idl.yp" +#line 359 "pidl/idl.yp" { "\"$_[1]\"" } ], - [#Rule 118 + [#Rule 124 'optional_semicolon', 0, undef ], - [#Rule 119 + [#Rule 125 'optional_semicolon', 1, undef ] ], @@ -2858,7 +2971,7 @@ sub bless($self,$class); } -#line 345 "idl.yp" +#line 370 "pidl/idl.yp" ##################################################################### @@ -2959,7 +3072,8 @@ again: $parser->YYData->{LAST_TOKEN} = $1; if ($1 =~ /^(coclass|interface|const|typedef|declare|union - |struct|enum|bitmap|void|unsigned|signed)$/x) { + |struct|enum|bitmap|void|unsigned|signed|import|include + |importlib)$/x) { return $1; } return('IDENTIFIER',$1); -- cgit From 863dcbfa06cfcd4eecba7559c03080321b9a8a91 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 6 Nov 2006 22:54:49 +0000 Subject: r19588: Use include and import statements rather than depends() and helper(). (This used to be commit 347ae9628202ca4de4318ef8156999239aad9192) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 2549 ++++++++++++++++++------------------ 1 file changed, 1291 insertions(+), 1258 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index e400862795..d237db7137 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -509,9 +509,10 @@ sub new { ACTIONS => { '' => 2, "importlib" => 3, - "import" => 6 + "import" => 6, + "include" => 11 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { 'importlib' => 9, 'interface' => 8, @@ -526,17 +527,11 @@ sub new { }, {#State 3 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 + 'TEXT' => 13 }, - DEFAULT => -100, GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 12, - 'constant' => 13, - 'commalisttext' => 15 + 'commalist' => 12, + 'text' => 14 } }, {#State 4 @@ -544,24 +539,18 @@ sub new { }, {#State 5 ACTIONS => { - "coclass" => 19, - "[" => 21, - "interface" => 20 + "coclass" => 15, + "[" => 17, + "interface" => 16 } }, {#State 6 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 + 'TEXT' => 13 }, - DEFAULT => -100, GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 12, - 'constant' => 13, - 'commalisttext' => 22 + 'commalist' => 18, + 'text' => 14 } }, {#State 7 @@ -577,1683 +566,1715 @@ sub new { DEFAULT => -3 }, {#State 11 - DEFAULT => -119 + ACTIONS => { + 'TEXT' => 13 + }, + GOTOS => { + 'commalist' => 19, + 'text' => 14 + } }, {#State 12 ACTIONS => { - "-" => 24, - ":" => 23, - "<" => 26, - "+" => 28, - "~" => 27, - "*" => 35, - "?" => 25, - "{" => 29, - "&" => 30, - "/" => 31, - "=" => 32, - "(" => 33, - "|" => 34, - "." => 36, - ">" => 37 - }, - DEFAULT => -98 + ";" => 20, + "," => 21 + } }, {#State 13 - DEFAULT => -102 + DEFAULT => -125 }, {#State 14 - DEFAULT => -122 + DEFAULT => -10 }, {#State 15 ACTIONS => { - ";" => 38, - "," => 39 + 'IDENTIFIER' => 22 + }, + GOTOS => { + 'identifier' => 23 } }, {#State 16 - DEFAULT => -123 + ACTIONS => { + 'IDENTIFIER' => 22 + }, + GOTOS => { + 'identifier' => 24 + } }, {#State 17 - DEFAULT => -101 + ACTIONS => { + 'IDENTIFIER' => 22 + }, + GOTOS => { + 'identifier' => 26, + 'property' => 27, + 'properties' => 25 + } }, {#State 18 - DEFAULT => -103 + ACTIONS => { + ";" => 28, + "," => 21 + } }, {#State 19 ACTIONS => { - 'IDENTIFIER' => 11 - }, - GOTOS => { - 'identifier' => 40 + ";" => 29, + "," => 21 } }, {#State 20 - ACTIONS => { - 'IDENTIFIER' => 11 - }, - GOTOS => { - 'identifier' => 41 - } + DEFAULT => -9 }, {#State 21 ACTIONS => { - 'IDENTIFIER' => 11 + 'TEXT' => 13 }, GOTOS => { - 'identifier' => 43, - 'property' => 44, - 'properties' => 42 + 'text' => 30 } }, {#State 22 - ACTIONS => { - ";" => 45, - "," => 39 - } + DEFAULT => -121 }, {#State 23 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 46, - 'constant' => 13 + "{" => 31 } }, {#State 24 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 + ":" => 32 }, - DEFAULT => -100, + DEFAULT => -16, GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 47, - 'constant' => 13 + 'base_interface' => 33 } }, {#State 25 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 48, - 'constant' => 13 + "," => 34, + "]" => 35 } }, {#State 26 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 + "(" => 36 }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 49, - 'constant' => 13 - } + DEFAULT => -96 }, {#State 27 - ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 50, - 'constant' => 13 - } + DEFAULT => -94 }, {#State 28 - ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 51, - 'constant' => 13 - } + DEFAULT => -7 }, {#State 29 - ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 12, - 'constant' => 13, - 'commalisttext' => 52 - } + DEFAULT => -8 }, {#State 30 - ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 53, - 'constant' => 13 - } + DEFAULT => -11 }, {#State 31 - ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, + DEFAULT => -13, GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 54, - 'constant' => 13 + 'interface_names' => 37 } }, {#State 32 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 + 'IDENTIFIER' => 22 }, - DEFAULT => -100, GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 55, - 'constant' => 13 + 'identifier' => 38 } }, {#State 33 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 12, - 'constant' => 13, - 'commalisttext' => 56 + "{" => 39 } }, {#State 34 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 + 'IDENTIFIER' => 22 }, - DEFAULT => -100, GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 57, - 'constant' => 13 + 'identifier' => 26, + 'property' => 40 } }, {#State 35 - ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 58, - 'constant' => 13 - } + DEFAULT => -93 }, {#State 36 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -100, + DEFAULT => -102, GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 59, - 'constant' => 13 + 'identifier' => 45, + 'text' => 46, + 'listtext' => 42, + 'anytext' => 41, + 'constant' => 43 } }, {#State 37 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 60, - 'constant' => 13 + "}" => 47, + "interface" => 48 } }, {#State 38 - DEFAULT => -9 + DEFAULT => -17 }, {#State 39 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 61, - 'constant' => 13 + "typedef" => 49, + "union" => 50, + "enum" => 63, + "bitmap" => 64, + "declare" => 56, + "const" => 58, + "struct" => 61 + }, + DEFAULT => -92, + GOTOS => { + 'typedecl' => 62, + 'function' => 51, + 'bitmap' => 65, + 'definitions' => 52, + 'definition' => 55, + 'property_list' => 54, + 'usertype' => 53, + 'declare' => 67, + 'const' => 66, + 'struct' => 57, + 'enum' => 59, + 'typedef' => 60, + 'union' => 68 } }, {#State 40 - ACTIONS => { - "{" => 62 - } + DEFAULT => -95 }, {#State 41 ACTIONS => { - ":" => 63 + "-" => 70, + ":" => 69, + "<" => 71, + "+" => 73, + "~" => 72, + "*" => 74, + "?" => 75, + "{" => 76, + "&" => 77, + "/" => 78, + "=" => 79, + "(" => 80, + "|" => 81, + "." => 82, + ">" => 83 }, - DEFAULT => -14, - GOTOS => { - 'base_interface' => 64 - } + DEFAULT => -98 }, {#State 42 ACTIONS => { - "," => 65, - "]" => 66 + "," => 84, + ")" => 85 } }, {#State 43 - ACTIONS => { - "(" => 67 - }, - DEFAULT => -94 + DEFAULT => -104 }, {#State 44 - DEFAULT => -92 + DEFAULT => -124 }, {#State 45 - DEFAULT => -7 + DEFAULT => -103 }, {#State 46 - ACTIONS => { - "-" => 24, - ":" => 23, - "<" => 26, - "+" => 28, - "~" => 27, - "*" => 35, - "?" => 25, - "{" => 29, - "&" => 30, - "/" => 31, - "=" => 32, - "(" => 33, - "|" => 34, - "." => 36, - ">" => 37 - }, - DEFAULT => -113 + DEFAULT => -105 }, {#State 47 ACTIONS => { - ":" => 23, - "<" => 26, - "~" => 27, - "?" => 25, - "{" => 29, - "=" => 32 + ";" => 86 }, - DEFAULT => -104 + DEFAULT => -126, + GOTOS => { + 'optional_semicolon' => 87 + } }, {#State 48 ACTIONS => { - "-" => 24, - ":" => 23, - "<" => 26, - "+" => 28, - "~" => 27, - "*" => 35, - "?" => 25, - "{" => 29, - "&" => 30, - "/" => 31, - "=" => 32, - "(" => 33, - "|" => 34, - "." => 36, - ">" => 37 + 'IDENTIFIER' => 22 }, - DEFAULT => -112 + GOTOS => { + 'identifier' => 88 + } }, {#State 49 - ACTIONS => { - "-" => 24, - ":" => 23, - "<" => 26, - "+" => 28, - "~" => 27, - "*" => 35, - "?" => 25, - "{" => 29, - "&" => 30, - "/" => 31, - "=" => 32, - "(" => 33, - "|" => 34, - "." => 36, - ">" => 37 - }, - DEFAULT => -108 + DEFAULT => -92, + GOTOS => { + 'property_list' => 89 + } }, {#State 50 ACTIONS => { - "-" => 24, - ":" => 23, - "<" => 26, - "+" => 28, - "~" => 27, - "*" => 35, - "?" => 25, - "{" => 29, - "&" => 30, - "/" => 31, - "=" => 32, - "(" => 33, - "|" => 34, - "." => 36, - ">" => 37 + 'IDENTIFIER' => 90 }, - DEFAULT => -116 + DEFAULT => -123, + GOTOS => { + 'optional_identifier' => 91 + } }, {#State 51 - ACTIONS => { - ":" => 23, - "<" => 26, - "~" => 27, - "?" => 25, - "{" => 29, - "=" => 32 - }, - DEFAULT => -115 + DEFAULT => -20 }, {#State 52 ACTIONS => { - "}" => 68, - "," => 39 + "}" => 92, + "typedef" => 49, + "union" => 50, + "enum" => 63, + "bitmap" => 64, + "declare" => 56, + "const" => 58, + "struct" => 61 + }, + DEFAULT => -92, + GOTOS => { + 'typedecl' => 62, + 'function' => 51, + 'bitmap' => 65, + 'definition' => 93, + 'property_list' => 54, + 'usertype' => 53, + 'const' => 66, + 'struct' => 57, + 'declare' => 67, + 'enum' => 59, + 'typedef' => 60, + 'union' => 68 } }, {#State 53 ACTIONS => { - ":" => 23, - "<" => 26, - "~" => 27, - "?" => 25, - "{" => 29, - "=" => 32 - }, - DEFAULT => -110 + ";" => 94 + } }, {#State 54 ACTIONS => { - ":" => 23, - "<" => 26, - "~" => 27, - "?" => 25, - "{" => 29, - "=" => 32 + 'IDENTIFIER' => 22, + "signed" => 100, + "union" => 50, + "enum" => 63, + "bitmap" => 64, + 'void' => 95, + "unsigned" => 101, + "[" => 17, + "struct" => 61 }, - DEFAULT => -111 + GOTOS => { + 'existingtype' => 99, + 'bitmap' => 65, + 'usertype' => 96, + 'identifier' => 97, + 'struct' => 57, + 'enum' => 59, + 'type' => 102, + 'union' => 68, + 'sign' => 98 + } }, {#State 55 - ACTIONS => { - "-" => 24, - ":" => 23, - "<" => 26, - "+" => 28, - "~" => 27, - "*" => 35, - "?" => 25, - "{" => 29, - "&" => 30, - "/" => 31, - "=" => 32, - "(" => 33, - "|" => 34, - "." => 36, - ">" => 37 - }, - DEFAULT => -114 + DEFAULT => -18 }, {#State 56 - ACTIONS => { - "," => 39, - ")" => 69 + DEFAULT => -92, + GOTOS => { + 'property_list' => 103 } }, {#State 57 - ACTIONS => { - ":" => 23, - "<" => 26, - "~" => 27, - "?" => 25, - "{" => 29, - "=" => 32 - }, - DEFAULT => -109 + DEFAULT => -36 }, {#State 58 ACTIONS => { - ":" => 23, - "<" => 26, - "~" => 27, - "?" => 25, - "{" => 29, - "=" => 32 + 'IDENTIFIER' => 22 }, - DEFAULT => -106 + GOTOS => { + 'identifier' => 104 + } }, {#State 59 - ACTIONS => { - ":" => 23, - "<" => 26, - "~" => 27, - "?" => 25, - "{" => 29, - "=" => 32 - }, - DEFAULT => -105 + DEFAULT => -38 }, {#State 60 - ACTIONS => { - ":" => 23, - "<" => 26, - "~" => 27, - "?" => 25, - "{" => 29, - "=" => 32 - }, - DEFAULT => -107 + DEFAULT => -22 }, {#State 61 ACTIONS => { - "-" => 24, - ":" => 23, - "<" => 26, - "+" => 28, - "~" => 27, - "*" => 35, - "?" => 25, - "{" => 29, - "&" => 30, - "/" => 31, - "=" => 32, - "(" => 33, - "|" => 34, - "." => 36, - ">" => 37 + 'IDENTIFIER' => 90 }, - DEFAULT => -99 - }, - {#State 62 - DEFAULT => -11, + DEFAULT => -123, GOTOS => { - 'interface_names' => 70 + 'optional_identifier' => 105 } }, + {#State 62 + DEFAULT => -24 + }, {#State 63 ACTIONS => { - 'IDENTIFIER' => 11 + 'IDENTIFIER' => 90 }, + DEFAULT => -123, GOTOS => { - 'identifier' => 71 + 'optional_identifier' => 106 } }, {#State 64 ACTIONS => { - "{" => 72 - } - }, - {#State 65 - ACTIONS => { - 'IDENTIFIER' => 11 + 'IDENTIFIER' => 90 }, + DEFAULT => -123, GOTOS => { - 'identifier' => 43, - 'property' => 73 + 'optional_identifier' => 107 } }, + {#State 65 + DEFAULT => -39 + }, {#State 66 - DEFAULT => -91 + DEFAULT => -21 }, {#State 67 - ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'listtext' => 75, - 'anytext' => 74, - 'constant' => 13 - } + DEFAULT => -23 }, {#State 68 - ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 76, - 'constant' => 13 - } + DEFAULT => -37 }, {#State 69 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -100, + DEFAULT => -102, GOTOS => { - 'identifier' => 17, - 'text' => 18, - 'anytext' => 77, - 'constant' => 13 + 'identifier' => 45, + 'anytext' => 108, + 'text' => 46, + 'constant' => 43 } }, {#State 70 ACTIONS => { - "}" => 78, - "interface" => 79 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 + }, + DEFAULT => -102, + GOTOS => { + 'identifier' => 45, + 'anytext' => 109, + 'text' => 46, + 'constant' => 43 } }, {#State 71 - DEFAULT => -15 + ACTIONS => { + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 + }, + DEFAULT => -102, + GOTOS => { + 'identifier' => 45, + 'anytext' => 110, + 'text' => 46, + 'constant' => 43 + } }, {#State 72 ACTIONS => { - "typedef" => 80, - "union" => 81, - "enum" => 94, - "bitmap" => 95, - "declare" => 87, - "const" => 89, - "struct" => 92 - }, - DEFAULT => -90, - GOTOS => { - 'typedecl' => 93, - 'function' => 82, - 'bitmap' => 96, - 'definitions' => 83, - 'definition' => 86, - 'property_list' => 85, - 'usertype' => 84, - 'declare' => 98, - 'const' => 97, - 'struct' => 88, - 'enum' => 90, - 'typedef' => 91, - 'union' => 99 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 + }, + DEFAULT => -102, + GOTOS => { + 'identifier' => 45, + 'anytext' => 111, + 'text' => 46, + 'constant' => 43 } }, {#State 73 - DEFAULT => -93 + ACTIONS => { + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 + }, + DEFAULT => -102, + GOTOS => { + 'identifier' => 45, + 'anytext' => 112, + 'text' => 46, + 'constant' => 43 + } }, {#State 74 ACTIONS => { - "-" => 24, - ":" => 23, - "<" => 26, - "+" => 28, - "~" => 27, - "*" => 35, - "?" => 25, - "{" => 29, - "&" => 30, - "/" => 31, - "=" => 32, - "(" => 33, - "|" => 34, - "." => 36, - ">" => 37 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -96 + DEFAULT => -102, + GOTOS => { + 'identifier' => 45, + 'anytext' => 113, + 'text' => 46, + 'constant' => 43 + } }, {#State 75 ACTIONS => { - "," => 100, - ")" => 101 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 + }, + DEFAULT => -102, + GOTOS => { + 'identifier' => 45, + 'anytext' => 114, + 'text' => 46, + 'constant' => 43 } }, {#State 76 ACTIONS => { - "-" => 24, - ":" => 23, - "<" => 26, - "+" => 28, - "~" => 27, - "*" => 35, - "?" => 25, - "{" => 29, - "&" => 30, - "/" => 31, - "=" => 32, - "(" => 33, - "|" => 34, - "." => 36, - ">" => 37 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -118 + DEFAULT => -102, + GOTOS => { + 'identifier' => 45, + 'anytext' => 115, + 'text' => 46, + 'constant' => 43, + 'commalisttext' => 116 + } }, {#State 77 ACTIONS => { - ":" => 23, - "<" => 26, - "~" => 27, - "?" => 25, - "{" => 29, - "=" => 32 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -117 + DEFAULT => -102, + GOTOS => { + 'identifier' => 45, + 'anytext' => 117, + 'text' => 46, + 'constant' => 43 + } }, {#State 78 ACTIONS => { - ";" => 102 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -124, + DEFAULT => -102, GOTOS => { - 'optional_semicolon' => 103 + 'identifier' => 45, + 'anytext' => 118, + 'text' => 46, + 'constant' => 43 } }, {#State 79 ACTIONS => { - 'IDENTIFIER' => 11 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, + DEFAULT => -102, GOTOS => { - 'identifier' => 104 + 'identifier' => 45, + 'anytext' => 119, + 'text' => 46, + 'constant' => 43 } }, {#State 80 - DEFAULT => -90, + ACTIONS => { + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 + }, + DEFAULT => -102, GOTOS => { - 'property_list' => 105 + 'identifier' => 45, + 'anytext' => 115, + 'text' => 46, + 'constant' => 43, + 'commalisttext' => 120 } }, {#State 81 ACTIONS => { - 'IDENTIFIER' => 106 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -121, + DEFAULT => -102, GOTOS => { - 'optional_identifier' => 107 + 'identifier' => 45, + 'anytext' => 121, + 'text' => 46, + 'constant' => 43 } }, {#State 82 - DEFAULT => -18 - }, - {#State 83 ACTIONS => { - "}" => 108, - "typedef" => 80, - "union" => 81, - "enum" => 94, - "bitmap" => 95, - "declare" => 87, - "const" => 89, - "struct" => 92 - }, - DEFAULT => -90, - GOTOS => { - 'typedecl' => 93, - 'function' => 82, - 'bitmap' => 96, - 'definition' => 109, - 'property_list' => 85, - 'usertype' => 84, - 'const' => 97, - 'struct' => 88, - 'declare' => 98, - 'enum' => 90, - 'typedef' => 91, - 'union' => 99 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 + }, + DEFAULT => -102, + GOTOS => { + 'identifier' => 45, + 'anytext' => 122, + 'text' => 46, + 'constant' => 43 } }, - {#State 84 + {#State 83 ACTIONS => { - ";" => 110 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 + }, + DEFAULT => -102, + GOTOS => { + 'identifier' => 45, + 'anytext' => 123, + 'text' => 46, + 'constant' => 43 } }, - {#State 85 + {#State 84 ACTIONS => { - 'IDENTIFIER' => 11, - "signed" => 116, - "union" => 81, - "enum" => 94, - "bitmap" => 95, - 'void' => 111, - "unsigned" => 117, - "[" => 21, - "struct" => 92 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, + DEFAULT => -102, GOTOS => { - 'existingtype' => 115, - 'bitmap' => 96, - 'usertype' => 112, - 'identifier' => 113, - 'struct' => 88, - 'enum' => 90, - 'type' => 118, - 'union' => 99, - 'sign' => 114 + 'identifier' => 45, + 'anytext' => 124, + 'text' => 46, + 'constant' => 43 } }, + {#State 85 + DEFAULT => -97 + }, {#State 86 - DEFAULT => -16 + DEFAULT => -127 }, {#State 87 - DEFAULT => -90, - GOTOS => { - 'property_list' => 119 - } + DEFAULT => -12 }, {#State 88 - DEFAULT => -34 + ACTIONS => { + ";" => 125 + } }, {#State 89 ACTIONS => { - 'IDENTIFIER' => 11 - }, - GOTOS => { - 'identifier' => 120 + 'IDENTIFIER' => 22, + "signed" => 100, + "union" => 50, + "enum" => 63, + "bitmap" => 64, + 'void' => 95, + "unsigned" => 101, + "[" => 17, + "struct" => 61 + }, + GOTOS => { + 'existingtype' => 99, + 'bitmap' => 65, + 'usertype' => 96, + 'identifier' => 97, + 'struct' => 57, + 'enum' => 59, + 'type' => 126, + 'union' => 68, + 'sign' => 98 } }, {#State 90 - DEFAULT => -36 + DEFAULT => -122 }, {#State 91 - DEFAULT => -20 + ACTIONS => { + "{" => 128 + }, + DEFAULT => -77, + GOTOS => { + 'union_body' => 129, + 'opt_union_body' => 127 + } }, {#State 92 ACTIONS => { - 'IDENTIFIER' => 106 + ";" => 86 }, - DEFAULT => -121, + DEFAULT => -126, GOTOS => { - 'optional_identifier' => 121 + 'optional_semicolon' => 130 } }, {#State 93 - DEFAULT => -22 + DEFAULT => -19 }, {#State 94 - ACTIONS => { - 'IDENTIFIER' => 106 - }, - DEFAULT => -121, - GOTOS => { - 'optional_identifier' => 122 - } + DEFAULT => -40 }, {#State 95 - ACTIONS => { - 'IDENTIFIER' => 106 - }, - DEFAULT => -121, - GOTOS => { - 'optional_identifier' => 123 - } + DEFAULT => -48 }, {#State 96 - DEFAULT => -37 + DEFAULT => -46 }, {#State 97 - DEFAULT => -19 + DEFAULT => -45 }, {#State 98 - DEFAULT => -21 - }, - {#State 99 - DEFAULT => -35 - }, - {#State 100 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 + 'IDENTIFIER' => 22 }, - DEFAULT => -100, GOTOS => { - 'identifier' => 17, - 'anytext' => 124, - 'text' => 18, - 'constant' => 13 + 'identifier' => 131 } }, + {#State 99 + DEFAULT => -47 + }, + {#State 100 + DEFAULT => -41 + }, {#State 101 - DEFAULT => -95 + DEFAULT => -42 }, {#State 102 - DEFAULT => -125 + ACTIONS => { + 'IDENTIFIER' => 22 + }, + GOTOS => { + 'identifier' => 132 + } }, {#State 103 - DEFAULT => -10 + ACTIONS => { + "union" => 133, + "enum" => 138, + "bitmap" => 139, + "[" => 17 + }, + GOTOS => { + 'decl_enum' => 134, + 'decl_bitmap' => 135, + 'decl_type' => 137, + 'decl_union' => 136 + } }, {#State 104 - ACTIONS => { - ";" => 125 + DEFAULT => -81, + GOTOS => { + 'pointers' => 140 } }, {#State 105 ACTIONS => { - 'IDENTIFIER' => 11, - "signed" => 116, - "union" => 81, - "enum" => 94, - "bitmap" => 95, - 'void' => 111, - "unsigned" => 117, - "[" => 21, - "struct" => 92 - }, - GOTOS => { - 'existingtype' => 115, - 'bitmap' => 96, - 'usertype' => 112, - 'identifier' => 113, - 'struct' => 88, - 'enum' => 90, - 'type' => 126, - 'union' => 99, - 'sign' => 114 + "{" => 142 + }, + DEFAULT => -67, + GOTOS => { + 'struct_body' => 141, + 'opt_struct_body' => 143 } }, {#State 106 - DEFAULT => -120 + ACTIONS => { + "{" => 144 + }, + DEFAULT => -50, + GOTOS => { + 'opt_enum_body' => 146, + 'enum_body' => 145 + } }, {#State 107 ACTIONS => { - "{" => 128 + "{" => 148 }, - DEFAULT => -75, + DEFAULT => -58, GOTOS => { - 'union_body' => 129, - 'opt_union_body' => 127 + 'bitmap_body' => 149, + 'opt_bitmap_body' => 147 } }, {#State 108 ACTIONS => { - ";" => 102 + "-" => 70, + ":" => 69, + "<" => 71, + "+" => 73, + "~" => 72, + "*" => 74, + "?" => 75, + "{" => 76, + "&" => 77, + "/" => 78, + "=" => 79, + "(" => 80, + "|" => 81, + "." => 82, + ">" => 83 }, - DEFAULT => -124, - GOTOS => { - 'optional_semicolon' => 130 - } + DEFAULT => -115 }, {#State 109 - DEFAULT => -17 + ACTIONS => { + ":" => 69, + "<" => 71, + "~" => 72, + "?" => 75, + "{" => 76, + "=" => 79 + }, + DEFAULT => -106 }, {#State 110 - DEFAULT => -38 + ACTIONS => { + "-" => 70, + ":" => 69, + "<" => 71, + "+" => 73, + "~" => 72, + "*" => 74, + "?" => 75, + "{" => 76, + "&" => 77, + "/" => 78, + "=" => 79, + "(" => 80, + "|" => 81, + "." => 82, + ">" => 83 + }, + DEFAULT => -110 }, {#State 111 - DEFAULT => -46 + ACTIONS => { + "-" => 70, + ":" => 69, + "<" => 71, + "+" => 73, + "~" => 72, + "*" => 74, + "?" => 75, + "{" => 76, + "&" => 77, + "/" => 78, + "=" => 79, + "(" => 80, + "|" => 81, + "." => 82, + ">" => 83 + }, + DEFAULT => -118 }, {#State 112 - DEFAULT => -44 + ACTIONS => { + ":" => 69, + "<" => 71, + "~" => 72, + "?" => 75, + "{" => 76, + "=" => 79 + }, + DEFAULT => -117 }, {#State 113 - DEFAULT => -43 + ACTIONS => { + ":" => 69, + "<" => 71, + "~" => 72, + "?" => 75, + "{" => 76, + "=" => 79 + }, + DEFAULT => -108 }, {#State 114 ACTIONS => { - 'IDENTIFIER' => 11 + "-" => 70, + ":" => 69, + "<" => 71, + "+" => 73, + "~" => 72, + "*" => 74, + "?" => 75, + "{" => 76, + "&" => 77, + "/" => 78, + "=" => 79, + "(" => 80, + "|" => 81, + "." => 82, + ">" => 83 }, - GOTOS => { - 'identifier' => 131 - } + DEFAULT => -114 }, {#State 115 - DEFAULT => -45 + ACTIONS => { + "-" => 70, + ":" => 69, + "<" => 71, + "+" => 73, + "~" => 72, + "*" => 74, + "?" => 75, + "{" => 76, + "&" => 77, + "/" => 78, + "=" => 79, + "(" => 80, + "|" => 81, + "." => 82, + ">" => 83 + }, + DEFAULT => -100 }, {#State 116 - DEFAULT => -39 + ACTIONS => { + "}" => 150, + "," => 151 + } }, {#State 117 - DEFAULT => -40 + ACTIONS => { + ":" => 69, + "<" => 71, + "~" => 72, + "?" => 75, + "{" => 76, + "=" => 79 + }, + DEFAULT => -112 }, {#State 118 ACTIONS => { - 'IDENTIFIER' => 11 + ":" => 69, + "<" => 71, + "~" => 72, + "?" => 75, + "{" => 76, + "=" => 79 }, - GOTOS => { - 'identifier' => 132 - } + DEFAULT => -113 }, {#State 119 ACTIONS => { - "union" => 133, - "enum" => 138, - "bitmap" => 139, - "[" => 21 + "-" => 70, + ":" => 69, + "<" => 71, + "+" => 73, + "~" => 72, + "*" => 74, + "?" => 75, + "{" => 76, + "&" => 77, + "/" => 78, + "=" => 79, + "(" => 80, + "|" => 81, + "." => 82, + ">" => 83 }, - GOTOS => { - 'decl_enum' => 134, - 'decl_bitmap' => 135, - 'decl_type' => 137, - 'decl_union' => 136 - } + DEFAULT => -116 }, {#State 120 - DEFAULT => -79, - GOTOS => { - 'pointers' => 140 + ACTIONS => { + "," => 151, + ")" => 152 } }, {#State 121 ACTIONS => { - "{" => 142 + ":" => 69, + "<" => 71, + "~" => 72, + "?" => 75, + "{" => 76, + "=" => 79 }, - DEFAULT => -65, - GOTOS => { - 'struct_body' => 141, - 'opt_struct_body' => 143 - } + DEFAULT => -111 }, {#State 122 ACTIONS => { - "{" => 144 + ":" => 69, + "<" => 71, + "~" => 72, + "?" => 75, + "{" => 76, + "=" => 79 }, - DEFAULT => -48, - GOTOS => { - 'opt_enum_body' => 146, - 'enum_body' => 145 - } + DEFAULT => -107 }, {#State 123 ACTIONS => { - "{" => 148 + ":" => 69, + "<" => 71, + "~" => 72, + "?" => 75, + "{" => 76, + "=" => 79 }, - DEFAULT => -56, - GOTOS => { - 'bitmap_body' => 149, - 'opt_bitmap_body' => 147 - } + DEFAULT => -109 }, {#State 124 ACTIONS => { - "-" => 24, - ":" => 23, - "<" => 26, - "+" => 28, - "~" => 27, - "*" => 35, - "?" => 25, - "{" => 29, - "&" => 30, - "/" => 31, - "=" => 32, - "(" => 33, - "|" => 34, - "." => 36, - ">" => 37 + "-" => 70, + ":" => 69, + "<" => 71, + "+" => 73, + "~" => 72, + "*" => 74, + "?" => 75, + "{" => 76, + "&" => 77, + "/" => 78, + "=" => 79, + "(" => 80, + "|" => 81, + "." => 82, + ">" => 83 }, - DEFAULT => -97 + DEFAULT => -99 }, {#State 125 - DEFAULT => -12 + DEFAULT => -14 }, {#State 126 ACTIONS => { - 'IDENTIFIER' => 11 + 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 150 + 'identifier' => 153 } }, {#State 127 - DEFAULT => -77 + DEFAULT => -79 }, {#State 128 - DEFAULT => -72, + DEFAULT => -74, GOTOS => { - 'union_elements' => 151 + 'union_elements' => 154 } }, {#State 129 - DEFAULT => -76 + DEFAULT => -78 }, {#State 130 - DEFAULT => -13 + DEFAULT => -15 }, {#State 131 - DEFAULT => -42 + DEFAULT => -44 }, {#State 132 ACTIONS => { - "(" => 152 + "(" => 155 } }, {#State 133 - DEFAULT => -32 + DEFAULT => -34 }, {#State 134 - DEFAULT => -27 + DEFAULT => -29 }, {#State 135 - DEFAULT => -28 + DEFAULT => -30 }, {#State 136 - DEFAULT => -29 + DEFAULT => -31 }, {#State 137 ACTIONS => { - 'IDENTIFIER' => 11 + 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 153 + 'identifier' => 156 } }, {#State 138 - DEFAULT => -30 + DEFAULT => -32 }, {#State 139 - DEFAULT => -31 + DEFAULT => -33 }, {#State 140 ACTIONS => { - 'IDENTIFIER' => 11, - "*" => 155 + 'IDENTIFIER' => 22, + "*" => 158 }, GOTOS => { - 'identifier' => 154 + 'identifier' => 157 } }, {#State 141 - DEFAULT => -66 + DEFAULT => -68 }, {#State 142 - DEFAULT => -81, + DEFAULT => -83, GOTOS => { - 'element_list1' => 156 + 'element_list1' => 159 } }, {#State 143 - DEFAULT => -67 + DEFAULT => -69 }, {#State 144 ACTIONS => { - 'IDENTIFIER' => 11 + 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 157, - 'enum_element' => 158, - 'enum_elements' => 159 + 'identifier' => 160, + 'enum_element' => 161, + 'enum_elements' => 162 } }, {#State 145 - DEFAULT => -49 + DEFAULT => -51 }, {#State 146 - DEFAULT => -50 + DEFAULT => -52 }, {#State 147 - DEFAULT => -58 + DEFAULT => -60 }, {#State 148 ACTIONS => { - 'IDENTIFIER' => 11 + 'IDENTIFIER' => 22 }, - DEFAULT => -61, + DEFAULT => -63, GOTOS => { - 'identifier' => 162, - 'bitmap_element' => 161, - 'bitmap_elements' => 160, - 'opt_bitmap_elements' => 163 + 'identifier' => 165, + 'bitmap_element' => 164, + 'bitmap_elements' => 163, + 'opt_bitmap_elements' => 166 } }, {#State 149 - DEFAULT => -57 + DEFAULT => -59 }, {#State 150 ACTIONS => { - "[" => 164 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -87, + DEFAULT => -102, GOTOS => { - 'array_len' => 165 + 'identifier' => 45, + 'anytext' => 167, + 'text' => 46, + 'constant' => 43 } }, {#State 151 ACTIONS => { - "}" => 166 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -90, + DEFAULT => -102, GOTOS => { - 'optional_base_element' => 168, - 'property_list' => 167 + 'identifier' => 45, + 'anytext' => 168, + 'text' => 46, + 'constant' => 43 } }, {#State 152 ACTIONS => { - "," => -83, - "void" => 172, - ")" => -83 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -90, + DEFAULT => -102, GOTOS => { - 'base_element' => 169, - 'element_list2' => 171, - 'property_list' => 170 + 'identifier' => 45, + 'anytext' => 169, + 'text' => 46, + 'constant' => 43 } }, {#State 153 ACTIONS => { - ";" => 173 + "[" => 170 + }, + DEFAULT => -89, + GOTOS => { + 'array_len' => 171 } }, {#State 154 ACTIONS => { - "[" => 164, - "=" => 175 + "}" => 172 }, + DEFAULT => -92, GOTOS => { - 'array_len' => 174 + 'optional_base_element' => 174, + 'property_list' => 173 } }, {#State 155 - DEFAULT => -80 - }, - {#State 156 ACTIONS => { - "}" => 176 + "," => -85, + "void" => 178, + ")" => -85 }, - DEFAULT => -90, + DEFAULT => -92, GOTOS => { - 'base_element' => 177, - 'property_list' => 170 + 'base_element' => 175, + 'element_list2' => 177, + 'property_list' => 176 + } + }, + {#State 156 + ACTIONS => { + ";" => 179 } }, {#State 157 ACTIONS => { - "=" => 178 + "[" => 170, + "=" => 181 }, - DEFAULT => -53 + GOTOS => { + 'array_len' => 180 + } }, {#State 158 - DEFAULT => -51 + DEFAULT => -82 }, {#State 159 ACTIONS => { - "}" => 179, - "," => 180 + "}" => 182 + }, + DEFAULT => -92, + GOTOS => { + 'base_element' => 183, + 'property_list' => 176 } }, {#State 160 ACTIONS => { - "," => 181 + "=" => 184 }, - DEFAULT => -62 + DEFAULT => -55 }, {#State 161 - DEFAULT => -59 + DEFAULT => -53 }, {#State 162 ACTIONS => { - "=" => 182 + "}" => 185, + "," => 186 } }, {#State 163 ACTIONS => { - "}" => 183 - } + "," => 187 + }, + DEFAULT => -64 }, {#State 164 - ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - "]" => 184, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'anytext' => 185, - 'text' => 18, - 'constant' => 13 - } + DEFAULT => -61 }, {#State 165 ACTIONS => { - ";" => 186 + "=" => 188 } }, {#State 166 - DEFAULT => -74 + ACTIONS => { + "}" => 189 + } }, {#State 167 ACTIONS => { - "[" => 21 + "-" => 70, + ":" => 69, + "<" => 71, + "+" => 73, + "~" => 72, + "*" => 74, + "?" => 75, + "{" => 76, + "&" => 77, + "/" => 78, + "=" => 79, + "(" => 80, + "|" => 81, + "." => 82, + ">" => 83 }, - DEFAULT => -90, - GOTOS => { - 'base_or_empty' => 187, - 'base_element' => 188, - 'empty_element' => 189, - 'property_list' => 190 - } + DEFAULT => -120 }, {#State 168 - DEFAULT => -73 + ACTIONS => { + "-" => 70, + ":" => 69, + "<" => 71, + "+" => 73, + "~" => 72, + "*" => 74, + "?" => 75, + "{" => 76, + "&" => 77, + "/" => 78, + "=" => 79, + "(" => 80, + "|" => 81, + "." => 82, + ">" => 83 + }, + DEFAULT => -101 }, {#State 169 - DEFAULT => -85 + ACTIONS => { + ":" => 69, + "<" => 71, + "~" => 72, + "?" => 75, + "{" => 76, + "=" => 79 + }, + DEFAULT => -119 }, {#State 170 ACTIONS => { - 'IDENTIFIER' => 11, - "signed" => 116, - "union" => 81, - "enum" => 94, - "bitmap" => 95, - 'void' => 111, - "unsigned" => 117, - "[" => 21, - "struct" => 92 - }, - DEFAULT => -41, - GOTOS => { - 'existingtype' => 115, - 'bitmap' => 96, - 'usertype' => 112, - 'identifier' => 113, - 'struct' => 88, - 'enum' => 90, - 'type' => 191, - 'union' => 99, - 'sign' => 114 + 'CONSTANT' => 44, + 'TEXT' => 13, + "]" => 190, + 'IDENTIFIER' => 22 + }, + DEFAULT => -102, + GOTOS => { + 'identifier' => 45, + 'anytext' => 191, + 'text' => 46, + 'constant' => 43 } }, {#State 171 ACTIONS => { - "," => 192, - ")" => 193 + ";" => 192 } }, {#State 172 - DEFAULT => -84 + DEFAULT => -76 }, {#State 173 - DEFAULT => -26 - }, - {#State 174 - ACTIONS => { - "=" => 194 - } - }, - {#State 175 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 + "[" => 17 }, - DEFAULT => -100, + DEFAULT => -92, GOTOS => { - 'identifier' => 17, - 'anytext' => 195, - 'text' => 18, - 'constant' => 13 + 'base_or_empty' => 193, + 'base_element' => 194, + 'empty_element' => 195, + 'property_list' => 196 } }, + {#State 174 + DEFAULT => -75 + }, + {#State 175 + DEFAULT => -87 + }, {#State 176 - DEFAULT => -64 + ACTIONS => { + 'IDENTIFIER' => 22, + "signed" => 100, + "union" => 50, + "enum" => 63, + "bitmap" => 64, + 'void' => 95, + "unsigned" => 101, + "[" => 17, + "struct" => 61 + }, + DEFAULT => -43, + GOTOS => { + 'existingtype' => 99, + 'bitmap' => 65, + 'usertype' => 96, + 'identifier' => 97, + 'struct' => 57, + 'enum' => 59, + 'type' => 197, + 'union' => 68, + 'sign' => 98 + } }, {#State 177 ACTIONS => { - ";" => 196 + "," => 198, + ")" => 199 } }, {#State 178 - ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'anytext' => 197, - 'text' => 18, - 'constant' => 13 - } + DEFAULT => -86 }, {#State 179 - DEFAULT => -47 + DEFAULT => -28 }, {#State 180 ACTIONS => { - 'IDENTIFIER' => 11 - }, - GOTOS => { - 'identifier' => 157, - 'enum_element' => 198 + "=" => 200 } }, {#State 181 ACTIONS => { - 'IDENTIFIER' => 11 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, + DEFAULT => -102, GOTOS => { - 'identifier' => 162, - 'bitmap_element' => 199 + 'identifier' => 45, + 'anytext' => 201, + 'text' => 46, + 'constant' => 43 } }, {#State 182 - ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'anytext' => 200, - 'text' => 18, - 'constant' => 13 - } + DEFAULT => -66 }, {#State 183 - DEFAULT => -55 + ACTIONS => { + ";" => 202 + } }, {#State 184 ACTIONS => { - "[" => 164 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -87, + DEFAULT => -102, GOTOS => { - 'array_len' => 201 + 'identifier' => 45, + 'anytext' => 203, + 'text' => 46, + 'constant' => 43 } }, {#State 185 - ACTIONS => { - "-" => 24, - ":" => 23, - "?" => 25, - "<" => 26, - "+" => 28, - "~" => 27, - "&" => 30, - "{" => 29, - "/" => 31, - "=" => 32, - "|" => 34, - "(" => 33, - "*" => 35, - "." => 36, - "]" => 202, - ">" => 37 - } + DEFAULT => -49 }, {#State 186 - DEFAULT => -33 + ACTIONS => { + 'IDENTIFIER' => 22 + }, + GOTOS => { + 'identifier' => 160, + 'enum_element' => 204 + } }, {#State 187 - DEFAULT => -71 + ACTIONS => { + 'IDENTIFIER' => 22 + }, + GOTOS => { + 'identifier' => 165, + 'bitmap_element' => 205 + } }, {#State 188 ACTIONS => { - ";" => 203 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 + }, + DEFAULT => -102, + GOTOS => { + 'identifier' => 45, + 'anytext' => 206, + 'text' => 46, + 'constant' => 43 } }, {#State 189 - DEFAULT => -70 + DEFAULT => -57 }, {#State 190 ACTIONS => { - 'IDENTIFIER' => 11, - "signed" => 116, - "union" => 81, - ";" => 204, - "enum" => 94, - "bitmap" => 95, - 'void' => 111, - "unsigned" => 117, - "[" => 21, - "struct" => 92 - }, - DEFAULT => -41, - GOTOS => { - 'existingtype' => 115, - 'bitmap' => 96, - 'usertype' => 112, - 'identifier' => 113, - 'struct' => 88, - 'enum' => 90, - 'type' => 191, - 'union' => 99, - 'sign' => 114 + "[" => 170 + }, + DEFAULT => -89, + GOTOS => { + 'array_len' => 207 } }, {#State 191 - DEFAULT => -79, - GOTOS => { - 'pointers' => 205 + ACTIONS => { + "-" => 70, + ":" => 69, + "?" => 75, + "<" => 71, + "+" => 73, + "~" => 72, + "&" => 77, + "{" => 76, + "/" => 78, + "=" => 79, + "|" => 81, + "(" => 80, + "*" => 74, + "." => 82, + "]" => 208, + ">" => 83 } }, {#State 192 - DEFAULT => -90, - GOTOS => { - 'base_element' => 206, - 'property_list' => 170 - } + DEFAULT => -35 }, {#State 193 - ACTIONS => { - ";" => 207 - } + DEFAULT => -73 }, {#State 194 ACTIONS => { - 'CONSTANT' => 14, - 'TEXT' => 16, - 'IDENTIFIER' => 11 - }, - DEFAULT => -100, - GOTOS => { - 'identifier' => 17, - 'anytext' => 208, - 'text' => 18, - 'constant' => 13 + ";" => 209 } }, {#State 195 - ACTIONS => { - "-" => 24, - ":" => 23, - "?" => 25, - "<" => 26, - ";" => 209, - "+" => 28, - "~" => 27, - "&" => 30, - "{" => 29, - "/" => 31, - "=" => 32, - "|" => 34, - "(" => 33, - "*" => 35, - "." => 36, - ">" => 37 - } + DEFAULT => -72 }, {#State 196 - DEFAULT => -82 + ACTIONS => { + 'IDENTIFIER' => 22, + "signed" => 100, + "union" => 50, + ";" => 210, + "enum" => 63, + "bitmap" => 64, + 'void' => 95, + "unsigned" => 101, + "[" => 17, + "struct" => 61 + }, + DEFAULT => -43, + GOTOS => { + 'existingtype' => 99, + 'bitmap' => 65, + 'usertype' => 96, + 'identifier' => 97, + 'struct' => 57, + 'enum' => 59, + 'type' => 197, + 'union' => 68, + 'sign' => 98 + } }, {#State 197 - ACTIONS => { - "-" => 24, - ":" => 23, - "<" => 26, - "+" => 28, - "~" => 27, - "*" => 35, - "?" => 25, - "{" => 29, - "&" => 30, - "/" => 31, - "=" => 32, - "(" => 33, - "|" => 34, - "." => 36, - ">" => 37 - }, - DEFAULT => -54 + DEFAULT => -81, + GOTOS => { + 'pointers' => 211 + } }, {#State 198 - DEFAULT => -52 + DEFAULT => -92, + GOTOS => { + 'base_element' => 212, + 'property_list' => 176 + } }, {#State 199 - DEFAULT => -60 + ACTIONS => { + ";" => 213 + } }, {#State 200 ACTIONS => { - "-" => 24, - ":" => 23, - "<" => 26, - "+" => 28, - "~" => 27, - "*" => 35, - "?" => 25, - "{" => 29, - "&" => 30, - "/" => 31, - "=" => 32, - "(" => 33, - "|" => 34, - "." => 36, - ">" => 37 - }, - DEFAULT => -63 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 + }, + DEFAULT => -102, + GOTOS => { + 'identifier' => 45, + 'anytext' => 214, + 'text' => 46, + 'constant' => 43 + } }, {#State 201 - DEFAULT => -88 - }, - {#State 202 ACTIONS => { - "[" => 164 - }, - DEFAULT => -87, - GOTOS => { - 'array_len' => 210 + "-" => 70, + ":" => 69, + "?" => 75, + "<" => 71, + ";" => 215, + "+" => 73, + "~" => 72, + "&" => 77, + "{" => 76, + "/" => 78, + "=" => 79, + "|" => 81, + "(" => 80, + "*" => 74, + "." => 82, + ">" => 83 } }, + {#State 202 + DEFAULT => -84 + }, {#State 203 - DEFAULT => -69 + ACTIONS => { + "-" => 70, + ":" => 69, + "<" => 71, + "+" => 73, + "~" => 72, + "*" => 74, + "?" => 75, + "{" => 76, + "&" => 77, + "/" => 78, + "=" => 79, + "(" => 80, + "|" => 81, + "." => 82, + ">" => 83 + }, + DEFAULT => -56 }, {#State 204 - DEFAULT => -68 + DEFAULT => -54 }, {#State 205 - ACTIONS => { - 'IDENTIFIER' => 11, - "*" => 155 - }, - GOTOS => { - 'identifier' => 211 - } + DEFAULT => -62 }, {#State 206 - DEFAULT => -86 + ACTIONS => { + "-" => 70, + ":" => 69, + "<" => 71, + "+" => 73, + "~" => 72, + "*" => 74, + "?" => 75, + "{" => 76, + "&" => 77, + "/" => 78, + "=" => 79, + "(" => 80, + "|" => 81, + "." => 82, + ">" => 83 + }, + DEFAULT => -65 }, {#State 207 - DEFAULT => -25 + DEFAULT => -90 }, {#State 208 ACTIONS => { - "-" => 24, - ":" => 23, - "?" => 25, - "<" => 26, - ";" => 212, - "+" => 28, - "~" => 27, - "&" => 30, - "{" => 29, - "/" => 31, - "=" => 32, - "|" => 34, - "(" => 33, - "*" => 35, - "." => 36, - ">" => 37 + "[" => 170 + }, + DEFAULT => -89, + GOTOS => { + 'array_len' => 216 } }, {#State 209 - DEFAULT => -23 + DEFAULT => -71 }, {#State 210 - DEFAULT => -89 + DEFAULT => -70 }, {#State 211 ACTIONS => { - "[" => 164 + 'IDENTIFIER' => 22, + "*" => 158 }, - DEFAULT => -87, GOTOS => { - 'array_len' => 213 + 'identifier' => 217 } }, {#State 212 - DEFAULT => -24 + DEFAULT => -88 }, {#State 213 - DEFAULT => -78 + DEFAULT => -27 + }, + {#State 214 + ACTIONS => { + "-" => 70, + ":" => 69, + "?" => 75, + "<" => 71, + ";" => 218, + "+" => 73, + "~" => 72, + "&" => 77, + "{" => 76, + "/" => 78, + "=" => 79, + "|" => 81, + "(" => 80, + "*" => 74, + "." => 82, + ">" => 83 + } + }, + {#State 215 + DEFAULT => -25 + }, + {#State 216 + DEFAULT => -91 + }, + {#State 217 + ACTIONS => { + "[" => 170 + }, + DEFAULT => -89, + GOTOS => { + 'array_len' => 219 + } + }, + {#State 218 + DEFAULT => -26 + }, + {#State 219 + DEFAULT => -80 } ], yyrules => @@ -2300,7 +2321,7 @@ sub #line 26 "pidl/idl.yp" {{ "TYPE" => "IMPORT", - "PATHS" => [ $_[2] ], + "PATHS" => $_[2], "FILE" => $_[0]->YYData->{INPUT_FILENAME}, "LINE" => $_[0]->YYData->{LINE} }} @@ -2311,7 +2332,7 @@ sub #line 33 "pidl/idl.yp" {{ "TYPE" => "INCLUDE", - "PATHS" => [ $_[2] ], + "PATHS" => $_[2], "FILE" => $_[0]->YYData->{INPUT_FILENAME}, "LINE" => $_[0]->YYData->{LINE} }} @@ -2322,15 +2343,27 @@ sub #line 40 "pidl/idl.yp" {{ "TYPE" => "IMPORTLIB", - "PATHS" => [ $_[2] ], + "PATHS" => $_[2], "FILE" => $_[0]->YYData->{INPUT_FILENAME}, "LINE" => $_[0]->YYData->{LINE} }} ], [#Rule 10 - 'coclass', 7, + 'commalist', 1, sub #line 49 "pidl/idl.yp" +{ [ $_[1] ] } + ], + [#Rule 11 + 'commalist', 3, +sub +#line 50 "pidl/idl.yp" +{ push(@{$_[1]}, $_[3]); $_[1] } + ], + [#Rule 12 + 'coclass', 7, +sub +#line 54 "pidl/idl.yp" {{ "TYPE" => "COCLASS", "PROPERTIES" => $_[1], @@ -2340,19 +2373,19 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 11 + [#Rule 13 'interface_names', 0, undef ], - [#Rule 12 + [#Rule 14 'interface_names', 4, sub -#line 61 "pidl/idl.yp" +#line 66 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 13 + [#Rule 15 'interface', 8, sub -#line 65 "pidl/idl.yp" +#line 70 "pidl/idl.yp" {{ "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], @@ -2363,33 +2396,27 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 14 + [#Rule 16 'base_interface', 0, undef ], - [#Rule 15 + [#Rule 17 'base_interface', 2, sub -#line 78 "pidl/idl.yp" +#line 83 "pidl/idl.yp" { $_[2] } ], - [#Rule 16 + [#Rule 18 'definitions', 1, sub -#line 82 "pidl/idl.yp" +#line 87 "pidl/idl.yp" { [ $_[1] ] } ], - [#Rule 17 + [#Rule 19 'definitions', 2, sub -#line 83 "pidl/idl.yp" +#line 88 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 18 - 'definition', 1, undef - ], - [#Rule 19 - 'definition', 1, undef - ], [#Rule 20 'definition', 1, undef ], @@ -2400,9 +2427,15 @@ sub 'definition', 1, undef ], [#Rule 23 + 'definition', 1, undef + ], + [#Rule 24 + 'definition', 1, undef + ], + [#Rule 25 'const', 7, sub -#line 91 "pidl/idl.yp" +#line 96 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2413,10 +2446,10 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 24 + [#Rule 26 'const', 8, sub -#line 101 "pidl/idl.yp" +#line 106 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2428,10 +2461,10 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 25 + [#Rule 27 'function', 7, sub -#line 115 "pidl/idl.yp" +#line 120 "pidl/idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -2442,10 +2475,10 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 26 + [#Rule 28 'declare', 5, sub -#line 127 "pidl/idl.yp" +#line 132 "pidl/idl.yp" {{ "TYPE" => "DECLARE", "PROPERTIES" => $_[2], @@ -2455,43 +2488,43 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 27 + [#Rule 29 'decl_type', 1, undef ], - [#Rule 28 + [#Rule 30 'decl_type', 1, undef ], - [#Rule 29 + [#Rule 31 'decl_type', 1, undef ], - [#Rule 30 + [#Rule 32 'decl_enum', 1, sub -#line 141 "pidl/idl.yp" +#line 146 "pidl/idl.yp" {{ "TYPE" => "ENUM" }} ], - [#Rule 31 + [#Rule 33 'decl_bitmap', 1, sub -#line 147 "pidl/idl.yp" +#line 152 "pidl/idl.yp" {{ "TYPE" => "BITMAP" }} ], - [#Rule 32 + [#Rule 34 'decl_union', 1, sub -#line 153 "pidl/idl.yp" +#line 158 "pidl/idl.yp" {{ "TYPE" => "UNION" }} ], - [#Rule 33 + [#Rule 35 'typedef', 6, sub -#line 159 "pidl/idl.yp" +#line 164 "pidl/idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[2], @@ -2502,169 +2535,169 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 34 + [#Rule 36 'usertype', 1, undef ], - [#Rule 35 + [#Rule 37 'usertype', 1, undef ], - [#Rule 36 + [#Rule 38 'usertype', 1, undef ], - [#Rule 37 + [#Rule 39 'usertype', 1, undef ], - [#Rule 38 + [#Rule 40 'typedecl', 2, sub -#line 172 "pidl/idl.yp" +#line 177 "pidl/idl.yp" { $_[1] } ], - [#Rule 39 + [#Rule 41 'sign', 1, undef ], - [#Rule 40 + [#Rule 42 'sign', 1, undef ], - [#Rule 41 + [#Rule 43 'existingtype', 0, undef ], - [#Rule 42 + [#Rule 44 'existingtype', 2, sub -#line 177 "pidl/idl.yp" +#line 182 "pidl/idl.yp" { "$_[1] $_[2]" } ], - [#Rule 43 + [#Rule 45 'existingtype', 1, undef ], - [#Rule 44 + [#Rule 46 'type', 1, undef ], - [#Rule 45 + [#Rule 47 'type', 1, undef ], - [#Rule 46 + [#Rule 48 'type', 1, sub -#line 181 "pidl/idl.yp" +#line 186 "pidl/idl.yp" { "void" } ], - [#Rule 47 + [#Rule 49 'enum_body', 3, sub -#line 183 "pidl/idl.yp" +#line 188 "pidl/idl.yp" { $_[2] } ], - [#Rule 48 + [#Rule 50 'opt_enum_body', 0, undef ], - [#Rule 49 + [#Rule 51 'opt_enum_body', 1, undef ], - [#Rule 50 + [#Rule 52 'enum', 3, sub -#line 186 "pidl/idl.yp" +#line 191 "pidl/idl.yp" {{ "TYPE" => "ENUM", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 51 + [#Rule 53 'enum_elements', 1, sub -#line 194 "pidl/idl.yp" +#line 199 "pidl/idl.yp" { [ $_[1] ] } ], - [#Rule 52 + [#Rule 54 'enum_elements', 3, sub -#line 195 "pidl/idl.yp" +#line 200 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 53 + [#Rule 55 'enum_element', 1, undef ], - [#Rule 54 + [#Rule 56 'enum_element', 3, sub -#line 199 "pidl/idl.yp" +#line 204 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 55 + [#Rule 57 'bitmap_body', 3, sub -#line 202 "pidl/idl.yp" +#line 207 "pidl/idl.yp" { $_[2] } ], - [#Rule 56 + [#Rule 58 'opt_bitmap_body', 0, undef ], - [#Rule 57 + [#Rule 59 'opt_bitmap_body', 1, undef ], - [#Rule 58 + [#Rule 60 'bitmap', 3, sub -#line 205 "pidl/idl.yp" +#line 210 "pidl/idl.yp" {{ "TYPE" => "BITMAP", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 59 + [#Rule 61 'bitmap_elements', 1, sub -#line 213 "pidl/idl.yp" +#line 218 "pidl/idl.yp" { [ $_[1] ] } ], - [#Rule 60 + [#Rule 62 'bitmap_elements', 3, sub -#line 214 "pidl/idl.yp" +#line 219 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 61 + [#Rule 63 'opt_bitmap_elements', 0, undef ], - [#Rule 62 + [#Rule 64 'opt_bitmap_elements', 1, undef ], - [#Rule 63 + [#Rule 65 'bitmap_element', 3, sub -#line 219 "pidl/idl.yp" +#line 224 "pidl/idl.yp" { "$_[1] ( $_[3] )" } ], - [#Rule 64 + [#Rule 66 'struct_body', 3, sub -#line 222 "pidl/idl.yp" +#line 227 "pidl/idl.yp" { $_[2] } ], - [#Rule 65 + [#Rule 67 'opt_struct_body', 0, undef ], - [#Rule 66 + [#Rule 68 'opt_struct_body', 1, undef ], - [#Rule 67 + [#Rule 69 'struct', 3, sub -#line 226 "pidl/idl.yp" +#line 231 "pidl/idl.yp" {{ "TYPE" => "STRUCT", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 68 + [#Rule 70 'empty_element', 2, sub -#line 234 "pidl/idl.yp" +#line 239 "pidl/idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2675,53 +2708,53 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 69 + [#Rule 71 'base_or_empty', 2, undef ], - [#Rule 70 + [#Rule 72 'base_or_empty', 1, undef ], - [#Rule 71 + [#Rule 73 'optional_base_element', 2, sub -#line 248 "pidl/idl.yp" +#line 253 "pidl/idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], - [#Rule 72 + [#Rule 74 'union_elements', 0, undef ], - [#Rule 73 + [#Rule 75 'union_elements', 2, sub -#line 253 "pidl/idl.yp" +#line 258 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 74 + [#Rule 76 'union_body', 3, sub -#line 256 "pidl/idl.yp" +#line 261 "pidl/idl.yp" { $_[2] } ], - [#Rule 75 + [#Rule 77 'opt_union_body', 0, undef ], - [#Rule 76 + [#Rule 78 'opt_union_body', 1, undef ], - [#Rule 77 + [#Rule 79 'union', 3, sub -#line 260 "pidl/idl.yp" +#line 265 "pidl/idl.yp" {{ "TYPE" => "UNION", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 78 + [#Rule 80 'base_element', 5, sub -#line 268 "pidl/idl.yp" +#line 273 "pidl/idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2732,238 +2765,238 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 79 + [#Rule 81 'pointers', 0, sub -#line 282 "pidl/idl.yp" +#line 287 "pidl/idl.yp" { 0 } ], - [#Rule 80 + [#Rule 82 'pointers', 2, sub -#line 283 "pidl/idl.yp" +#line 288 "pidl/idl.yp" { $_[1]+1 } ], - [#Rule 81 + [#Rule 83 'element_list1', 0, undef ], - [#Rule 82 + [#Rule 84 'element_list1', 3, sub -#line 288 "pidl/idl.yp" +#line 293 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 83 + [#Rule 85 'element_list2', 0, undef ], - [#Rule 84 + [#Rule 86 'element_list2', 1, undef ], - [#Rule 85 + [#Rule 87 'element_list2', 1, sub -#line 294 "pidl/idl.yp" +#line 299 "pidl/idl.yp" { [ $_[1] ] } ], - [#Rule 86 + [#Rule 88 'element_list2', 3, sub -#line 295 "pidl/idl.yp" +#line 300 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 87 + [#Rule 89 'array_len', 0, undef ], - [#Rule 88 + [#Rule 90 'array_len', 3, sub -#line 300 "pidl/idl.yp" +#line 305 "pidl/idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], - [#Rule 89 + [#Rule 91 'array_len', 4, sub -#line 301 "pidl/idl.yp" +#line 306 "pidl/idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], - [#Rule 90 + [#Rule 92 'property_list', 0, undef ], - [#Rule 91 + [#Rule 93 'property_list', 4, sub -#line 307 "pidl/idl.yp" +#line 312 "pidl/idl.yp" { FlattenHash([$_[1],$_[3]]); } ], - [#Rule 92 + [#Rule 94 'properties', 1, sub -#line 310 "pidl/idl.yp" +#line 315 "pidl/idl.yp" { $_[1] } ], - [#Rule 93 + [#Rule 95 'properties', 3, sub -#line 311 "pidl/idl.yp" +#line 316 "pidl/idl.yp" { FlattenHash([$_[1], $_[3]]); } ], - [#Rule 94 + [#Rule 96 'property', 1, sub -#line 314 "pidl/idl.yp" +#line 319 "pidl/idl.yp" {{ "$_[1]" => "1" }} ], - [#Rule 95 + [#Rule 97 'property', 4, sub -#line 315 "pidl/idl.yp" +#line 320 "pidl/idl.yp" {{ "$_[1]" => "$_[3]" }} ], - [#Rule 96 + [#Rule 98 'listtext', 1, undef ], - [#Rule 97 + [#Rule 99 'listtext', 3, sub -#line 320 "pidl/idl.yp" +#line 325 "pidl/idl.yp" { "$_[1] $_[3]" } ], - [#Rule 98 + [#Rule 100 'commalisttext', 1, undef ], - [#Rule 99 + [#Rule 101 'commalisttext', 3, sub -#line 325 "pidl/idl.yp" +#line 330 "pidl/idl.yp" { "$_[1],$_[3]" } ], - [#Rule 100 + [#Rule 102 'anytext', 0, sub -#line 329 "pidl/idl.yp" +#line 334 "pidl/idl.yp" { "" } ], - [#Rule 101 - 'anytext', 1, undef - ], - [#Rule 102 - 'anytext', 1, undef - ], [#Rule 103 'anytext', 1, undef ], [#Rule 104 - 'anytext', 3, -sub -#line 331 "pidl/idl.yp" -{ "$_[1]$_[2]$_[3]" } + 'anytext', 1, undef ], [#Rule 105 - 'anytext', 3, -sub -#line 332 "pidl/idl.yp" -{ "$_[1]$_[2]$_[3]" } + 'anytext', 1, undef ], [#Rule 106 'anytext', 3, sub -#line 333 "pidl/idl.yp" +#line 336 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 107 'anytext', 3, sub -#line 334 "pidl/idl.yp" +#line 337 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 108 'anytext', 3, sub -#line 335 "pidl/idl.yp" +#line 338 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 109 'anytext', 3, sub -#line 336 "pidl/idl.yp" +#line 339 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 110 'anytext', 3, sub -#line 337 "pidl/idl.yp" +#line 340 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 111 'anytext', 3, sub -#line 338 "pidl/idl.yp" +#line 341 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 112 'anytext', 3, sub -#line 339 "pidl/idl.yp" +#line 342 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 113 'anytext', 3, sub -#line 340 "pidl/idl.yp" +#line 343 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 114 'anytext', 3, sub -#line 341 "pidl/idl.yp" +#line 344 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 115 'anytext', 3, sub -#line 342 "pidl/idl.yp" +#line 345 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 116 'anytext', 3, sub -#line 343 "pidl/idl.yp" +#line 346 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 117 + 'anytext', 3, +sub +#line 347 "pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 118 + 'anytext', 3, +sub +#line 348 "pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 119 'anytext', 5, sub -#line 344 "pidl/idl.yp" +#line 349 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 118 + [#Rule 120 'anytext', 5, sub -#line 345 "pidl/idl.yp" +#line 350 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 119 + [#Rule 121 'identifier', 1, undef ], - [#Rule 120 + [#Rule 122 'optional_identifier', 1, undef ], - [#Rule 121 + [#Rule 123 'optional_identifier', 0, undef ], - [#Rule 122 + [#Rule 124 'constant', 1, undef ], - [#Rule 123 + [#Rule 125 'text', 1, sub -#line 359 "pidl/idl.yp" +#line 364 "pidl/idl.yp" { "\"$_[1]\"" } ], - [#Rule 124 + [#Rule 126 'optional_semicolon', 0, undef ], - [#Rule 125 + [#Rule 127 'optional_semicolon', 1, undef ] ], @@ -2971,7 +3004,7 @@ sub bless($self,$class); } -#line 370 "pidl/idl.yp" +#line 375 "pidl/idl.yp" ##################################################################### -- cgit From 9972dc2549d3a67d8790d3a1dfd02a82584ec1b2 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 7 Nov 2006 01:00:27 +0000 Subject: r19599: Fix --includedir. (This used to be commit 0da2bbcf766dc25805ad583fae185045bb390a5f) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index d237db7137..85c5b8b828 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -3144,7 +3144,7 @@ sub parse_file($$) if (! defined $cpp) { $cpp = "cpp"; } - my $includes = map { " -I$_" } @$incdirs; + my $includes = join('',map { " -I$_" } @$incdirs); my $data = `$cpp -D__PIDL__$includes -xc $filename`; $/ = $saved_delim; -- cgit From e2b62f7d4168b5900dbaeadf4d4061abf6c1bd7c Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 5 Jan 2007 15:20:23 +0000 Subject: r20550: Use standard error mechanism in parser. Make sure errors are reported correctly. (This used to be commit 9f794c55a60b09536d6e0dbadfc172e1e74497ff) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 192 ++++++++++++++++++------------------- 1 file changed, 96 insertions(+), 96 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 85c5b8b828..7c4263fd11 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -2288,88 +2288,88 @@ sub new { [#Rule 2 'idl', 2, sub -#line 19 "pidl/idl.yp" +#line 19 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 3 'idl', 2, sub -#line 20 "pidl/idl.yp" +#line 20 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 4 'idl', 2, sub -#line 21 "pidl/idl.yp" +#line 21 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 5 'idl', 2, sub -#line 22 "pidl/idl.yp" +#line 22 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 6 'idl', 2, sub -#line 23 "pidl/idl.yp" +#line 23 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 7 'import', 3, sub -#line 26 "pidl/idl.yp" +#line 26 "idl.yp" {{ "TYPE" => "IMPORT", "PATHS" => $_[2], - "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "FILE" => $_[0]->YYData->{FILE}, "LINE" => $_[0]->YYData->{LINE} }} ], [#Rule 8 'include', 3, sub -#line 33 "pidl/idl.yp" +#line 33 "idl.yp" {{ "TYPE" => "INCLUDE", "PATHS" => $_[2], - "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "FILE" => $_[0]->YYData->{FILE}, "LINE" => $_[0]->YYData->{LINE} }} ], [#Rule 9 'importlib', 3, sub -#line 40 "pidl/idl.yp" +#line 40 "idl.yp" {{ "TYPE" => "IMPORTLIB", "PATHS" => $_[2], - "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "FILE" => $_[0]->YYData->{FILE}, "LINE" => $_[0]->YYData->{LINE} }} ], [#Rule 10 'commalist', 1, sub -#line 49 "pidl/idl.yp" +#line 49 "idl.yp" { [ $_[1] ] } ], [#Rule 11 'commalist', 3, sub -#line 50 "pidl/idl.yp" +#line 50 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 12 'coclass', 7, sub -#line 54 "pidl/idl.yp" +#line 54 "idl.yp" {{ "TYPE" => "COCLASS", "PROPERTIES" => $_[1], "NAME" => $_[3], "DATA" => $_[5], - "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "FILE" => $_[0]->YYData->{FILE}, "LINE" => $_[0]->YYData->{LINE}, }} ], @@ -2379,20 +2379,20 @@ sub [#Rule 14 'interface_names', 4, sub -#line 66 "pidl/idl.yp" +#line 66 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 15 'interface', 8, sub -#line 70 "pidl/idl.yp" +#line 70 "idl.yp" {{ "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], "NAME" => $_[3], "BASE" => $_[4], "DATA" => $_[6], - "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "FILE" => $_[0]->YYData->{FILE}, "LINE" => $_[0]->YYData->{LINE}, }} ], @@ -2402,19 +2402,19 @@ sub [#Rule 17 'base_interface', 2, sub -#line 83 "pidl/idl.yp" +#line 83 "idl.yp" { $_[2] } ], [#Rule 18 'definitions', 1, sub -#line 87 "pidl/idl.yp" +#line 87 "idl.yp" { [ $_[1] ] } ], [#Rule 19 'definitions', 2, sub -#line 88 "pidl/idl.yp" +#line 88 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 20 @@ -2435,21 +2435,21 @@ sub [#Rule 25 'const', 7, sub -#line 96 "pidl/idl.yp" +#line 96 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], "POINTERS" => $_[3], "NAME" => $_[4], "VALUE" => $_[6], - "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "FILE" => $_[0]->YYData->{FILE}, "LINE" => $_[0]->YYData->{LINE}, }} ], [#Rule 26 'const', 8, sub -#line 106 "pidl/idl.yp" +#line 106 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2457,34 +2457,34 @@ sub "NAME" => $_[4], "ARRAY_LEN" => $_[5], "VALUE" => $_[7], - "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "FILE" => $_[0]->YYData->{FILE}, "LINE" => $_[0]->YYData->{LINE}, }} ], [#Rule 27 'function', 7, sub -#line 120 "pidl/idl.yp" +#line 120 "idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], "RETURN_TYPE" => $_[2], "PROPERTIES" => $_[1], "ELEMENTS" => $_[5], - "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "FILE" => $_[0]->YYData->{FILE}, "LINE" => $_[0]->YYData->{LINE}, }} ], [#Rule 28 'declare', 5, sub -#line 132 "pidl/idl.yp" +#line 132 "idl.yp" {{ "TYPE" => "DECLARE", "PROPERTIES" => $_[2], "NAME" => $_[4], "DATA" => $_[3], - "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "FILE" => $_[0]->YYData->{FILE}, "LINE" => $_[0]->YYData->{LINE}, }} ], @@ -2500,7 +2500,7 @@ sub [#Rule 32 'decl_enum', 1, sub -#line 146 "pidl/idl.yp" +#line 146 "idl.yp" {{ "TYPE" => "ENUM" }} @@ -2508,7 +2508,7 @@ sub [#Rule 33 'decl_bitmap', 1, sub -#line 152 "pidl/idl.yp" +#line 152 "idl.yp" {{ "TYPE" => "BITMAP" }} @@ -2516,7 +2516,7 @@ sub [#Rule 34 'decl_union', 1, sub -#line 158 "pidl/idl.yp" +#line 158 "idl.yp" {{ "TYPE" => "UNION" }} @@ -2524,14 +2524,14 @@ sub [#Rule 35 'typedef', 6, sub -#line 164 "pidl/idl.yp" +#line 164 "idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[2], "NAME" => $_[4], "DATA" => $_[3], "ARRAY_LEN" => $_[5], - "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "FILE" => $_[0]->YYData->{FILE}, "LINE" => $_[0]->YYData->{LINE}, }} ], @@ -2550,7 +2550,7 @@ sub [#Rule 40 'typedecl', 2, sub -#line 177 "pidl/idl.yp" +#line 177 "idl.yp" { $_[1] } ], [#Rule 41 @@ -2565,7 +2565,7 @@ sub [#Rule 44 'existingtype', 2, sub -#line 182 "pidl/idl.yp" +#line 182 "idl.yp" { "$_[1] $_[2]" } ], [#Rule 45 @@ -2580,13 +2580,13 @@ sub [#Rule 48 'type', 1, sub -#line 186 "pidl/idl.yp" +#line 186 "idl.yp" { "void" } ], [#Rule 49 'enum_body', 3, sub -#line 188 "pidl/idl.yp" +#line 188 "idl.yp" { $_[2] } ], [#Rule 50 @@ -2598,7 +2598,7 @@ sub [#Rule 52 'enum', 3, sub -#line 191 "pidl/idl.yp" +#line 191 "idl.yp" {{ "TYPE" => "ENUM", "NAME" => $_[2], @@ -2608,13 +2608,13 @@ sub [#Rule 53 'enum_elements', 1, sub -#line 199 "pidl/idl.yp" +#line 199 "idl.yp" { [ $_[1] ] } ], [#Rule 54 'enum_elements', 3, sub -#line 200 "pidl/idl.yp" +#line 200 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 55 @@ -2623,13 +2623,13 @@ sub [#Rule 56 'enum_element', 3, sub -#line 204 "pidl/idl.yp" +#line 204 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 57 'bitmap_body', 3, sub -#line 207 "pidl/idl.yp" +#line 207 "idl.yp" { $_[2] } ], [#Rule 58 @@ -2641,7 +2641,7 @@ sub [#Rule 60 'bitmap', 3, sub -#line 210 "pidl/idl.yp" +#line 210 "idl.yp" {{ "TYPE" => "BITMAP", "NAME" => $_[2], @@ -2651,13 +2651,13 @@ sub [#Rule 61 'bitmap_elements', 1, sub -#line 218 "pidl/idl.yp" +#line 218 "idl.yp" { [ $_[1] ] } ], [#Rule 62 'bitmap_elements', 3, sub -#line 219 "pidl/idl.yp" +#line 219 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 63 @@ -2669,13 +2669,13 @@ sub [#Rule 65 'bitmap_element', 3, sub -#line 224 "pidl/idl.yp" +#line 224 "idl.yp" { "$_[1] ( $_[3] )" } ], [#Rule 66 'struct_body', 3, sub -#line 227 "pidl/idl.yp" +#line 227 "idl.yp" { $_[2] } ], [#Rule 67 @@ -2687,7 +2687,7 @@ sub [#Rule 69 'struct', 3, sub -#line 231 "pidl/idl.yp" +#line 231 "idl.yp" {{ "TYPE" => "STRUCT", "NAME" => $_[2], @@ -2697,14 +2697,14 @@ sub [#Rule 70 'empty_element', 2, sub -#line 239 "pidl/idl.yp" +#line 239 "idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", "PROPERTIES" => $_[1], "POINTERS" => 0, "ARRAY_LEN" => [], - "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "FILE" => $_[0]->YYData->{FILE}, "LINE" => $_[0]->YYData->{LINE}, }} ], @@ -2717,7 +2717,7 @@ sub [#Rule 73 'optional_base_element', 2, sub -#line 253 "pidl/idl.yp" +#line 253 "idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], [#Rule 74 @@ -2726,13 +2726,13 @@ sub [#Rule 75 'union_elements', 2, sub -#line 258 "pidl/idl.yp" +#line 258 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 76 'union_body', 3, sub -#line 261 "pidl/idl.yp" +#line 261 "idl.yp" { $_[2] } ], [#Rule 77 @@ -2744,7 +2744,7 @@ sub [#Rule 79 'union', 3, sub -#line 265 "pidl/idl.yp" +#line 265 "idl.yp" {{ "TYPE" => "UNION", "NAME" => $_[2], @@ -2754,27 +2754,27 @@ sub [#Rule 80 'base_element', 5, sub -#line 273 "pidl/idl.yp" +#line 273 "idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], "PROPERTIES" => $_[1], "POINTERS" => $_[3], "ARRAY_LEN" => $_[5], - "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "FILE" => $_[0]->YYData->{FILE}, "LINE" => $_[0]->YYData->{LINE}, }} ], [#Rule 81 'pointers', 0, sub -#line 287 "pidl/idl.yp" +#line 287 "idl.yp" { 0 } ], [#Rule 82 'pointers', 2, sub -#line 288 "pidl/idl.yp" +#line 288 "idl.yp" { $_[1]+1 } ], [#Rule 83 @@ -2783,7 +2783,7 @@ sub [#Rule 84 'element_list1', 3, sub -#line 293 "pidl/idl.yp" +#line 293 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 85 @@ -2795,13 +2795,13 @@ sub [#Rule 87 'element_list2', 1, sub -#line 299 "pidl/idl.yp" +#line 299 "idl.yp" { [ $_[1] ] } ], [#Rule 88 'element_list2', 3, sub -#line 300 "pidl/idl.yp" +#line 300 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 89 @@ -2810,13 +2810,13 @@ sub [#Rule 90 'array_len', 3, sub -#line 305 "pidl/idl.yp" +#line 305 "idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], [#Rule 91 'array_len', 4, sub -#line 306 "pidl/idl.yp" +#line 306 "idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], [#Rule 92 @@ -2825,31 +2825,31 @@ sub [#Rule 93 'property_list', 4, sub -#line 312 "pidl/idl.yp" +#line 312 "idl.yp" { FlattenHash([$_[1],$_[3]]); } ], [#Rule 94 'properties', 1, sub -#line 315 "pidl/idl.yp" +#line 315 "idl.yp" { $_[1] } ], [#Rule 95 'properties', 3, sub -#line 316 "pidl/idl.yp" +#line 316 "idl.yp" { FlattenHash([$_[1], $_[3]]); } ], [#Rule 96 'property', 1, sub -#line 319 "pidl/idl.yp" +#line 319 "idl.yp" {{ "$_[1]" => "1" }} ], [#Rule 97 'property', 4, sub -#line 320 "pidl/idl.yp" +#line 320 "idl.yp" {{ "$_[1]" => "$_[3]" }} ], [#Rule 98 @@ -2858,7 +2858,7 @@ sub [#Rule 99 'listtext', 3, sub -#line 325 "pidl/idl.yp" +#line 325 "idl.yp" { "$_[1] $_[3]" } ], [#Rule 100 @@ -2867,13 +2867,13 @@ sub [#Rule 101 'commalisttext', 3, sub -#line 330 "pidl/idl.yp" +#line 330 "idl.yp" { "$_[1],$_[3]" } ], [#Rule 102 'anytext', 0, sub -#line 334 "pidl/idl.yp" +#line 334 "idl.yp" { "" } ], [#Rule 103 @@ -2888,91 +2888,91 @@ sub [#Rule 106 'anytext', 3, sub -#line 336 "pidl/idl.yp" +#line 336 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 107 'anytext', 3, sub -#line 337 "pidl/idl.yp" +#line 337 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 108 'anytext', 3, sub -#line 338 "pidl/idl.yp" +#line 338 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 109 'anytext', 3, sub -#line 339 "pidl/idl.yp" +#line 339 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 110 'anytext', 3, sub -#line 340 "pidl/idl.yp" +#line 340 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 111 'anytext', 3, sub -#line 341 "pidl/idl.yp" +#line 341 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 112 'anytext', 3, sub -#line 342 "pidl/idl.yp" +#line 342 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 113 'anytext', 3, sub -#line 343 "pidl/idl.yp" +#line 343 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 114 'anytext', 3, sub -#line 344 "pidl/idl.yp" +#line 344 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 115 'anytext', 3, sub -#line 345 "pidl/idl.yp" +#line 345 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 116 'anytext', 3, sub -#line 346 "pidl/idl.yp" +#line 346 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 117 'anytext', 3, sub -#line 347 "pidl/idl.yp" +#line 347 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 118 'anytext', 3, sub -#line 348 "pidl/idl.yp" +#line 348 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 119 'anytext', 5, sub -#line 349 "pidl/idl.yp" +#line 349 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 120 'anytext', 5, sub -#line 350 "pidl/idl.yp" +#line 350 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 121 @@ -2990,7 +2990,7 @@ sub [#Rule 125 'text', 1, sub -#line 364 "pidl/idl.yp" +#line 364 "idl.yp" { "\"$_[1]\"" } ], [#Rule 126 @@ -3004,9 +3004,11 @@ sub bless($self,$class); } -#line 375 "pidl/idl.yp" +#line 375 "idl.yp" +use Parse::Pidl qw(error); + ##################################################################### # flatten an array of hashes into a single hash sub FlattenHash($) @@ -3053,15 +3055,13 @@ sub CleanData($) sub _Error { if (exists $_[0]->YYData->{ERRMSG}) { - print $_[0]->YYData->{ERRMSG}; + error($_[0]->YYData, $_[0]->YYData->{ERRMSG}); delete $_[0]->YYData->{ERRMSG}; return; }; - my $line = $_[0]->YYData->{LINE}; my $last_token = $_[0]->YYData->{LAST_TOKEN}; - my $file = $_[0]->YYData->{INPUT_FILENAME}; - print "$file:$line: Syntax error near '$last_token'\n"; + error($_[0]->YYData, "Syntax error near '$last_token'"); } sub _Lexer($) @@ -3077,12 +3077,12 @@ again: if (/^\#/) { if (s/^\# (\d+) \"(.*?)\"( \d+|)//) { $parser->YYData->{LINE} = $1-1; - $parser->YYData->{INPUT_FILENAME} = $2; + $parser->YYData->{FILE} = $2; goto again; } if (s/^\#line (\d+) \"(.*?)\"( \d+|)//) { $parser->YYData->{LINE} = $1-1; - $parser->YYData->{INPUT_FILENAME} = $2; + $parser->YYData->{FILE} = $2; goto again; } if (s/^(\#.*)$//m) { @@ -3124,7 +3124,7 @@ sub parse_string my $self = new Parse::Pidl::IDL; - $self->YYData->{INPUT_FILENAME} = $filename; + $self->YYData->{FILE} = $filename; $self->YYData->{INPUT} = $data; $self->YYData->{LINE} = 0; $self->YYData->{LAST_TOKEN} = "NONE"; -- cgit From 74239c2e944fdbe1ff137e91d80576b87c59d478 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 5 Jan 2007 20:18:33 +0000 Subject: r20563: Start using the new parser in ParseExpr(). It's now trivial to use this to check for NULL pointers when pointers are being dereferenced (#4218). There are exactly 500 tests for pidl now :-) (This used to be commit d3146f3bcd4541f890d6c1b072ff34853e9239d2) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 477 +------------------------------------ 1 file changed, 1 insertion(+), 476 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 7c4263fd11..13a34fae64 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -12,482 +12,7 @@ use vars qw ( @ISA ); use strict; @ISA= qw ( Parse::Yapp::Driver ); -#Included Parse/Yapp/Driver.pm file---------------------------------------- -{ -# -# Module Parse::Yapp::Driver -# -# This module is part of the Parse::Yapp package available on your -# nearest CPAN -# -# Any use of this module in a standalone parser make the included -# text under the same copyright as the Parse::Yapp module itself. -# -# This notice should remain unchanged. -# -# (c) Copyright 1998-2001 Francois Desarmenien, all rights reserved. -# (see the pod text in Parse::Yapp module for use and distribution rights) -# - -package Parse::Yapp::Driver; - -require 5.004; - -use strict; - -use vars qw ( $VERSION $COMPATIBLE $FILENAME ); - -$VERSION = '1.05'; -$COMPATIBLE = '0.07'; -$FILENAME=__FILE__; - -use Carp; - -#Known parameters, all starting with YY (leading YY will be discarded) -my(%params)=(YYLEX => 'CODE', 'YYERROR' => 'CODE', YYVERSION => '', - YYRULES => 'ARRAY', YYSTATES => 'ARRAY', YYDEBUG => ''); -#Mandatory parameters -my(@params)=('LEX','RULES','STATES'); - -sub new { - my($class)=shift; - my($errst,$nberr,$token,$value,$check,$dotpos); - my($self)={ ERROR => \&_Error, - ERRST => \$errst, - NBERR => \$nberr, - TOKEN => \$token, - VALUE => \$value, - DOTPOS => \$dotpos, - STACK => [], - DEBUG => 0, - CHECK => \$check }; - - _CheckParams( [], \%params, \@_, $self ); - - exists($$self{VERSION}) - and $$self{VERSION} < $COMPATIBLE - and croak "Yapp driver version $VERSION ". - "incompatible with version $$self{VERSION}:\n". - "Please recompile parser module."; - - ref($class) - and $class=ref($class); - - bless($self,$class); -} - -sub YYParse { - my($self)=shift; - my($retval); - - _CheckParams( \@params, \%params, \@_, $self ); - - if($$self{DEBUG}) { - _DBLoad(); - $retval = eval '$self->_DBParse()';#Do not create stab entry on compile - $@ and die $@; - } - else { - $retval = $self->_Parse(); - } - $retval -} - -sub YYData { - my($self)=shift; - - exists($$self{USER}) - or $$self{USER}={}; - - $$self{USER}; - -} - -sub YYErrok { - my($self)=shift; - - ${$$self{ERRST}}=0; - undef; -} - -sub YYNberr { - my($self)=shift; - - ${$$self{NBERR}}; -} - -sub YYRecovering { - my($self)=shift; - - ${$$self{ERRST}} != 0; -} - -sub YYAbort { - my($self)=shift; - - ${$$self{CHECK}}='ABORT'; - undef; -} - -sub YYAccept { - my($self)=shift; - - ${$$self{CHECK}}='ACCEPT'; - undef; -} - -sub YYError { - my($self)=shift; - - ${$$self{CHECK}}='ERROR'; - undef; -} - -sub YYSemval { - my($self)=shift; - my($index)= $_[0] - ${$$self{DOTPOS}} - 1; - - $index < 0 - and -$index <= @{$$self{STACK}} - and return $$self{STACK}[$index][1]; - - undef; #Invalid index -} - -sub YYCurtok { - my($self)=shift; - - @_ - and ${$$self{TOKEN}}=$_[0]; - ${$$self{TOKEN}}; -} - -sub YYCurval { - my($self)=shift; - - @_ - and ${$$self{VALUE}}=$_[0]; - ${$$self{VALUE}}; -} - -sub YYExpect { - my($self)=shift; - - keys %{$self->{STATES}[$self->{STACK}[-1][0]]{ACTIONS}} -} - -sub YYLexer { - my($self)=shift; - - $$self{LEX}; -} - - -################# -# Private stuff # -################# - - -sub _CheckParams { - my($mandatory,$checklist,$inarray,$outhash)=@_; - my($prm,$value); - my($prmlst)={}; - - while(($prm,$value)=splice(@$inarray,0,2)) { - $prm=uc($prm); - exists($$checklist{$prm}) - or croak("Unknow parameter '$prm'"); - ref($value) eq $$checklist{$prm} - or croak("Invalid value for parameter '$prm'"); - $prm=unpack('@2A*',$prm); - $$outhash{$prm}=$value; - } - for (@$mandatory) { - exists($$outhash{$_}) - or croak("Missing mandatory parameter '".lc($_)."'"); - } -} - -sub _Error { - print "Parse error.\n"; -} - -sub _DBLoad { - { - no strict 'refs'; - - exists(${__PACKAGE__.'::'}{_DBParse})#Already loaded ? - and return; - } - my($fname)=__FILE__; - my(@drv); - open(DRV,"<$fname") or die "Report this as a BUG: Cannot open $fname"; - while() { - /^\s*sub\s+_Parse\s*{\s*$/ .. /^\s*}\s*#\s*_Parse\s*$/ - and do { - s/^#DBG>//; - push(@drv,$_); - } - } - close(DRV); - - $drv[0]=~s/_P/_DBP/; - eval join('',@drv); -} - -#Note that for loading debugging version of the driver, -#this file will be parsed from 'sub _Parse' up to '}#_Parse' inclusive. -#So, DO NOT remove comment at end of sub !!! -sub _Parse { - my($self)=shift; - - my($rules,$states,$lex,$error) - = @$self{ 'RULES', 'STATES', 'LEX', 'ERROR' }; - my($errstatus,$nberror,$token,$value,$stack,$check,$dotpos) - = @$self{ 'ERRST', 'NBERR', 'TOKEN', 'VALUE', 'STACK', 'CHECK', 'DOTPOS' }; - -#DBG> my($debug)=$$self{DEBUG}; -#DBG> my($dbgerror)=0; - -#DBG> my($ShowCurToken) = sub { -#DBG> my($tok)='>'; -#DBG> for (split('',$$token)) { -#DBG> $tok.= (ord($_) < 32 or ord($_) > 126) -#DBG> ? sprintf('<%02X>',ord($_)) -#DBG> : $_; -#DBG> } -#DBG> $tok.='<'; -#DBG> }; - - $$errstatus=0; - $$nberror=0; - ($$token,$$value)=(undef,undef); - @$stack=( [ 0, undef ] ); - $$check=''; - - while(1) { - my($actions,$act,$stateno); - - $stateno=$$stack[-1][0]; - $actions=$$states[$stateno]; - -#DBG> print STDERR ('-' x 40),"\n"; -#DBG> $debug & 0x2 -#DBG> and print STDERR "In state $stateno:\n"; -#DBG> $debug & 0x08 -#DBG> and print STDERR "Stack:[". -#DBG> join(',',map { $$_[0] } @$stack). -#DBG> "]\n"; - - - if (exists($$actions{ACTIONS})) { - - defined($$token) - or do { - ($$token,$$value)=&$lex($self); -#DBG> $debug & 0x01 -#DBG> and print STDERR "Need token. Got ".&$ShowCurToken."\n"; - }; - - $act= exists($$actions{ACTIONS}{$$token}) - ? $$actions{ACTIONS}{$$token} - : exists($$actions{DEFAULT}) - ? $$actions{DEFAULT} - : undef; - } - else { - $act=$$actions{DEFAULT}; -#DBG> $debug & 0x01 -#DBG> and print STDERR "Don't need token.\n"; - } - - defined($act) - and do { - - $act > 0 - and do { #shift - -#DBG> $debug & 0x04 -#DBG> and print STDERR "Shift and go to state $act.\n"; - - $$errstatus - and do { - --$$errstatus; - -#DBG> $debug & 0x10 -#DBG> and $dbgerror -#DBG> and $$errstatus == 0 -#DBG> and do { -#DBG> print STDERR "**End of Error recovery.\n"; -#DBG> $dbgerror=0; -#DBG> }; - }; - - - push(@$stack,[ $act, $$value ]); - - $$token ne '' #Don't eat the eof - and $$token=$$value=undef; - next; - }; - - #reduce - my($lhs,$len,$code,@sempar,$semval); - ($lhs,$len,$code)=@{$$rules[-$act]}; - -#DBG> $debug & 0x04 -#DBG> and $act -#DBG> and print STDERR "Reduce using rule ".-$act." ($lhs,$len): "; - - $act - or $self->YYAccept(); - - $$dotpos=$len; - - unpack('A1',$lhs) eq '@' #In line rule - and do { - $lhs =~ /^\@[0-9]+\-([0-9]+)$/ - or die "In line rule name '$lhs' ill formed: ". - "report it as a BUG.\n"; - $$dotpos = $1; - }; - - @sempar = $$dotpos - ? map { $$_[1] } @$stack[ -$$dotpos .. -1 ] - : (); - - $semval = $code ? &$code( $self, @sempar ) - : @sempar ? $sempar[0] : undef; - - splice(@$stack,-$len,$len); - - $$check eq 'ACCEPT' - and do { - -#DBG> $debug & 0x04 -#DBG> and print STDERR "Accept.\n"; - - return($semval); - }; - - $$check eq 'ABORT' - and do { - -#DBG> $debug & 0x04 -#DBG> and print STDERR "Abort.\n"; - - return(undef); - - }; - -#DBG> $debug & 0x04 -#DBG> and print STDERR "Back to state $$stack[-1][0], then "; - - $$check eq 'ERROR' - or do { -#DBG> $debug & 0x04 -#DBG> and print STDERR -#DBG> "go to state $$states[$$stack[-1][0]]{GOTOS}{$lhs}.\n"; - -#DBG> $debug & 0x10 -#DBG> and $dbgerror -#DBG> and $$errstatus == 0 -#DBG> and do { -#DBG> print STDERR "**End of Error recovery.\n"; -#DBG> $dbgerror=0; -#DBG> }; - - push(@$stack, - [ $$states[$$stack[-1][0]]{GOTOS}{$lhs}, $semval ]); - $$check=''; - next; - }; - -#DBG> $debug & 0x04 -#DBG> and print STDERR "Forced Error recovery.\n"; - - $$check=''; - - }; - - #Error - $$errstatus - or do { - - $$errstatus = 1; - &$error($self); - $$errstatus # if 0, then YYErrok has been called - or next; # so continue parsing - -#DBG> $debug & 0x10 -#DBG> and do { -#DBG> print STDERR "**Entering Error recovery.\n"; -#DBG> ++$dbgerror; -#DBG> }; - - ++$$nberror; - - }; - - $$errstatus == 3 #The next token is not valid: discard it - and do { - $$token eq '' # End of input: no hope - and do { -#DBG> $debug & 0x10 -#DBG> and print STDERR "**At eof: aborting.\n"; - return(undef); - }; - -#DBG> $debug & 0x10 -#DBG> and print STDERR "**Dicard invalid token ".&$ShowCurToken.".\n"; - - $$token=$$value=undef; - }; - - $$errstatus=3; - - while( @$stack - and ( not exists($$states[$$stack[-1][0]]{ACTIONS}) - or not exists($$states[$$stack[-1][0]]{ACTIONS}{error}) - or $$states[$$stack[-1][0]]{ACTIONS}{error} <= 0)) { - -#DBG> $debug & 0x10 -#DBG> and print STDERR "**Pop state $$stack[-1][0].\n"; - - pop(@$stack); - } - - @$stack - or do { - -#DBG> $debug & 0x10 -#DBG> and print STDERR "**No state left on stack: aborting.\n"; - - return(undef); - }; - - #shift the error token - -#DBG> $debug & 0x10 -#DBG> and print STDERR "**Shift \$error token and go to state ". -#DBG> $$states[$$stack[-1][0]]{ACTIONS}{error}. -#DBG> ".\n"; - - push(@$stack, [ $$states[$$stack[-1][0]]{ACTIONS}{error}, undef ]); - - } - - #never reached - croak("Error in driver logic. Please, report it as a BUG"); - -}#_Parse -#DO NOT remove comment - -1; - -} -#End of include-------------------------------------------------- - +use Parse::Yapp::Driver; -- cgit From cfa230c480b0c55a23e23dcb39e1b170da576c95 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 9 Jan 2007 06:02:41 +0000 Subject: r20625: Fix couple of warnings. (This used to be commit 203076129b967ccc6258e807280dc1b75583a064) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 423 ++++++++++++++++++------------------- 1 file changed, 209 insertions(+), 214 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 13a34fae64..3d9eb4ea74 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -37,7 +37,7 @@ sub new { "import" => 6, "include" => 11 }, - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'importlib' => 9, 'interface' => 8, @@ -106,7 +106,7 @@ sub new { } }, {#State 13 - DEFAULT => -125 + DEFAULT => -124 }, {#State 14 DEFAULT => -10 @@ -161,7 +161,7 @@ sub new { } }, {#State 22 - DEFAULT => -121 + DEFAULT => -120 }, {#State 23 ACTIONS => { @@ -187,10 +187,10 @@ sub new { ACTIONS => { "(" => 36 }, - DEFAULT => -96 + DEFAULT => -95 }, {#State 27 - DEFAULT => -94 + DEFAULT => -93 }, {#State 28 DEFAULT => -7 @@ -230,7 +230,7 @@ sub new { } }, {#State 35 - DEFAULT => -93 + DEFAULT => -92 }, {#State 36 ACTIONS => { @@ -238,7 +238,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'text' => 46, @@ -266,7 +266,7 @@ sub new { "const" => 58, "struct" => 61 }, - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'typedecl' => 62, 'function' => 51, @@ -284,7 +284,7 @@ sub new { } }, {#State 40 - DEFAULT => -95 + DEFAULT => -94 }, {#State 41 ACTIONS => { @@ -304,7 +304,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -98 + DEFAULT => -97 }, {#State 42 ACTIONS => { @@ -313,22 +313,22 @@ sub new { } }, {#State 43 - DEFAULT => -104 + DEFAULT => -103 }, {#State 44 - DEFAULT => -124 + DEFAULT => -123 }, {#State 45 - DEFAULT => -103 + DEFAULT => -102 }, {#State 46 - DEFAULT => -105 + DEFAULT => -104 }, {#State 47 ACTIONS => { ";" => 86 }, - DEFAULT => -126, + DEFAULT => -125, GOTOS => { 'optional_semicolon' => 87 } @@ -342,7 +342,7 @@ sub new { } }, {#State 49 - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'property_list' => 89 } @@ -351,7 +351,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 90 }, - DEFAULT => -123, + DEFAULT => -122, GOTOS => { 'optional_identifier' => 91 } @@ -370,7 +370,7 @@ sub new { "const" => 58, "struct" => 61 }, - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'typedecl' => 62, 'function' => 51, @@ -419,7 +419,7 @@ sub new { DEFAULT => -18 }, {#State 56 - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'property_list' => 103 } @@ -445,7 +445,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 90 }, - DEFAULT => -123, + DEFAULT => -122, GOTOS => { 'optional_identifier' => 105 } @@ -457,7 +457,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 90 }, - DEFAULT => -123, + DEFAULT => -122, GOTOS => { 'optional_identifier' => 106 } @@ -466,7 +466,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 90 }, - DEFAULT => -123, + DEFAULT => -122, GOTOS => { 'optional_identifier' => 107 } @@ -489,7 +489,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 108, @@ -503,7 +503,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 109, @@ -517,7 +517,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 110, @@ -531,7 +531,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 111, @@ -545,7 +545,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 112, @@ -559,7 +559,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 113, @@ -573,7 +573,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 114, @@ -587,7 +587,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 115, @@ -602,7 +602,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 117, @@ -616,7 +616,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 118, @@ -630,7 +630,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 119, @@ -644,7 +644,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 115, @@ -659,7 +659,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 121, @@ -673,7 +673,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 122, @@ -687,7 +687,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 123, @@ -701,7 +701,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 124, @@ -710,10 +710,10 @@ sub new { } }, {#State 85 - DEFAULT => -97 + DEFAULT => -96 }, {#State 86 - DEFAULT => -127 + DEFAULT => -126 }, {#State 87 DEFAULT => -12 @@ -748,13 +748,13 @@ sub new { } }, {#State 90 - DEFAULT => -122 + DEFAULT => -121 }, {#State 91 ACTIONS => { "{" => 128 }, - DEFAULT => -77, + DEFAULT => -76, GOTOS => { 'union_body' => 129, 'opt_union_body' => 127 @@ -764,7 +764,7 @@ sub new { ACTIONS => { ";" => 86 }, - DEFAULT => -126, + DEFAULT => -125, GOTOS => { 'optional_semicolon' => 130 } @@ -776,13 +776,13 @@ sub new { DEFAULT => -40 }, {#State 95 - DEFAULT => -48 + DEFAULT => -47 }, {#State 96 - DEFAULT => -46 + DEFAULT => -45 }, {#State 97 - DEFAULT => -45 + DEFAULT => -44 }, {#State 98 ACTIONS => { @@ -793,7 +793,7 @@ sub new { } }, {#State 99 - DEFAULT => -47 + DEFAULT => -46 }, {#State 100 DEFAULT => -41 @@ -824,7 +824,7 @@ sub new { } }, {#State 104 - DEFAULT => -81, + DEFAULT => -80, GOTOS => { 'pointers' => 140 } @@ -833,7 +833,7 @@ sub new { ACTIONS => { "{" => 142 }, - DEFAULT => -67, + DEFAULT => -66, GOTOS => { 'struct_body' => 141, 'opt_struct_body' => 143 @@ -843,7 +843,7 @@ sub new { ACTIONS => { "{" => 144 }, - DEFAULT => -50, + DEFAULT => -49, GOTOS => { 'opt_enum_body' => 146, 'enum_body' => 145 @@ -853,7 +853,7 @@ sub new { ACTIONS => { "{" => 148 }, - DEFAULT => -58, + DEFAULT => -57, GOTOS => { 'bitmap_body' => 149, 'opt_bitmap_body' => 147 @@ -877,7 +877,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -115 + DEFAULT => -114 }, {#State 109 ACTIONS => { @@ -888,7 +888,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -106 + DEFAULT => -105 }, {#State 110 ACTIONS => { @@ -908,7 +908,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -110 + DEFAULT => -109 }, {#State 111 ACTIONS => { @@ -928,7 +928,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -118 + DEFAULT => -117 }, {#State 112 ACTIONS => { @@ -939,7 +939,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -117 + DEFAULT => -116 }, {#State 113 ACTIONS => { @@ -950,7 +950,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -108 + DEFAULT => -107 }, {#State 114 ACTIONS => { @@ -970,7 +970,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -114 + DEFAULT => -113 }, {#State 115 ACTIONS => { @@ -990,7 +990,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -100 + DEFAULT => -99 }, {#State 116 ACTIONS => { @@ -1007,7 +1007,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -112 + DEFAULT => -111 }, {#State 118 ACTIONS => { @@ -1018,7 +1018,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -113 + DEFAULT => -112 }, {#State 119 ACTIONS => { @@ -1038,7 +1038,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -116 + DEFAULT => -115 }, {#State 120 ACTIONS => { @@ -1055,7 +1055,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -111 + DEFAULT => -110 }, {#State 122 ACTIONS => { @@ -1066,7 +1066,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -107 + DEFAULT => -106 }, {#State 123 ACTIONS => { @@ -1077,7 +1077,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -109 + DEFAULT => -108 }, {#State 124 ACTIONS => { @@ -1097,7 +1097,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -99 + DEFAULT => -98 }, {#State 125 DEFAULT => -14 @@ -1111,22 +1111,22 @@ sub new { } }, {#State 127 - DEFAULT => -79 + DEFAULT => -78 }, {#State 128 - DEFAULT => -74, + DEFAULT => -73, GOTOS => { 'union_elements' => 154 } }, {#State 129 - DEFAULT => -78 + DEFAULT => -77 }, {#State 130 DEFAULT => -15 }, {#State 131 - DEFAULT => -44 + DEFAULT => -43 }, {#State 132 ACTIONS => { @@ -1169,16 +1169,16 @@ sub new { } }, {#State 141 - DEFAULT => -68 + DEFAULT => -67 }, {#State 142 - DEFAULT => -83, + DEFAULT => -82, GOTOS => { 'element_list1' => 159 } }, {#State 143 - DEFAULT => -69 + DEFAULT => -68 }, {#State 144 ACTIONS => { @@ -1191,19 +1191,19 @@ sub new { } }, {#State 145 - DEFAULT => -51 + DEFAULT => -50 }, {#State 146 - DEFAULT => -52 + DEFAULT => -51 }, {#State 147 - DEFAULT => -60 + DEFAULT => -59 }, {#State 148 ACTIONS => { 'IDENTIFIER' => 22 }, - DEFAULT => -63, + DEFAULT => -62, GOTOS => { 'identifier' => 165, 'bitmap_element' => 164, @@ -1212,7 +1212,7 @@ sub new { } }, {#State 149 - DEFAULT => -59 + DEFAULT => -58 }, {#State 150 ACTIONS => { @@ -1220,7 +1220,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 167, @@ -1234,7 +1234,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 168, @@ -1248,7 +1248,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 169, @@ -1260,7 +1260,7 @@ sub new { ACTIONS => { "[" => 170 }, - DEFAULT => -89, + DEFAULT => -88, GOTOS => { 'array_len' => 171 } @@ -1269,7 +1269,7 @@ sub new { ACTIONS => { "}" => 172 }, - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'optional_base_element' => 174, 'property_list' => 173 @@ -1277,11 +1277,11 @@ sub new { }, {#State 155 ACTIONS => { - "," => -85, + "," => -84, "void" => 178, - ")" => -85 + ")" => -84 }, - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'base_element' => 175, 'element_list2' => 177, @@ -1303,13 +1303,13 @@ sub new { } }, {#State 158 - DEFAULT => -82 + DEFAULT => -81 }, {#State 159 ACTIONS => { "}" => 182 }, - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'base_element' => 183, 'property_list' => 176 @@ -1319,10 +1319,10 @@ sub new { ACTIONS => { "=" => 184 }, - DEFAULT => -55 + DEFAULT => -54 }, {#State 161 - DEFAULT => -53 + DEFAULT => -52 }, {#State 162 ACTIONS => { @@ -1334,10 +1334,10 @@ sub new { ACTIONS => { "," => 187 }, - DEFAULT => -64 + DEFAULT => -63 }, {#State 164 - DEFAULT => -61 + DEFAULT => -60 }, {#State 165 ACTIONS => { @@ -1367,7 +1367,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -120 + DEFAULT => -119 }, {#State 168 ACTIONS => { @@ -1387,7 +1387,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -101 + DEFAULT => -100 }, {#State 169 ACTIONS => { @@ -1398,7 +1398,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -119 + DEFAULT => -118 }, {#State 170 ACTIONS => { @@ -1407,7 +1407,7 @@ sub new { "]" => 190, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 191, @@ -1421,13 +1421,13 @@ sub new { } }, {#State 172 - DEFAULT => -76 + DEFAULT => -75 }, {#State 173 ACTIONS => { "[" => 17 }, - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'base_or_empty' => 193, 'base_element' => 194, @@ -1436,10 +1436,10 @@ sub new { } }, {#State 174 - DEFAULT => -75 + DEFAULT => -74 }, {#State 175 - DEFAULT => -87 + DEFAULT => -86 }, {#State 176 ACTIONS => { @@ -1453,7 +1453,6 @@ sub new { "[" => 17, "struct" => 61 }, - DEFAULT => -43, GOTOS => { 'existingtype' => 99, 'bitmap' => 65, @@ -1473,7 +1472,7 @@ sub new { } }, {#State 178 - DEFAULT => -86 + DEFAULT => -85 }, {#State 179 DEFAULT => -28 @@ -1489,7 +1488,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 201, @@ -1498,7 +1497,7 @@ sub new { } }, {#State 182 - DEFAULT => -66 + DEFAULT => -65 }, {#State 183 ACTIONS => { @@ -1511,7 +1510,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 203, @@ -1520,7 +1519,7 @@ sub new { } }, {#State 185 - DEFAULT => -49 + DEFAULT => -48 }, {#State 186 ACTIONS => { @@ -1546,7 +1545,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 206, @@ -1555,13 +1554,13 @@ sub new { } }, {#State 189 - DEFAULT => -57 + DEFAULT => -56 }, {#State 190 ACTIONS => { "[" => 170 }, - DEFAULT => -89, + DEFAULT => -88, GOTOS => { 'array_len' => 207 } @@ -1590,7 +1589,7 @@ sub new { DEFAULT => -35 }, {#State 193 - DEFAULT => -73 + DEFAULT => -72 }, {#State 194 ACTIONS => { @@ -1598,7 +1597,7 @@ sub new { } }, {#State 195 - DEFAULT => -72 + DEFAULT => -71 }, {#State 196 ACTIONS => { @@ -1613,7 +1612,6 @@ sub new { "[" => 17, "struct" => 61 }, - DEFAULT => -43, GOTOS => { 'existingtype' => 99, 'bitmap' => 65, @@ -1627,13 +1625,13 @@ sub new { } }, {#State 197 - DEFAULT => -81, + DEFAULT => -80, GOTOS => { 'pointers' => 211 } }, {#State 198 - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'base_element' => 212, 'property_list' => 176 @@ -1650,7 +1648,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 214, @@ -1679,7 +1677,7 @@ sub new { } }, {#State 202 - DEFAULT => -84 + DEFAULT => -83 }, {#State 203 ACTIONS => { @@ -1699,13 +1697,13 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -56 + DEFAULT => -55 }, {#State 204 - DEFAULT => -54 + DEFAULT => -53 }, {#State 205 - DEFAULT => -62 + DEFAULT => -61 }, {#State 206 ACTIONS => { @@ -1725,25 +1723,25 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -65 + DEFAULT => -64 }, {#State 207 - DEFAULT => -90 + DEFAULT => -89 }, {#State 208 ACTIONS => { "[" => 170 }, - DEFAULT => -89, + DEFAULT => -88, GOTOS => { 'array_len' => 216 } }, {#State 209 - DEFAULT => -71 + DEFAULT => -70 }, {#State 210 - DEFAULT => -70 + DEFAULT => -69 }, {#State 211 ACTIONS => { @@ -1755,7 +1753,7 @@ sub new { } }, {#State 212 - DEFAULT => -88 + DEFAULT => -87 }, {#State 213 DEFAULT => -27 @@ -1784,13 +1782,13 @@ sub new { DEFAULT => -25 }, {#State 216 - DEFAULT => -91 + DEFAULT => -90 }, {#State 217 ACTIONS => { "[" => 170 }, - DEFAULT => -89, + DEFAULT => -88, GOTOS => { 'array_len' => 219 } @@ -1799,7 +1797,7 @@ sub new { DEFAULT => -26 }, {#State 219 - DEFAULT => -80 + DEFAULT => -79 } ], yyrules => @@ -2085,42 +2083,39 @@ sub 'sign', 1, undef ], [#Rule 43 - 'existingtype', 0, undef - ], - [#Rule 44 'existingtype', 2, sub #line 182 "idl.yp" -{ "$_[1] $_[2]" } +{ ($_[1]?$_[1]:"signed") ." $_[2]" } ], - [#Rule 45 + [#Rule 44 'existingtype', 1, undef ], - [#Rule 46 + [#Rule 45 'type', 1, undef ], - [#Rule 47 + [#Rule 46 'type', 1, undef ], - [#Rule 48 + [#Rule 47 'type', 1, sub #line 186 "idl.yp" { "void" } ], - [#Rule 49 + [#Rule 48 'enum_body', 3, sub #line 188 "idl.yp" { $_[2] } ], - [#Rule 50 + [#Rule 49 'opt_enum_body', 0, undef ], - [#Rule 51 + [#Rule 50 'opt_enum_body', 1, undef ], - [#Rule 52 + [#Rule 51 'enum', 3, sub #line 191 "idl.yp" @@ -2130,40 +2125,40 @@ sub "ELEMENTS" => $_[3] }} ], - [#Rule 53 + [#Rule 52 'enum_elements', 1, sub #line 199 "idl.yp" { [ $_[1] ] } ], - [#Rule 54 + [#Rule 53 'enum_elements', 3, sub #line 200 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 55 + [#Rule 54 'enum_element', 1, undef ], - [#Rule 56 + [#Rule 55 'enum_element', 3, sub #line 204 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 57 + [#Rule 56 'bitmap_body', 3, sub #line 207 "idl.yp" { $_[2] } ], - [#Rule 58 + [#Rule 57 'opt_bitmap_body', 0, undef ], - [#Rule 59 + [#Rule 58 'opt_bitmap_body', 1, undef ], - [#Rule 60 + [#Rule 59 'bitmap', 3, sub #line 210 "idl.yp" @@ -2173,43 +2168,43 @@ sub "ELEMENTS" => $_[3] }} ], - [#Rule 61 + [#Rule 60 'bitmap_elements', 1, sub #line 218 "idl.yp" { [ $_[1] ] } ], - [#Rule 62 + [#Rule 61 'bitmap_elements', 3, sub #line 219 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 63 + [#Rule 62 'opt_bitmap_elements', 0, undef ], - [#Rule 64 + [#Rule 63 'opt_bitmap_elements', 1, undef ], - [#Rule 65 + [#Rule 64 'bitmap_element', 3, sub #line 224 "idl.yp" { "$_[1] ( $_[3] )" } ], - [#Rule 66 + [#Rule 65 'struct_body', 3, sub #line 227 "idl.yp" { $_[2] } ], - [#Rule 67 + [#Rule 66 'opt_struct_body', 0, undef ], - [#Rule 68 + [#Rule 67 'opt_struct_body', 1, undef ], - [#Rule 69 + [#Rule 68 'struct', 3, sub #line 231 "idl.yp" @@ -2219,7 +2214,7 @@ sub "ELEMENTS" => $_[3] }} ], - [#Rule 70 + [#Rule 69 'empty_element', 2, sub #line 239 "idl.yp" @@ -2233,40 +2228,40 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 71 + [#Rule 70 'base_or_empty', 2, undef ], - [#Rule 72 + [#Rule 71 'base_or_empty', 1, undef ], - [#Rule 73 + [#Rule 72 'optional_base_element', 2, sub #line 253 "idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], - [#Rule 74 + [#Rule 73 'union_elements', 0, undef ], - [#Rule 75 + [#Rule 74 'union_elements', 2, sub #line 258 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 76 + [#Rule 75 'union_body', 3, sub #line 261 "idl.yp" { $_[2] } ], - [#Rule 77 + [#Rule 76 'opt_union_body', 0, undef ], - [#Rule 78 + [#Rule 77 'opt_union_body', 1, undef ], - [#Rule 79 + [#Rule 78 'union', 3, sub #line 265 "idl.yp" @@ -2276,7 +2271,7 @@ sub "ELEMENTS" => $_[3] }} ], - [#Rule 80 + [#Rule 79 'base_element', 5, sub #line 273 "idl.yp" @@ -2290,117 +2285,120 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 81 + [#Rule 80 'pointers', 0, sub #line 287 "idl.yp" { 0 } ], - [#Rule 82 + [#Rule 81 'pointers', 2, sub #line 288 "idl.yp" { $_[1]+1 } ], - [#Rule 83 + [#Rule 82 'element_list1', 0, undef ], - [#Rule 84 + [#Rule 83 'element_list1', 3, sub #line 293 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 85 + [#Rule 84 'element_list2', 0, undef ], - [#Rule 86 + [#Rule 85 'element_list2', 1, undef ], - [#Rule 87 + [#Rule 86 'element_list2', 1, sub #line 299 "idl.yp" { [ $_[1] ] } ], - [#Rule 88 + [#Rule 87 'element_list2', 3, sub #line 300 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 89 + [#Rule 88 'array_len', 0, undef ], - [#Rule 90 + [#Rule 89 'array_len', 3, sub #line 305 "idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], - [#Rule 91 + [#Rule 90 'array_len', 4, sub #line 306 "idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], - [#Rule 92 + [#Rule 91 'property_list', 0, undef ], - [#Rule 93 + [#Rule 92 'property_list', 4, sub #line 312 "idl.yp" { FlattenHash([$_[1],$_[3]]); } ], - [#Rule 94 + [#Rule 93 'properties', 1, sub #line 315 "idl.yp" { $_[1] } ], - [#Rule 95 + [#Rule 94 'properties', 3, sub #line 316 "idl.yp" { FlattenHash([$_[1], $_[3]]); } ], - [#Rule 96 + [#Rule 95 'property', 1, sub #line 319 "idl.yp" {{ "$_[1]" => "1" }} ], - [#Rule 97 + [#Rule 96 'property', 4, sub #line 320 "idl.yp" {{ "$_[1]" => "$_[3]" }} ], - [#Rule 98 + [#Rule 97 'listtext', 1, undef ], - [#Rule 99 + [#Rule 98 'listtext', 3, sub #line 325 "idl.yp" { "$_[1] $_[3]" } ], - [#Rule 100 + [#Rule 99 'commalisttext', 1, undef ], - [#Rule 101 + [#Rule 100 'commalisttext', 3, sub #line 330 "idl.yp" { "$_[1],$_[3]" } ], - [#Rule 102 + [#Rule 101 'anytext', 0, sub #line 334 "idl.yp" { "" } ], + [#Rule 102 + 'anytext', 1, undef + ], [#Rule 103 'anytext', 1, undef ], @@ -2408,120 +2406,117 @@ sub 'anytext', 1, undef ], [#Rule 105 - 'anytext', 1, undef - ], - [#Rule 106 'anytext', 3, sub #line 336 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 107 + [#Rule 106 'anytext', 3, sub #line 337 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 108 + [#Rule 107 'anytext', 3, sub #line 338 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 109 + [#Rule 108 'anytext', 3, sub #line 339 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 110 + [#Rule 109 'anytext', 3, sub #line 340 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 111 + [#Rule 110 'anytext', 3, sub #line 341 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 112 + [#Rule 111 'anytext', 3, sub #line 342 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 113 + [#Rule 112 'anytext', 3, sub #line 343 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 114 + [#Rule 113 'anytext', 3, sub #line 344 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 115 + [#Rule 114 'anytext', 3, sub #line 345 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 116 + [#Rule 115 'anytext', 3, sub #line 346 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 117 + [#Rule 116 'anytext', 3, sub #line 347 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 118 + [#Rule 117 'anytext', 3, sub #line 348 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 119 + [#Rule 118 'anytext', 5, sub #line 349 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 120 + [#Rule 119 'anytext', 5, sub #line 350 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 121 + [#Rule 120 'identifier', 1, undef ], - [#Rule 122 + [#Rule 121 'optional_identifier', 1, undef ], - [#Rule 123 + [#Rule 122 'optional_identifier', 0, undef ], - [#Rule 124 + [#Rule 123 'constant', 1, undef ], - [#Rule 125 + [#Rule 124 'text', 1, sub #line 364 "idl.yp" { "\"$_[1]\"" } ], - [#Rule 126 + [#Rule 125 'optional_semicolon', 0, undef ], - [#Rule 127 + [#Rule 126 'optional_semicolon', 1, undef ] ], -- cgit From d9665a737b978d0fcca1fd23ab04858e2fa81284 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 14 Jan 2007 01:33:16 +0000 Subject: r20746: Don't report each individual test in test_smbclient as a single testsuite. Create separate directory for blackbox tests. (This used to be commit 7e6357f21350d264ebedabd34f2b8f42fc0427ff) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 154 ++++++++++++++++++------------------- 1 file changed, 77 insertions(+), 77 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 3d9eb4ea74..71c4470870 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -1811,37 +1811,37 @@ sub new { [#Rule 2 'idl', 2, sub -#line 19 "idl.yp" +#line 19 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 3 'idl', 2, sub -#line 20 "idl.yp" +#line 20 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 4 'idl', 2, sub -#line 21 "idl.yp" +#line 21 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 5 'idl', 2, sub -#line 22 "idl.yp" +#line 22 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 6 'idl', 2, sub -#line 23 "idl.yp" +#line 23 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 7 'import', 3, sub -#line 26 "idl.yp" +#line 26 "pidl/idl.yp" {{ "TYPE" => "IMPORT", "PATHS" => $_[2], @@ -1852,7 +1852,7 @@ sub [#Rule 8 'include', 3, sub -#line 33 "idl.yp" +#line 33 "pidl/idl.yp" {{ "TYPE" => "INCLUDE", "PATHS" => $_[2], @@ -1863,7 +1863,7 @@ sub [#Rule 9 'importlib', 3, sub -#line 40 "idl.yp" +#line 40 "pidl/idl.yp" {{ "TYPE" => "IMPORTLIB", "PATHS" => $_[2], @@ -1874,19 +1874,19 @@ sub [#Rule 10 'commalist', 1, sub -#line 49 "idl.yp" +#line 49 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 11 'commalist', 3, sub -#line 50 "idl.yp" +#line 50 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 12 'coclass', 7, sub -#line 54 "idl.yp" +#line 54 "pidl/idl.yp" {{ "TYPE" => "COCLASS", "PROPERTIES" => $_[1], @@ -1902,13 +1902,13 @@ sub [#Rule 14 'interface_names', 4, sub -#line 66 "idl.yp" +#line 66 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 15 'interface', 8, sub -#line 70 "idl.yp" +#line 70 "pidl/idl.yp" {{ "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], @@ -1925,19 +1925,19 @@ sub [#Rule 17 'base_interface', 2, sub -#line 83 "idl.yp" +#line 83 "pidl/idl.yp" { $_[2] } ], [#Rule 18 'definitions', 1, sub -#line 87 "idl.yp" +#line 87 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 19 'definitions', 2, sub -#line 88 "idl.yp" +#line 88 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 20 @@ -1958,7 +1958,7 @@ sub [#Rule 25 'const', 7, sub -#line 96 "idl.yp" +#line 96 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1972,7 +1972,7 @@ sub [#Rule 26 'const', 8, sub -#line 106 "idl.yp" +#line 106 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1987,7 +1987,7 @@ sub [#Rule 27 'function', 7, sub -#line 120 "idl.yp" +#line 120 "pidl/idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -2001,7 +2001,7 @@ sub [#Rule 28 'declare', 5, sub -#line 132 "idl.yp" +#line 132 "pidl/idl.yp" {{ "TYPE" => "DECLARE", "PROPERTIES" => $_[2], @@ -2023,7 +2023,7 @@ sub [#Rule 32 'decl_enum', 1, sub -#line 146 "idl.yp" +#line 146 "pidl/idl.yp" {{ "TYPE" => "ENUM" }} @@ -2031,7 +2031,7 @@ sub [#Rule 33 'decl_bitmap', 1, sub -#line 152 "idl.yp" +#line 152 "pidl/idl.yp" {{ "TYPE" => "BITMAP" }} @@ -2039,7 +2039,7 @@ sub [#Rule 34 'decl_union', 1, sub -#line 158 "idl.yp" +#line 158 "pidl/idl.yp" {{ "TYPE" => "UNION" }} @@ -2047,7 +2047,7 @@ sub [#Rule 35 'typedef', 6, sub -#line 164 "idl.yp" +#line 164 "pidl/idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[2], @@ -2073,7 +2073,7 @@ sub [#Rule 40 'typedecl', 2, sub -#line 177 "idl.yp" +#line 177 "pidl/idl.yp" { $_[1] } ], [#Rule 41 @@ -2085,7 +2085,7 @@ sub [#Rule 43 'existingtype', 2, sub -#line 182 "idl.yp" +#line 182 "pidl/idl.yp" { ($_[1]?$_[1]:"signed") ." $_[2]" } ], [#Rule 44 @@ -2100,13 +2100,13 @@ sub [#Rule 47 'type', 1, sub -#line 186 "idl.yp" +#line 186 "pidl/idl.yp" { "void" } ], [#Rule 48 'enum_body', 3, sub -#line 188 "idl.yp" +#line 188 "pidl/idl.yp" { $_[2] } ], [#Rule 49 @@ -2118,7 +2118,7 @@ sub [#Rule 51 'enum', 3, sub -#line 191 "idl.yp" +#line 191 "pidl/idl.yp" {{ "TYPE" => "ENUM", "NAME" => $_[2], @@ -2128,13 +2128,13 @@ sub [#Rule 52 'enum_elements', 1, sub -#line 199 "idl.yp" +#line 199 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 53 'enum_elements', 3, sub -#line 200 "idl.yp" +#line 200 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 54 @@ -2143,13 +2143,13 @@ sub [#Rule 55 'enum_element', 3, sub -#line 204 "idl.yp" +#line 204 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 56 'bitmap_body', 3, sub -#line 207 "idl.yp" +#line 207 "pidl/idl.yp" { $_[2] } ], [#Rule 57 @@ -2161,7 +2161,7 @@ sub [#Rule 59 'bitmap', 3, sub -#line 210 "idl.yp" +#line 210 "pidl/idl.yp" {{ "TYPE" => "BITMAP", "NAME" => $_[2], @@ -2171,13 +2171,13 @@ sub [#Rule 60 'bitmap_elements', 1, sub -#line 218 "idl.yp" +#line 218 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 61 'bitmap_elements', 3, sub -#line 219 "idl.yp" +#line 219 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 62 @@ -2189,13 +2189,13 @@ sub [#Rule 64 'bitmap_element', 3, sub -#line 224 "idl.yp" +#line 224 "pidl/idl.yp" { "$_[1] ( $_[3] )" } ], [#Rule 65 'struct_body', 3, sub -#line 227 "idl.yp" +#line 227 "pidl/idl.yp" { $_[2] } ], [#Rule 66 @@ -2207,7 +2207,7 @@ sub [#Rule 68 'struct', 3, sub -#line 231 "idl.yp" +#line 231 "pidl/idl.yp" {{ "TYPE" => "STRUCT", "NAME" => $_[2], @@ -2217,7 +2217,7 @@ sub [#Rule 69 'empty_element', 2, sub -#line 239 "idl.yp" +#line 239 "pidl/idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2237,7 +2237,7 @@ sub [#Rule 72 'optional_base_element', 2, sub -#line 253 "idl.yp" +#line 253 "pidl/idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], [#Rule 73 @@ -2246,13 +2246,13 @@ sub [#Rule 74 'union_elements', 2, sub -#line 258 "idl.yp" +#line 258 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 75 'union_body', 3, sub -#line 261 "idl.yp" +#line 261 "pidl/idl.yp" { $_[2] } ], [#Rule 76 @@ -2264,7 +2264,7 @@ sub [#Rule 78 'union', 3, sub -#line 265 "idl.yp" +#line 265 "pidl/idl.yp" {{ "TYPE" => "UNION", "NAME" => $_[2], @@ -2274,7 +2274,7 @@ sub [#Rule 79 'base_element', 5, sub -#line 273 "idl.yp" +#line 273 "pidl/idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2288,13 +2288,13 @@ sub [#Rule 80 'pointers', 0, sub -#line 287 "idl.yp" +#line 287 "pidl/idl.yp" { 0 } ], [#Rule 81 'pointers', 2, sub -#line 288 "idl.yp" +#line 288 "pidl/idl.yp" { $_[1]+1 } ], [#Rule 82 @@ -2303,7 +2303,7 @@ sub [#Rule 83 'element_list1', 3, sub -#line 293 "idl.yp" +#line 293 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 84 @@ -2315,13 +2315,13 @@ sub [#Rule 86 'element_list2', 1, sub -#line 299 "idl.yp" +#line 299 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 87 'element_list2', 3, sub -#line 300 "idl.yp" +#line 300 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 88 @@ -2330,13 +2330,13 @@ sub [#Rule 89 'array_len', 3, sub -#line 305 "idl.yp" +#line 305 "pidl/idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], [#Rule 90 'array_len', 4, sub -#line 306 "idl.yp" +#line 306 "pidl/idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], [#Rule 91 @@ -2345,31 +2345,31 @@ sub [#Rule 92 'property_list', 4, sub -#line 312 "idl.yp" +#line 312 "pidl/idl.yp" { FlattenHash([$_[1],$_[3]]); } ], [#Rule 93 'properties', 1, sub -#line 315 "idl.yp" +#line 315 "pidl/idl.yp" { $_[1] } ], [#Rule 94 'properties', 3, sub -#line 316 "idl.yp" +#line 316 "pidl/idl.yp" { FlattenHash([$_[1], $_[3]]); } ], [#Rule 95 'property', 1, sub -#line 319 "idl.yp" +#line 319 "pidl/idl.yp" {{ "$_[1]" => "1" }} ], [#Rule 96 'property', 4, sub -#line 320 "idl.yp" +#line 320 "pidl/idl.yp" {{ "$_[1]" => "$_[3]" }} ], [#Rule 97 @@ -2378,7 +2378,7 @@ sub [#Rule 98 'listtext', 3, sub -#line 325 "idl.yp" +#line 325 "pidl/idl.yp" { "$_[1] $_[3]" } ], [#Rule 99 @@ -2387,13 +2387,13 @@ sub [#Rule 100 'commalisttext', 3, sub -#line 330 "idl.yp" +#line 330 "pidl/idl.yp" { "$_[1],$_[3]" } ], [#Rule 101 'anytext', 0, sub -#line 334 "idl.yp" +#line 334 "pidl/idl.yp" { "" } ], [#Rule 102 @@ -2408,91 +2408,91 @@ sub [#Rule 105 'anytext', 3, sub -#line 336 "idl.yp" +#line 336 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 106 'anytext', 3, sub -#line 337 "idl.yp" +#line 337 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 107 'anytext', 3, sub -#line 338 "idl.yp" +#line 338 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 108 'anytext', 3, sub -#line 339 "idl.yp" +#line 339 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 109 'anytext', 3, sub -#line 340 "idl.yp" +#line 340 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 110 'anytext', 3, sub -#line 341 "idl.yp" +#line 341 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 111 'anytext', 3, sub -#line 342 "idl.yp" +#line 342 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 112 'anytext', 3, sub -#line 343 "idl.yp" +#line 343 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 113 'anytext', 3, sub -#line 344 "idl.yp" +#line 344 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 114 'anytext', 3, sub -#line 345 "idl.yp" +#line 345 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 115 'anytext', 3, sub -#line 346 "idl.yp" +#line 346 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 116 'anytext', 3, sub -#line 347 "idl.yp" +#line 347 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 117 'anytext', 3, sub -#line 348 "idl.yp" +#line 348 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 118 'anytext', 5, sub -#line 349 "idl.yp" +#line 349 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 119 'anytext', 5, sub -#line 350 "idl.yp" +#line 350 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 120 @@ -2510,7 +2510,7 @@ sub [#Rule 124 'text', 1, sub -#line 364 "idl.yp" +#line 364 "pidl/idl.yp" { "\"$_[1]\"" } ], [#Rule 125 @@ -2524,7 +2524,7 @@ sub bless($self,$class); } -#line 375 "idl.yp" +#line 375 "pidl/idl.yp" use Parse::Pidl qw(error); -- cgit From 8cf122c2d2a0913fd9a7c55032c549598844111c Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 18 Feb 2007 16:21:28 +0000 Subject: r21430: Support tagged types without typedef. This means: struct foo { ... }; in IDL will now work. This is the first step towards nested types and using typedefs for partial types (such as "typedef int *bar;"), a requirement for complex uses of represent_as(). (This used to be commit a716aa70f0c90898e6fcf57d63a2cf4c40e7d4df) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 1792 ++++++++++++++++++------------------ 1 file changed, 892 insertions(+), 900 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 71c4470870..e547b2caa8 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -258,29 +258,24 @@ sub new { }, {#State 39 ACTIONS => { - "typedef" => 49, - "union" => 50, - "enum" => 63, - "bitmap" => 64, "declare" => 56, - "const" => 58, - "struct" => 61 + "const" => 60 }, DEFAULT => -91, GOTOS => { - 'typedecl' => 62, - 'function' => 51, - 'bitmap' => 65, + 'typedecl' => 49, + 'function' => 50, 'definitions' => 52, + 'bitmap' => 51, 'definition' => 55, 'property_list' => 54, 'usertype' => 53, - 'declare' => 67, - 'const' => 66, + 'const' => 59, + 'declare' => 58, 'struct' => 57, - 'enum' => 59, - 'typedef' => 60, - 'union' => 68 + 'typedef' => 62, + 'enum' => 61, + 'union' => 63 } }, {#State 40 @@ -288,28 +283,28 @@ sub new { }, {#State 41 ACTIONS => { - "-" => 70, - ":" => 69, - "<" => 71, - "+" => 73, - "~" => 72, - "*" => 74, - "?" => 75, - "{" => 76, - "&" => 77, - "/" => 78, - "=" => 79, - "(" => 80, - "|" => 81, - "." => 82, - ">" => 83 + "-" => 65, + ":" => 64, + "<" => 67, + "+" => 69, + "~" => 68, + "*" => 76, + "?" => 66, + "{" => 70, + "&" => 71, + "/" => 72, + "=" => 73, + "(" => 74, + "|" => 75, + "." => 77, + ">" => 78 }, DEFAULT => -97 }, {#State 42 ACTIONS => { - "," => 84, - ")" => 85 + "," => 79, + ")" => 80 } }, {#State 43 @@ -326,11 +321,11 @@ sub new { }, {#State 47 ACTIONS => { - ";" => 86 + ";" => 82 }, DEFAULT => -125, GOTOS => { - 'optional_semicolon' => 87 + 'optional_semicolon' => 81 } }, {#State 48 @@ -338,81 +333,69 @@ sub new { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 88 + 'identifier' => 83 } }, {#State 49 - DEFAULT => -91, - GOTOS => { - 'property_list' => 89 - } + DEFAULT => -24 }, {#State 50 - ACTIONS => { - 'IDENTIFIER' => 90 - }, - DEFAULT => -122, - GOTOS => { - 'optional_identifier' => 91 - } + DEFAULT => -20 }, {#State 51 - DEFAULT => -20 + DEFAULT => -39 }, {#State 52 ACTIONS => { - "}" => 92, - "typedef" => 49, - "union" => 50, - "enum" => 63, - "bitmap" => 64, + "}" => 84, "declare" => 56, - "const" => 58, - "struct" => 61 + "const" => 60 }, DEFAULT => -91, GOTOS => { - 'typedecl' => 62, - 'function' => 51, - 'bitmap' => 65, - 'definition' => 93, + 'typedecl' => 49, + 'function' => 50, + 'bitmap' => 51, + 'definition' => 85, 'property_list' => 54, 'usertype' => 53, - 'const' => 66, + 'const' => 59, 'struct' => 57, - 'declare' => 67, - 'enum' => 59, - 'typedef' => 60, - 'union' => 68 + 'declare' => 58, + 'typedef' => 62, + 'enum' => 61, + 'union' => 63 } }, {#State 53 ACTIONS => { - ";" => 94 + ";" => 86 } }, {#State 54 ACTIONS => { + "typedef" => 87, 'IDENTIFIER' => 22, - "signed" => 100, - "union" => 50, - "enum" => 63, - "bitmap" => 64, - 'void' => 95, - "unsigned" => 101, + "signed" => 95, + "union" => 88, + "enum" => 97, + "bitmap" => 98, + 'void' => 89, + "unsigned" => 99, "[" => 17, - "struct" => 61 + "struct" => 94 }, GOTOS => { - 'existingtype' => 99, - 'bitmap' => 65, - 'usertype' => 96, - 'identifier' => 97, + 'existingtype' => 96, + 'bitmap' => 51, + 'usertype' => 91, + 'property_list' => 90, + 'identifier' => 92, 'struct' => 57, - 'enum' => 59, - 'type' => 102, - 'union' => 68, - 'sign' => 98 + 'enum' => 61, + 'type' => 100, + 'union' => 63, + 'sign' => 93 } }, {#State 55 @@ -421,69 +404,36 @@ sub new { {#State 56 DEFAULT => -91, GOTOS => { - 'property_list' => 103 + 'property_list' => 101 } }, {#State 57 DEFAULT => -36 }, {#State 58 - ACTIONS => { - 'IDENTIFIER' => 22 - }, - GOTOS => { - 'identifier' => 104 - } + DEFAULT => -23 }, {#State 59 - DEFAULT => -38 + DEFAULT => -21 }, {#State 60 - DEFAULT => -22 - }, - {#State 61 ACTIONS => { - 'IDENTIFIER' => 90 + 'IDENTIFIER' => 22 }, - DEFAULT => -122, GOTOS => { - 'optional_identifier' => 105 + 'identifier' => 102 } }, + {#State 61 + DEFAULT => -38 + }, {#State 62 - DEFAULT => -24 + DEFAULT => -22 }, {#State 63 - ACTIONS => { - 'IDENTIFIER' => 90 - }, - DEFAULT => -122, - GOTOS => { - 'optional_identifier' => 106 - } - }, - {#State 64 - ACTIONS => { - 'IDENTIFIER' => 90 - }, - DEFAULT => -122, - GOTOS => { - 'optional_identifier' => 107 - } - }, - {#State 65 - DEFAULT => -39 - }, - {#State 66 - DEFAULT => -21 - }, - {#State 67 - DEFAULT => -23 - }, - {#State 68 DEFAULT => -37 }, - {#State 69 + {#State 64 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -492,12 +442,12 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 108, + 'anytext' => 103, 'text' => 46, 'constant' => 43 } }, - {#State 70 + {#State 65 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -506,12 +456,12 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 109, + 'anytext' => 104, 'text' => 46, 'constant' => 43 } }, - {#State 71 + {#State 66 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -520,12 +470,12 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 110, + 'anytext' => 105, 'text' => 46, 'constant' => 43 } }, - {#State 72 + {#State 67 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -534,12 +484,12 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 111, + 'anytext' => 106, 'text' => 46, 'constant' => 43 } }, - {#State 73 + {#State 68 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -548,12 +498,12 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 112, + 'anytext' => 107, 'text' => 46, 'constant' => 43 } }, - {#State 74 + {#State 69 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -562,12 +512,12 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 113, + 'anytext' => 108, 'text' => 46, 'constant' => 43 } }, - {#State 75 + {#State 70 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -576,12 +526,13 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 114, + 'anytext' => 109, 'text' => 46, - 'constant' => 43 + 'constant' => 43, + 'commalisttext' => 110 } }, - {#State 76 + {#State 71 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -590,13 +541,12 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 115, + 'anytext' => 111, 'text' => 46, - 'constant' => 43, - 'commalisttext' => 116 + 'constant' => 43 } }, - {#State 77 + {#State 72 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -605,12 +555,12 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 117, + 'anytext' => 112, 'text' => 46, 'constant' => 43 } }, - {#State 78 + {#State 73 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -619,12 +569,12 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 118, + 'anytext' => 113, 'text' => 46, 'constant' => 43 } }, - {#State 79 + {#State 74 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -633,12 +583,13 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 119, + 'anytext' => 109, 'text' => 46, - 'constant' => 43 + 'constant' => 43, + 'commalisttext' => 114 } }, - {#State 80 + {#State 75 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -649,11 +600,10 @@ sub new { 'identifier' => 45, 'anytext' => 115, 'text' => 46, - 'constant' => 43, - 'commalisttext' => 120 + 'constant' => 43 } }, - {#State 81 + {#State 76 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -662,12 +612,12 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 121, + 'anytext' => 116, 'text' => 46, 'constant' => 43 } }, - {#State 82 + {#State 77 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -676,12 +626,12 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 122, + 'anytext' => 117, 'text' => 46, 'constant' => 43 } }, - {#State 83 + {#State 78 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -690,12 +640,12 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 123, + 'anytext' => 118, 'text' => 46, 'constant' => 43 } }, - {#State 84 + {#State 79 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -704,785 +654,807 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 124, + 'anytext' => 119, 'text' => 46, 'constant' => 43 } }, - {#State 85 + {#State 80 DEFAULT => -96 }, - {#State 86 + {#State 81 + DEFAULT => -12 + }, + {#State 82 DEFAULT => -126 }, - {#State 87 - DEFAULT => -12 + {#State 83 + ACTIONS => { + ";" => 120 + } }, - {#State 88 + {#State 84 ACTIONS => { - ";" => 125 + ";" => 82 + }, + DEFAULT => -125, + GOTOS => { + 'optional_semicolon' => 121 } }, - {#State 89 + {#State 85 + DEFAULT => -19 + }, + {#State 86 + DEFAULT => -40 + }, + {#State 87 ACTIONS => { 'IDENTIFIER' => 22, - "signed" => 100, - "union" => 50, - "enum" => 63, - "bitmap" => 64, - 'void' => 95, - "unsigned" => 101, - "[" => 17, - "struct" => 61 + "signed" => 95, + 'void' => 89, + "unsigned" => 99 }, + DEFAULT => -91, GOTOS => { - 'existingtype' => 99, - 'bitmap' => 65, - 'usertype' => 96, - 'identifier' => 97, + 'existingtype' => 96, + 'bitmap' => 51, + 'usertype' => 91, + 'property_list' => 90, + 'identifier' => 92, 'struct' => 57, - 'enum' => 59, - 'type' => 126, - 'union' => 68, - 'sign' => 98 + 'enum' => 61, + 'type' => 122, + 'union' => 63, + 'sign' => 93 } }, - {#State 90 - DEFAULT => -121 - }, - {#State 91 + {#State 88 ACTIONS => { - "{" => 128 + 'IDENTIFIER' => 123 }, - DEFAULT => -76, + DEFAULT => -122, GOTOS => { - 'union_body' => 129, - 'opt_union_body' => 127 + 'optional_identifier' => 124 + } + }, + {#State 89 + DEFAULT => -47 + }, + {#State 90 + ACTIONS => { + "union" => 88, + "enum" => 97, + "bitmap" => 98, + "[" => 17, + "struct" => 94 } }, + {#State 91 + DEFAULT => -45 + }, {#State 92 + DEFAULT => -44 + }, + {#State 93 ACTIONS => { - ";" => 86 + 'IDENTIFIER' => 22 }, - DEFAULT => -125, GOTOS => { - 'optional_semicolon' => 130 + 'identifier' => 125 } }, - {#State 93 - DEFAULT => -19 - }, {#State 94 - DEFAULT => -40 + ACTIONS => { + 'IDENTIFIER' => 123 + }, + DEFAULT => -122, + GOTOS => { + 'optional_identifier' => 126 + } }, {#State 95 - DEFAULT => -47 + DEFAULT => -41 }, {#State 96 - DEFAULT => -45 + DEFAULT => -46 }, {#State 97 - DEFAULT => -44 + ACTIONS => { + 'IDENTIFIER' => 123 + }, + DEFAULT => -122, + GOTOS => { + 'optional_identifier' => 127 + } }, {#State 98 ACTIONS => { - 'IDENTIFIER' => 22 + 'IDENTIFIER' => 123 }, + DEFAULT => -122, GOTOS => { - 'identifier' => 131 + 'optional_identifier' => 128 } }, {#State 99 - DEFAULT => -46 - }, - {#State 100 - DEFAULT => -41 - }, - {#State 101 DEFAULT => -42 }, - {#State 102 + {#State 100 ACTIONS => { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 132 + 'identifier' => 129 } }, - {#State 103 + {#State 101 ACTIONS => { - "union" => 133, - "enum" => 138, - "bitmap" => 139, + "union" => 130, + "enum" => 135, + "bitmap" => 136, "[" => 17 }, GOTOS => { - 'decl_enum' => 134, - 'decl_bitmap' => 135, - 'decl_type' => 137, - 'decl_union' => 136 + 'decl_enum' => 131, + 'decl_bitmap' => 132, + 'decl_type' => 134, + 'decl_union' => 133 } }, - {#State 104 + {#State 102 DEFAULT => -80, GOTOS => { - 'pointers' => 140 + 'pointers' => 137 } }, + {#State 103 + ACTIONS => { + "-" => 65, + ":" => 64, + "<" => 67, + "+" => 69, + "~" => 68, + "*" => 76, + "?" => 66, + "{" => 70, + "&" => 71, + "/" => 72, + "=" => 73, + "(" => 74, + "|" => 75, + "." => 77, + ">" => 78 + }, + DEFAULT => -114 + }, + {#State 104 + ACTIONS => { + ":" => 64, + "<" => 67, + "~" => 68, + "?" => 66, + "{" => 70, + "=" => 73 + }, + DEFAULT => -105 + }, {#State 105 ACTIONS => { - "{" => 142 + "-" => 65, + ":" => 64, + "<" => 67, + "+" => 69, + "~" => 68, + "*" => 76, + "?" => 66, + "{" => 70, + "&" => 71, + "/" => 72, + "=" => 73, + "(" => 74, + "|" => 75, + "." => 77, + ">" => 78 }, - DEFAULT => -66, - GOTOS => { - 'struct_body' => 141, - 'opt_struct_body' => 143 - } + DEFAULT => -113 }, {#State 106 ACTIONS => { - "{" => 144 + "-" => 65, + ":" => 64, + "<" => 67, + "+" => 69, + "~" => 68, + "*" => 76, + "?" => 66, + "{" => 70, + "&" => 71, + "/" => 72, + "=" => 73, + "(" => 74, + "|" => 75, + "." => 77, + ">" => 78 }, - DEFAULT => -49, - GOTOS => { - 'opt_enum_body' => 146, - 'enum_body' => 145 - } + DEFAULT => -109 }, {#State 107 ACTIONS => { - "{" => 148 + "-" => 65, + ":" => 64, + "<" => 67, + "+" => 69, + "~" => 68, + "*" => 76, + "?" => 66, + "{" => 70, + "&" => 71, + "/" => 72, + "=" => 73, + "(" => 74, + "|" => 75, + "." => 77, + ">" => 78 }, - DEFAULT => -57, - GOTOS => { - 'bitmap_body' => 149, - 'opt_bitmap_body' => 147 - } + DEFAULT => -117 }, {#State 108 ACTIONS => { - "-" => 70, - ":" => 69, - "<" => 71, - "+" => 73, - "~" => 72, - "*" => 74, - "?" => 75, - "{" => 76, - "&" => 77, - "/" => 78, - "=" => 79, - "(" => 80, - "|" => 81, - "." => 82, - ">" => 83 + ":" => 64, + "<" => 67, + "~" => 68, + "?" => 66, + "{" => 70, + "=" => 73 }, - DEFAULT => -114 + DEFAULT => -116 }, {#State 109 ACTIONS => { - ":" => 69, - "<" => 71, - "~" => 72, - "?" => 75, - "{" => 76, - "=" => 79 + "-" => 65, + ":" => 64, + "<" => 67, + "+" => 69, + "~" => 68, + "*" => 76, + "?" => 66, + "{" => 70, + "&" => 71, + "/" => 72, + "=" => 73, + "(" => 74, + "|" => 75, + "." => 77, + ">" => 78 }, - DEFAULT => -105 + DEFAULT => -99 }, {#State 110 ACTIONS => { - "-" => 70, - ":" => 69, - "<" => 71, - "+" => 73, - "~" => 72, - "*" => 74, - "?" => 75, - "{" => 76, - "&" => 77, - "/" => 78, - "=" => 79, - "(" => 80, - "|" => 81, - "." => 82, - ">" => 83 - }, - DEFAULT => -109 + "}" => 138, + "," => 139 + } }, {#State 111 ACTIONS => { - "-" => 70, - ":" => 69, - "<" => 71, - "+" => 73, - "~" => 72, - "*" => 74, - "?" => 75, - "{" => 76, - "&" => 77, - "/" => 78, - "=" => 79, - "(" => 80, - "|" => 81, - "." => 82, - ">" => 83 + ":" => 64, + "<" => 67, + "~" => 68, + "?" => 66, + "{" => 70, + "=" => 73 }, - DEFAULT => -117 + DEFAULT => -111 }, {#State 112 ACTIONS => { - ":" => 69, - "<" => 71, - "~" => 72, - "?" => 75, - "{" => 76, - "=" => 79 + ":" => 64, + "<" => 67, + "~" => 68, + "?" => 66, + "{" => 70, + "=" => 73 }, - DEFAULT => -116 + DEFAULT => -112 }, {#State 113 ACTIONS => { - ":" => 69, - "<" => 71, - "~" => 72, - "?" => 75, - "{" => 76, - "=" => 79 + "-" => 65, + ":" => 64, + "<" => 67, + "+" => 69, + "~" => 68, + "*" => 76, + "?" => 66, + "{" => 70, + "&" => 71, + "/" => 72, + "=" => 73, + "(" => 74, + "|" => 75, + "." => 77, + ">" => 78 }, - DEFAULT => -107 + DEFAULT => -115 }, {#State 114 ACTIONS => { - "-" => 70, - ":" => 69, - "<" => 71, - "+" => 73, - "~" => 72, - "*" => 74, - "?" => 75, - "{" => 76, - "&" => 77, - "/" => 78, - "=" => 79, - "(" => 80, - "|" => 81, - "." => 82, - ">" => 83 - }, - DEFAULT => -113 + "," => 139, + ")" => 140 + } }, {#State 115 ACTIONS => { - "-" => 70, - ":" => 69, - "<" => 71, - "+" => 73, - "~" => 72, - "*" => 74, - "?" => 75, - "{" => 76, - "&" => 77, - "/" => 78, - "=" => 79, - "(" => 80, - "|" => 81, - "." => 82, - ">" => 83 + ":" => 64, + "<" => 67, + "~" => 68, + "?" => 66, + "{" => 70, + "=" => 73 }, - DEFAULT => -99 + DEFAULT => -110 }, {#State 116 ACTIONS => { - "}" => 150, - "," => 151 - } + ":" => 64, + "<" => 67, + "~" => 68, + "?" => 66, + "{" => 70, + "=" => 73 + }, + DEFAULT => -107 }, {#State 117 ACTIONS => { - ":" => 69, - "<" => 71, - "~" => 72, - "?" => 75, - "{" => 76, - "=" => 79 + ":" => 64, + "<" => 67, + "~" => 68, + "?" => 66, + "{" => 70, + "=" => 73 }, - DEFAULT => -111 + DEFAULT => -106 }, {#State 118 ACTIONS => { - ":" => 69, - "<" => 71, - "~" => 72, - "?" => 75, - "{" => 76, - "=" => 79 + ":" => 64, + "<" => 67, + "~" => 68, + "?" => 66, + "{" => 70, + "=" => 73 }, - DEFAULT => -112 + DEFAULT => -108 }, {#State 119 ACTIONS => { - "-" => 70, - ":" => 69, - "<" => 71, - "+" => 73, - "~" => 72, - "*" => 74, - "?" => 75, - "{" => 76, - "&" => 77, - "/" => 78, - "=" => 79, - "(" => 80, - "|" => 81, - "." => 82, - ">" => 83 + "-" => 65, + ":" => 64, + "<" => 67, + "+" => 69, + "~" => 68, + "*" => 76, + "?" => 66, + "{" => 70, + "&" => 71, + "/" => 72, + "=" => 73, + "(" => 74, + "|" => 75, + "." => 77, + ">" => 78 }, - DEFAULT => -115 + DEFAULT => -98 }, {#State 120 - ACTIONS => { - "," => 151, - ")" => 152 - } + DEFAULT => -14 }, {#State 121 - ACTIONS => { - ":" => 69, - "<" => 71, - "~" => 72, - "?" => 75, - "{" => 76, - "=" => 79 - }, - DEFAULT => -110 + DEFAULT => -15 }, {#State 122 ACTIONS => { - ":" => 69, - "<" => 71, - "~" => 72, - "?" => 75, - "{" => 76, - "=" => 79 + 'IDENTIFIER' => 22 }, - DEFAULT => -106 + GOTOS => { + 'identifier' => 141 + } }, {#State 123 - ACTIONS => { - ":" => 69, - "<" => 71, - "~" => 72, - "?" => 75, - "{" => 76, - "=" => 79 - }, - DEFAULT => -108 + DEFAULT => -121 }, {#State 124 ACTIONS => { - "-" => 70, - ":" => 69, - "<" => 71, - "+" => 73, - "~" => 72, - "*" => 74, - "?" => 75, - "{" => 76, - "&" => 77, - "/" => 78, - "=" => 79, - "(" => 80, - "|" => 81, - "." => 82, - ">" => 83 + "{" => 143 }, - DEFAULT => -98 + DEFAULT => -76, + GOTOS => { + 'union_body' => 144, + 'opt_union_body' => 142 + } }, {#State 125 - DEFAULT => -14 + DEFAULT => -43 }, {#State 126 ACTIONS => { - 'IDENTIFIER' => 22 + "{" => 146 }, + DEFAULT => -66, GOTOS => { - 'identifier' => 153 + 'struct_body' => 145, + 'opt_struct_body' => 147 } }, {#State 127 - DEFAULT => -78 + ACTIONS => { + "{" => 148 + }, + DEFAULT => -49, + GOTOS => { + 'opt_enum_body' => 150, + 'enum_body' => 149 + } }, {#State 128 - DEFAULT => -73, + ACTIONS => { + "{" => 152 + }, + DEFAULT => -57, GOTOS => { - 'union_elements' => 154 + 'bitmap_body' => 153, + 'opt_bitmap_body' => 151 } }, {#State 129 - DEFAULT => -77 + ACTIONS => { + "(" => 154 + } }, {#State 130 - DEFAULT => -15 + DEFAULT => -34 }, {#State 131 - DEFAULT => -43 + DEFAULT => -29 }, {#State 132 - ACTIONS => { - "(" => 155 - } + DEFAULT => -30 }, {#State 133 - DEFAULT => -34 + DEFAULT => -31 }, {#State 134 - DEFAULT => -29 + ACTIONS => { + 'IDENTIFIER' => 22 + }, + GOTOS => { + 'identifier' => 155 + } }, {#State 135 - DEFAULT => -30 + DEFAULT => -32 }, {#State 136 - DEFAULT => -31 + DEFAULT => -33 }, {#State 137 ACTIONS => { - 'IDENTIFIER' => 22 + 'IDENTIFIER' => 22, + "*" => 157 }, GOTOS => { 'identifier' => 156 } }, {#State 138 - DEFAULT => -32 + ACTIONS => { + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 + }, + DEFAULT => -101, + GOTOS => { + 'identifier' => 45, + 'anytext' => 158, + 'text' => 46, + 'constant' => 43 + } }, {#State 139 - DEFAULT => -33 + ACTIONS => { + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 + }, + DEFAULT => -101, + GOTOS => { + 'identifier' => 45, + 'anytext' => 159, + 'text' => 46, + 'constant' => 43 + } }, {#State 140 ACTIONS => { - 'IDENTIFIER' => 22, - "*" => 158 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, + DEFAULT => -101, GOTOS => { - 'identifier' => 157 + 'identifier' => 45, + 'anytext' => 160, + 'text' => 46, + 'constant' => 43 } }, {#State 141 - DEFAULT => -67 - }, - {#State 142 - DEFAULT => -82, + ACTIONS => { + "[" => 161 + }, + DEFAULT => -88, GOTOS => { - 'element_list1' => 159 + 'array_len' => 162 } }, - {#State 143 - DEFAULT => -68 + {#State 142 + DEFAULT => -78 }, - {#State 144 - ACTIONS => { - 'IDENTIFIER' => 22 - }, + {#State 143 + DEFAULT => -73, GOTOS => { - 'identifier' => 160, - 'enum_element' => 161, - 'enum_elements' => 162 + 'union_elements' => 163 } }, + {#State 144 + DEFAULT => -77 + }, {#State 145 - DEFAULT => -50 + DEFAULT => -67 }, {#State 146 - DEFAULT => -51 + DEFAULT => -82, + GOTOS => { + 'element_list1' => 164 + } }, {#State 147 - DEFAULT => -59 + DEFAULT => -68 }, {#State 148 ACTIONS => { 'IDENTIFIER' => 22 }, - DEFAULT => -62, GOTOS => { 'identifier' => 165, - 'bitmap_element' => 164, - 'bitmap_elements' => 163, - 'opt_bitmap_elements' => 166 + 'enum_element' => 166, + 'enum_elements' => 167 } }, {#State 149 - DEFAULT => -58 + DEFAULT => -50 }, {#State 150 - ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, - 'IDENTIFIER' => 22 - }, - DEFAULT => -101, - GOTOS => { - 'identifier' => 45, - 'anytext' => 167, - 'text' => 46, - 'constant' => 43 - } + DEFAULT => -51 }, {#State 151 - ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, - 'IDENTIFIER' => 22 - }, - DEFAULT => -101, - GOTOS => { - 'identifier' => 45, - 'anytext' => 168, - 'text' => 46, - 'constant' => 43 - } + DEFAULT => -59 }, {#State 152 ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -101, + DEFAULT => -62, GOTOS => { - 'identifier' => 45, - 'anytext' => 169, - 'text' => 46, - 'constant' => 43 + 'identifier' => 170, + 'bitmap_element' => 169, + 'bitmap_elements' => 168, + 'opt_bitmap_elements' => 171 } }, {#State 153 - ACTIONS => { - "[" => 170 - }, - DEFAULT => -88, - GOTOS => { - 'array_len' => 171 - } + DEFAULT => -58 }, {#State 154 ACTIONS => { - "}" => 172 + "," => -84, + "void" => 175, + ")" => -84 }, DEFAULT => -91, GOTOS => { - 'optional_base_element' => 174, + 'base_element' => 172, + 'element_list2' => 174, 'property_list' => 173 } }, {#State 155 ACTIONS => { - "," => -84, - "void" => 178, - ")" => -84 - }, - DEFAULT => -91, - GOTOS => { - 'base_element' => 175, - 'element_list2' => 177, - 'property_list' => 176 + ";" => 176 } }, {#State 156 ACTIONS => { - ";" => 179 - } - }, - {#State 157 - ACTIONS => { - "[" => 170, - "=" => 181 + "[" => 161, + "=" => 178 }, GOTOS => { - 'array_len' => 180 + 'array_len' => 177 } }, - {#State 158 + {#State 157 DEFAULT => -81 }, + {#State 158 + ACTIONS => { + "-" => 65, + ":" => 64, + "<" => 67, + "+" => 69, + "~" => 68, + "*" => 76, + "?" => 66, + "{" => 70, + "&" => 71, + "/" => 72, + "=" => 73, + "(" => 74, + "|" => 75, + "." => 77, + ">" => 78 + }, + DEFAULT => -119 + }, {#State 159 ACTIONS => { - "}" => 182 + "-" => 65, + ":" => 64, + "<" => 67, + "+" => 69, + "~" => 68, + "*" => 76, + "?" => 66, + "{" => 70, + "&" => 71, + "/" => 72, + "=" => 73, + "(" => 74, + "|" => 75, + "." => 77, + ">" => 78 }, - DEFAULT => -91, - GOTOS => { - 'base_element' => 183, - 'property_list' => 176 - } + DEFAULT => -100 }, {#State 160 ACTIONS => { - "=" => 184 + ":" => 64, + "<" => 67, + "~" => 68, + "?" => 66, + "{" => 70, + "=" => 73 }, - DEFAULT => -54 + DEFAULT => -118 }, {#State 161 - DEFAULT => -52 + ACTIONS => { + 'CONSTANT' => 44, + 'TEXT' => 13, + "]" => 179, + 'IDENTIFIER' => 22 + }, + DEFAULT => -101, + GOTOS => { + 'identifier' => 45, + 'anytext' => 180, + 'text' => 46, + 'constant' => 43 + } }, {#State 162 ACTIONS => { - "}" => 185, - "," => 186 + ";" => 181 } }, {#State 163 ACTIONS => { - "," => 187 + "}" => 182 }, - DEFAULT => -63 + DEFAULT => -91, + GOTOS => { + 'optional_base_element' => 184, + 'property_list' => 183 + } }, {#State 164 - DEFAULT => -60 + ACTIONS => { + "}" => 185 + }, + DEFAULT => -91, + GOTOS => { + 'base_element' => 186, + 'property_list' => 173 + } }, {#State 165 ACTIONS => { - "=" => 188 - } + "=" => 187 + }, + DEFAULT => -54 }, {#State 166 - ACTIONS => { - "}" => 189 - } + DEFAULT => -52 }, {#State 167 ACTIONS => { - "-" => 70, - ":" => 69, - "<" => 71, - "+" => 73, - "~" => 72, - "*" => 74, - "?" => 75, - "{" => 76, - "&" => 77, - "/" => 78, - "=" => 79, - "(" => 80, - "|" => 81, - "." => 82, - ">" => 83 - }, - DEFAULT => -119 + "}" => 188, + "," => 189 + } }, {#State 168 ACTIONS => { - "-" => 70, - ":" => 69, - "<" => 71, - "+" => 73, - "~" => 72, - "*" => 74, - "?" => 75, - "{" => 76, - "&" => 77, - "/" => 78, - "=" => 79, - "(" => 80, - "|" => 81, - "." => 82, - ">" => 83 + "," => 190 }, - DEFAULT => -100 + DEFAULT => -63 }, {#State 169 - ACTIONS => { - ":" => 69, - "<" => 71, - "~" => 72, - "?" => 75, - "{" => 76, - "=" => 79 - }, - DEFAULT => -118 + DEFAULT => -60 }, {#State 170 ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, - "]" => 190, - 'IDENTIFIER' => 22 - }, - DEFAULT => -101, - GOTOS => { - 'identifier' => 45, - 'anytext' => 191, - 'text' => 46, - 'constant' => 43 + "=" => 191 } }, {#State 171 ACTIONS => { - ";" => 192 + "}" => 192 } }, {#State 172 - DEFAULT => -75 + DEFAULT => -86 }, {#State 173 ACTIONS => { + 'IDENTIFIER' => 22, + "signed" => 95, + 'void' => 89, + "unsigned" => 99, "[" => 17 }, DEFAULT => -91, GOTOS => { - 'base_or_empty' => 193, - 'base_element' => 194, - 'empty_element' => 195, - 'property_list' => 196 - } - }, - {#State 174 - DEFAULT => -74 - }, - {#State 175 - DEFAULT => -86 - }, - {#State 176 - ACTIONS => { - 'IDENTIFIER' => 22, - "signed" => 100, - "union" => 50, - "enum" => 63, - "bitmap" => 64, - 'void' => 95, - "unsigned" => 101, - "[" => 17, - "struct" => 61 - }, - GOTOS => { - 'existingtype' => 99, - 'bitmap' => 65, - 'usertype' => 96, - 'identifier' => 97, + 'existingtype' => 96, + 'bitmap' => 51, + 'usertype' => 91, + 'property_list' => 90, + 'identifier' => 92, 'struct' => 57, - 'enum' => 59, - 'type' => 197, - 'union' => 68, - 'sign' => 98 + 'enum' => 61, + 'type' => 193, + 'union' => 63, + 'sign' => 93 } }, - {#State 177 + {#State 174 ACTIONS => { - "," => 198, - ")" => 199 + "," => 194, + ")" => 195 } }, - {#State 178 + {#State 175 DEFAULT => -85 }, - {#State 179 + {#State 176 DEFAULT => -28 }, - {#State 180 + {#State 177 ACTIONS => { - "=" => 200 + "=" => 196 } }, - {#State 181 + {#State 178 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -1491,20 +1463,70 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 201, + 'anytext' => 197, 'text' => 46, 'constant' => 43 } }, + {#State 179 + ACTIONS => { + "[" => 161 + }, + DEFAULT => -88, + GOTOS => { + 'array_len' => 198 + } + }, + {#State 180 + ACTIONS => { + "-" => 65, + ":" => 64, + "?" => 66, + "<" => 67, + "+" => 69, + "~" => 68, + "&" => 71, + "{" => 70, + "/" => 72, + "=" => 73, + "|" => 75, + "(" => 74, + "*" => 76, + "." => 77, + "]" => 199, + ">" => 78 + } + }, + {#State 181 + DEFAULT => -35 + }, {#State 182 - DEFAULT => -65 + DEFAULT => -75 }, {#State 183 ACTIONS => { - ";" => 202 + "[" => 17 + }, + DEFAULT => -91, + GOTOS => { + 'base_or_empty' => 200, + 'base_element' => 201, + 'empty_element' => 202, + 'property_list' => 203 } }, {#State 184 + DEFAULT => -74 + }, + {#State 185 + DEFAULT => -65 + }, + {#State 186 + ACTIONS => { + ";" => 204 + } + }, + {#State 187 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -1513,33 +1535,33 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 203, + 'anytext' => 205, 'text' => 46, 'constant' => 43 } }, - {#State 185 + {#State 188 DEFAULT => -48 }, - {#State 186 + {#State 189 ACTIONS => { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 160, - 'enum_element' => 204 + 'identifier' => 165, + 'enum_element' => 206 } }, - {#State 187 + {#State 190 ACTIONS => { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 165, - 'bitmap_element' => 205 + 'identifier' => 170, + 'bitmap_element' => 207 } }, - {#State 188 + {#State 191 ACTIONS => { 'CONSTANT' => 44, 'TEXT' => 13, @@ -1548,245 +1570,211 @@ sub new { DEFAULT => -101, GOTOS => { 'identifier' => 45, - 'anytext' => 206, + 'anytext' => 208, 'text' => 46, 'constant' => 43 } }, - {#State 189 + {#State 192 DEFAULT => -56 }, - {#State 190 - ACTIONS => { - "[" => 170 - }, - DEFAULT => -88, + {#State 193 + DEFAULT => -80, GOTOS => { - 'array_len' => 207 - } - }, - {#State 191 - ACTIONS => { - "-" => 70, - ":" => 69, - "?" => 75, - "<" => 71, - "+" => 73, - "~" => 72, - "&" => 77, - "{" => 76, - "/" => 78, - "=" => 79, - "|" => 81, - "(" => 80, - "*" => 74, - "." => 82, - "]" => 208, - ">" => 83 + 'pointers' => 209 } }, - {#State 192 - DEFAULT => -35 - }, - {#State 193 - DEFAULT => -72 - }, {#State 194 - ACTIONS => { - ";" => 209 + DEFAULT => -91, + GOTOS => { + 'base_element' => 210, + 'property_list' => 173 } }, {#State 195 - DEFAULT => -71 + ACTIONS => { + ";" => 211 + } }, {#State 196 ACTIONS => { - 'IDENTIFIER' => 22, - "signed" => 100, - "union" => 50, - ";" => 210, - "enum" => 63, - "bitmap" => 64, - 'void' => 95, - "unsigned" => 101, - "[" => 17, - "struct" => 61 + 'CONSTANT' => 44, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, + DEFAULT => -101, GOTOS => { - 'existingtype' => 99, - 'bitmap' => 65, - 'usertype' => 96, - 'identifier' => 97, - 'struct' => 57, - 'enum' => 59, - 'type' => 197, - 'union' => 68, - 'sign' => 98 + 'identifier' => 45, + 'anytext' => 212, + 'text' => 46, + 'constant' => 43 } }, {#State 197 - DEFAULT => -80, - GOTOS => { - 'pointers' => 211 + ACTIONS => { + "-" => 65, + ":" => 64, + "?" => 66, + "<" => 67, + ";" => 213, + "+" => 69, + "~" => 68, + "&" => 71, + "{" => 70, + "/" => 72, + "=" => 73, + "|" => 75, + "(" => 74, + "*" => 76, + "." => 77, + ">" => 78 } }, {#State 198 - DEFAULT => -91, - GOTOS => { - 'base_element' => 212, - 'property_list' => 176 - } + DEFAULT => -89 }, {#State 199 ACTIONS => { - ";" => 213 - } - }, - {#State 200 - ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + "[" => 161 }, - DEFAULT => -101, + DEFAULT => -88, GOTOS => { - 'identifier' => 45, - 'anytext' => 214, - 'text' => 46, - 'constant' => 43 + 'array_len' => 214 } }, + {#State 200 + DEFAULT => -72 + }, {#State 201 ACTIONS => { - "-" => 70, - ":" => 69, - "?" => 75, - "<" => 71, - ";" => 215, - "+" => 73, - "~" => 72, - "&" => 77, - "{" => 76, - "/" => 78, - "=" => 79, - "|" => 81, - "(" => 80, - "*" => 74, - "." => 82, - ">" => 83 + ";" => 215 } }, {#State 202 - DEFAULT => -83 + DEFAULT => -71 }, {#State 203 ACTIONS => { - "-" => 70, - ":" => 69, - "<" => 71, - "+" => 73, - "~" => 72, - "*" => 74, - "?" => 75, - "{" => 76, - "&" => 77, - "/" => 78, - "=" => 79, - "(" => 80, - "|" => 81, - "." => 82, - ">" => 83 + 'IDENTIFIER' => 22, + "signed" => 95, + ";" => 216, + 'void' => 89, + "unsigned" => 99, + "[" => 17 }, - DEFAULT => -55 + DEFAULT => -91, + GOTOS => { + 'existingtype' => 96, + 'bitmap' => 51, + 'usertype' => 91, + 'property_list' => 90, + 'identifier' => 92, + 'struct' => 57, + 'enum' => 61, + 'type' => 193, + 'union' => 63, + 'sign' => 93 + } }, {#State 204 - DEFAULT => -53 + DEFAULT => -83 }, {#State 205 - DEFAULT => -61 - }, - {#State 206 ACTIONS => { - "-" => 70, - ":" => 69, - "<" => 71, - "+" => 73, - "~" => 72, - "*" => 74, - "?" => 75, - "{" => 76, - "&" => 77, - "/" => 78, - "=" => 79, - "(" => 80, - "|" => 81, - "." => 82, - ">" => 83 + "-" => 65, + ":" => 64, + "<" => 67, + "+" => 69, + "~" => 68, + "*" => 76, + "?" => 66, + "{" => 70, + "&" => 71, + "/" => 72, + "=" => 73, + "(" => 74, + "|" => 75, + "." => 77, + ">" => 78 }, - DEFAULT => -64 + DEFAULT => -55 + }, + {#State 206 + DEFAULT => -53 }, {#State 207 - DEFAULT => -89 + DEFAULT => -61 }, {#State 208 ACTIONS => { - "[" => 170 + "-" => 65, + ":" => 64, + "<" => 67, + "+" => 69, + "~" => 68, + "*" => 76, + "?" => 66, + "{" => 70, + "&" => 71, + "/" => 72, + "=" => 73, + "(" => 74, + "|" => 75, + "." => 77, + ">" => 78 }, - DEFAULT => -88, - GOTOS => { - 'array_len' => 216 - } + DEFAULT => -64 }, {#State 209 - DEFAULT => -70 - }, - {#State 210 - DEFAULT => -69 - }, - {#State 211 ACTIONS => { 'IDENTIFIER' => 22, - "*" => 158 + "*" => 157 }, GOTOS => { 'identifier' => 217 } }, - {#State 212 + {#State 210 DEFAULT => -87 }, - {#State 213 + {#State 211 DEFAULT => -27 }, - {#State 214 + {#State 212 ACTIONS => { - "-" => 70, - ":" => 69, - "?" => 75, - "<" => 71, + "-" => 65, + ":" => 64, + "?" => 66, + "<" => 67, ";" => 218, - "+" => 73, - "~" => 72, - "&" => 77, - "{" => 76, - "/" => 78, - "=" => 79, - "|" => 81, - "(" => 80, - "*" => 74, - "." => 82, - ">" => 83 + "+" => 69, + "~" => 68, + "&" => 71, + "{" => 70, + "/" => 72, + "=" => 73, + "|" => 75, + "(" => 74, + "*" => 76, + "." => 77, + ">" => 78 } }, - {#State 215 + {#State 213 DEFAULT => -25 }, - {#State 216 + {#State 214 DEFAULT => -90 }, + {#State 215 + DEFAULT => -70 + }, + {#State 216 + DEFAULT => -69 + }, {#State 217 ACTIONS => { - "[" => 170 + "[" => 161 }, DEFAULT => -88, GOTOS => { @@ -1811,37 +1799,37 @@ sub new { [#Rule 2 'idl', 2, sub -#line 19 "pidl/idl.yp" +#line 19 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 3 'idl', 2, sub -#line 20 "pidl/idl.yp" +#line 20 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 4 'idl', 2, sub -#line 21 "pidl/idl.yp" +#line 21 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 5 'idl', 2, sub -#line 22 "pidl/idl.yp" +#line 22 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 6 'idl', 2, sub -#line 23 "pidl/idl.yp" +#line 23 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 7 'import', 3, sub -#line 26 "pidl/idl.yp" +#line 26 "idl.yp" {{ "TYPE" => "IMPORT", "PATHS" => $_[2], @@ -1852,7 +1840,7 @@ sub [#Rule 8 'include', 3, sub -#line 33 "pidl/idl.yp" +#line 33 "idl.yp" {{ "TYPE" => "INCLUDE", "PATHS" => $_[2], @@ -1863,7 +1851,7 @@ sub [#Rule 9 'importlib', 3, sub -#line 40 "pidl/idl.yp" +#line 40 "idl.yp" {{ "TYPE" => "IMPORTLIB", "PATHS" => $_[2], @@ -1874,19 +1862,19 @@ sub [#Rule 10 'commalist', 1, sub -#line 49 "pidl/idl.yp" +#line 49 "idl.yp" { [ $_[1] ] } ], [#Rule 11 'commalist', 3, sub -#line 50 "pidl/idl.yp" +#line 50 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 12 'coclass', 7, sub -#line 54 "pidl/idl.yp" +#line 54 "idl.yp" {{ "TYPE" => "COCLASS", "PROPERTIES" => $_[1], @@ -1902,13 +1890,13 @@ sub [#Rule 14 'interface_names', 4, sub -#line 66 "pidl/idl.yp" +#line 66 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 15 'interface', 8, sub -#line 70 "pidl/idl.yp" +#line 70 "idl.yp" {{ "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], @@ -1925,19 +1913,19 @@ sub [#Rule 17 'base_interface', 2, sub -#line 83 "pidl/idl.yp" +#line 83 "idl.yp" { $_[2] } ], [#Rule 18 'definitions', 1, sub -#line 87 "pidl/idl.yp" +#line 87 "idl.yp" { [ $_[1] ] } ], [#Rule 19 'definitions', 2, sub -#line 88 "pidl/idl.yp" +#line 88 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 20 @@ -1958,7 +1946,7 @@ sub [#Rule 25 'const', 7, sub -#line 96 "pidl/idl.yp" +#line 96 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1972,7 +1960,7 @@ sub [#Rule 26 'const', 8, sub -#line 106 "pidl/idl.yp" +#line 106 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1987,7 +1975,7 @@ sub [#Rule 27 'function', 7, sub -#line 120 "pidl/idl.yp" +#line 120 "idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -2001,7 +1989,7 @@ sub [#Rule 28 'declare', 5, sub -#line 132 "pidl/idl.yp" +#line 132 "idl.yp" {{ "TYPE" => "DECLARE", "PROPERTIES" => $_[2], @@ -2023,7 +2011,7 @@ sub [#Rule 32 'decl_enum', 1, sub -#line 146 "pidl/idl.yp" +#line 146 "idl.yp" {{ "TYPE" => "ENUM" }} @@ -2031,7 +2019,7 @@ sub [#Rule 33 'decl_bitmap', 1, sub -#line 152 "pidl/idl.yp" +#line 152 "idl.yp" {{ "TYPE" => "BITMAP" }} @@ -2039,7 +2027,7 @@ sub [#Rule 34 'decl_union', 1, sub -#line 158 "pidl/idl.yp" +#line 158 "idl.yp" {{ "TYPE" => "UNION" }} @@ -2047,10 +2035,10 @@ sub [#Rule 35 'typedef', 6, sub -#line 164 "pidl/idl.yp" +#line 164 "idl.yp" {{ "TYPE" => "TYPEDEF", - "PROPERTIES" => $_[2], + "PROPERTIES" => $_[1], "NAME" => $_[4], "DATA" => $_[3], "ARRAY_LEN" => $_[5], @@ -2073,7 +2061,7 @@ sub [#Rule 40 'typedecl', 2, sub -#line 177 "pidl/idl.yp" +#line 177 "idl.yp" { $_[1] } ], [#Rule 41 @@ -2085,7 +2073,7 @@ sub [#Rule 43 'existingtype', 2, sub -#line 182 "pidl/idl.yp" +#line 182 "idl.yp" { ($_[1]?$_[1]:"signed") ." $_[2]" } ], [#Rule 44 @@ -2100,13 +2088,13 @@ sub [#Rule 47 'type', 1, sub -#line 186 "pidl/idl.yp" +#line 186 "idl.yp" { "void" } ], [#Rule 48 'enum_body', 3, sub -#line 188 "pidl/idl.yp" +#line 188 "idl.yp" { $_[2] } ], [#Rule 49 @@ -2116,25 +2104,26 @@ sub 'opt_enum_body', 1, undef ], [#Rule 51 - 'enum', 3, + 'enum', 4, sub -#line 191 "pidl/idl.yp" +#line 191 "idl.yp" {{ "TYPE" => "ENUM", - "NAME" => $_[2], - "ELEMENTS" => $_[3] + "PROPERTIES" => $_[1], + "NAME" => $_[3], + "ELEMENTS" => $_[4] }} ], [#Rule 52 'enum_elements', 1, sub -#line 199 "pidl/idl.yp" +#line 200 "idl.yp" { [ $_[1] ] } ], [#Rule 53 'enum_elements', 3, sub -#line 200 "pidl/idl.yp" +#line 201 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 54 @@ -2143,13 +2132,13 @@ sub [#Rule 55 'enum_element', 3, sub -#line 204 "pidl/idl.yp" +#line 205 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 56 'bitmap_body', 3, sub -#line 207 "pidl/idl.yp" +#line 208 "idl.yp" { $_[2] } ], [#Rule 57 @@ -2159,25 +2148,26 @@ sub 'opt_bitmap_body', 1, undef ], [#Rule 59 - 'bitmap', 3, + 'bitmap', 4, sub -#line 210 "pidl/idl.yp" +#line 211 "idl.yp" {{ "TYPE" => "BITMAP", - "NAME" => $_[2], - "ELEMENTS" => $_[3] + "PROPERTIES" => $_[1], + "NAME" => $_[3], + "ELEMENTS" => $_[4] }} ], [#Rule 60 'bitmap_elements', 1, sub -#line 218 "pidl/idl.yp" +#line 220 "idl.yp" { [ $_[1] ] } ], [#Rule 61 'bitmap_elements', 3, sub -#line 219 "pidl/idl.yp" +#line 221 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 62 @@ -2189,13 +2179,13 @@ sub [#Rule 64 'bitmap_element', 3, sub -#line 224 "pidl/idl.yp" +#line 226 "idl.yp" { "$_[1] ( $_[3] )" } ], [#Rule 65 'struct_body', 3, sub -#line 227 "pidl/idl.yp" +#line 229 "idl.yp" { $_[2] } ], [#Rule 66 @@ -2205,19 +2195,20 @@ sub 'opt_struct_body', 1, undef ], [#Rule 68 - 'struct', 3, + 'struct', 4, sub -#line 231 "pidl/idl.yp" +#line 233 "idl.yp" {{ "TYPE" => "STRUCT", - "NAME" => $_[2], - "ELEMENTS" => $_[3] + "PROPERTIES" => $_[1], + "NAME" => $_[3], + "ELEMENTS" => $_[4] }} ], [#Rule 69 'empty_element', 2, sub -#line 239 "pidl/idl.yp" +#line 242 "idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2237,7 +2228,7 @@ sub [#Rule 72 'optional_base_element', 2, sub -#line 253 "pidl/idl.yp" +#line 256 "idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], [#Rule 73 @@ -2246,13 +2237,13 @@ sub [#Rule 74 'union_elements', 2, sub -#line 258 "pidl/idl.yp" +#line 261 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 75 'union_body', 3, sub -#line 261 "pidl/idl.yp" +#line 264 "idl.yp" { $_[2] } ], [#Rule 76 @@ -2262,19 +2253,20 @@ sub 'opt_union_body', 1, undef ], [#Rule 78 - 'union', 3, + 'union', 4, sub -#line 265 "pidl/idl.yp" +#line 268 "idl.yp" {{ "TYPE" => "UNION", - "NAME" => $_[2], - "ELEMENTS" => $_[3] + "PROPERTIES" => $_[1], + "NAME" => $_[3], + "ELEMENTS" => $_[4] }} ], [#Rule 79 'base_element', 5, sub -#line 273 "pidl/idl.yp" +#line 277 "idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2288,13 +2280,13 @@ sub [#Rule 80 'pointers', 0, sub -#line 287 "pidl/idl.yp" +#line 291 "idl.yp" { 0 } ], [#Rule 81 'pointers', 2, sub -#line 288 "pidl/idl.yp" +#line 292 "idl.yp" { $_[1]+1 } ], [#Rule 82 @@ -2303,7 +2295,7 @@ sub [#Rule 83 'element_list1', 3, sub -#line 293 "pidl/idl.yp" +#line 297 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 84 @@ -2315,13 +2307,13 @@ sub [#Rule 86 'element_list2', 1, sub -#line 299 "pidl/idl.yp" +#line 303 "idl.yp" { [ $_[1] ] } ], [#Rule 87 'element_list2', 3, sub -#line 300 "pidl/idl.yp" +#line 304 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 88 @@ -2330,13 +2322,13 @@ sub [#Rule 89 'array_len', 3, sub -#line 305 "pidl/idl.yp" +#line 309 "idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], [#Rule 90 'array_len', 4, sub -#line 306 "pidl/idl.yp" +#line 310 "idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], [#Rule 91 @@ -2345,31 +2337,31 @@ sub [#Rule 92 'property_list', 4, sub -#line 312 "pidl/idl.yp" +#line 316 "idl.yp" { FlattenHash([$_[1],$_[3]]); } ], [#Rule 93 'properties', 1, sub -#line 315 "pidl/idl.yp" +#line 319 "idl.yp" { $_[1] } ], [#Rule 94 'properties', 3, sub -#line 316 "pidl/idl.yp" +#line 320 "idl.yp" { FlattenHash([$_[1], $_[3]]); } ], [#Rule 95 'property', 1, sub -#line 319 "pidl/idl.yp" +#line 323 "idl.yp" {{ "$_[1]" => "1" }} ], [#Rule 96 'property', 4, sub -#line 320 "pidl/idl.yp" +#line 324 "idl.yp" {{ "$_[1]" => "$_[3]" }} ], [#Rule 97 @@ -2378,7 +2370,7 @@ sub [#Rule 98 'listtext', 3, sub -#line 325 "pidl/idl.yp" +#line 329 "idl.yp" { "$_[1] $_[3]" } ], [#Rule 99 @@ -2387,13 +2379,13 @@ sub [#Rule 100 'commalisttext', 3, sub -#line 330 "pidl/idl.yp" +#line 334 "idl.yp" { "$_[1],$_[3]" } ], [#Rule 101 'anytext', 0, sub -#line 334 "pidl/idl.yp" +#line 338 "idl.yp" { "" } ], [#Rule 102 @@ -2408,91 +2400,91 @@ sub [#Rule 105 'anytext', 3, sub -#line 336 "pidl/idl.yp" +#line 340 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 106 'anytext', 3, sub -#line 337 "pidl/idl.yp" +#line 341 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 107 'anytext', 3, sub -#line 338 "pidl/idl.yp" +#line 342 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 108 'anytext', 3, sub -#line 339 "pidl/idl.yp" +#line 343 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 109 'anytext', 3, sub -#line 340 "pidl/idl.yp" +#line 344 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 110 'anytext', 3, sub -#line 341 "pidl/idl.yp" +#line 345 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 111 'anytext', 3, sub -#line 342 "pidl/idl.yp" +#line 346 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 112 'anytext', 3, sub -#line 343 "pidl/idl.yp" +#line 347 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 113 'anytext', 3, sub -#line 344 "pidl/idl.yp" +#line 348 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 114 'anytext', 3, sub -#line 345 "pidl/idl.yp" +#line 349 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 115 'anytext', 3, sub -#line 346 "pidl/idl.yp" +#line 350 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 116 'anytext', 3, sub -#line 347 "pidl/idl.yp" +#line 351 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 117 'anytext', 3, sub -#line 348 "pidl/idl.yp" +#line 352 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 118 'anytext', 5, sub -#line 349 "pidl/idl.yp" +#line 353 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 119 'anytext', 5, sub -#line 350 "pidl/idl.yp" +#line 354 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 120 @@ -2510,7 +2502,7 @@ sub [#Rule 124 'text', 1, sub -#line 364 "pidl/idl.yp" +#line 368 "idl.yp" { "\"$_[1]\"" } ], [#Rule 125 @@ -2524,7 +2516,7 @@ sub bless($self,$class); } -#line 375 "pidl/idl.yp" +#line 379 "idl.yp" use Parse::Pidl qw(error); -- cgit From 035adfb94399a2e2d5d4ca26aaa214576f5c0b64 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 4 Mar 2007 14:16:52 +0000 Subject: r21681: Fix bug in the parsing code that parsed "struct foo;" the same as "struct foo {};". Reported by one of the OpenChange folks, thanks! (This used to be commit d65b520f08ea4ee82c35ff334a58aa6ffc403d67) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 2358 ++++++++++++++++++------------------ 1 file changed, 1163 insertions(+), 1195 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index e547b2caa8..36c83c5922 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -37,7 +37,7 @@ sub new { "import" => 6, "include" => 11 }, - DEFAULT => -91, + DEFAULT => -89, GOTOS => { 'importlib' => 9, 'interface' => 8, @@ -106,7 +106,7 @@ sub new { } }, {#State 13 - DEFAULT => -124 + DEFAULT => -122 }, {#State 14 DEFAULT => -10 @@ -161,7 +161,7 @@ sub new { } }, {#State 22 - DEFAULT => -120 + DEFAULT => -118 }, {#State 23 ACTIONS => { @@ -170,27 +170,23 @@ sub new { }, {#State 24 ACTIONS => { - ":" => 32 - }, - DEFAULT => -16, - GOTOS => { - 'base_interface' => 33 + "{" => 32 } }, {#State 25 ACTIONS => { - "," => 34, - "]" => 35 + "," => 33, + "]" => 34 } }, {#State 26 ACTIONS => { - "(" => 36 + "(" => 35 }, - DEFAULT => -95 + DEFAULT => -93 }, {#State 27 - DEFAULT => -93 + DEFAULT => -91 }, {#State 28 DEFAULT => -7 @@ -204,1588 +200,1572 @@ sub new { {#State 31 DEFAULT => -13, GOTOS => { - 'interface_names' => 37 + 'interface_names' => 36 } }, {#State 32 ACTIONS => { - 'IDENTIFIER' => 22 + "declare" => 44, + "const" => 48 }, + DEFAULT => -89, GOTOS => { - 'identifier' => 38 + 'typedecl' => 37, + 'function' => 38, + 'definitions' => 40, + 'bitmap' => 39, + 'definition' => 43, + 'property_list' => 42, + 'usertype' => 41, + 'const' => 47, + 'declare' => 46, + 'struct' => 45, + 'typedef' => 50, + 'enum' => 49, + 'union' => 51 } }, {#State 33 - ACTIONS => { - "{" => 39 - } - }, - {#State 34 ACTIONS => { 'IDENTIFIER' => 22 }, GOTOS => { 'identifier' => 26, - 'property' => 40 + 'property' => 52 } }, - {#State 35 - DEFAULT => -92 + {#State 34 + DEFAULT => -90 }, - {#State 36 + {#State 35 ACTIONS => { - 'CONSTANT' => 44, + 'CONSTANT' => 56, 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -101, + DEFAULT => -99, GOTOS => { - 'identifier' => 45, - 'text' => 46, - 'listtext' => 42, - 'anytext' => 41, - 'constant' => 43 + 'identifier' => 57, + 'text' => 58, + 'listtext' => 54, + 'anytext' => 53, + 'constant' => 55 } }, - {#State 37 + {#State 36 ACTIONS => { - "}" => 47, - "interface" => 48 + "}" => 59, + "interface" => 60 } }, + {#State 37 + DEFAULT => -22 + }, {#State 38 - DEFAULT => -17 + DEFAULT => -18 }, {#State 39 + DEFAULT => -37 + }, + {#State 40 ACTIONS => { - "declare" => 56, - "const" => 60 + "}" => 61, + "declare" => 44, + "const" => 48 }, - DEFAULT => -91, + DEFAULT => -89, GOTOS => { - 'typedecl' => 49, - 'function' => 50, - 'definitions' => 52, - 'bitmap' => 51, - 'definition' => 55, - 'property_list' => 54, - 'usertype' => 53, - 'const' => 59, - 'declare' => 58, - 'struct' => 57, - 'typedef' => 62, - 'enum' => 61, - 'union' => 63 + 'typedecl' => 37, + 'function' => 38, + 'bitmap' => 39, + 'definition' => 62, + 'property_list' => 42, + 'usertype' => 41, + 'const' => 47, + 'struct' => 45, + 'declare' => 46, + 'typedef' => 50, + 'enum' => 49, + 'union' => 51 } }, - {#State 40 - DEFAULT => -94 - }, {#State 41 ACTIONS => { - "-" => 65, - ":" => 64, - "<" => 67, - "+" => 69, - "~" => 68, - "*" => 76, - "?" => 66, - "{" => 70, - "&" => 71, - "/" => 72, - "=" => 73, - "(" => 74, - "|" => 75, - "." => 77, - ">" => 78 - }, - DEFAULT => -97 + ";" => 63 + } }, {#State 42 ACTIONS => { - "," => 79, - ")" => 80 + "typedef" => 64, + 'IDENTIFIER' => 22, + "signed" => 72, + "union" => 65, + "enum" => 74, + "bitmap" => 75, + 'void' => 66, + "unsigned" => 76, + "[" => 17, + "struct" => 71 + }, + GOTOS => { + 'existingtype' => 73, + 'bitmap' => 39, + 'usertype' => 68, + 'property_list' => 67, + 'identifier' => 69, + 'struct' => 45, + 'enum' => 49, + 'type' => 77, + 'union' => 51, + 'sign' => 70 } }, {#State 43 - DEFAULT => -103 + DEFAULT => -16 }, {#State 44 - DEFAULT => -123 + DEFAULT => -89, + GOTOS => { + 'property_list' => 78 + } }, {#State 45 - DEFAULT => -102 + DEFAULT => -34 }, {#State 46 - DEFAULT => -104 + DEFAULT => -21 }, {#State 47 - ACTIONS => { - ";" => 82 - }, - DEFAULT => -125, - GOTOS => { - 'optional_semicolon' => 81 - } + DEFAULT => -19 }, {#State 48 ACTIONS => { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 83 + 'identifier' => 79 } }, {#State 49 - DEFAULT => -24 + DEFAULT => -36 }, {#State 50 DEFAULT => -20 }, {#State 51 - DEFAULT => -39 + DEFAULT => -35 }, {#State 52 - ACTIONS => { - "}" => 84, - "declare" => 56, - "const" => 60 - }, - DEFAULT => -91, - GOTOS => { - 'typedecl' => 49, - 'function' => 50, - 'bitmap' => 51, - 'definition' => 85, - 'property_list' => 54, - 'usertype' => 53, - 'const' => 59, - 'struct' => 57, - 'declare' => 58, - 'typedef' => 62, - 'enum' => 61, - 'union' => 63 - } + DEFAULT => -92 }, {#State 53 ACTIONS => { - ";" => 86 - } + "-" => 81, + ":" => 80, + "<" => 82, + "+" => 84, + "~" => 83, + "*" => 85, + "?" => 86, + "{" => 87, + "&" => 88, + "/" => 89, + "=" => 90, + "(" => 91, + "|" => 92, + "." => 93, + ">" => 94 + }, + DEFAULT => -95 }, {#State 54 ACTIONS => { - "typedef" => 87, - 'IDENTIFIER' => 22, - "signed" => 95, - "union" => 88, - "enum" => 97, - "bitmap" => 98, - 'void' => 89, - "unsigned" => 99, - "[" => 17, - "struct" => 94 - }, - GOTOS => { - 'existingtype' => 96, - 'bitmap' => 51, - 'usertype' => 91, - 'property_list' => 90, - 'identifier' => 92, - 'struct' => 57, - 'enum' => 61, - 'type' => 100, - 'union' => 63, - 'sign' => 93 + "," => 95, + ")" => 96 } }, {#State 55 - DEFAULT => -18 + DEFAULT => -101 }, {#State 56 - DEFAULT => -91, - GOTOS => { - 'property_list' => 101 - } + DEFAULT => -121 }, {#State 57 - DEFAULT => -36 + DEFAULT => -100 }, {#State 58 - DEFAULT => -23 + DEFAULT => -102 }, {#State 59 - DEFAULT => -21 + ACTIONS => { + ";" => 97 + }, + DEFAULT => -123, + GOTOS => { + 'optional_semicolon' => 98 + } }, {#State 60 ACTIONS => { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 102 + 'identifier' => 99 } }, {#State 61 - DEFAULT => -38 + ACTIONS => { + ";" => 97 + }, + DEFAULT => -123, + GOTOS => { + 'optional_semicolon' => 100 + } }, {#State 62 - DEFAULT => -22 + DEFAULT => -17 }, {#State 63 - DEFAULT => -37 + DEFAULT => -38 }, {#State 64 ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'IDENTIFIER' => 22, + "signed" => 72, + 'void' => 66, + "unsigned" => 76 }, - DEFAULT => -101, + DEFAULT => -89, GOTOS => { - 'identifier' => 45, - 'anytext' => 103, - 'text' => 46, - 'constant' => 43 + 'existingtype' => 73, + 'bitmap' => 39, + 'usertype' => 68, + 'property_list' => 67, + 'identifier' => 69, + 'struct' => 45, + 'enum' => 49, + 'type' => 101, + 'union' => 51, + 'sign' => 70 } }, {#State 65 ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'IDENTIFIER' => 102 }, - DEFAULT => -101, + DEFAULT => -120, GOTOS => { - 'identifier' => 45, - 'anytext' => 104, - 'text' => 46, - 'constant' => 43 + 'optional_identifier' => 103 } }, {#State 66 + DEFAULT => -45 + }, + {#State 67 + ACTIONS => { + "union" => 65, + "enum" => 74, + "bitmap" => 75, + "[" => 17, + "struct" => 71 + } + }, + {#State 68 + DEFAULT => -43 + }, + {#State 69 + DEFAULT => -42 + }, + {#State 70 ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -101, GOTOS => { - 'identifier' => 45, - 'anytext' => 105, - 'text' => 46, - 'constant' => 43 + 'identifier' => 104 } }, - {#State 67 + {#State 71 ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'IDENTIFIER' => 102 }, - DEFAULT => -101, + DEFAULT => -120, GOTOS => { - 'identifier' => 45, - 'anytext' => 106, - 'text' => 46, - 'constant' => 43 + 'optional_identifier' => 105 } }, - {#State 68 + {#State 72 + DEFAULT => -39 + }, + {#State 73 + DEFAULT => -44 + }, + {#State 74 ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'IDENTIFIER' => 102 }, - DEFAULT => -101, + DEFAULT => -120, GOTOS => { - 'identifier' => 45, - 'anytext' => 107, - 'text' => 46, - 'constant' => 43 + 'optional_identifier' => 106 } }, - {#State 69 + {#State 75 ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'IDENTIFIER' => 102 }, - DEFAULT => -101, + DEFAULT => -120, GOTOS => { - 'identifier' => 45, - 'anytext' => 108, - 'text' => 46, - 'constant' => 43 + 'optional_identifier' => 107 } }, - {#State 70 + {#State 76 + DEFAULT => -40 + }, + {#State 77 ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -101, GOTOS => { - 'identifier' => 45, - 'anytext' => 109, - 'text' => 46, - 'constant' => 43, - 'commalisttext' => 110 + 'identifier' => 108 } }, - {#State 71 + {#State 78 ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + "union" => 109, + "enum" => 114, + "bitmap" => 115, + "[" => 17 }, - DEFAULT => -101, GOTOS => { - 'identifier' => 45, - 'anytext' => 111, - 'text' => 46, - 'constant' => 43 + 'decl_enum' => 110, + 'decl_bitmap' => 111, + 'decl_type' => 113, + 'decl_union' => 112 } }, - {#State 72 + {#State 79 + DEFAULT => -78, + GOTOS => { + 'pointers' => 116 + } + }, + {#State 80 ACTIONS => { - 'CONSTANT' => 44, + 'CONSTANT' => 56, 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -101, + DEFAULT => -99, GOTOS => { - 'identifier' => 45, - 'anytext' => 112, - 'text' => 46, - 'constant' => 43 + 'identifier' => 57, + 'anytext' => 117, + 'text' => 58, + 'constant' => 55 } }, - {#State 73 + {#State 81 ACTIONS => { - 'CONSTANT' => 44, + 'CONSTANT' => 56, 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -101, + DEFAULT => -99, GOTOS => { - 'identifier' => 45, - 'anytext' => 113, - 'text' => 46, - 'constant' => 43 + 'identifier' => 57, + 'anytext' => 118, + 'text' => 58, + 'constant' => 55 } }, - {#State 74 + {#State 82 ACTIONS => { - 'CONSTANT' => 44, + 'CONSTANT' => 56, 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -101, + DEFAULT => -99, GOTOS => { - 'identifier' => 45, - 'anytext' => 109, - 'text' => 46, - 'constant' => 43, - 'commalisttext' => 114 + 'identifier' => 57, + 'anytext' => 119, + 'text' => 58, + 'constant' => 55 } }, - {#State 75 + {#State 83 ACTIONS => { - 'CONSTANT' => 44, + 'CONSTANT' => 56, 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -101, + DEFAULT => -99, GOTOS => { - 'identifier' => 45, - 'anytext' => 115, - 'text' => 46, - 'constant' => 43 + 'identifier' => 57, + 'anytext' => 120, + 'text' => 58, + 'constant' => 55 } }, - {#State 76 + {#State 84 ACTIONS => { - 'CONSTANT' => 44, + 'CONSTANT' => 56, 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -101, + DEFAULT => -99, GOTOS => { - 'identifier' => 45, - 'anytext' => 116, - 'text' => 46, - 'constant' => 43 + 'identifier' => 57, + 'anytext' => 121, + 'text' => 58, + 'constant' => 55 } }, - {#State 77 + {#State 85 ACTIONS => { - 'CONSTANT' => 44, + 'CONSTANT' => 56, 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -101, + DEFAULT => -99, GOTOS => { - 'identifier' => 45, - 'anytext' => 117, - 'text' => 46, - 'constant' => 43 + 'identifier' => 57, + 'anytext' => 122, + 'text' => 58, + 'constant' => 55 } }, - {#State 78 + {#State 86 ACTIONS => { - 'CONSTANT' => 44, + 'CONSTANT' => 56, 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -101, + DEFAULT => -99, GOTOS => { - 'identifier' => 45, - 'anytext' => 118, - 'text' => 46, - 'constant' => 43 + 'identifier' => 57, + 'anytext' => 123, + 'text' => 58, + 'constant' => 55 } }, - {#State 79 + {#State 87 ACTIONS => { - 'CONSTANT' => 44, + 'CONSTANT' => 56, 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -101, + DEFAULT => -99, GOTOS => { - 'identifier' => 45, - 'anytext' => 119, - 'text' => 46, - 'constant' => 43 + 'identifier' => 57, + 'anytext' => 124, + 'text' => 58, + 'constant' => 55, + 'commalisttext' => 125 } }, - {#State 80 - DEFAULT => -96 - }, - {#State 81 - DEFAULT => -12 - }, - {#State 82 - DEFAULT => -126 - }, - {#State 83 + {#State 88 ACTIONS => { - ";" => 120 + 'CONSTANT' => 56, + 'TEXT' => 13, + 'IDENTIFIER' => 22 + }, + DEFAULT => -99, + GOTOS => { + 'identifier' => 57, + 'anytext' => 126, + 'text' => 58, + 'constant' => 55 } }, - {#State 84 + {#State 89 ACTIONS => { - ";" => 82 + 'CONSTANT' => 56, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -125, + DEFAULT => -99, GOTOS => { - 'optional_semicolon' => 121 + 'identifier' => 57, + 'anytext' => 127, + 'text' => 58, + 'constant' => 55 } }, - {#State 85 - DEFAULT => -19 - }, - {#State 86 - DEFAULT => -40 - }, - {#State 87 + {#State 90 ACTIONS => { - 'IDENTIFIER' => 22, - "signed" => 95, - 'void' => 89, - "unsigned" => 99 + 'CONSTANT' => 56, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -91, + DEFAULT => -99, GOTOS => { - 'existingtype' => 96, - 'bitmap' => 51, - 'usertype' => 91, - 'property_list' => 90, - 'identifier' => 92, - 'struct' => 57, - 'enum' => 61, - 'type' => 122, - 'union' => 63, - 'sign' => 93 + 'identifier' => 57, + 'anytext' => 128, + 'text' => 58, + 'constant' => 55 } }, - {#State 88 + {#State 91 ACTIONS => { - 'IDENTIFIER' => 123 + 'CONSTANT' => 56, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -122, + DEFAULT => -99, GOTOS => { - 'optional_identifier' => 124 + 'identifier' => 57, + 'anytext' => 124, + 'text' => 58, + 'constant' => 55, + 'commalisttext' => 129 } }, - {#State 89 - DEFAULT => -47 - }, - {#State 90 + {#State 92 ACTIONS => { - "union" => 88, - "enum" => 97, - "bitmap" => 98, - "[" => 17, - "struct" => 94 + 'CONSTANT' => 56, + 'TEXT' => 13, + 'IDENTIFIER' => 22 + }, + DEFAULT => -99, + GOTOS => { + 'identifier' => 57, + 'anytext' => 130, + 'text' => 58, + 'constant' => 55 } }, - {#State 91 - DEFAULT => -45 - }, - {#State 92 - DEFAULT => -44 - }, {#State 93 ACTIONS => { + 'CONSTANT' => 56, + 'TEXT' => 13, 'IDENTIFIER' => 22 }, + DEFAULT => -99, GOTOS => { - 'identifier' => 125 + 'identifier' => 57, + 'anytext' => 131, + 'text' => 58, + 'constant' => 55 } }, {#State 94 ACTIONS => { - 'IDENTIFIER' => 123 + 'CONSTANT' => 56, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -122, + DEFAULT => -99, GOTOS => { - 'optional_identifier' => 126 + 'identifier' => 57, + 'anytext' => 132, + 'text' => 58, + 'constant' => 55 } }, {#State 95 - DEFAULT => -41 - }, - {#State 96 - DEFAULT => -46 - }, - {#State 97 ACTIONS => { - 'IDENTIFIER' => 123 + 'CONSTANT' => 56, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -122, + DEFAULT => -99, GOTOS => { - 'optional_identifier' => 127 + 'identifier' => 57, + 'anytext' => 133, + 'text' => 58, + 'constant' => 55 } }, + {#State 96 + DEFAULT => -94 + }, + {#State 97 + DEFAULT => -124 + }, {#State 98 - ACTIONS => { - 'IDENTIFIER' => 123 - }, - DEFAULT => -122, - GOTOS => { - 'optional_identifier' => 128 - } + DEFAULT => -12 }, {#State 99 - DEFAULT => -42 - }, - {#State 100 ACTIONS => { - 'IDENTIFIER' => 22 - }, - GOTOS => { - 'identifier' => 129 + ";" => 134 } }, + {#State 100 + DEFAULT => -15 + }, {#State 101 ACTIONS => { - "union" => 130, - "enum" => 135, - "bitmap" => 136, - "[" => 17 + 'IDENTIFIER' => 22 }, GOTOS => { - 'decl_enum' => 131, - 'decl_bitmap' => 132, - 'decl_type' => 134, - 'decl_union' => 133 + 'identifier' => 135 } }, {#State 102 - DEFAULT => -80, - GOTOS => { - 'pointers' => 137 - } + DEFAULT => -119 }, {#State 103 ACTIONS => { - "-" => 65, - ":" => 64, - "<" => 67, - "+" => 69, - "~" => 68, - "*" => 76, - "?" => 66, - "{" => 70, - "&" => 71, - "/" => 72, - "=" => 73, - "(" => 74, - "|" => 75, - "." => 77, - ">" => 78 + "{" => 137 }, - DEFAULT => -114 + DEFAULT => -74, + GOTOS => { + 'union_body' => 138, + 'opt_union_body' => 136 + } }, {#State 104 - ACTIONS => { - ":" => 64, - "<" => 67, - "~" => 68, - "?" => 66, - "{" => 70, - "=" => 73 - }, - DEFAULT => -105 + DEFAULT => -41 }, {#State 105 ACTIONS => { - "-" => 65, - ":" => 64, - "<" => 67, - "+" => 69, - "~" => 68, - "*" => 76, - "?" => 66, - "{" => 70, - "&" => 71, - "/" => 72, - "=" => 73, - "(" => 74, - "|" => 75, - "." => 77, - ">" => 78 + "{" => 140 }, - DEFAULT => -113 + DEFAULT => -64, + GOTOS => { + 'struct_body' => 139, + 'opt_struct_body' => 141 + } }, {#State 106 ACTIONS => { - "-" => 65, - ":" => 64, - "<" => 67, - "+" => 69, - "~" => 68, - "*" => 76, - "?" => 66, - "{" => 70, - "&" => 71, - "/" => 72, - "=" => 73, - "(" => 74, - "|" => 75, - "." => 77, - ">" => 78 + "{" => 142 }, - DEFAULT => -109 + DEFAULT => -47, + GOTOS => { + 'opt_enum_body' => 144, + 'enum_body' => 143 + } }, {#State 107 ACTIONS => { - "-" => 65, - ":" => 64, - "<" => 67, - "+" => 69, - "~" => 68, - "*" => 76, - "?" => 66, - "{" => 70, - "&" => 71, - "/" => 72, - "=" => 73, - "(" => 74, - "|" => 75, - "." => 77, - ">" => 78 + "{" => 146 }, - DEFAULT => -117 + DEFAULT => -55, + GOTOS => { + 'bitmap_body' => 147, + 'opt_bitmap_body' => 145 + } }, {#State 108 ACTIONS => { - ":" => 64, - "<" => 67, - "~" => 68, - "?" => 66, - "{" => 70, - "=" => 73 - }, - DEFAULT => -116 + "(" => 148 + } }, {#State 109 - ACTIONS => { - "-" => 65, - ":" => 64, - "<" => 67, - "+" => 69, - "~" => 68, - "*" => 76, - "?" => 66, - "{" => 70, - "&" => 71, - "/" => 72, - "=" => 73, - "(" => 74, - "|" => 75, - "." => 77, - ">" => 78 - }, - DEFAULT => -99 + DEFAULT => -32 }, {#State 110 - ACTIONS => { - "}" => 138, - "," => 139 - } + DEFAULT => -27 }, {#State 111 - ACTIONS => { - ":" => 64, - "<" => 67, - "~" => 68, - "?" => 66, - "{" => 70, - "=" => 73 - }, - DEFAULT => -111 + DEFAULT => -28 }, {#State 112 - ACTIONS => { - ":" => 64, - "<" => 67, - "~" => 68, - "?" => 66, - "{" => 70, - "=" => 73 - }, - DEFAULT => -112 + DEFAULT => -29 }, {#State 113 ACTIONS => { - "-" => 65, - ":" => 64, - "<" => 67, - "+" => 69, - "~" => 68, - "*" => 76, - "?" => 66, - "{" => 70, - "&" => 71, - "/" => 72, - "=" => 73, - "(" => 74, - "|" => 75, - "." => 77, - ">" => 78 + 'IDENTIFIER' => 22 }, - DEFAULT => -115 + GOTOS => { + 'identifier' => 149 + } }, {#State 114 - ACTIONS => { - "," => 139, - ")" => 140 - } + DEFAULT => -30 }, {#State 115 - ACTIONS => { - ":" => 64, - "<" => 67, - "~" => 68, - "?" => 66, - "{" => 70, - "=" => 73 - }, - DEFAULT => -110 + DEFAULT => -31 }, {#State 116 ACTIONS => { - ":" => 64, - "<" => 67, - "~" => 68, - "?" => 66, - "{" => 70, - "=" => 73 + 'IDENTIFIER' => 22, + "*" => 151 }, - DEFAULT => -107 + GOTOS => { + 'identifier' => 150 + } }, {#State 117 ACTIONS => { - ":" => 64, - "<" => 67, - "~" => 68, - "?" => 66, - "{" => 70, - "=" => 73 + "-" => 81, + ":" => 80, + "<" => 82, + "+" => 84, + "~" => 83, + "*" => 85, + "?" => 86, + "{" => 87, + "&" => 88, + "/" => 89, + "=" => 90, + "(" => 91, + "|" => 92, + "." => 93, + ">" => 94 }, - DEFAULT => -106 + DEFAULT => -112 }, {#State 118 ACTIONS => { - ":" => 64, - "<" => 67, - "~" => 68, - "?" => 66, - "{" => 70, - "=" => 73 + ":" => 80, + "<" => 82, + "~" => 83, + "?" => 86, + "{" => 87, + "=" => 90 }, - DEFAULT => -108 + DEFAULT => -103 }, {#State 119 ACTIONS => { - "-" => 65, - ":" => 64, - "<" => 67, - "+" => 69, - "~" => 68, - "*" => 76, - "?" => 66, - "{" => 70, - "&" => 71, - "/" => 72, - "=" => 73, - "(" => 74, - "|" => 75, - "." => 77, - ">" => 78 + "-" => 81, + ":" => 80, + "<" => 82, + "+" => 84, + "~" => 83, + "*" => 85, + "?" => 86, + "{" => 87, + "&" => 88, + "/" => 89, + "=" => 90, + "(" => 91, + "|" => 92, + "." => 93, + ">" => 94 }, - DEFAULT => -98 + DEFAULT => -107 }, {#State 120 - DEFAULT => -14 + ACTIONS => { + "-" => 81, + ":" => 80, + "<" => 82, + "+" => 84, + "~" => 83, + "*" => 85, + "?" => 86, + "{" => 87, + "&" => 88, + "/" => 89, + "=" => 90, + "(" => 91, + "|" => 92, + "." => 93, + ">" => 94 + }, + DEFAULT => -115 }, {#State 121 - DEFAULT => -15 + ACTIONS => { + ":" => 80, + "<" => 82, + "~" => 83, + "?" => 86, + "{" => 87, + "=" => 90 + }, + DEFAULT => -114 }, {#State 122 ACTIONS => { - 'IDENTIFIER' => 22 + ":" => 80, + "<" => 82, + "~" => 83, + "?" => 86, + "{" => 87, + "=" => 90 }, - GOTOS => { - 'identifier' => 141 - } + DEFAULT => -105 }, {#State 123 - DEFAULT => -121 + ACTIONS => { + "-" => 81, + ":" => 80, + "<" => 82, + "+" => 84, + "~" => 83, + "*" => 85, + "?" => 86, + "{" => 87, + "&" => 88, + "/" => 89, + "=" => 90, + "(" => 91, + "|" => 92, + "." => 93, + ">" => 94 + }, + DEFAULT => -111 }, {#State 124 ACTIONS => { - "{" => 143 + "-" => 81, + ":" => 80, + "<" => 82, + "+" => 84, + "~" => 83, + "*" => 85, + "?" => 86, + "{" => 87, + "&" => 88, + "/" => 89, + "=" => 90, + "(" => 91, + "|" => 92, + "." => 93, + ">" => 94 }, - DEFAULT => -76, - GOTOS => { - 'union_body' => 144, - 'opt_union_body' => 142 - } + DEFAULT => -97 }, {#State 125 - DEFAULT => -43 + ACTIONS => { + "}" => 152, + "," => 153 + } }, {#State 126 ACTIONS => { - "{" => 146 + ":" => 80, + "<" => 82, + "~" => 83, + "?" => 86, + "{" => 87, + "=" => 90 }, - DEFAULT => -66, - GOTOS => { - 'struct_body' => 145, - 'opt_struct_body' => 147 - } + DEFAULT => -109 }, {#State 127 ACTIONS => { - "{" => 148 + ":" => 80, + "<" => 82, + "~" => 83, + "?" => 86, + "{" => 87, + "=" => 90 }, - DEFAULT => -49, - GOTOS => { - 'opt_enum_body' => 150, - 'enum_body' => 149 - } + DEFAULT => -110 }, {#State 128 ACTIONS => { - "{" => 152 + "-" => 81, + ":" => 80, + "<" => 82, + "+" => 84, + "~" => 83, + "*" => 85, + "?" => 86, + "{" => 87, + "&" => 88, + "/" => 89, + "=" => 90, + "(" => 91, + "|" => 92, + "." => 93, + ">" => 94 }, - DEFAULT => -57, - GOTOS => { - 'bitmap_body' => 153, - 'opt_bitmap_body' => 151 - } + DEFAULT => -113 }, {#State 129 ACTIONS => { - "(" => 154 + "," => 153, + ")" => 154 } }, {#State 130 - DEFAULT => -34 + ACTIONS => { + ":" => 80, + "<" => 82, + "~" => 83, + "?" => 86, + "{" => 87, + "=" => 90 + }, + DEFAULT => -108 }, {#State 131 - DEFAULT => -29 + ACTIONS => { + ":" => 80, + "<" => 82, + "~" => 83, + "?" => 86, + "{" => 87, + "=" => 90 + }, + DEFAULT => -104 }, {#State 132 - DEFAULT => -30 - }, - {#State 133 - DEFAULT => -31 - }, - {#State 134 ACTIONS => { - 'IDENTIFIER' => 22 + ":" => 80, + "<" => 82, + "~" => 83, + "?" => 86, + "{" => 87, + "=" => 90 }, - GOTOS => { - 'identifier' => 155 - } - }, - {#State 135 - DEFAULT => -32 - }, - {#State 136 - DEFAULT => -33 + DEFAULT => -106 }, - {#State 137 + {#State 133 ACTIONS => { - 'IDENTIFIER' => 22, - "*" => 157 + "-" => 81, + ":" => 80, + "<" => 82, + "+" => 84, + "~" => 83, + "*" => 85, + "?" => 86, + "{" => 87, + "&" => 88, + "/" => 89, + "=" => 90, + "(" => 91, + "|" => 92, + "." => 93, + ">" => 94 }, - GOTOS => { - 'identifier' => 156 - } + DEFAULT => -96 }, - {#State 138 + {#State 134 + DEFAULT => -14 + }, + {#State 135 ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + "[" => 155 }, - DEFAULT => -101, + DEFAULT => -86, GOTOS => { - 'identifier' => 45, - 'anytext' => 158, - 'text' => 46, - 'constant' => 43 + 'array_len' => 156 } }, - {#State 139 - ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, - 'IDENTIFIER' => 22 - }, - DEFAULT => -101, + {#State 136 + DEFAULT => -76 + }, + {#State 137 + DEFAULT => -71, GOTOS => { - 'identifier' => 45, - 'anytext' => 159, - 'text' => 46, - 'constant' => 43 + 'union_elements' => 157 } }, + {#State 138 + DEFAULT => -75 + }, + {#State 139 + DEFAULT => -65 + }, {#State 140 - ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, - 'IDENTIFIER' => 22 - }, - DEFAULT => -101, + DEFAULT => -80, GOTOS => { - 'identifier' => 45, - 'anytext' => 160, - 'text' => 46, - 'constant' => 43 + 'element_list1' => 158 } }, {#State 141 + DEFAULT => -66 + }, + {#State 142 ACTIONS => { - "[" => 161 + 'IDENTIFIER' => 22 }, - DEFAULT => -88, GOTOS => { - 'array_len' => 162 + 'identifier' => 159, + 'enum_element' => 160, + 'enum_elements' => 161 } }, - {#State 142 - DEFAULT => -78 - }, {#State 143 - DEFAULT => -73, - GOTOS => { - 'union_elements' => 163 - } + DEFAULT => -48 }, {#State 144 - DEFAULT => -77 + DEFAULT => -49 }, {#State 145 - DEFAULT => -67 + DEFAULT => -57 }, {#State 146 - DEFAULT => -82, + ACTIONS => { + 'IDENTIFIER' => 22 + }, + DEFAULT => -60, GOTOS => { - 'element_list1' => 164 + 'identifier' => 164, + 'bitmap_element' => 163, + 'bitmap_elements' => 162, + 'opt_bitmap_elements' => 165 } }, {#State 147 - DEFAULT => -68 + DEFAULT => -56 }, {#State 148 ACTIONS => { - 'IDENTIFIER' => 22 + "," => -82, + "void" => 169, + ")" => -82 }, + DEFAULT => -89, GOTOS => { - 'identifier' => 165, - 'enum_element' => 166, - 'enum_elements' => 167 + 'base_element' => 166, + 'element_list2' => 168, + 'property_list' => 167 } }, {#State 149 - DEFAULT => -50 + ACTIONS => { + ";" => 170 + } }, {#State 150 - DEFAULT => -51 + ACTIONS => { + "[" => 155, + "=" => 172 + }, + GOTOS => { + 'array_len' => 171 + } }, {#State 151 - DEFAULT => -59 + DEFAULT => -79 }, {#State 152 ACTIONS => { + 'CONSTANT' => 56, + 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -62, + DEFAULT => -99, GOTOS => { - 'identifier' => 170, - 'bitmap_element' => 169, - 'bitmap_elements' => 168, - 'opt_bitmap_elements' => 171 + 'identifier' => 57, + 'anytext' => 173, + 'text' => 58, + 'constant' => 55 } }, {#State 153 - DEFAULT => -58 + ACTIONS => { + 'CONSTANT' => 56, + 'TEXT' => 13, + 'IDENTIFIER' => 22 + }, + DEFAULT => -99, + GOTOS => { + 'identifier' => 57, + 'anytext' => 174, + 'text' => 58, + 'constant' => 55 + } }, {#State 154 ACTIONS => { - "," => -84, - "void" => 175, - ")" => -84 + 'CONSTANT' => 56, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -91, + DEFAULT => -99, GOTOS => { - 'base_element' => 172, - 'element_list2' => 174, - 'property_list' => 173 + 'identifier' => 57, + 'anytext' => 175, + 'text' => 58, + 'constant' => 55 } }, {#State 155 ACTIONS => { - ";" => 176 + 'CONSTANT' => 56, + 'TEXT' => 13, + "]" => 176, + 'IDENTIFIER' => 22 + }, + DEFAULT => -99, + GOTOS => { + 'identifier' => 57, + 'anytext' => 177, + 'text' => 58, + 'constant' => 55 } }, {#State 156 ACTIONS => { - "[" => 161, - "=" => 178 - }, - GOTOS => { - 'array_len' => 177 + ";" => 178 } }, {#State 157 - DEFAULT => -81 + ACTIONS => { + "}" => 179 + }, + DEFAULT => -89, + GOTOS => { + 'optional_base_element' => 181, + 'property_list' => 180 + } }, {#State 158 ACTIONS => { - "-" => 65, - ":" => 64, - "<" => 67, - "+" => 69, - "~" => 68, - "*" => 76, - "?" => 66, - "{" => 70, - "&" => 71, - "/" => 72, - "=" => 73, - "(" => 74, - "|" => 75, - "." => 77, - ">" => 78 + "}" => 182 }, - DEFAULT => -119 + DEFAULT => -89, + GOTOS => { + 'base_element' => 183, + 'property_list' => 167 + } }, {#State 159 ACTIONS => { - "-" => 65, - ":" => 64, - "<" => 67, - "+" => 69, - "~" => 68, - "*" => 76, - "?" => 66, - "{" => 70, - "&" => 71, - "/" => 72, - "=" => 73, - "(" => 74, - "|" => 75, - "." => 77, - ">" => 78 + "=" => 184 }, - DEFAULT => -100 + DEFAULT => -52 }, {#State 160 - ACTIONS => { - ":" => 64, - "<" => 67, - "~" => 68, - "?" => 66, - "{" => 70, - "=" => 73 - }, - DEFAULT => -118 + DEFAULT => -50 }, {#State 161 ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, - "]" => 179, - 'IDENTIFIER' => 22 - }, - DEFAULT => -101, - GOTOS => { - 'identifier' => 45, - 'anytext' => 180, - 'text' => 46, - 'constant' => 43 + "}" => 185, + "," => 186 } }, {#State 162 ACTIONS => { - ";" => 181 - } + "," => 187 + }, + DEFAULT => -61 }, {#State 163 - ACTIONS => { - "}" => 182 - }, - DEFAULT => -91, - GOTOS => { - 'optional_base_element' => 184, - 'property_list' => 183 - } + DEFAULT => -58 }, {#State 164 ACTIONS => { - "}" => 185 - }, - DEFAULT => -91, - GOTOS => { - 'base_element' => 186, - 'property_list' => 173 + "=" => 188 } }, {#State 165 ACTIONS => { - "=" => 187 - }, - DEFAULT => -54 + "}" => 189 + } }, {#State 166 - DEFAULT => -52 + DEFAULT => -84 }, {#State 167 ACTIONS => { - "}" => 188, - "," => 189 + 'IDENTIFIER' => 22, + "signed" => 72, + 'void' => 66, + "unsigned" => 76, + "[" => 17 + }, + DEFAULT => -89, + GOTOS => { + 'existingtype' => 73, + 'bitmap' => 39, + 'usertype' => 68, + 'property_list' => 67, + 'identifier' => 69, + 'struct' => 45, + 'enum' => 49, + 'type' => 190, + 'union' => 51, + 'sign' => 70 } }, {#State 168 ACTIONS => { - "," => 190 - }, - DEFAULT => -63 + "," => 191, + ")" => 192 + } }, {#State 169 - DEFAULT => -60 + DEFAULT => -83 }, {#State 170 - ACTIONS => { - "=" => 191 - } + DEFAULT => -26 }, {#State 171 ACTIONS => { - "}" => 192 + "=" => 193 } }, {#State 172 - DEFAULT => -86 - }, - {#State 173 ACTIONS => { - 'IDENTIFIER' => 22, - "signed" => 95, - 'void' => 89, - "unsigned" => 99, - "[" => 17 + 'CONSTANT' => 56, + 'TEXT' => 13, + 'IDENTIFIER' => 22 }, - DEFAULT => -91, + DEFAULT => -99, GOTOS => { - 'existingtype' => 96, - 'bitmap' => 51, - 'usertype' => 91, - 'property_list' => 90, - 'identifier' => 92, - 'struct' => 57, - 'enum' => 61, - 'type' => 193, - 'union' => 63, - 'sign' => 93 + 'identifier' => 57, + 'anytext' => 194, + 'text' => 58, + 'constant' => 55 } }, - {#State 174 + {#State 173 ACTIONS => { - "," => 194, - ")" => 195 - } - }, - {#State 175 - DEFAULT => -85 - }, - {#State 176 - DEFAULT => -28 + "-" => 81, + ":" => 80, + "<" => 82, + "+" => 84, + "~" => 83, + "*" => 85, + "?" => 86, + "{" => 87, + "&" => 88, + "/" => 89, + "=" => 90, + "(" => 91, + "|" => 92, + "." => 93, + ">" => 94 + }, + DEFAULT => -117 }, - {#State 177 + {#State 174 ACTIONS => { - "=" => 196 - } + "-" => 81, + ":" => 80, + "<" => 82, + "+" => 84, + "~" => 83, + "*" => 85, + "?" => 86, + "{" => 87, + "&" => 88, + "/" => 89, + "=" => 90, + "(" => 91, + "|" => 92, + "." => 93, + ">" => 94 + }, + DEFAULT => -98 }, - {#State 178 + {#State 175 ACTIONS => { - 'CONSTANT' => 44, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + ":" => 80, + "<" => 82, + "~" => 83, + "?" => 86, + "{" => 87, + "=" => 90 }, - DEFAULT => -101, - GOTOS => { - 'identifier' => 45, - 'anytext' => 197, - 'text' => 46, - 'constant' => 43 - } + DEFAULT => -116 }, - {#State 179 + {#State 176 ACTIONS => { - "[" => 161 + "[" => 155 }, - DEFAULT => -88, + DEFAULT => -86, GOTOS => { - 'array_len' => 198 + 'array_len' => 195 } }, - {#State 180 + {#State 177 ACTIONS => { - "-" => 65, - ":" => 64, - "?" => 66, - "<" => 67, - "+" => 69, - "~" => 68, - "&" => 71, - "{" => 70, - "/" => 72, - "=" => 73, - "|" => 75, - "(" => 74, - "*" => 76, - "." => 77, - "]" => 199, - ">" => 78 + "-" => 81, + ":" => 80, + "?" => 86, + "<" => 82, + "+" => 84, + "~" => 83, + "&" => 88, + "{" => 87, + "/" => 89, + "=" => 90, + "|" => 92, + "(" => 91, + "*" => 85, + "." => 93, + "]" => 196, + ">" => 94 } }, - {#State 181 - DEFAULT => -35 + {#State 178 + DEFAULT => -33 }, - {#State 182 - DEFAULT => -75 + {#State 179 + DEFAULT => -73 }, - {#State 183 + {#State 180 ACTIONS => { "[" => 17 }, - DEFAULT => -91, + DEFAULT => -89, GOTOS => { - 'base_or_empty' => 200, - 'base_element' => 201, - 'empty_element' => 202, - 'property_list' => 203 + 'base_or_empty' => 197, + 'base_element' => 198, + 'empty_element' => 199, + 'property_list' => 200 } }, - {#State 184 - DEFAULT => -74 + {#State 181 + DEFAULT => -72 }, - {#State 185 - DEFAULT => -65 + {#State 182 + DEFAULT => -63 }, - {#State 186 + {#State 183 ACTIONS => { - ";" => 204 + ";" => 201 } }, - {#State 187 + {#State 184 ACTIONS => { - 'CONSTANT' => 44, + 'CONSTANT' => 56, 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -101, + DEFAULT => -99, GOTOS => { - 'identifier' => 45, - 'anytext' => 205, - 'text' => 46, - 'constant' => 43 + 'identifier' => 57, + 'anytext' => 202, + 'text' => 58, + 'constant' => 55 } }, - {#State 188 - DEFAULT => -48 + {#State 185 + DEFAULT => -46 }, - {#State 189 + {#State 186 ACTIONS => { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 165, - 'enum_element' => 206 + 'identifier' => 159, + 'enum_element' => 203 } }, - {#State 190 + {#State 187 ACTIONS => { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 170, - 'bitmap_element' => 207 + 'identifier' => 164, + 'bitmap_element' => 204 } }, - {#State 191 + {#State 188 ACTIONS => { - 'CONSTANT' => 44, + 'CONSTANT' => 56, 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -101, + DEFAULT => -99, GOTOS => { - 'identifier' => 45, - 'anytext' => 208, - 'text' => 46, - 'constant' => 43 + 'identifier' => 57, + 'anytext' => 205, + 'text' => 58, + 'constant' => 55 } }, - {#State 192 - DEFAULT => -56 + {#State 189 + DEFAULT => -54 }, - {#State 193 - DEFAULT => -80, + {#State 190 + DEFAULT => -78, GOTOS => { - 'pointers' => 209 + 'pointers' => 206 } }, - {#State 194 - DEFAULT => -91, + {#State 191 + DEFAULT => -89, GOTOS => { - 'base_element' => 210, - 'property_list' => 173 + 'base_element' => 207, + 'property_list' => 167 } }, - {#State 195 + {#State 192 ACTIONS => { - ";" => 211 + ";" => 208 } }, - {#State 196 + {#State 193 ACTIONS => { - 'CONSTANT' => 44, + 'CONSTANT' => 56, 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -101, + DEFAULT => -99, GOTOS => { - 'identifier' => 45, - 'anytext' => 212, - 'text' => 46, - 'constant' => 43 + 'identifier' => 57, + 'anytext' => 209, + 'text' => 58, + 'constant' => 55 } }, - {#State 197 + {#State 194 ACTIONS => { - "-" => 65, - ":" => 64, - "?" => 66, - "<" => 67, - ";" => 213, - "+" => 69, - "~" => 68, - "&" => 71, - "{" => 70, - "/" => 72, - "=" => 73, - "|" => 75, - "(" => 74, - "*" => 76, - "." => 77, - ">" => 78 + "-" => 81, + ":" => 80, + "?" => 86, + "<" => 82, + ";" => 210, + "+" => 84, + "~" => 83, + "&" => 88, + "{" => 87, + "/" => 89, + "=" => 90, + "|" => 92, + "(" => 91, + "*" => 85, + "." => 93, + ">" => 94 } }, - {#State 198 - DEFAULT => -89 + {#State 195 + DEFAULT => -87 }, - {#State 199 + {#State 196 ACTIONS => { - "[" => 161 + "[" => 155 }, - DEFAULT => -88, + DEFAULT => -86, GOTOS => { - 'array_len' => 214 + 'array_len' => 211 } }, - {#State 200 - DEFAULT => -72 + {#State 197 + DEFAULT => -70 }, - {#State 201 + {#State 198 ACTIONS => { - ";" => 215 + ";" => 212 } }, - {#State 202 - DEFAULT => -71 + {#State 199 + DEFAULT => -69 }, - {#State 203 + {#State 200 ACTIONS => { 'IDENTIFIER' => 22, - "signed" => 95, - ";" => 216, - 'void' => 89, - "unsigned" => 99, + "signed" => 72, + ";" => 213, + 'void' => 66, + "unsigned" => 76, "[" => 17 }, - DEFAULT => -91, + DEFAULT => -89, GOTOS => { - 'existingtype' => 96, - 'bitmap' => 51, - 'usertype' => 91, - 'property_list' => 90, - 'identifier' => 92, - 'struct' => 57, - 'enum' => 61, - 'type' => 193, - 'union' => 63, - 'sign' => 93 + 'existingtype' => 73, + 'bitmap' => 39, + 'usertype' => 68, + 'property_list' => 67, + 'identifier' => 69, + 'struct' => 45, + 'enum' => 49, + 'type' => 190, + 'union' => 51, + 'sign' => 70 } }, + {#State 201 + DEFAULT => -81 + }, + {#State 202 + ACTIONS => { + "-" => 81, + ":" => 80, + "<" => 82, + "+" => 84, + "~" => 83, + "*" => 85, + "?" => 86, + "{" => 87, + "&" => 88, + "/" => 89, + "=" => 90, + "(" => 91, + "|" => 92, + "." => 93, + ">" => 94 + }, + DEFAULT => -53 + }, + {#State 203 + DEFAULT => -51 + }, {#State 204 - DEFAULT => -83 + DEFAULT => -59 }, {#State 205 ACTIONS => { - "-" => 65, - ":" => 64, - "<" => 67, - "+" => 69, - "~" => 68, - "*" => 76, - "?" => 66, - "{" => 70, - "&" => 71, - "/" => 72, - "=" => 73, - "(" => 74, - "|" => 75, - "." => 77, - ">" => 78 - }, - DEFAULT => -55 + "-" => 81, + ":" => 80, + "<" => 82, + "+" => 84, + "~" => 83, + "*" => 85, + "?" => 86, + "{" => 87, + "&" => 88, + "/" => 89, + "=" => 90, + "(" => 91, + "|" => 92, + "." => 93, + ">" => 94 + }, + DEFAULT => -62 }, {#State 206 - DEFAULT => -53 + ACTIONS => { + 'IDENTIFIER' => 22, + "*" => 151 + }, + GOTOS => { + 'identifier' => 214 + } }, {#State 207 - DEFAULT => -61 + DEFAULT => -85 }, {#State 208 - ACTIONS => { - "-" => 65, - ":" => 64, - "<" => 67, - "+" => 69, - "~" => 68, - "*" => 76, - "?" => 66, - "{" => 70, - "&" => 71, - "/" => 72, - "=" => 73, - "(" => 74, - "|" => 75, - "." => 77, - ">" => 78 - }, - DEFAULT => -64 + DEFAULT => -25 }, {#State 209 ACTIONS => { - 'IDENTIFIER' => 22, - "*" => 157 - }, - GOTOS => { - 'identifier' => 217 + "-" => 81, + ":" => 80, + "?" => 86, + "<" => 82, + ";" => 215, + "+" => 84, + "~" => 83, + "&" => 88, + "{" => 87, + "/" => 89, + "=" => 90, + "|" => 92, + "(" => 91, + "*" => 85, + "." => 93, + ">" => 94 } }, {#State 210 - DEFAULT => -87 + DEFAULT => -23 }, {#State 211 - DEFAULT => -27 + DEFAULT => -88 }, {#State 212 - ACTIONS => { - "-" => 65, - ":" => 64, - "?" => 66, - "<" => 67, - ";" => 218, - "+" => 69, - "~" => 68, - "&" => 71, - "{" => 70, - "/" => 72, - "=" => 73, - "|" => 75, - "(" => 74, - "*" => 76, - "." => 77, - ">" => 78 - } + DEFAULT => -68 }, {#State 213 - DEFAULT => -25 + DEFAULT => -67 }, {#State 214 - DEFAULT => -90 - }, - {#State 215 - DEFAULT => -70 - }, - {#State 216 - DEFAULT => -69 - }, - {#State 217 ACTIONS => { - "[" => 161 + "[" => 155 }, - DEFAULT => -88, + DEFAULT => -86, GOTOS => { - 'array_len' => 219 + 'array_len' => 216 } }, - {#State 218 - DEFAULT => -26 + {#State 215 + DEFAULT => -24 }, - {#State 219 - DEFAULT => -79 + {#State 216 + DEFAULT => -77 } ], yyrules => @@ -1894,59 +1874,49 @@ sub { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 15 - 'interface', 8, + 'interface', 7, sub #line 70 "idl.yp" {{ "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], "NAME" => $_[3], - "BASE" => $_[4], - "DATA" => $_[6], - "FILE" => $_[0]->YYData->{FILE}, - "LINE" => $_[0]->YYData->{LINE}, - }} - ], - [#Rule 16 - 'base_interface', 0, undef - ], - [#Rule 17 - 'base_interface', 2, -sub -#line 83 "idl.yp" -{ $_[2] } + "DATA" => $_[5], + "FILE" => $_[0]->YYData->{FILE}, + "LINE" => $_[0]->YYData->{LINE}, + }} ], - [#Rule 18 + [#Rule 16 'definitions', 1, sub -#line 87 "idl.yp" +#line 81 "idl.yp" { [ $_[1] ] } ], - [#Rule 19 + [#Rule 17 'definitions', 2, sub -#line 88 "idl.yp" +#line 82 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 20 + [#Rule 18 'definition', 1, undef ], - [#Rule 21 + [#Rule 19 'definition', 1, undef ], - [#Rule 22 + [#Rule 20 'definition', 1, undef ], - [#Rule 23 + [#Rule 21 'definition', 1, undef ], - [#Rule 24 + [#Rule 22 'definition', 1, undef ], - [#Rule 25 + [#Rule 23 'const', 7, sub -#line 96 "idl.yp" +#line 90 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1957,10 +1927,10 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 26 + [#Rule 24 'const', 8, sub -#line 106 "idl.yp" +#line 100 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1972,10 +1942,10 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 27 + [#Rule 25 'function', 7, sub -#line 120 "idl.yp" +#line 114 "idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -1986,10 +1956,10 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 28 + [#Rule 26 'declare', 5, sub -#line 132 "idl.yp" +#line 126 "idl.yp" {{ "TYPE" => "DECLARE", "PROPERTIES" => $_[2], @@ -1999,43 +1969,43 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 29 + [#Rule 27 'decl_type', 1, undef ], - [#Rule 30 + [#Rule 28 'decl_type', 1, undef ], - [#Rule 31 + [#Rule 29 'decl_type', 1, undef ], - [#Rule 32 + [#Rule 30 'decl_enum', 1, sub -#line 146 "idl.yp" +#line 140 "idl.yp" {{ "TYPE" => "ENUM" }} ], - [#Rule 33 + [#Rule 31 'decl_bitmap', 1, sub -#line 152 "idl.yp" +#line 146 "idl.yp" {{ "TYPE" => "BITMAP" }} ], - [#Rule 34 + [#Rule 32 'decl_union', 1, sub -#line 158 "idl.yp" +#line 152 "idl.yp" {{ "TYPE" => "UNION" }} ], - [#Rule 35 + [#Rule 33 'typedef', 6, sub -#line 164 "idl.yp" +#line 158 "idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[1], @@ -2046,67 +2016,67 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 36 + [#Rule 34 'usertype', 1, undef ], - [#Rule 37 + [#Rule 35 'usertype', 1, undef ], - [#Rule 38 + [#Rule 36 'usertype', 1, undef ], - [#Rule 39 + [#Rule 37 'usertype', 1, undef ], - [#Rule 40 + [#Rule 38 'typedecl', 2, sub -#line 177 "idl.yp" +#line 171 "idl.yp" { $_[1] } ], - [#Rule 41 + [#Rule 39 'sign', 1, undef ], - [#Rule 42 + [#Rule 40 'sign', 1, undef ], - [#Rule 43 + [#Rule 41 'existingtype', 2, sub -#line 182 "idl.yp" +#line 176 "idl.yp" { ($_[1]?$_[1]:"signed") ." $_[2]" } ], - [#Rule 44 + [#Rule 42 'existingtype', 1, undef ], - [#Rule 45 + [#Rule 43 'type', 1, undef ], - [#Rule 46 + [#Rule 44 'type', 1, undef ], - [#Rule 47 + [#Rule 45 'type', 1, sub -#line 186 "idl.yp" +#line 180 "idl.yp" { "void" } ], - [#Rule 48 + [#Rule 46 'enum_body', 3, sub -#line 188 "idl.yp" +#line 182 "idl.yp" { $_[2] } ], - [#Rule 49 + [#Rule 47 'opt_enum_body', 0, undef ], - [#Rule 50 + [#Rule 48 'opt_enum_body', 1, undef ], - [#Rule 51 + [#Rule 49 'enum', 4, sub -#line 191 "idl.yp" +#line 185 "idl.yp" {{ "TYPE" => "ENUM", "PROPERTIES" => $_[1], @@ -2114,43 +2084,43 @@ sub "ELEMENTS" => $_[4] }} ], - [#Rule 52 + [#Rule 50 'enum_elements', 1, sub -#line 200 "idl.yp" +#line 194 "idl.yp" { [ $_[1] ] } ], - [#Rule 53 + [#Rule 51 'enum_elements', 3, sub -#line 201 "idl.yp" +#line 195 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 54 + [#Rule 52 'enum_element', 1, undef ], - [#Rule 55 + [#Rule 53 'enum_element', 3, sub -#line 205 "idl.yp" +#line 199 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 56 + [#Rule 54 'bitmap_body', 3, sub -#line 208 "idl.yp" +#line 202 "idl.yp" { $_[2] } ], - [#Rule 57 + [#Rule 55 'opt_bitmap_body', 0, undef ], - [#Rule 58 + [#Rule 56 'opt_bitmap_body', 1, undef ], - [#Rule 59 + [#Rule 57 'bitmap', 4, sub -#line 211 "idl.yp" +#line 205 "idl.yp" {{ "TYPE" => "BITMAP", "PROPERTIES" => $_[1], @@ -2158,46 +2128,46 @@ sub "ELEMENTS" => $_[4] }} ], - [#Rule 60 + [#Rule 58 'bitmap_elements', 1, sub -#line 220 "idl.yp" +#line 214 "idl.yp" { [ $_[1] ] } ], - [#Rule 61 + [#Rule 59 'bitmap_elements', 3, sub -#line 221 "idl.yp" +#line 215 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 62 + [#Rule 60 'opt_bitmap_elements', 0, undef ], - [#Rule 63 + [#Rule 61 'opt_bitmap_elements', 1, undef ], - [#Rule 64 + [#Rule 62 'bitmap_element', 3, sub -#line 226 "idl.yp" +#line 220 "idl.yp" { "$_[1] ( $_[3] )" } ], - [#Rule 65 + [#Rule 63 'struct_body', 3, sub -#line 229 "idl.yp" +#line 223 "idl.yp" { $_[2] } ], - [#Rule 66 + [#Rule 64 'opt_struct_body', 0, undef ], - [#Rule 67 + [#Rule 65 'opt_struct_body', 1, undef ], - [#Rule 68 + [#Rule 66 'struct', 4, sub -#line 233 "idl.yp" +#line 227 "idl.yp" {{ "TYPE" => "STRUCT", "PROPERTIES" => $_[1], @@ -2205,10 +2175,10 @@ sub "ELEMENTS" => $_[4] }} ], - [#Rule 69 + [#Rule 67 'empty_element', 2, sub -#line 242 "idl.yp" +#line 236 "idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2219,43 +2189,43 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 70 + [#Rule 68 'base_or_empty', 2, undef ], - [#Rule 71 + [#Rule 69 'base_or_empty', 1, undef ], - [#Rule 72 + [#Rule 70 'optional_base_element', 2, sub -#line 256 "idl.yp" +#line 250 "idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], - [#Rule 73 + [#Rule 71 'union_elements', 0, undef ], - [#Rule 74 + [#Rule 72 'union_elements', 2, sub -#line 261 "idl.yp" +#line 255 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 75 + [#Rule 73 'union_body', 3, sub -#line 264 "idl.yp" +#line 258 "idl.yp" { $_[2] } ], - [#Rule 76 + [#Rule 74 'opt_union_body', 0, undef ], - [#Rule 77 + [#Rule 75 'opt_union_body', 1, undef ], - [#Rule 78 + [#Rule 76 'union', 4, sub -#line 268 "idl.yp" +#line 262 "idl.yp" {{ "TYPE" => "UNION", "PROPERTIES" => $_[1], @@ -2263,10 +2233,10 @@ sub "ELEMENTS" => $_[4] }} ], - [#Rule 79 + [#Rule 77 'base_element', 5, sub -#line 277 "idl.yp" +#line 271 "idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2277,238 +2247,241 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 80 + [#Rule 78 'pointers', 0, sub -#line 291 "idl.yp" +#line 285 "idl.yp" { 0 } ], - [#Rule 81 + [#Rule 79 'pointers', 2, sub -#line 292 "idl.yp" +#line 286 "idl.yp" { $_[1]+1 } ], - [#Rule 82 - 'element_list1', 0, undef + [#Rule 80 + 'element_list1', 0, +sub +#line 290 "idl.yp" +{ [] } ], - [#Rule 83 + [#Rule 81 'element_list1', 3, sub -#line 297 "idl.yp" +#line 291 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 84 + [#Rule 82 'element_list2', 0, undef ], - [#Rule 85 + [#Rule 83 'element_list2', 1, undef ], - [#Rule 86 + [#Rule 84 'element_list2', 1, sub -#line 303 "idl.yp" +#line 297 "idl.yp" { [ $_[1] ] } ], - [#Rule 87 + [#Rule 85 'element_list2', 3, sub -#line 304 "idl.yp" +#line 298 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 88 + [#Rule 86 'array_len', 0, undef ], - [#Rule 89 + [#Rule 87 'array_len', 3, sub -#line 309 "idl.yp" +#line 303 "idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], - [#Rule 90 + [#Rule 88 'array_len', 4, sub -#line 310 "idl.yp" +#line 304 "idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], - [#Rule 91 + [#Rule 89 'property_list', 0, undef ], - [#Rule 92 + [#Rule 90 'property_list', 4, sub -#line 316 "idl.yp" +#line 310 "idl.yp" { FlattenHash([$_[1],$_[3]]); } ], - [#Rule 93 + [#Rule 91 'properties', 1, sub -#line 319 "idl.yp" +#line 313 "idl.yp" { $_[1] } ], - [#Rule 94 + [#Rule 92 'properties', 3, sub -#line 320 "idl.yp" +#line 314 "idl.yp" { FlattenHash([$_[1], $_[3]]); } ], - [#Rule 95 + [#Rule 93 'property', 1, sub -#line 323 "idl.yp" +#line 317 "idl.yp" {{ "$_[1]" => "1" }} ], - [#Rule 96 + [#Rule 94 'property', 4, sub -#line 324 "idl.yp" +#line 318 "idl.yp" {{ "$_[1]" => "$_[3]" }} ], - [#Rule 97 + [#Rule 95 'listtext', 1, undef ], - [#Rule 98 + [#Rule 96 'listtext', 3, sub -#line 329 "idl.yp" +#line 323 "idl.yp" { "$_[1] $_[3]" } ], - [#Rule 99 + [#Rule 97 'commalisttext', 1, undef ], - [#Rule 100 + [#Rule 98 'commalisttext', 3, sub -#line 334 "idl.yp" +#line 328 "idl.yp" { "$_[1],$_[3]" } ], - [#Rule 101 + [#Rule 99 'anytext', 0, sub -#line 338 "idl.yp" +#line 332 "idl.yp" { "" } ], + [#Rule 100 + 'anytext', 1, undef + ], + [#Rule 101 + 'anytext', 1, undef + ], [#Rule 102 'anytext', 1, undef ], [#Rule 103 - 'anytext', 1, undef + 'anytext', 3, +sub +#line 334 "idl.yp" +{ "$_[1]$_[2]$_[3]" } ], [#Rule 104 - 'anytext', 1, undef + 'anytext', 3, +sub +#line 335 "idl.yp" +{ "$_[1]$_[2]$_[3]" } ], [#Rule 105 'anytext', 3, sub -#line 340 "idl.yp" +#line 336 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 106 'anytext', 3, sub -#line 341 "idl.yp" +#line 337 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 107 'anytext', 3, sub -#line 342 "idl.yp" +#line 338 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 108 'anytext', 3, sub -#line 343 "idl.yp" +#line 339 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 109 'anytext', 3, sub -#line 344 "idl.yp" +#line 340 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 110 'anytext', 3, sub -#line 345 "idl.yp" +#line 341 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 111 'anytext', 3, sub -#line 346 "idl.yp" +#line 342 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 112 'anytext', 3, sub -#line 347 "idl.yp" +#line 343 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 113 'anytext', 3, sub -#line 348 "idl.yp" +#line 344 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 114 'anytext', 3, sub -#line 349 "idl.yp" +#line 345 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 115 'anytext', 3, sub -#line 350 "idl.yp" +#line 346 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 116 - 'anytext', 3, -sub -#line 351 "idl.yp" -{ "$_[1]$_[2]$_[3]" } - ], - [#Rule 117 - 'anytext', 3, -sub -#line 352 "idl.yp" -{ "$_[1]$_[2]$_[3]" } - ], - [#Rule 118 'anytext', 5, sub -#line 353 "idl.yp" +#line 347 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 119 + [#Rule 117 'anytext', 5, sub -#line 354 "idl.yp" +#line 348 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 120 + [#Rule 118 'identifier', 1, undef ], - [#Rule 121 + [#Rule 119 'optional_identifier', 1, undef ], - [#Rule 122 + [#Rule 120 'optional_identifier', 0, undef ], - [#Rule 123 + [#Rule 121 'constant', 1, undef ], - [#Rule 124 + [#Rule 122 'text', 1, sub -#line 368 "idl.yp" +#line 362 "idl.yp" { "\"$_[1]\"" } ], - [#Rule 125 + [#Rule 123 'optional_semicolon', 0, undef ], - [#Rule 126 + [#Rule 124 'optional_semicolon', 1, undef ] ], @@ -2516,7 +2489,7 @@ sub bless($self,$class); } -#line 379 "idl.yp" +#line 373 "idl.yp" use Parse::Pidl qw(error); @@ -2548,10 +2521,6 @@ sub CleanData($) if (ref($v) eq "ARRAY") { foreach my $i (0 .. $#{$v}) { CleanData($v->[$i]); - if (ref($v->[$i]) eq "ARRAY" && $#{$v->[$i]}==-1) { - $v->[$i] = undef; - next; - } } # this removes any undefined elements from the array @{$v} = grep { defined $_ } @{$v}; @@ -2559,7 +2528,6 @@ sub CleanData($) foreach my $x (keys %{$v}) { CleanData($v->{$x}); if (!defined $v->{$x}) { delete($v->{$x}); next; } - if (ref($v->{$x}) eq "ARRAY" && $#{$v->{$x}}==-1) { delete($v->{$x}); next; } } } return $v; -- cgit From bab99337f88853d6c7a3f418ec175b33974a3d48 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 1 May 2007 02:00:57 +0000 Subject: r22618: handle the properties related to the type and not to 'declare' to avoid a pidl warning with: declare [switch_type(uint16)] union netr_Validation; void foo([in] uint16 level, [in,switch_is(level)] netrValidation info); metze (This used to be commit 3b3344f1df000974ad89bf370e99fd6b6dc42000) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 1122 ++++++++++++++++++------------------ 1 file changed, 561 insertions(+), 561 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 36c83c5922..d1bde8483d 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -326,6 +326,10 @@ sub new { {#State 44 DEFAULT => -89, GOTOS => { + 'decl_enum' => 79, + 'decl_bitmap' => 80, + 'decl_type' => 82, + 'decl_union' => 81, 'property_list' => 78 } }, @@ -343,7 +347,7 @@ sub new { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 79 + 'identifier' => 83 } }, {#State 49 @@ -360,28 +364,28 @@ sub new { }, {#State 53 ACTIONS => { - "-" => 81, - ":" => 80, - "<" => 82, - "+" => 84, - "~" => 83, - "*" => 85, - "?" => 86, - "{" => 87, - "&" => 88, - "/" => 89, - "=" => 90, - "(" => 91, - "|" => 92, - "." => 93, - ">" => 94 + "-" => 85, + ":" => 84, + "<" => 86, + "+" => 88, + "~" => 87, + "*" => 89, + "?" => 90, + "{" => 91, + "&" => 92, + "/" => 93, + "=" => 94, + "(" => 95, + "|" => 96, + "." => 97, + ">" => 98 }, DEFAULT => -95 }, {#State 54 ACTIONS => { - "," => 95, - ")" => 96 + "," => 99, + ")" => 100 } }, {#State 55 @@ -398,11 +402,11 @@ sub new { }, {#State 59 ACTIONS => { - ";" => 97 + ";" => 101 }, DEFAULT => -123, GOTOS => { - 'optional_semicolon' => 98 + 'optional_semicolon' => 102 } }, {#State 60 @@ -410,16 +414,16 @@ sub new { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 99 + 'identifier' => 103 } }, {#State 61 ACTIONS => { - ";" => 97 + ";" => 101 }, DEFAULT => -123, GOTOS => { - 'optional_semicolon' => 100 + 'optional_semicolon' => 104 } }, {#State 62 @@ -444,18 +448,18 @@ sub new { 'identifier' => 69, 'struct' => 45, 'enum' => 49, - 'type' => 101, + 'type' => 105, 'union' => 51, 'sign' => 70 } }, {#State 65 ACTIONS => { - 'IDENTIFIER' => 102 + 'IDENTIFIER' => 106 }, DEFAULT => -120, GOTOS => { - 'optional_identifier' => 103 + 'optional_identifier' => 107 } }, {#State 66 @@ -481,16 +485,16 @@ sub new { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 104 + 'identifier' => 108 } }, {#State 71 ACTIONS => { - 'IDENTIFIER' => 102 + 'IDENTIFIER' => 106 }, DEFAULT => -120, GOTOS => { - 'optional_identifier' => 105 + 'optional_identifier' => 109 } }, {#State 72 @@ -501,20 +505,20 @@ sub new { }, {#State 74 ACTIONS => { - 'IDENTIFIER' => 102 + 'IDENTIFIER' => 106 }, DEFAULT => -120, GOTOS => { - 'optional_identifier' => 106 + 'optional_identifier' => 110 } }, {#State 75 ACTIONS => { - 'IDENTIFIER' => 102 + 'IDENTIFIER' => 106 }, DEFAULT => -120, GOTOS => { - 'optional_identifier' => 107 + 'optional_identifier' => 111 } }, {#State 76 @@ -525,30 +529,41 @@ sub new { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 108 + 'identifier' => 112 } }, {#State 78 ACTIONS => { - "union" => 109, + "union" => 113, "enum" => 114, "bitmap" => 115, "[" => 17 + } + }, + {#State 79 + DEFAULT => -27 + }, + {#State 80 + DEFAULT => -28 + }, + {#State 81 + DEFAULT => -29 + }, + {#State 82 + ACTIONS => { + 'IDENTIFIER' => 22 }, GOTOS => { - 'decl_enum' => 110, - 'decl_bitmap' => 111, - 'decl_type' => 113, - 'decl_union' => 112 + 'identifier' => 116 } }, - {#State 79 + {#State 83 DEFAULT => -78, GOTOS => { - 'pointers' => 116 + 'pointers' => 117 } }, - {#State 80 + {#State 84 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -557,12 +572,12 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 117, + 'anytext' => 118, 'text' => 58, 'constant' => 55 } }, - {#State 81 + {#State 85 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -571,12 +586,12 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 118, + 'anytext' => 119, 'text' => 58, 'constant' => 55 } }, - {#State 82 + {#State 86 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -585,12 +600,12 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 119, + 'anytext' => 120, 'text' => 58, 'constant' => 55 } }, - {#State 83 + {#State 87 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -599,12 +614,12 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 120, + 'anytext' => 121, 'text' => 58, 'constant' => 55 } }, - {#State 84 + {#State 88 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -613,12 +628,12 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 121, + 'anytext' => 122, 'text' => 58, 'constant' => 55 } }, - {#State 85 + {#State 89 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -627,12 +642,12 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 122, + 'anytext' => 123, 'text' => 58, 'constant' => 55 } }, - {#State 86 + {#State 90 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -641,12 +656,12 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 123, + 'anytext' => 124, 'text' => 58, 'constant' => 55 } }, - {#State 87 + {#State 91 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -655,13 +670,13 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 124, + 'anytext' => 125, 'text' => 58, 'constant' => 55, - 'commalisttext' => 125 + 'commalisttext' => 126 } }, - {#State 88 + {#State 92 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -670,12 +685,12 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 126, + 'anytext' => 127, 'text' => 58, 'constant' => 55 } }, - {#State 89 + {#State 93 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -684,12 +699,12 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 127, + 'anytext' => 128, 'text' => 58, 'constant' => 55 } }, - {#State 90 + {#State 94 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -698,12 +713,12 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 128, + 'anytext' => 129, 'text' => 58, 'constant' => 55 } }, - {#State 91 + {#State 95 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -712,13 +727,13 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 124, + 'anytext' => 125, 'text' => 58, 'constant' => 55, - 'commalisttext' => 129 + 'commalisttext' => 130 } }, - {#State 92 + {#State 96 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -727,12 +742,12 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 130, + 'anytext' => 131, 'text' => 58, 'constant' => 55 } }, - {#State 93 + {#State 97 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -741,12 +756,12 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 131, + 'anytext' => 132, 'text' => 58, 'constant' => 55 } }, - {#State 94 + {#State 98 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -755,12 +770,12 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 132, + 'anytext' => 133, 'text' => 58, 'constant' => 55 } }, - {#State 95 + {#State 99 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -769,106 +784,89 @@ sub new { DEFAULT => -99, GOTOS => { 'identifier' => 57, - 'anytext' => 133, + 'anytext' => 134, 'text' => 58, 'constant' => 55 } }, - {#State 96 + {#State 100 DEFAULT => -94 }, - {#State 97 + {#State 101 DEFAULT => -124 }, - {#State 98 + {#State 102 DEFAULT => -12 }, - {#State 99 + {#State 103 ACTIONS => { - ";" => 134 + ";" => 135 } }, - {#State 100 + {#State 104 DEFAULT => -15 }, - {#State 101 + {#State 105 ACTIONS => { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 135 + 'identifier' => 136 } }, - {#State 102 + {#State 106 DEFAULT => -119 }, - {#State 103 + {#State 107 ACTIONS => { - "{" => 137 + "{" => 138 }, DEFAULT => -74, GOTOS => { - 'union_body' => 138, - 'opt_union_body' => 136 + 'union_body' => 139, + 'opt_union_body' => 137 } }, - {#State 104 + {#State 108 DEFAULT => -41 }, - {#State 105 + {#State 109 ACTIONS => { - "{" => 140 + "{" => 141 }, DEFAULT => -64, GOTOS => { - 'struct_body' => 139, - 'opt_struct_body' => 141 + 'struct_body' => 140, + 'opt_struct_body' => 142 } }, - {#State 106 + {#State 110 ACTIONS => { - "{" => 142 + "{" => 143 }, DEFAULT => -47, GOTOS => { - 'opt_enum_body' => 144, - 'enum_body' => 143 + 'opt_enum_body' => 145, + 'enum_body' => 144 } }, - {#State 107 + {#State 111 ACTIONS => { - "{" => 146 + "{" => 147 }, DEFAULT => -55, GOTOS => { - 'bitmap_body' => 147, - 'opt_bitmap_body' => 145 + 'bitmap_body' => 148, + 'opt_bitmap_body' => 146 } }, - {#State 108 + {#State 112 ACTIONS => { - "(" => 148 + "(" => 149 } }, - {#State 109 - DEFAULT => -32 - }, - {#State 110 - DEFAULT => -27 - }, - {#State 111 - DEFAULT => -28 - }, - {#State 112 - DEFAULT => -29 - }, {#State 113 - ACTIONS => { - 'IDENTIFIER' => 22 - }, - GOTOS => { - 'identifier' => 149 - } + DEFAULT => -32 }, {#State 114 DEFAULT => -30 @@ -877,355 +875,358 @@ sub new { DEFAULT => -31 }, {#State 116 + ACTIONS => { + ";" => 150 + } + }, + {#State 117 ACTIONS => { 'IDENTIFIER' => 22, - "*" => 151 + "*" => 152 }, GOTOS => { - 'identifier' => 150 + 'identifier' => 151 } }, - {#State 117 + {#State 118 ACTIONS => { - "-" => 81, - ":" => 80, - "<" => 82, - "+" => 84, - "~" => 83, - "*" => 85, - "?" => 86, - "{" => 87, - "&" => 88, - "/" => 89, - "=" => 90, - "(" => 91, - "|" => 92, - "." => 93, - ">" => 94 + "-" => 85, + ":" => 84, + "<" => 86, + "+" => 88, + "~" => 87, + "*" => 89, + "?" => 90, + "{" => 91, + "&" => 92, + "/" => 93, + "=" => 94, + "(" => 95, + "|" => 96, + "." => 97, + ">" => 98 }, DEFAULT => -112 }, - {#State 118 + {#State 119 ACTIONS => { - ":" => 80, - "<" => 82, - "~" => 83, - "?" => 86, - "{" => 87, - "=" => 90 + ":" => 84, + "<" => 86, + "~" => 87, + "?" => 90, + "{" => 91, + "=" => 94 }, DEFAULT => -103 }, - {#State 119 + {#State 120 ACTIONS => { - "-" => 81, - ":" => 80, - "<" => 82, - "+" => 84, - "~" => 83, - "*" => 85, - "?" => 86, - "{" => 87, - "&" => 88, - "/" => 89, - "=" => 90, - "(" => 91, - "|" => 92, - "." => 93, - ">" => 94 + "-" => 85, + ":" => 84, + "<" => 86, + "+" => 88, + "~" => 87, + "*" => 89, + "?" => 90, + "{" => 91, + "&" => 92, + "/" => 93, + "=" => 94, + "(" => 95, + "|" => 96, + "." => 97, + ">" => 98 }, DEFAULT => -107 }, - {#State 120 + {#State 121 ACTIONS => { - "-" => 81, - ":" => 80, - "<" => 82, - "+" => 84, - "~" => 83, - "*" => 85, - "?" => 86, - "{" => 87, - "&" => 88, - "/" => 89, - "=" => 90, - "(" => 91, - "|" => 92, - "." => 93, - ">" => 94 + "-" => 85, + ":" => 84, + "<" => 86, + "+" => 88, + "~" => 87, + "*" => 89, + "?" => 90, + "{" => 91, + "&" => 92, + "/" => 93, + "=" => 94, + "(" => 95, + "|" => 96, + "." => 97, + ">" => 98 }, DEFAULT => -115 }, - {#State 121 + {#State 122 ACTIONS => { - ":" => 80, - "<" => 82, - "~" => 83, - "?" => 86, - "{" => 87, - "=" => 90 + ":" => 84, + "<" => 86, + "~" => 87, + "?" => 90, + "{" => 91, + "=" => 94 }, DEFAULT => -114 }, - {#State 122 + {#State 123 ACTIONS => { - ":" => 80, - "<" => 82, - "~" => 83, - "?" => 86, - "{" => 87, - "=" => 90 + ":" => 84, + "<" => 86, + "~" => 87, + "?" => 90, + "{" => 91, + "=" => 94 }, DEFAULT => -105 }, - {#State 123 + {#State 124 ACTIONS => { - "-" => 81, - ":" => 80, - "<" => 82, - "+" => 84, - "~" => 83, - "*" => 85, - "?" => 86, - "{" => 87, - "&" => 88, - "/" => 89, - "=" => 90, - "(" => 91, - "|" => 92, - "." => 93, - ">" => 94 + "-" => 85, + ":" => 84, + "<" => 86, + "+" => 88, + "~" => 87, + "*" => 89, + "?" => 90, + "{" => 91, + "&" => 92, + "/" => 93, + "=" => 94, + "(" => 95, + "|" => 96, + "." => 97, + ">" => 98 }, DEFAULT => -111 }, - {#State 124 + {#State 125 ACTIONS => { - "-" => 81, - ":" => 80, - "<" => 82, - "+" => 84, - "~" => 83, - "*" => 85, - "?" => 86, - "{" => 87, - "&" => 88, - "/" => 89, - "=" => 90, - "(" => 91, - "|" => 92, - "." => 93, - ">" => 94 + "-" => 85, + ":" => 84, + "<" => 86, + "+" => 88, + "~" => 87, + "*" => 89, + "?" => 90, + "{" => 91, + "&" => 92, + "/" => 93, + "=" => 94, + "(" => 95, + "|" => 96, + "." => 97, + ">" => 98 }, DEFAULT => -97 }, - {#State 125 + {#State 126 ACTIONS => { - "}" => 152, - "," => 153 + "}" => 153, + "," => 154 } }, - {#State 126 + {#State 127 ACTIONS => { - ":" => 80, - "<" => 82, - "~" => 83, - "?" => 86, - "{" => 87, - "=" => 90 + ":" => 84, + "<" => 86, + "~" => 87, + "?" => 90, + "{" => 91, + "=" => 94 }, DEFAULT => -109 }, - {#State 127 + {#State 128 ACTIONS => { - ":" => 80, - "<" => 82, - "~" => 83, - "?" => 86, - "{" => 87, - "=" => 90 + ":" => 84, + "<" => 86, + "~" => 87, + "?" => 90, + "{" => 91, + "=" => 94 }, DEFAULT => -110 }, - {#State 128 + {#State 129 ACTIONS => { - "-" => 81, - ":" => 80, - "<" => 82, - "+" => 84, - "~" => 83, - "*" => 85, - "?" => 86, - "{" => 87, - "&" => 88, - "/" => 89, - "=" => 90, - "(" => 91, - "|" => 92, - "." => 93, - ">" => 94 + "-" => 85, + ":" => 84, + "<" => 86, + "+" => 88, + "~" => 87, + "*" => 89, + "?" => 90, + "{" => 91, + "&" => 92, + "/" => 93, + "=" => 94, + "(" => 95, + "|" => 96, + "." => 97, + ">" => 98 }, DEFAULT => -113 }, - {#State 129 + {#State 130 ACTIONS => { - "," => 153, - ")" => 154 + "," => 154, + ")" => 155 } }, - {#State 130 + {#State 131 ACTIONS => { - ":" => 80, - "<" => 82, - "~" => 83, - "?" => 86, - "{" => 87, - "=" => 90 + ":" => 84, + "<" => 86, + "~" => 87, + "?" => 90, + "{" => 91, + "=" => 94 }, DEFAULT => -108 }, - {#State 131 + {#State 132 ACTIONS => { - ":" => 80, - "<" => 82, - "~" => 83, - "?" => 86, - "{" => 87, - "=" => 90 + ":" => 84, + "<" => 86, + "~" => 87, + "?" => 90, + "{" => 91, + "=" => 94 }, DEFAULT => -104 }, - {#State 132 + {#State 133 ACTIONS => { - ":" => 80, - "<" => 82, - "~" => 83, - "?" => 86, - "{" => 87, - "=" => 90 + ":" => 84, + "<" => 86, + "~" => 87, + "?" => 90, + "{" => 91, + "=" => 94 }, DEFAULT => -106 }, - {#State 133 + {#State 134 ACTIONS => { - "-" => 81, - ":" => 80, - "<" => 82, - "+" => 84, - "~" => 83, - "*" => 85, - "?" => 86, - "{" => 87, - "&" => 88, - "/" => 89, - "=" => 90, - "(" => 91, - "|" => 92, - "." => 93, - ">" => 94 + "-" => 85, + ":" => 84, + "<" => 86, + "+" => 88, + "~" => 87, + "*" => 89, + "?" => 90, + "{" => 91, + "&" => 92, + "/" => 93, + "=" => 94, + "(" => 95, + "|" => 96, + "." => 97, + ">" => 98 }, DEFAULT => -96 }, - {#State 134 + {#State 135 DEFAULT => -14 }, - {#State 135 + {#State 136 ACTIONS => { - "[" => 155 + "[" => 156 }, DEFAULT => -86, GOTOS => { - 'array_len' => 156 + 'array_len' => 157 } }, - {#State 136 + {#State 137 DEFAULT => -76 }, - {#State 137 + {#State 138 DEFAULT => -71, GOTOS => { - 'union_elements' => 157 + 'union_elements' => 158 } }, - {#State 138 + {#State 139 DEFAULT => -75 }, - {#State 139 + {#State 140 DEFAULT => -65 }, - {#State 140 + {#State 141 DEFAULT => -80, GOTOS => { - 'element_list1' => 158 + 'element_list1' => 159 } }, - {#State 141 + {#State 142 DEFAULT => -66 }, - {#State 142 + {#State 143 ACTIONS => { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 159, - 'enum_element' => 160, - 'enum_elements' => 161 + 'identifier' => 160, + 'enum_element' => 161, + 'enum_elements' => 162 } }, - {#State 143 + {#State 144 DEFAULT => -48 }, - {#State 144 + {#State 145 DEFAULT => -49 }, - {#State 145 + {#State 146 DEFAULT => -57 }, - {#State 146 + {#State 147 ACTIONS => { 'IDENTIFIER' => 22 }, DEFAULT => -60, GOTOS => { - 'identifier' => 164, - 'bitmap_element' => 163, - 'bitmap_elements' => 162, - 'opt_bitmap_elements' => 165 + 'identifier' => 165, + 'bitmap_element' => 164, + 'bitmap_elements' => 163, + 'opt_bitmap_elements' => 166 } }, - {#State 147 + {#State 148 DEFAULT => -56 }, - {#State 148 + {#State 149 ACTIONS => { "," => -82, - "void" => 169, + "void" => 170, ")" => -82 }, DEFAULT => -89, GOTOS => { - 'base_element' => 166, - 'element_list2' => 168, - 'property_list' => 167 - } - }, - {#State 149 - ACTIONS => { - ";" => 170 + 'base_element' => 167, + 'element_list2' => 169, + 'property_list' => 168 } }, {#State 150 + DEFAULT => -26 + }, + {#State 151 ACTIONS => { - "[" => 155, + "[" => 156, "=" => 172 }, GOTOS => { 'array_len' => 171 } }, - {#State 151 + {#State 152 DEFAULT => -79 }, - {#State 152 + {#State 153 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -1239,7 +1240,7 @@ sub new { 'constant' => 55 } }, - {#State 153 + {#State 154 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -1253,7 +1254,7 @@ sub new { 'constant' => 55 } }, - {#State 154 + {#State 155 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -1267,7 +1268,7 @@ sub new { 'constant' => 55 } }, - {#State 155 + {#State 156 ACTIONS => { 'CONSTANT' => 56, 'TEXT' => 13, @@ -1282,12 +1283,12 @@ sub new { 'constant' => 55 } }, - {#State 156 + {#State 157 ACTIONS => { ";" => 178 } }, - {#State 157 + {#State 158 ACTIONS => { "}" => 179 }, @@ -1297,54 +1298,54 @@ sub new { 'property_list' => 180 } }, - {#State 158 + {#State 159 ACTIONS => { "}" => 182 }, DEFAULT => -89, GOTOS => { 'base_element' => 183, - 'property_list' => 167 + 'property_list' => 168 } }, - {#State 159 + {#State 160 ACTIONS => { "=" => 184 }, DEFAULT => -52 }, - {#State 160 + {#State 161 DEFAULT => -50 }, - {#State 161 + {#State 162 ACTIONS => { "}" => 185, "," => 186 } }, - {#State 162 + {#State 163 ACTIONS => { "," => 187 }, DEFAULT => -61 }, - {#State 163 + {#State 164 DEFAULT => -58 }, - {#State 164 + {#State 165 ACTIONS => { "=" => 188 } }, - {#State 165 + {#State 166 ACTIONS => { "}" => 189 } }, - {#State 166 + {#State 167 DEFAULT => -84 }, - {#State 167 + {#State 168 ACTIONS => { 'IDENTIFIER' => 22, "signed" => 72, @@ -1366,17 +1367,14 @@ sub new { 'sign' => 70 } }, - {#State 168 + {#State 169 ACTIONS => { "," => 191, ")" => 192 } }, - {#State 169 - DEFAULT => -83 - }, {#State 170 - DEFAULT => -26 + DEFAULT => -83 }, {#State 171 ACTIONS => { @@ -1399,58 +1397,58 @@ sub new { }, {#State 173 ACTIONS => { - "-" => 81, - ":" => 80, - "<" => 82, - "+" => 84, - "~" => 83, - "*" => 85, - "?" => 86, - "{" => 87, - "&" => 88, - "/" => 89, - "=" => 90, - "(" => 91, - "|" => 92, - "." => 93, - ">" => 94 + "-" => 85, + ":" => 84, + "<" => 86, + "+" => 88, + "~" => 87, + "*" => 89, + "?" => 90, + "{" => 91, + "&" => 92, + "/" => 93, + "=" => 94, + "(" => 95, + "|" => 96, + "." => 97, + ">" => 98 }, DEFAULT => -117 }, {#State 174 ACTIONS => { - "-" => 81, - ":" => 80, - "<" => 82, - "+" => 84, - "~" => 83, - "*" => 85, - "?" => 86, - "{" => 87, - "&" => 88, - "/" => 89, - "=" => 90, - "(" => 91, - "|" => 92, - "." => 93, - ">" => 94 + "-" => 85, + ":" => 84, + "<" => 86, + "+" => 88, + "~" => 87, + "*" => 89, + "?" => 90, + "{" => 91, + "&" => 92, + "/" => 93, + "=" => 94, + "(" => 95, + "|" => 96, + "." => 97, + ">" => 98 }, DEFAULT => -98 }, {#State 175 ACTIONS => { - ":" => 80, - "<" => 82, - "~" => 83, - "?" => 86, - "{" => 87, - "=" => 90 + ":" => 84, + "<" => 86, + "~" => 87, + "?" => 90, + "{" => 91, + "=" => 94 }, DEFAULT => -116 }, {#State 176 ACTIONS => { - "[" => 155 + "[" => 156 }, DEFAULT => -86, GOTOS => { @@ -1459,22 +1457,22 @@ sub new { }, {#State 177 ACTIONS => { - "-" => 81, - ":" => 80, - "?" => 86, - "<" => 82, - "+" => 84, - "~" => 83, - "&" => 88, - "{" => 87, - "/" => 89, - "=" => 90, - "|" => 92, - "(" => 91, - "*" => 85, - "." => 93, + "-" => 85, + ":" => 84, + "?" => 90, + "<" => 86, + "+" => 88, + "~" => 87, + "&" => 92, + "{" => 91, + "/" => 93, + "=" => 94, + "|" => 96, + "(" => 95, + "*" => 89, + "." => 97, "]" => 196, - ">" => 94 + ">" => 98 } }, {#State 178 @@ -1528,7 +1526,7 @@ sub new { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 159, + 'identifier' => 160, 'enum_element' => 203 } }, @@ -1537,7 +1535,7 @@ sub new { 'IDENTIFIER' => 22 }, GOTOS => { - 'identifier' => 164, + 'identifier' => 165, 'bitmap_element' => 204 } }, @@ -1568,7 +1566,7 @@ sub new { DEFAULT => -89, GOTOS => { 'base_element' => 207, - 'property_list' => 167 + 'property_list' => 168 } }, {#State 192 @@ -1592,22 +1590,22 @@ sub new { }, {#State 194 ACTIONS => { - "-" => 81, - ":" => 80, - "?" => 86, - "<" => 82, + "-" => 85, + ":" => 84, + "?" => 90, + "<" => 86, ";" => 210, - "+" => 84, - "~" => 83, - "&" => 88, - "{" => 87, - "/" => 89, - "=" => 90, - "|" => 92, - "(" => 91, - "*" => 85, - "." => 93, - ">" => 94 + "+" => 88, + "~" => 87, + "&" => 92, + "{" => 91, + "/" => 93, + "=" => 94, + "|" => 96, + "(" => 95, + "*" => 89, + "." => 97, + ">" => 98 } }, {#State 195 @@ -1615,7 +1613,7 @@ sub new { }, {#State 196 ACTIONS => { - "[" => 155 + "[" => 156 }, DEFAULT => -86, GOTOS => { @@ -1661,21 +1659,21 @@ sub new { }, {#State 202 ACTIONS => { - "-" => 81, - ":" => 80, - "<" => 82, - "+" => 84, - "~" => 83, - "*" => 85, - "?" => 86, - "{" => 87, - "&" => 88, - "/" => 89, - "=" => 90, - "(" => 91, - "|" => 92, - "." => 93, - ">" => 94 + "-" => 85, + ":" => 84, + "<" => 86, + "+" => 88, + "~" => 87, + "*" => 89, + "?" => 90, + "{" => 91, + "&" => 92, + "/" => 93, + "=" => 94, + "(" => 95, + "|" => 96, + "." => 97, + ">" => 98 }, DEFAULT => -53 }, @@ -1687,28 +1685,28 @@ sub new { }, {#State 205 ACTIONS => { - "-" => 81, - ":" => 80, - "<" => 82, - "+" => 84, - "~" => 83, - "*" => 85, - "?" => 86, - "{" => 87, - "&" => 88, - "/" => 89, - "=" => 90, - "(" => 91, - "|" => 92, - "." => 93, - ">" => 94 + "-" => 85, + ":" => 84, + "<" => 86, + "+" => 88, + "~" => 87, + "*" => 89, + "?" => 90, + "{" => 91, + "&" => 92, + "/" => 93, + "=" => 94, + "(" => 95, + "|" => 96, + "." => 97, + ">" => 98 }, DEFAULT => -62 }, {#State 206 ACTIONS => { 'IDENTIFIER' => 22, - "*" => 151 + "*" => 152 }, GOTOS => { 'identifier' => 214 @@ -1722,22 +1720,22 @@ sub new { }, {#State 209 ACTIONS => { - "-" => 81, - ":" => 80, - "?" => 86, - "<" => 82, + "-" => 85, + ":" => 84, + "?" => 90, + "<" => 86, ";" => 215, - "+" => 84, - "~" => 83, - "&" => 88, - "{" => 87, - "/" => 89, - "=" => 90, - "|" => 92, - "(" => 91, - "*" => 85, - "." => 93, - ">" => 94 + "+" => 88, + "~" => 87, + "&" => 92, + "{" => 91, + "/" => 93, + "=" => 94, + "|" => 96, + "(" => 95, + "*" => 89, + "." => 97, + ">" => 98 } }, {#State 210 @@ -1754,7 +1752,7 @@ sub new { }, {#State 214 ACTIONS => { - "[" => 155 + "[" => 156 }, DEFAULT => -86, GOTOS => { @@ -1779,37 +1777,37 @@ sub new { [#Rule 2 'idl', 2, sub -#line 19 "idl.yp" +#line 19 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 3 'idl', 2, sub -#line 20 "idl.yp" +#line 20 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 4 'idl', 2, sub -#line 21 "idl.yp" +#line 21 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 5 'idl', 2, sub -#line 22 "idl.yp" +#line 22 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 6 'idl', 2, sub -#line 23 "idl.yp" +#line 23 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 7 'import', 3, sub -#line 26 "idl.yp" +#line 26 "pidl/idl.yp" {{ "TYPE" => "IMPORT", "PATHS" => $_[2], @@ -1820,7 +1818,7 @@ sub [#Rule 8 'include', 3, sub -#line 33 "idl.yp" +#line 33 "pidl/idl.yp" {{ "TYPE" => "INCLUDE", "PATHS" => $_[2], @@ -1831,7 +1829,7 @@ sub [#Rule 9 'importlib', 3, sub -#line 40 "idl.yp" +#line 40 "pidl/idl.yp" {{ "TYPE" => "IMPORTLIB", "PATHS" => $_[2], @@ -1842,19 +1840,19 @@ sub [#Rule 10 'commalist', 1, sub -#line 49 "idl.yp" +#line 49 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 11 'commalist', 3, sub -#line 50 "idl.yp" +#line 50 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 12 'coclass', 7, sub -#line 54 "idl.yp" +#line 54 "pidl/idl.yp" {{ "TYPE" => "COCLASS", "PROPERTIES" => $_[1], @@ -1870,13 +1868,13 @@ sub [#Rule 14 'interface_names', 4, sub -#line 66 "idl.yp" +#line 66 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 15 'interface', 7, sub -#line 70 "idl.yp" +#line 70 "pidl/idl.yp" {{ "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], @@ -1889,13 +1887,13 @@ sub [#Rule 16 'definitions', 1, sub -#line 81 "idl.yp" +#line 81 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 17 'definitions', 2, sub -#line 82 "idl.yp" +#line 82 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 18 @@ -1916,7 +1914,7 @@ sub [#Rule 23 'const', 7, sub -#line 90 "idl.yp" +#line 90 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1930,7 +1928,7 @@ sub [#Rule 24 'const', 8, sub -#line 100 "idl.yp" +#line 100 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1945,7 +1943,7 @@ sub [#Rule 25 'function', 7, sub -#line 114 "idl.yp" +#line 114 "pidl/idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -1957,14 +1955,13 @@ sub }} ], [#Rule 26 - 'declare', 5, + 'declare', 4, sub -#line 126 "idl.yp" +#line 126 "pidl/idl.yp" {{ "TYPE" => "DECLARE", - "PROPERTIES" => $_[2], - "NAME" => $_[4], - "DATA" => $_[3], + "NAME" => $_[3], + "DATA" => $_[2], "FILE" => $_[0]->YYData->{FILE}, "LINE" => $_[0]->YYData->{LINE}, }} @@ -1979,33 +1976,36 @@ sub 'decl_type', 1, undef ], [#Rule 30 - 'decl_enum', 1, + 'decl_enum', 2, sub -#line 140 "idl.yp" +#line 139 "pidl/idl.yp" {{ - "TYPE" => "ENUM" + "TYPE" => "ENUM", + "PROPERTIES" => $_[1] }} ], [#Rule 31 - 'decl_bitmap', 1, + 'decl_bitmap', 2, sub -#line 146 "idl.yp" +#line 146 "pidl/idl.yp" {{ - "TYPE" => "BITMAP" + "TYPE" => "BITMAP", + "PROPERTIES" => $_[1] }} ], [#Rule 32 - 'decl_union', 1, + 'decl_union', 2, sub -#line 152 "idl.yp" +#line 153 "pidl/idl.yp" {{ - "TYPE" => "UNION" + "TYPE" => "UNION", + "PROPERTIES" => $_[1] }} ], [#Rule 33 'typedef', 6, sub -#line 158 "idl.yp" +#line 160 "pidl/idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[1], @@ -2031,7 +2031,7 @@ sub [#Rule 38 'typedecl', 2, sub -#line 171 "idl.yp" +#line 173 "pidl/idl.yp" { $_[1] } ], [#Rule 39 @@ -2043,7 +2043,7 @@ sub [#Rule 41 'existingtype', 2, sub -#line 176 "idl.yp" +#line 178 "pidl/idl.yp" { ($_[1]?$_[1]:"signed") ." $_[2]" } ], [#Rule 42 @@ -2058,13 +2058,13 @@ sub [#Rule 45 'type', 1, sub -#line 180 "idl.yp" +#line 182 "pidl/idl.yp" { "void" } ], [#Rule 46 'enum_body', 3, sub -#line 182 "idl.yp" +#line 184 "pidl/idl.yp" { $_[2] } ], [#Rule 47 @@ -2076,7 +2076,7 @@ sub [#Rule 49 'enum', 4, sub -#line 185 "idl.yp" +#line 187 "pidl/idl.yp" {{ "TYPE" => "ENUM", "PROPERTIES" => $_[1], @@ -2087,13 +2087,13 @@ sub [#Rule 50 'enum_elements', 1, sub -#line 194 "idl.yp" +#line 196 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 51 'enum_elements', 3, sub -#line 195 "idl.yp" +#line 197 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 52 @@ -2102,13 +2102,13 @@ sub [#Rule 53 'enum_element', 3, sub -#line 199 "idl.yp" +#line 201 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 54 'bitmap_body', 3, sub -#line 202 "idl.yp" +#line 204 "pidl/idl.yp" { $_[2] } ], [#Rule 55 @@ -2120,7 +2120,7 @@ sub [#Rule 57 'bitmap', 4, sub -#line 205 "idl.yp" +#line 207 "pidl/idl.yp" {{ "TYPE" => "BITMAP", "PROPERTIES" => $_[1], @@ -2131,13 +2131,13 @@ sub [#Rule 58 'bitmap_elements', 1, sub -#line 214 "idl.yp" +#line 216 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 59 'bitmap_elements', 3, sub -#line 215 "idl.yp" +#line 217 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 60 @@ -2149,13 +2149,13 @@ sub [#Rule 62 'bitmap_element', 3, sub -#line 220 "idl.yp" +#line 222 "pidl/idl.yp" { "$_[1] ( $_[3] )" } ], [#Rule 63 'struct_body', 3, sub -#line 223 "idl.yp" +#line 225 "pidl/idl.yp" { $_[2] } ], [#Rule 64 @@ -2167,7 +2167,7 @@ sub [#Rule 66 'struct', 4, sub -#line 227 "idl.yp" +#line 229 "pidl/idl.yp" {{ "TYPE" => "STRUCT", "PROPERTIES" => $_[1], @@ -2178,7 +2178,7 @@ sub [#Rule 67 'empty_element', 2, sub -#line 236 "idl.yp" +#line 238 "pidl/idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2198,7 +2198,7 @@ sub [#Rule 70 'optional_base_element', 2, sub -#line 250 "idl.yp" +#line 252 "pidl/idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], [#Rule 71 @@ -2207,13 +2207,13 @@ sub [#Rule 72 'union_elements', 2, sub -#line 255 "idl.yp" +#line 257 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 73 'union_body', 3, sub -#line 258 "idl.yp" +#line 260 "pidl/idl.yp" { $_[2] } ], [#Rule 74 @@ -2225,7 +2225,7 @@ sub [#Rule 76 'union', 4, sub -#line 262 "idl.yp" +#line 264 "pidl/idl.yp" {{ "TYPE" => "UNION", "PROPERTIES" => $_[1], @@ -2236,7 +2236,7 @@ sub [#Rule 77 'base_element', 5, sub -#line 271 "idl.yp" +#line 273 "pidl/idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2250,25 +2250,25 @@ sub [#Rule 78 'pointers', 0, sub -#line 285 "idl.yp" +#line 287 "pidl/idl.yp" { 0 } ], [#Rule 79 'pointers', 2, sub -#line 286 "idl.yp" +#line 288 "pidl/idl.yp" { $_[1]+1 } ], [#Rule 80 'element_list1', 0, sub -#line 290 "idl.yp" +#line 292 "pidl/idl.yp" { [] } ], [#Rule 81 'element_list1', 3, sub -#line 291 "idl.yp" +#line 293 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 82 @@ -2280,13 +2280,13 @@ sub [#Rule 84 'element_list2', 1, sub -#line 297 "idl.yp" +#line 299 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 85 'element_list2', 3, sub -#line 298 "idl.yp" +#line 300 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 86 @@ -2295,13 +2295,13 @@ sub [#Rule 87 'array_len', 3, sub -#line 303 "idl.yp" +#line 305 "pidl/idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], [#Rule 88 'array_len', 4, sub -#line 304 "idl.yp" +#line 306 "pidl/idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], [#Rule 89 @@ -2310,31 +2310,31 @@ sub [#Rule 90 'property_list', 4, sub -#line 310 "idl.yp" +#line 312 "pidl/idl.yp" { FlattenHash([$_[1],$_[3]]); } ], [#Rule 91 'properties', 1, sub -#line 313 "idl.yp" +#line 315 "pidl/idl.yp" { $_[1] } ], [#Rule 92 'properties', 3, sub -#line 314 "idl.yp" +#line 316 "pidl/idl.yp" { FlattenHash([$_[1], $_[3]]); } ], [#Rule 93 'property', 1, sub -#line 317 "idl.yp" +#line 319 "pidl/idl.yp" {{ "$_[1]" => "1" }} ], [#Rule 94 'property', 4, sub -#line 318 "idl.yp" +#line 320 "pidl/idl.yp" {{ "$_[1]" => "$_[3]" }} ], [#Rule 95 @@ -2343,7 +2343,7 @@ sub [#Rule 96 'listtext', 3, sub -#line 323 "idl.yp" +#line 325 "pidl/idl.yp" { "$_[1] $_[3]" } ], [#Rule 97 @@ -2352,13 +2352,13 @@ sub [#Rule 98 'commalisttext', 3, sub -#line 328 "idl.yp" +#line 330 "pidl/idl.yp" { "$_[1],$_[3]" } ], [#Rule 99 'anytext', 0, sub -#line 332 "idl.yp" +#line 334 "pidl/idl.yp" { "" } ], [#Rule 100 @@ -2373,91 +2373,91 @@ sub [#Rule 103 'anytext', 3, sub -#line 334 "idl.yp" +#line 336 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 104 'anytext', 3, sub -#line 335 "idl.yp" +#line 337 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 105 'anytext', 3, sub -#line 336 "idl.yp" +#line 338 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 106 'anytext', 3, sub -#line 337 "idl.yp" +#line 339 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 107 'anytext', 3, sub -#line 338 "idl.yp" +#line 340 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 108 'anytext', 3, sub -#line 339 "idl.yp" +#line 341 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 109 'anytext', 3, sub -#line 340 "idl.yp" +#line 342 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 110 'anytext', 3, sub -#line 341 "idl.yp" +#line 343 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 111 'anytext', 3, sub -#line 342 "idl.yp" +#line 344 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 112 'anytext', 3, sub -#line 343 "idl.yp" +#line 345 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 113 'anytext', 3, sub -#line 344 "idl.yp" +#line 346 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 114 'anytext', 3, sub -#line 345 "idl.yp" +#line 347 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 115 'anytext', 3, sub -#line 346 "idl.yp" +#line 348 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 116 'anytext', 5, sub -#line 347 "idl.yp" +#line 349 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 117 'anytext', 5, sub -#line 348 "idl.yp" +#line 350 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 118 @@ -2475,7 +2475,7 @@ sub [#Rule 122 'text', 1, sub -#line 362 "idl.yp" +#line 364 "pidl/idl.yp" { "\"$_[1]\"" } ], [#Rule 123 @@ -2489,7 +2489,7 @@ sub bless($self,$class); } -#line 373 "idl.yp" +#line 375 "pidl/idl.yp" use Parse::Pidl qw(error); -- cgit From 7acc0e77a6f6d74d1ccfcf04424a63b224b292a5 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 31 Aug 2007 00:03:54 +0000 Subject: r24815: Support cpp_quote(). (This used to be commit 30c1de30bb4ded16e79316c0ab43809e0e19f75d) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 2587 ++++++++++++++++++------------------ 1 file changed, 1315 insertions(+), 1272 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index d1bde8483d..e9155e4e00 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -33,18 +33,20 @@ sub new { {#State 1 ACTIONS => { '' => 2, - "importlib" => 3, - "import" => 6, - "include" => 11 + "cpp_quote" => 3, + "importlib" => 4, + "import" => 7, + "include" => 13 }, - DEFAULT => -89, + DEFAULT => -91, GOTOS => { - 'importlib' => 9, - 'interface' => 8, - 'include' => 4, - 'coclass' => 10, - 'import' => 7, - 'property_list' => 5 + 'cpp_quote' => 11, + 'importlib' => 10, + 'interface' => 9, + 'include' => 5, + 'coclass' => 12, + 'import' => 8, + 'property_list' => 6 } }, {#State 2 @@ -52,1718 +54,1742 @@ sub new { }, {#State 3 ACTIONS => { - 'TEXT' => 13 + "(" => 14 + } + }, + {#State 4 + ACTIONS => { + 'TEXT' => 16 }, GOTOS => { - 'commalist' => 12, - 'text' => 14 + 'commalist' => 15, + 'text' => 17 } }, - {#State 4 + {#State 5 DEFAULT => -5 }, - {#State 5 + {#State 6 ACTIONS => { - "coclass" => 15, - "[" => 17, - "interface" => 16 + "coclass" => 18, + "[" => 20, + "interface" => 19 } }, - {#State 6 + {#State 7 ACTIONS => { - 'TEXT' => 13 + 'TEXT' => 16 }, GOTOS => { - 'commalist' => 18, - 'text' => 14 + 'commalist' => 21, + 'text' => 17 } }, - {#State 7 - DEFAULT => -4 - }, {#State 8 - DEFAULT => -2 + DEFAULT => -4 }, {#State 9 - DEFAULT => -6 + DEFAULT => -2 }, {#State 10 - DEFAULT => -3 + DEFAULT => -6 }, {#State 11 - ACTIONS => { - 'TEXT' => 13 - }, - GOTOS => { - 'commalist' => 19, - 'text' => 14 - } + DEFAULT => -7 }, {#State 12 - ACTIONS => { - ";" => 20, - "," => 21 - } + DEFAULT => -3 }, {#State 13 - DEFAULT => -122 - }, - {#State 14 - DEFAULT => -10 - }, - {#State 15 ACTIONS => { - 'IDENTIFIER' => 22 + 'TEXT' => 16 }, GOTOS => { - 'identifier' => 23 + 'commalist' => 22, + 'text' => 17 } }, - {#State 16 + {#State 14 ACTIONS => { - 'IDENTIFIER' => 22 + 'TEXT' => 16 }, GOTOS => { - 'identifier' => 24 + 'text' => 23 } }, - {#State 17 + {#State 15 ACTIONS => { - 'IDENTIFIER' => 22 - }, - GOTOS => { - 'identifier' => 26, - 'property' => 27, - 'properties' => 25 + ";" => 24, + "," => 25 } }, + {#State 16 + DEFAULT => -124 + }, + {#State 17 + DEFAULT => -11 + }, {#State 18 ACTIONS => { - ";" => 28, - "," => 21 + 'IDENTIFIER' => 26 + }, + GOTOS => { + 'identifier' => 27 } }, {#State 19 ACTIONS => { - ";" => 29, - "," => 21 + 'IDENTIFIER' => 26 + }, + GOTOS => { + 'identifier' => 28 } }, {#State 20 - DEFAULT => -9 - }, - {#State 21 ACTIONS => { - 'TEXT' => 13 + 'IDENTIFIER' => 26 }, GOTOS => { - 'text' => 30 + 'identifier' => 30, + 'property' => 31, + 'properties' => 29 + } + }, + {#State 21 + ACTIONS => { + ";" => 32, + "," => 25 } }, {#State 22 - DEFAULT => -118 + ACTIONS => { + ";" => 33, + "," => 25 + } }, {#State 23 ACTIONS => { - "{" => 31 + ")" => 34 } }, {#State 24 - ACTIONS => { - "{" => 32 - } + DEFAULT => -10 }, {#State 25 ACTIONS => { - "," => 33, - "]" => 34 + 'TEXT' => 16 + }, + GOTOS => { + 'text' => 35 } }, {#State 26 - ACTIONS => { - "(" => 35 - }, - DEFAULT => -93 + DEFAULT => -120 }, {#State 27 - DEFAULT => -91 + ACTIONS => { + "{" => 36 + } }, {#State 28 - DEFAULT => -7 + ACTIONS => { + "{" => 37 + } }, {#State 29 - DEFAULT => -8 + ACTIONS => { + "," => 38, + "]" => 39 + } }, {#State 30 - DEFAULT => -11 + ACTIONS => { + "(" => 40 + }, + DEFAULT => -95 }, {#State 31 - DEFAULT => -13, - GOTOS => { - 'interface_names' => 36 - } + DEFAULT => -93 }, {#State 32 - ACTIONS => { - "declare" => 44, - "const" => 48 - }, - DEFAULT => -89, - GOTOS => { - 'typedecl' => 37, - 'function' => 38, - 'definitions' => 40, - 'bitmap' => 39, - 'definition' => 43, - 'property_list' => 42, - 'usertype' => 41, - 'const' => 47, - 'declare' => 46, - 'struct' => 45, - 'typedef' => 50, - 'enum' => 49, - 'union' => 51 - } + DEFAULT => -8 }, {#State 33 - ACTIONS => { - 'IDENTIFIER' => 22 - }, - GOTOS => { - 'identifier' => 26, - 'property' => 52 - } + DEFAULT => -9 }, {#State 34 - DEFAULT => -90 + DEFAULT => -17 }, {#State 35 - ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 - }, - DEFAULT => -99, - GOTOS => { - 'identifier' => 57, - 'text' => 58, - 'listtext' => 54, - 'anytext' => 53, - 'constant' => 55 - } + DEFAULT => -12 }, {#State 36 - ACTIONS => { - "}" => 59, - "interface" => 60 + DEFAULT => -14, + GOTOS => { + 'interface_names' => 41 } }, {#State 37 - DEFAULT => -22 + ACTIONS => { + "declare" => 49, + "const" => 53 + }, + DEFAULT => -91, + GOTOS => { + 'typedecl' => 42, + 'function' => 43, + 'definitions' => 45, + 'bitmap' => 44, + 'definition' => 48, + 'property_list' => 47, + 'usertype' => 46, + 'const' => 52, + 'declare' => 51, + 'struct' => 50, + 'typedef' => 55, + 'enum' => 54, + 'union' => 56 + } }, {#State 38 - DEFAULT => -18 + ACTIONS => { + 'IDENTIFIER' => 26 + }, + GOTOS => { + 'identifier' => 30, + 'property' => 57 + } }, {#State 39 - DEFAULT => -37 + DEFAULT => -92 }, {#State 40 ACTIONS => { - "}" => 61, - "declare" => 44, - "const" => 48 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -89, + DEFAULT => -101, GOTOS => { - 'typedecl' => 37, - 'function' => 38, - 'bitmap' => 39, - 'definition' => 62, - 'property_list' => 42, - 'usertype' => 41, - 'const' => 47, - 'struct' => 45, - 'declare' => 46, - 'typedef' => 50, - 'enum' => 49, - 'union' => 51 + 'identifier' => 62, + 'text' => 63, + 'listtext' => 59, + 'anytext' => 58, + 'constant' => 60 } }, {#State 41 ACTIONS => { - ";" => 63 + "}" => 64, + "interface" => 65 } }, {#State 42 - ACTIONS => { - "typedef" => 64, - 'IDENTIFIER' => 22, - "signed" => 72, - "union" => 65, - "enum" => 74, - "bitmap" => 75, - 'void' => 66, - "unsigned" => 76, - "[" => 17, - "struct" => 71 - }, - GOTOS => { - 'existingtype' => 73, - 'bitmap' => 39, - 'usertype' => 68, - 'property_list' => 67, - 'identifier' => 69, - 'struct' => 45, - 'enum' => 49, - 'type' => 77, - 'union' => 51, - 'sign' => 70 - } + DEFAULT => -24 }, {#State 43 - DEFAULT => -16 + DEFAULT => -20 }, {#State 44 - DEFAULT => -89, - GOTOS => { - 'decl_enum' => 79, - 'decl_bitmap' => 80, - 'decl_type' => 82, - 'decl_union' => 81, - 'property_list' => 78 - } + DEFAULT => -39 }, {#State 45 - DEFAULT => -34 + ACTIONS => { + "}" => 66, + "declare" => 49, + "const" => 53 + }, + DEFAULT => -91, + GOTOS => { + 'typedecl' => 42, + 'function' => 43, + 'bitmap' => 44, + 'definition' => 67, + 'property_list' => 47, + 'usertype' => 46, + 'const' => 52, + 'struct' => 50, + 'declare' => 51, + 'typedef' => 55, + 'enum' => 54, + 'union' => 56 + } }, {#State 46 - DEFAULT => -21 + ACTIONS => { + ";" => 68 + } }, {#State 47 - DEFAULT => -19 - }, - {#State 48 ACTIONS => { - 'IDENTIFIER' => 22 - }, - GOTOS => { - 'identifier' => 83 + "typedef" => 69, + 'IDENTIFIER' => 26, + "signed" => 77, + "union" => 70, + "enum" => 79, + "bitmap" => 80, + 'void' => 71, + "unsigned" => 81, + "[" => 20, + "struct" => 76 + }, + GOTOS => { + 'existingtype' => 78, + 'bitmap' => 44, + 'usertype' => 73, + 'property_list' => 72, + 'identifier' => 74, + 'struct' => 50, + 'enum' => 54, + 'type' => 82, + 'union' => 56, + 'sign' => 75 } }, + {#State 48 + DEFAULT => -18 + }, {#State 49 - DEFAULT => -36 + DEFAULT => -91, + GOTOS => { + 'decl_enum' => 84, + 'decl_bitmap' => 85, + 'decl_type' => 87, + 'decl_union' => 86, + 'property_list' => 83 + } }, {#State 50 - DEFAULT => -20 + DEFAULT => -36 }, {#State 51 - DEFAULT => -35 + DEFAULT => -23 }, {#State 52 - DEFAULT => -92 + DEFAULT => -21 }, {#State 53 ACTIONS => { - "-" => 85, - ":" => 84, - "<" => 86, - "+" => 88, - "~" => 87, - "*" => 89, - "?" => 90, - "{" => 91, - "&" => 92, - "/" => 93, - "=" => 94, - "(" => 95, - "|" => 96, - "." => 97, - ">" => 98 + 'IDENTIFIER' => 26 }, - DEFAULT => -95 + GOTOS => { + 'identifier' => 88 + } }, {#State 54 - ACTIONS => { - "," => 99, - ")" => 100 - } + DEFAULT => -38 }, {#State 55 - DEFAULT => -101 + DEFAULT => -22 }, {#State 56 - DEFAULT => -121 + DEFAULT => -37 }, {#State 57 - DEFAULT => -100 + DEFAULT => -94 }, {#State 58 - DEFAULT => -102 + ACTIONS => { + "-" => 90, + ":" => 89, + "<" => 91, + "+" => 93, + "~" => 92, + "*" => 94, + "?" => 95, + "{" => 96, + "&" => 97, + "/" => 98, + "=" => 99, + "(" => 100, + "|" => 101, + "." => 102, + ">" => 103 + }, + DEFAULT => -97 }, {#State 59 ACTIONS => { - ";" => 101 - }, - DEFAULT => -123, - GOTOS => { - 'optional_semicolon' => 102 + "," => 104, + ")" => 105 } }, {#State 60 - ACTIONS => { - 'IDENTIFIER' => 22 - }, - GOTOS => { - 'identifier' => 103 - } + DEFAULT => -103 }, {#State 61 - ACTIONS => { - ";" => 101 - }, - DEFAULT => -123, - GOTOS => { - 'optional_semicolon' => 104 - } + DEFAULT => -123 }, {#State 62 - DEFAULT => -17 + DEFAULT => -102 }, {#State 63 - DEFAULT => -38 + DEFAULT => -104 }, {#State 64 ACTIONS => { - 'IDENTIFIER' => 22, - "signed" => 72, - 'void' => 66, - "unsigned" => 76 + ";" => 106 }, - DEFAULT => -89, + DEFAULT => -125, GOTOS => { - 'existingtype' => 73, - 'bitmap' => 39, - 'usertype' => 68, - 'property_list' => 67, - 'identifier' => 69, - 'struct' => 45, - 'enum' => 49, - 'type' => 105, - 'union' => 51, - 'sign' => 70 + 'optional_semicolon' => 107 } }, {#State 65 ACTIONS => { - 'IDENTIFIER' => 106 + 'IDENTIFIER' => 26 }, - DEFAULT => -120, GOTOS => { - 'optional_identifier' => 107 + 'identifier' => 108 } }, {#State 66 - DEFAULT => -45 - }, - {#State 67 ACTIONS => { - "union" => 65, - "enum" => 74, - "bitmap" => 75, - "[" => 17, - "struct" => 71 + ";" => 106 + }, + DEFAULT => -125, + GOTOS => { + 'optional_semicolon' => 109 } }, + {#State 67 + DEFAULT => -19 + }, {#State 68 - DEFAULT => -43 + DEFAULT => -40 }, {#State 69 - DEFAULT => -42 - }, - {#State 70 ACTIONS => { - 'IDENTIFIER' => 22 + 'IDENTIFIER' => 26, + "signed" => 77, + 'void' => 71, + "unsigned" => 81 }, + DEFAULT => -91, GOTOS => { - 'identifier' => 108 + 'existingtype' => 78, + 'bitmap' => 44, + 'usertype' => 73, + 'property_list' => 72, + 'identifier' => 74, + 'struct' => 50, + 'enum' => 54, + 'type' => 110, + 'union' => 56, + 'sign' => 75 } }, - {#State 71 + {#State 70 ACTIONS => { - 'IDENTIFIER' => 106 + 'IDENTIFIER' => 111 }, - DEFAULT => -120, + DEFAULT => -122, GOTOS => { - 'optional_identifier' => 109 + 'optional_identifier' => 112 } }, + {#State 71 + DEFAULT => -47 + }, {#State 72 - DEFAULT => -39 + ACTIONS => { + "union" => 70, + "enum" => 79, + "bitmap" => 80, + "[" => 20, + "struct" => 76 + } }, {#State 73 - DEFAULT => -44 + DEFAULT => -45 }, {#State 74 - ACTIONS => { - 'IDENTIFIER' => 106 - }, - DEFAULT => -120, - GOTOS => { - 'optional_identifier' => 110 - } + DEFAULT => -44 }, {#State 75 ACTIONS => { - 'IDENTIFIER' => 106 + 'IDENTIFIER' => 26 }, - DEFAULT => -120, GOTOS => { - 'optional_identifier' => 111 + 'identifier' => 113 } }, {#State 76 - DEFAULT => -40 - }, - {#State 77 ACTIONS => { - 'IDENTIFIER' => 22 + 'IDENTIFIER' => 111 }, + DEFAULT => -122, GOTOS => { - 'identifier' => 112 + 'optional_identifier' => 114 } }, + {#State 77 + DEFAULT => -41 + }, {#State 78 - ACTIONS => { - "union" => 113, - "enum" => 114, - "bitmap" => 115, - "[" => 17 - } + DEFAULT => -46 }, {#State 79 - DEFAULT => -27 + ACTIONS => { + 'IDENTIFIER' => 111 + }, + DEFAULT => -122, + GOTOS => { + 'optional_identifier' => 115 + } }, {#State 80 - DEFAULT => -28 + ACTIONS => { + 'IDENTIFIER' => 111 + }, + DEFAULT => -122, + GOTOS => { + 'optional_identifier' => 116 + } }, {#State 81 - DEFAULT => -29 + DEFAULT => -42 }, {#State 82 ACTIONS => { - 'IDENTIFIER' => 22 + 'IDENTIFIER' => 26 }, GOTOS => { - 'identifier' => 116 + 'identifier' => 117 } }, {#State 83 - DEFAULT => -78, - GOTOS => { - 'pointers' => 117 + ACTIONS => { + "union" => 118, + "enum" => 119, + "bitmap" => 120, + "[" => 20 } }, {#State 84 - ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 - }, - DEFAULT => -99, - GOTOS => { - 'identifier' => 57, - 'anytext' => 118, - 'text' => 58, - 'constant' => 55 - } + DEFAULT => -29 }, {#State 85 - ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 - }, - DEFAULT => -99, - GOTOS => { - 'identifier' => 57, - 'anytext' => 119, - 'text' => 58, - 'constant' => 55 - } + DEFAULT => -30 }, {#State 86 - ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 - }, - DEFAULT => -99, - GOTOS => { - 'identifier' => 57, - 'anytext' => 120, - 'text' => 58, - 'constant' => 55 - } + DEFAULT => -31 }, {#State 87 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'IDENTIFIER' => 26 }, - DEFAULT => -99, GOTOS => { - 'identifier' => 57, - 'anytext' => 121, - 'text' => 58, - 'constant' => 55 + 'identifier' => 121 } }, {#State 88 - ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 - }, - DEFAULT => -99, + DEFAULT => -80, GOTOS => { - 'identifier' => 57, - 'anytext' => 122, - 'text' => 58, - 'constant' => 55 + 'pointers' => 122 } }, {#State 89 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -99, + DEFAULT => -101, GOTOS => { - 'identifier' => 57, + 'identifier' => 62, 'anytext' => 123, - 'text' => 58, - 'constant' => 55 + 'text' => 63, + 'constant' => 60 } }, {#State 90 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -99, + DEFAULT => -101, GOTOS => { - 'identifier' => 57, + 'identifier' => 62, 'anytext' => 124, - 'text' => 58, - 'constant' => 55 + 'text' => 63, + 'constant' => 60 } }, {#State 91 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -99, + DEFAULT => -101, GOTOS => { - 'identifier' => 57, + 'identifier' => 62, 'anytext' => 125, - 'text' => 58, - 'constant' => 55, - 'commalisttext' => 126 + 'text' => 63, + 'constant' => 60 } }, {#State 92 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -99, + DEFAULT => -101, GOTOS => { - 'identifier' => 57, - 'anytext' => 127, - 'text' => 58, - 'constant' => 55 + 'identifier' => 62, + 'anytext' => 126, + 'text' => 63, + 'constant' => 60 } }, {#State 93 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -99, + DEFAULT => -101, GOTOS => { - 'identifier' => 57, - 'anytext' => 128, - 'text' => 58, - 'constant' => 55 + 'identifier' => 62, + 'anytext' => 127, + 'text' => 63, + 'constant' => 60 } }, {#State 94 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -99, + DEFAULT => -101, GOTOS => { - 'identifier' => 57, - 'anytext' => 129, - 'text' => 58, - 'constant' => 55 + 'identifier' => 62, + 'anytext' => 128, + 'text' => 63, + 'constant' => 60 } }, {#State 95 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -99, + DEFAULT => -101, GOTOS => { - 'identifier' => 57, - 'anytext' => 125, - 'text' => 58, - 'constant' => 55, - 'commalisttext' => 130 + 'identifier' => 62, + 'anytext' => 129, + 'text' => 63, + 'constant' => 60 } }, {#State 96 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -99, + DEFAULT => -101, GOTOS => { - 'identifier' => 57, - 'anytext' => 131, - 'text' => 58, - 'constant' => 55 + 'identifier' => 62, + 'anytext' => 130, + 'text' => 63, + 'constant' => 60, + 'commalisttext' => 131 } }, {#State 97 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -99, + DEFAULT => -101, GOTOS => { - 'identifier' => 57, + 'identifier' => 62, 'anytext' => 132, - 'text' => 58, - 'constant' => 55 + 'text' => 63, + 'constant' => 60 } }, {#State 98 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -99, + DEFAULT => -101, GOTOS => { - 'identifier' => 57, + 'identifier' => 62, 'anytext' => 133, - 'text' => 58, - 'constant' => 55 + 'text' => 63, + 'constant' => 60 } }, {#State 99 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -99, + DEFAULT => -101, GOTOS => { - 'identifier' => 57, + 'identifier' => 62, 'anytext' => 134, - 'text' => 58, - 'constant' => 55 + 'text' => 63, + 'constant' => 60 } }, {#State 100 - DEFAULT => -94 - }, - {#State 101 - DEFAULT => -124 + ACTIONS => { + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 + }, + DEFAULT => -101, + GOTOS => { + 'identifier' => 62, + 'anytext' => 130, + 'text' => 63, + 'constant' => 60, + 'commalisttext' => 135 + } + }, + {#State 101 + ACTIONS => { + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 + }, + DEFAULT => -101, + GOTOS => { + 'identifier' => 62, + 'anytext' => 136, + 'text' => 63, + 'constant' => 60 + } }, {#State 102 - DEFAULT => -12 + ACTIONS => { + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 + }, + DEFAULT => -101, + GOTOS => { + 'identifier' => 62, + 'anytext' => 137, + 'text' => 63, + 'constant' => 60 + } }, {#State 103 ACTIONS => { - ";" => 135 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 + }, + DEFAULT => -101, + GOTOS => { + 'identifier' => 62, + 'anytext' => 138, + 'text' => 63, + 'constant' => 60 } }, {#State 104 - DEFAULT => -15 - }, - {#State 105 ACTIONS => { - 'IDENTIFIER' => 22 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, + DEFAULT => -101, GOTOS => { - 'identifier' => 136 + 'identifier' => 62, + 'anytext' => 139, + 'text' => 63, + 'constant' => 60 } }, + {#State 105 + DEFAULT => -96 + }, {#State 106 - DEFAULT => -119 + DEFAULT => -126 }, {#State 107 - ACTIONS => { - "{" => 138 - }, - DEFAULT => -74, - GOTOS => { - 'union_body' => 139, - 'opt_union_body' => 137 - } + DEFAULT => -13 }, {#State 108 - DEFAULT => -41 - }, - {#State 109 ACTIONS => { - "{" => 141 - }, - DEFAULT => -64, - GOTOS => { - 'struct_body' => 140, - 'opt_struct_body' => 142 + ";" => 140 } }, + {#State 109 + DEFAULT => -16 + }, {#State 110 ACTIONS => { - "{" => 143 + 'IDENTIFIER' => 26 }, - DEFAULT => -47, GOTOS => { - 'opt_enum_body' => 145, - 'enum_body' => 144 + 'identifier' => 141 } }, {#State 111 - ACTIONS => { - "{" => 147 - }, - DEFAULT => -55, - GOTOS => { - 'bitmap_body' => 148, - 'opt_bitmap_body' => 146 - } + DEFAULT => -121 }, {#State 112 ACTIONS => { - "(" => 149 + "{" => 143 + }, + DEFAULT => -76, + GOTOS => { + 'union_body' => 144, + 'opt_union_body' => 142 } }, {#State 113 - DEFAULT => -32 + DEFAULT => -43 }, {#State 114 - DEFAULT => -30 + ACTIONS => { + "{" => 146 + }, + DEFAULT => -66, + GOTOS => { + 'struct_body' => 145, + 'opt_struct_body' => 147 + } }, {#State 115 - DEFAULT => -31 + ACTIONS => { + "{" => 148 + }, + DEFAULT => -49, + GOTOS => { + 'opt_enum_body' => 150, + 'enum_body' => 149 + } }, {#State 116 ACTIONS => { - ";" => 150 + "{" => 152 + }, + DEFAULT => -57, + GOTOS => { + 'bitmap_body' => 153, + 'opt_bitmap_body' => 151 } }, {#State 117 ACTIONS => { - 'IDENTIFIER' => 22, - "*" => 152 - }, - GOTOS => { - 'identifier' => 151 + "(" => 154 } }, {#State 118 - ACTIONS => { - "-" => 85, - ":" => 84, - "<" => 86, - "+" => 88, - "~" => 87, - "*" => 89, - "?" => 90, - "{" => 91, - "&" => 92, - "/" => 93, - "=" => 94, - "(" => 95, - "|" => 96, - "." => 97, - ">" => 98 - }, - DEFAULT => -112 + DEFAULT => -34 }, {#State 119 - ACTIONS => { - ":" => 84, - "<" => 86, - "~" => 87, - "?" => 90, - "{" => 91, - "=" => 94 - }, - DEFAULT => -103 + DEFAULT => -32 }, {#State 120 - ACTIONS => { - "-" => 85, - ":" => 84, - "<" => 86, - "+" => 88, - "~" => 87, - "*" => 89, - "?" => 90, - "{" => 91, - "&" => 92, - "/" => 93, - "=" => 94, - "(" => 95, - "|" => 96, - "." => 97, - ">" => 98 - }, - DEFAULT => -107 + DEFAULT => -33 }, {#State 121 ACTIONS => { - "-" => 85, - ":" => 84, - "<" => 86, - "+" => 88, - "~" => 87, - "*" => 89, - "?" => 90, - "{" => 91, - "&" => 92, - "/" => 93, - "=" => 94, - "(" => 95, - "|" => 96, - "." => 97, - ">" => 98 - }, - DEFAULT => -115 + ";" => 155 + } }, {#State 122 ACTIONS => { - ":" => 84, - "<" => 86, - "~" => 87, - "?" => 90, - "{" => 91, - "=" => 94 + 'IDENTIFIER' => 26, + "*" => 157 }, - DEFAULT => -114 + GOTOS => { + 'identifier' => 156 + } }, {#State 123 ACTIONS => { - ":" => 84, - "<" => 86, - "~" => 87, - "?" => 90, - "{" => 91, - "=" => 94 + "-" => 90, + ":" => 89, + "<" => 91, + "+" => 93, + "~" => 92, + "*" => 94, + "?" => 95, + "{" => 96, + "&" => 97, + "/" => 98, + "=" => 99, + "(" => 100, + "|" => 101, + "." => 102, + ">" => 103 }, - DEFAULT => -105 + DEFAULT => -114 }, {#State 124 ACTIONS => { - "-" => 85, - ":" => 84, - "<" => 86, - "+" => 88, - "~" => 87, - "*" => 89, - "?" => 90, - "{" => 91, - "&" => 92, - "/" => 93, - "=" => 94, - "(" => 95, - "|" => 96, - "." => 97, - ">" => 98 + ":" => 89, + "<" => 91, + "~" => 92, + "?" => 95, + "{" => 96, + "=" => 99 }, - DEFAULT => -111 + DEFAULT => -105 }, {#State 125 ACTIONS => { - "-" => 85, - ":" => 84, - "<" => 86, - "+" => 88, - "~" => 87, - "*" => 89, - "?" => 90, - "{" => 91, - "&" => 92, - "/" => 93, - "=" => 94, - "(" => 95, - "|" => 96, - "." => 97, - ">" => 98 + "-" => 90, + ":" => 89, + "<" => 91, + "+" => 93, + "~" => 92, + "*" => 94, + "?" => 95, + "{" => 96, + "&" => 97, + "/" => 98, + "=" => 99, + "(" => 100, + "|" => 101, + "." => 102, + ">" => 103 }, - DEFAULT => -97 + DEFAULT => -109 }, {#State 126 ACTIONS => { - "}" => 153, - "," => 154 - } + "-" => 90, + ":" => 89, + "<" => 91, + "+" => 93, + "~" => 92, + "*" => 94, + "?" => 95, + "{" => 96, + "&" => 97, + "/" => 98, + "=" => 99, + "(" => 100, + "|" => 101, + "." => 102, + ">" => 103 + }, + DEFAULT => -117 }, {#State 127 ACTIONS => { - ":" => 84, - "<" => 86, - "~" => 87, - "?" => 90, - "{" => 91, - "=" => 94 + ":" => 89, + "<" => 91, + "~" => 92, + "?" => 95, + "{" => 96, + "=" => 99 }, - DEFAULT => -109 + DEFAULT => -116 }, {#State 128 ACTIONS => { - ":" => 84, - "<" => 86, - "~" => 87, - "?" => 90, - "{" => 91, - "=" => 94 + ":" => 89, + "<" => 91, + "~" => 92, + "?" => 95, + "{" => 96, + "=" => 99 }, - DEFAULT => -110 + DEFAULT => -107 }, {#State 129 ACTIONS => { - "-" => 85, - ":" => 84, - "<" => 86, - "+" => 88, - "~" => 87, - "*" => 89, - "?" => 90, - "{" => 91, - "&" => 92, - "/" => 93, - "=" => 94, - "(" => 95, - "|" => 96, - "." => 97, - ">" => 98 + "-" => 90, + ":" => 89, + "<" => 91, + "+" => 93, + "~" => 92, + "*" => 94, + "?" => 95, + "{" => 96, + "&" => 97, + "/" => 98, + "=" => 99, + "(" => 100, + "|" => 101, + "." => 102, + ">" => 103 }, DEFAULT => -113 }, {#State 130 ACTIONS => { - "," => 154, - ")" => 155 - } + "-" => 90, + ":" => 89, + "<" => 91, + "+" => 93, + "~" => 92, + "*" => 94, + "?" => 95, + "{" => 96, + "&" => 97, + "/" => 98, + "=" => 99, + "(" => 100, + "|" => 101, + "." => 102, + ">" => 103 + }, + DEFAULT => -99 }, {#State 131 ACTIONS => { - ":" => 84, - "<" => 86, - "~" => 87, - "?" => 90, - "{" => 91, - "=" => 94 - }, - DEFAULT => -108 + "}" => 158, + "," => 159 + } }, {#State 132 ACTIONS => { - ":" => 84, - "<" => 86, - "~" => 87, - "?" => 90, - "{" => 91, - "=" => 94 + ":" => 89, + "<" => 91, + "~" => 92, + "?" => 95, + "{" => 96, + "=" => 99 }, - DEFAULT => -104 + DEFAULT => -111 }, {#State 133 ACTIONS => { - ":" => 84, - "<" => 86, - "~" => 87, - "?" => 90, - "{" => 91, - "=" => 94 + ":" => 89, + "<" => 91, + "~" => 92, + "?" => 95, + "{" => 96, + "=" => 99 }, - DEFAULT => -106 + DEFAULT => -112 }, {#State 134 ACTIONS => { - "-" => 85, - ":" => 84, - "<" => 86, - "+" => 88, - "~" => 87, - "*" => 89, - "?" => 90, - "{" => 91, - "&" => 92, - "/" => 93, - "=" => 94, - "(" => 95, - "|" => 96, - "." => 97, - ">" => 98 + "-" => 90, + ":" => 89, + "<" => 91, + "+" => 93, + "~" => 92, + "*" => 94, + "?" => 95, + "{" => 96, + "&" => 97, + "/" => 98, + "=" => 99, + "(" => 100, + "|" => 101, + "." => 102, + ">" => 103 }, - DEFAULT => -96 + DEFAULT => -115 }, {#State 135 - DEFAULT => -14 + ACTIONS => { + "," => 159, + ")" => 160 + } }, {#State 136 ACTIONS => { - "[" => 156 + ":" => 89, + "<" => 91, + "~" => 92, + "?" => 95, + "{" => 96, + "=" => 99 }, - DEFAULT => -86, - GOTOS => { - 'array_len' => 157 - } + DEFAULT => -110 }, {#State 137 - DEFAULT => -76 + ACTIONS => { + ":" => 89, + "<" => 91, + "~" => 92, + "?" => 95, + "{" => 96, + "=" => 99 + }, + DEFAULT => -106 }, {#State 138 - DEFAULT => -71, - GOTOS => { - 'union_elements' => 158 - } + ACTIONS => { + ":" => 89, + "<" => 91, + "~" => 92, + "?" => 95, + "{" => 96, + "=" => 99 + }, + DEFAULT => -108 }, {#State 139 - DEFAULT => -75 + ACTIONS => { + "-" => 90, + ":" => 89, + "<" => 91, + "+" => 93, + "~" => 92, + "*" => 94, + "?" => 95, + "{" => 96, + "&" => 97, + "/" => 98, + "=" => 99, + "(" => 100, + "|" => 101, + "." => 102, + ">" => 103 + }, + DEFAULT => -98 }, {#State 140 - DEFAULT => -65 + DEFAULT => -15 }, {#State 141 - DEFAULT => -80, + ACTIONS => { + "[" => 161 + }, + DEFAULT => -88, GOTOS => { - 'element_list1' => 159 + 'array_len' => 162 } }, {#State 142 - DEFAULT => -66 + DEFAULT => -78 }, {#State 143 - ACTIONS => { - 'IDENTIFIER' => 22 - }, + DEFAULT => -73, GOTOS => { - 'identifier' => 160, - 'enum_element' => 161, - 'enum_elements' => 162 + 'union_elements' => 163 } }, {#State 144 - DEFAULT => -48 + DEFAULT => -77 }, {#State 145 - DEFAULT => -49 + DEFAULT => -67 }, {#State 146 - DEFAULT => -57 + DEFAULT => -82, + GOTOS => { + 'element_list1' => 164 + } }, {#State 147 + DEFAULT => -68 + }, + {#State 148 ACTIONS => { - 'IDENTIFIER' => 22 + 'IDENTIFIER' => 26 }, - DEFAULT => -60, GOTOS => { 'identifier' => 165, - 'bitmap_element' => 164, - 'bitmap_elements' => 163, - 'opt_bitmap_elements' => 166 + 'enum_element' => 166, + 'enum_elements' => 167 } }, - {#State 148 - DEFAULT => -56 - }, {#State 149 - ACTIONS => { - "," => -82, - "void" => 170, - ")" => -82 - }, - DEFAULT => -89, - GOTOS => { - 'base_element' => 167, - 'element_list2' => 169, - 'property_list' => 168 - } + DEFAULT => -50 }, {#State 150 - DEFAULT => -26 + DEFAULT => -51 }, {#State 151 - ACTIONS => { - "[" => 156, - "=" => 172 - }, - GOTOS => { - 'array_len' => 171 - } + DEFAULT => -59 }, {#State 152 - DEFAULT => -79 - }, - {#State 153 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'IDENTIFIER' => 26 }, - DEFAULT => -99, + DEFAULT => -62, GOTOS => { - 'identifier' => 57, - 'anytext' => 173, - 'text' => 58, - 'constant' => 55 + 'identifier' => 170, + 'bitmap_element' => 169, + 'bitmap_elements' => 168, + 'opt_bitmap_elements' => 171 } }, + {#State 153 + DEFAULT => -58 + }, {#State 154 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + "," => -84, + "void" => 175, + ")" => -84 }, - DEFAULT => -99, + DEFAULT => -91, GOTOS => { - 'identifier' => 57, - 'anytext' => 174, - 'text' => 58, - 'constant' => 55 + 'base_element' => 172, + 'element_list2' => 174, + 'property_list' => 173 } }, {#State 155 - ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 - }, - DEFAULT => -99, - GOTOS => { - 'identifier' => 57, - 'anytext' => 175, - 'text' => 58, - 'constant' => 55 - } + DEFAULT => -28 }, {#State 156 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - "]" => 176, - 'IDENTIFIER' => 22 + "[" => 161, + "=" => 177 }, - DEFAULT => -99, GOTOS => { - 'identifier' => 57, - 'anytext' => 177, - 'text' => 58, - 'constant' => 55 + 'array_len' => 176 } }, {#State 157 - ACTIONS => { - ";" => 178 - } + DEFAULT => -81 }, {#State 158 ACTIONS => { - "}" => 179 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -89, + DEFAULT => -101, GOTOS => { - 'optional_base_element' => 181, - 'property_list' => 180 + 'identifier' => 62, + 'anytext' => 178, + 'text' => 63, + 'constant' => 60 } }, {#State 159 ACTIONS => { - "}" => 182 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -89, + DEFAULT => -101, GOTOS => { - 'base_element' => 183, - 'property_list' => 168 + 'identifier' => 62, + 'anytext' => 179, + 'text' => 63, + 'constant' => 60 } }, {#State 160 ACTIONS => { - "=" => 184 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -52 + DEFAULT => -101, + GOTOS => { + 'identifier' => 62, + 'anytext' => 180, + 'text' => 63, + 'constant' => 60 + } }, {#State 161 - DEFAULT => -50 + ACTIONS => { + 'CONSTANT' => 61, + 'TEXT' => 16, + "]" => 181, + 'IDENTIFIER' => 26 + }, + DEFAULT => -101, + GOTOS => { + 'identifier' => 62, + 'anytext' => 182, + 'text' => 63, + 'constant' => 60 + } }, {#State 162 ACTIONS => { - "}" => 185, - "," => 186 + ";" => 183 } }, {#State 163 ACTIONS => { - "," => 187 + "}" => 184 }, - DEFAULT => -61 + DEFAULT => -91, + GOTOS => { + 'optional_base_element' => 186, + 'property_list' => 185 + } }, {#State 164 - DEFAULT => -58 + ACTIONS => { + "}" => 187 + }, + DEFAULT => -91, + GOTOS => { + 'base_element' => 188, + 'property_list' => 173 + } }, {#State 165 ACTIONS => { - "=" => 188 - } + "=" => 189 + }, + DEFAULT => -54 }, {#State 166 - ACTIONS => { - "}" => 189 - } + DEFAULT => -52 }, {#State 167 - DEFAULT => -84 + ACTIONS => { + "}" => 190, + "," => 191 + } }, {#State 168 ACTIONS => { - 'IDENTIFIER' => 22, - "signed" => 72, - 'void' => 66, - "unsigned" => 76, - "[" => 17 + "," => 192 }, - DEFAULT => -89, - GOTOS => { - 'existingtype' => 73, - 'bitmap' => 39, - 'usertype' => 68, - 'property_list' => 67, - 'identifier' => 69, - 'struct' => 45, - 'enum' => 49, - 'type' => 190, - 'union' => 51, - 'sign' => 70 - } + DEFAULT => -63 }, {#State 169 - ACTIONS => { - "," => 191, - ")" => 192 - } + DEFAULT => -60 }, {#State 170 - DEFAULT => -83 - }, - {#State 171 ACTIONS => { "=" => 193 } }, - {#State 172 + {#State 171 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 - }, - DEFAULT => -99, - GOTOS => { - 'identifier' => 57, - 'anytext' => 194, - 'text' => 58, - 'constant' => 55 + "}" => 194 } }, + {#State 172 + DEFAULT => -86 + }, {#State 173 ACTIONS => { - "-" => 85, - ":" => 84, - "<" => 86, - "+" => 88, - "~" => 87, - "*" => 89, - "?" => 90, - "{" => 91, - "&" => 92, - "/" => 93, - "=" => 94, - "(" => 95, - "|" => 96, - "." => 97, - ">" => 98 + 'IDENTIFIER' => 26, + "signed" => 77, + 'void' => 71, + "unsigned" => 81, + "[" => 20 }, - DEFAULT => -117 + DEFAULT => -91, + GOTOS => { + 'existingtype' => 78, + 'bitmap' => 44, + 'usertype' => 73, + 'property_list' => 72, + 'identifier' => 74, + 'struct' => 50, + 'enum' => 54, + 'type' => 195, + 'union' => 56, + 'sign' => 75 + } }, {#State 174 ACTIONS => { - "-" => 85, - ":" => 84, - "<" => 86, - "+" => 88, - "~" => 87, - "*" => 89, - "?" => 90, - "{" => 91, - "&" => 92, - "/" => 93, - "=" => 94, - "(" => 95, - "|" => 96, - "." => 97, - ">" => 98 - }, - DEFAULT => -98 + "," => 196, + ")" => 197 + } }, {#State 175 - ACTIONS => { - ":" => 84, - "<" => 86, - "~" => 87, - "?" => 90, - "{" => 91, - "=" => 94 - }, - DEFAULT => -116 + DEFAULT => -85 }, {#State 176 ACTIONS => { - "[" => 156 - }, - DEFAULT => -86, - GOTOS => { - 'array_len' => 195 + "=" => 198 } }, {#State 177 ACTIONS => { - "-" => 85, - ":" => 84, - "?" => 90, - "<" => 86, - "+" => 88, - "~" => 87, - "&" => 92, - "{" => 91, - "/" => 93, - "=" => 94, - "|" => 96, - "(" => 95, - "*" => 89, - "." => 97, - "]" => 196, - ">" => 98 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 + }, + DEFAULT => -101, + GOTOS => { + 'identifier' => 62, + 'anytext' => 199, + 'text' => 63, + 'constant' => 60 } }, {#State 178 - DEFAULT => -33 + ACTIONS => { + "-" => 90, + ":" => 89, + "<" => 91, + "+" => 93, + "~" => 92, + "*" => 94, + "?" => 95, + "{" => 96, + "&" => 97, + "/" => 98, + "=" => 99, + "(" => 100, + "|" => 101, + "." => 102, + ">" => 103 + }, + DEFAULT => -119 }, {#State 179 - DEFAULT => -73 + ACTIONS => { + "-" => 90, + ":" => 89, + "<" => 91, + "+" => 93, + "~" => 92, + "*" => 94, + "?" => 95, + "{" => 96, + "&" => 97, + "/" => 98, + "=" => 99, + "(" => 100, + "|" => 101, + "." => 102, + ">" => 103 + }, + DEFAULT => -100 }, {#State 180 ACTIONS => { - "[" => 17 + ":" => 89, + "<" => 91, + "~" => 92, + "?" => 95, + "{" => 96, + "=" => 99 }, - DEFAULT => -89, - GOTOS => { - 'base_or_empty' => 197, - 'base_element' => 198, - 'empty_element' => 199, - 'property_list' => 200 - } + DEFAULT => -118 }, {#State 181 - DEFAULT => -72 + ACTIONS => { + "[" => 161 + }, + DEFAULT => -88, + GOTOS => { + 'array_len' => 200 + } }, {#State 182 - DEFAULT => -63 - }, - {#State 183 ACTIONS => { - ";" => 201 + "-" => 90, + ":" => 89, + "?" => 95, + "<" => 91, + "+" => 93, + "~" => 92, + "&" => 97, + "{" => 96, + "/" => 98, + "=" => 99, + "|" => 101, + "(" => 100, + "*" => 94, + "." => 102, + "]" => 201, + ">" => 103 } }, + {#State 183 + DEFAULT => -35 + }, {#State 184 - ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 - }, - DEFAULT => -99, - GOTOS => { - 'identifier' => 57, - 'anytext' => 202, - 'text' => 58, - 'constant' => 55 - } + DEFAULT => -75 }, {#State 185 - DEFAULT => -46 - }, - {#State 186 ACTIONS => { - 'IDENTIFIER' => 22 + "[" => 20 }, + DEFAULT => -91, GOTOS => { - 'identifier' => 160, - 'enum_element' => 203 + 'base_or_empty' => 202, + 'base_element' => 203, + 'empty_element' => 204, + 'property_list' => 205 } }, + {#State 186 + DEFAULT => -74 + }, {#State 187 + DEFAULT => -65 + }, + {#State 188 ACTIONS => { - 'IDENTIFIER' => 22 - }, - GOTOS => { - 'identifier' => 165, - 'bitmap_element' => 204 + ";" => 206 } }, - {#State 188 + {#State 189 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -99, + DEFAULT => -101, GOTOS => { - 'identifier' => 57, - 'anytext' => 205, - 'text' => 58, - 'constant' => 55 + 'identifier' => 62, + 'anytext' => 207, + 'text' => 63, + 'constant' => 60 } }, - {#State 189 - DEFAULT => -54 - }, {#State 190 - DEFAULT => -78, - GOTOS => { - 'pointers' => 206 - } + DEFAULT => -48 }, {#State 191 - DEFAULT => -89, + ACTIONS => { + 'IDENTIFIER' => 26 + }, GOTOS => { - 'base_element' => 207, - 'property_list' => 168 + 'identifier' => 165, + 'enum_element' => 208 } }, {#State 192 ACTIONS => { - ";" => 208 + 'IDENTIFIER' => 26 + }, + GOTOS => { + 'identifier' => 170, + 'bitmap_element' => 209 } }, {#State 193 ACTIONS => { - 'CONSTANT' => 56, - 'TEXT' => 13, - 'IDENTIFIER' => 22 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 }, - DEFAULT => -99, + DEFAULT => -101, GOTOS => { - 'identifier' => 57, - 'anytext' => 209, - 'text' => 58, - 'constant' => 55 + 'identifier' => 62, + 'anytext' => 210, + 'text' => 63, + 'constant' => 60 } }, {#State 194 - ACTIONS => { - "-" => 85, - ":" => 84, - "?" => 90, - "<" => 86, - ";" => 210, - "+" => 88, - "~" => 87, - "&" => 92, - "{" => 91, - "/" => 93, - "=" => 94, - "|" => 96, - "(" => 95, - "*" => 89, - "." => 97, - ">" => 98 - } + DEFAULT => -56 }, {#State 195 - DEFAULT => -87 + DEFAULT => -80, + GOTOS => { + 'pointers' => 211 + } }, {#State 196 - ACTIONS => { - "[" => 156 - }, - DEFAULT => -86, + DEFAULT => -91, GOTOS => { - 'array_len' => 211 + 'base_element' => 212, + 'property_list' => 173 } }, {#State 197 - DEFAULT => -70 + ACTIONS => { + ";" => 213 + } }, {#State 198 ACTIONS => { - ";" => 212 + 'CONSTANT' => 61, + 'TEXT' => 16, + 'IDENTIFIER' => 26 + }, + DEFAULT => -101, + GOTOS => { + 'identifier' => 62, + 'anytext' => 214, + 'text' => 63, + 'constant' => 60 } }, {#State 199 - DEFAULT => -69 + ACTIONS => { + "-" => 90, + ":" => 89, + "?" => 95, + "<" => 91, + ";" => 215, + "+" => 93, + "~" => 92, + "&" => 97, + "{" => 96, + "/" => 98, + "=" => 99, + "|" => 101, + "(" => 100, + "*" => 94, + "." => 102, + ">" => 103 + } }, {#State 200 + DEFAULT => -89 + }, + {#State 201 ACTIONS => { - 'IDENTIFIER' => 22, - "signed" => 72, - ";" => 213, - 'void' => 66, - "unsigned" => 76, - "[" => 17 + "[" => 161 }, - DEFAULT => -89, + DEFAULT => -88, GOTOS => { - 'existingtype' => 73, - 'bitmap' => 39, - 'usertype' => 68, - 'property_list' => 67, - 'identifier' => 69, - 'struct' => 45, - 'enum' => 49, - 'type' => 190, - 'union' => 51, - 'sign' => 70 + 'array_len' => 216 } }, - {#State 201 - DEFAULT => -81 - }, {#State 202 - ACTIONS => { - "-" => 85, - ":" => 84, - "<" => 86, - "+" => 88, - "~" => 87, - "*" => 89, - "?" => 90, - "{" => 91, - "&" => 92, - "/" => 93, - "=" => 94, - "(" => 95, - "|" => 96, - "." => 97, - ">" => 98 - }, - DEFAULT => -53 + DEFAULT => -72 }, {#State 203 - DEFAULT => -51 + ACTIONS => { + ";" => 217 + } }, {#State 204 - DEFAULT => -59 + DEFAULT => -71 }, {#State 205 ACTIONS => { - "-" => 85, - ":" => 84, - "<" => 86, - "+" => 88, - "~" => 87, - "*" => 89, - "?" => 90, - "{" => 91, - "&" => 92, - "/" => 93, - "=" => 94, - "(" => 95, - "|" => 96, - "." => 97, - ">" => 98 - }, - DEFAULT => -62 - }, - {#State 206 - ACTIONS => { - 'IDENTIFIER' => 22, - "*" => 152 + 'IDENTIFIER' => 26, + "signed" => 77, + ";" => 218, + 'void' => 71, + "unsigned" => 81, + "[" => 20 }, + DEFAULT => -91, GOTOS => { - 'identifier' => 214 + 'existingtype' => 78, + 'bitmap' => 44, + 'usertype' => 73, + 'property_list' => 72, + 'identifier' => 74, + 'struct' => 50, + 'enum' => 54, + 'type' => 195, + 'union' => 56, + 'sign' => 75 } }, + {#State 206 + DEFAULT => -83 + }, {#State 207 - DEFAULT => -85 + ACTIONS => { + "-" => 90, + ":" => 89, + "<" => 91, + "+" => 93, + "~" => 92, + "*" => 94, + "?" => 95, + "{" => 96, + "&" => 97, + "/" => 98, + "=" => 99, + "(" => 100, + "|" => 101, + "." => 102, + ">" => 103 + }, + DEFAULT => -55 }, {#State 208 - DEFAULT => -25 + DEFAULT => -53 }, {#State 209 + DEFAULT => -61 + }, + {#State 210 + ACTIONS => { + "-" => 90, + ":" => 89, + "<" => 91, + "+" => 93, + "~" => 92, + "*" => 94, + "?" => 95, + "{" => 96, + "&" => 97, + "/" => 98, + "=" => 99, + "(" => 100, + "|" => 101, + "." => 102, + ">" => 103 + }, + DEFAULT => -64 + }, + {#State 211 + ACTIONS => { + 'IDENTIFIER' => 26, + "*" => 157 + }, + GOTOS => { + 'identifier' => 219 + } + }, + {#State 212 + DEFAULT => -87 + }, + {#State 213 + DEFAULT => -27 + }, + {#State 214 ACTIONS => { - "-" => 85, - ":" => 84, - "?" => 90, - "<" => 86, - ";" => 215, - "+" => 88, - "~" => 87, - "&" => 92, - "{" => 91, - "/" => 93, - "=" => 94, - "|" => 96, - "(" => 95, - "*" => 89, - "." => 97, - ">" => 98 + "-" => 90, + ":" => 89, + "?" => 95, + "<" => 91, + ";" => 220, + "+" => 93, + "~" => 92, + "&" => 97, + "{" => 96, + "/" => 98, + "=" => 99, + "|" => 101, + "(" => 100, + "*" => 94, + "." => 102, + ">" => 103 } }, - {#State 210 - DEFAULT => -23 + {#State 215 + DEFAULT => -25 }, - {#State 211 - DEFAULT => -88 + {#State 216 + DEFAULT => -90 }, - {#State 212 - DEFAULT => -68 + {#State 217 + DEFAULT => -70 }, - {#State 213 - DEFAULT => -67 + {#State 218 + DEFAULT => -69 }, - {#State 214 + {#State 219 ACTIONS => { - "[" => 156 + "[" => 161 }, - DEFAULT => -86, + DEFAULT => -88, GOTOS => { - 'array_len' => 216 + 'array_len' => 221 } }, - {#State 215 - DEFAULT => -24 + {#State 220 + DEFAULT => -26 }, - {#State 216 - DEFAULT => -77 + {#State 221 + DEFAULT => -79 } ], yyrules => @@ -1777,37 +1803,43 @@ sub new { [#Rule 2 'idl', 2, sub -#line 19 "pidl/idl.yp" +#line 19 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 3 'idl', 2, sub -#line 20 "pidl/idl.yp" +#line 20 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 4 'idl', 2, sub -#line 21 "pidl/idl.yp" +#line 21 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 5 'idl', 2, sub -#line 22 "pidl/idl.yp" +#line 22 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 6 'idl', 2, sub -#line 23 "pidl/idl.yp" +#line 23 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 7 + 'idl', 2, +sub +#line 24 "idl.yp" +{ push(@{$_[1]}, $_[2]); $_[1] } + ], + [#Rule 8 'import', 3, sub -#line 26 "pidl/idl.yp" +#line 27 "idl.yp" {{ "TYPE" => "IMPORT", "PATHS" => $_[2], @@ -1815,10 +1847,10 @@ sub "LINE" => $_[0]->YYData->{LINE} }} ], - [#Rule 8 + [#Rule 9 'include', 3, sub -#line 33 "pidl/idl.yp" +#line 34 "idl.yp" {{ "TYPE" => "INCLUDE", "PATHS" => $_[2], @@ -1826,10 +1858,10 @@ sub "LINE" => $_[0]->YYData->{LINE} }} ], - [#Rule 9 + [#Rule 10 'importlib', 3, sub -#line 40 "pidl/idl.yp" +#line 41 "idl.yp" {{ "TYPE" => "IMPORTLIB", "PATHS" => $_[2], @@ -1837,22 +1869,22 @@ sub "LINE" => $_[0]->YYData->{LINE} }} ], - [#Rule 10 + [#Rule 11 'commalist', 1, sub -#line 49 "pidl/idl.yp" +#line 50 "idl.yp" { [ $_[1] ] } ], - [#Rule 11 + [#Rule 12 'commalist', 3, sub -#line 50 "pidl/idl.yp" +#line 51 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 12 + [#Rule 13 'coclass', 7, sub -#line 54 "pidl/idl.yp" +#line 55 "idl.yp" {{ "TYPE" => "COCLASS", "PROPERTIES" => $_[1], @@ -1862,19 +1894,19 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 13 + [#Rule 14 'interface_names', 0, undef ], - [#Rule 14 + [#Rule 15 'interface_names', 4, sub -#line 66 "pidl/idl.yp" +#line 67 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 15 + [#Rule 16 'interface', 7, sub -#line 70 "pidl/idl.yp" +#line 71 "idl.yp" {{ "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], @@ -1884,24 +1916,29 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 16 + [#Rule 17 + 'cpp_quote', 4, +sub +#line 82 "idl.yp" +{{ + "TYPE" => "CPP_QUOTE", + "FILE" => $_[0]->YYData->{FILE}, + "LINE" => $_[0]->YYData->{LINE}, + "DATA" => $_[3] + }} + ], + [#Rule 18 'definitions', 1, sub -#line 81 "pidl/idl.yp" +#line 91 "idl.yp" { [ $_[1] ] } ], - [#Rule 17 + [#Rule 19 'definitions', 2, sub -#line 82 "pidl/idl.yp" +#line 92 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 18 - 'definition', 1, undef - ], - [#Rule 19 - 'definition', 1, undef - ], [#Rule 20 'definition', 1, undef ], @@ -1912,9 +1949,15 @@ sub 'definition', 1, undef ], [#Rule 23 + 'definition', 1, undef + ], + [#Rule 24 + 'definition', 1, undef + ], + [#Rule 25 'const', 7, sub -#line 90 "pidl/idl.yp" +#line 100 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1925,10 +1968,10 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 24 + [#Rule 26 'const', 8, sub -#line 100 "pidl/idl.yp" +#line 110 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1940,10 +1983,10 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 25 + [#Rule 27 'function', 7, sub -#line 114 "pidl/idl.yp" +#line 124 "idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -1954,10 +1997,10 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 26 + [#Rule 28 'declare', 4, sub -#line 126 "pidl/idl.yp" +#line 136 "idl.yp" {{ "TYPE" => "DECLARE", "NAME" => $_[3], @@ -1966,46 +2009,46 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 27 + [#Rule 29 'decl_type', 1, undef ], - [#Rule 28 + [#Rule 30 'decl_type', 1, undef ], - [#Rule 29 + [#Rule 31 'decl_type', 1, undef ], - [#Rule 30 + [#Rule 32 'decl_enum', 2, sub -#line 139 "pidl/idl.yp" +#line 149 "idl.yp" {{ "TYPE" => "ENUM", "PROPERTIES" => $_[1] }} ], - [#Rule 31 + [#Rule 33 'decl_bitmap', 2, sub -#line 146 "pidl/idl.yp" +#line 156 "idl.yp" {{ "TYPE" => "BITMAP", "PROPERTIES" => $_[1] }} ], - [#Rule 32 + [#Rule 34 'decl_union', 2, sub -#line 153 "pidl/idl.yp" +#line 163 "idl.yp" {{ "TYPE" => "UNION", "PROPERTIES" => $_[1] }} ], - [#Rule 33 + [#Rule 35 'typedef', 6, sub -#line 160 "pidl/idl.yp" +#line 170 "idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[1], @@ -2016,67 +2059,67 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 34 + [#Rule 36 'usertype', 1, undef ], - [#Rule 35 + [#Rule 37 'usertype', 1, undef ], - [#Rule 36 + [#Rule 38 'usertype', 1, undef ], - [#Rule 37 + [#Rule 39 'usertype', 1, undef ], - [#Rule 38 + [#Rule 40 'typedecl', 2, sub -#line 173 "pidl/idl.yp" +#line 183 "idl.yp" { $_[1] } ], - [#Rule 39 + [#Rule 41 'sign', 1, undef ], - [#Rule 40 + [#Rule 42 'sign', 1, undef ], - [#Rule 41 + [#Rule 43 'existingtype', 2, sub -#line 178 "pidl/idl.yp" +#line 188 "idl.yp" { ($_[1]?$_[1]:"signed") ." $_[2]" } ], - [#Rule 42 + [#Rule 44 'existingtype', 1, undef ], - [#Rule 43 + [#Rule 45 'type', 1, undef ], - [#Rule 44 + [#Rule 46 'type', 1, undef ], - [#Rule 45 + [#Rule 47 'type', 1, sub -#line 182 "pidl/idl.yp" +#line 192 "idl.yp" { "void" } ], - [#Rule 46 + [#Rule 48 'enum_body', 3, sub -#line 184 "pidl/idl.yp" +#line 194 "idl.yp" { $_[2] } ], - [#Rule 47 + [#Rule 49 'opt_enum_body', 0, undef ], - [#Rule 48 + [#Rule 50 'opt_enum_body', 1, undef ], - [#Rule 49 + [#Rule 51 'enum', 4, sub -#line 187 "pidl/idl.yp" +#line 197 "idl.yp" {{ "TYPE" => "ENUM", "PROPERTIES" => $_[1], @@ -2084,43 +2127,43 @@ sub "ELEMENTS" => $_[4] }} ], - [#Rule 50 + [#Rule 52 'enum_elements', 1, sub -#line 196 "pidl/idl.yp" +#line 206 "idl.yp" { [ $_[1] ] } ], - [#Rule 51 + [#Rule 53 'enum_elements', 3, sub -#line 197 "pidl/idl.yp" +#line 207 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 52 + [#Rule 54 'enum_element', 1, undef ], - [#Rule 53 + [#Rule 55 'enum_element', 3, sub -#line 201 "pidl/idl.yp" +#line 211 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 54 + [#Rule 56 'bitmap_body', 3, sub -#line 204 "pidl/idl.yp" +#line 214 "idl.yp" { $_[2] } ], - [#Rule 55 + [#Rule 57 'opt_bitmap_body', 0, undef ], - [#Rule 56 + [#Rule 58 'opt_bitmap_body', 1, undef ], - [#Rule 57 + [#Rule 59 'bitmap', 4, sub -#line 207 "pidl/idl.yp" +#line 217 "idl.yp" {{ "TYPE" => "BITMAP", "PROPERTIES" => $_[1], @@ -2128,46 +2171,46 @@ sub "ELEMENTS" => $_[4] }} ], - [#Rule 58 + [#Rule 60 'bitmap_elements', 1, sub -#line 216 "pidl/idl.yp" +#line 226 "idl.yp" { [ $_[1] ] } ], - [#Rule 59 + [#Rule 61 'bitmap_elements', 3, sub -#line 217 "pidl/idl.yp" +#line 227 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 60 + [#Rule 62 'opt_bitmap_elements', 0, undef ], - [#Rule 61 + [#Rule 63 'opt_bitmap_elements', 1, undef ], - [#Rule 62 + [#Rule 64 'bitmap_element', 3, sub -#line 222 "pidl/idl.yp" +#line 232 "idl.yp" { "$_[1] ( $_[3] )" } ], - [#Rule 63 + [#Rule 65 'struct_body', 3, sub -#line 225 "pidl/idl.yp" +#line 235 "idl.yp" { $_[2] } ], - [#Rule 64 + [#Rule 66 'opt_struct_body', 0, undef ], - [#Rule 65 + [#Rule 67 'opt_struct_body', 1, undef ], - [#Rule 66 + [#Rule 68 'struct', 4, sub -#line 229 "pidl/idl.yp" +#line 239 "idl.yp" {{ "TYPE" => "STRUCT", "PROPERTIES" => $_[1], @@ -2175,10 +2218,10 @@ sub "ELEMENTS" => $_[4] }} ], - [#Rule 67 + [#Rule 69 'empty_element', 2, sub -#line 238 "pidl/idl.yp" +#line 248 "idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2189,43 +2232,43 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 68 + [#Rule 70 'base_or_empty', 2, undef ], - [#Rule 69 + [#Rule 71 'base_or_empty', 1, undef ], - [#Rule 70 + [#Rule 72 'optional_base_element', 2, sub -#line 252 "pidl/idl.yp" +#line 262 "idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], - [#Rule 71 + [#Rule 73 'union_elements', 0, undef ], - [#Rule 72 + [#Rule 74 'union_elements', 2, sub -#line 257 "pidl/idl.yp" +#line 267 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 73 + [#Rule 75 'union_body', 3, sub -#line 260 "pidl/idl.yp" +#line 270 "idl.yp" { $_[2] } ], - [#Rule 74 + [#Rule 76 'opt_union_body', 0, undef ], - [#Rule 75 + [#Rule 77 'opt_union_body', 1, undef ], - [#Rule 76 + [#Rule 78 'union', 4, sub -#line 264 "pidl/idl.yp" +#line 274 "idl.yp" {{ "TYPE" => "UNION", "PROPERTIES" => $_[1], @@ -2233,10 +2276,10 @@ sub "ELEMENTS" => $_[4] }} ], - [#Rule 77 + [#Rule 79 'base_element', 5, sub -#line 273 "pidl/idl.yp" +#line 283 "idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2247,241 +2290,241 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 78 + [#Rule 80 'pointers', 0, sub -#line 287 "pidl/idl.yp" +#line 297 "idl.yp" { 0 } ], - [#Rule 79 + [#Rule 81 'pointers', 2, sub -#line 288 "pidl/idl.yp" +#line 298 "idl.yp" { $_[1]+1 } ], - [#Rule 80 + [#Rule 82 'element_list1', 0, sub -#line 292 "pidl/idl.yp" +#line 302 "idl.yp" { [] } ], - [#Rule 81 + [#Rule 83 'element_list1', 3, sub -#line 293 "pidl/idl.yp" +#line 303 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 82 + [#Rule 84 'element_list2', 0, undef ], - [#Rule 83 + [#Rule 85 'element_list2', 1, undef ], - [#Rule 84 + [#Rule 86 'element_list2', 1, sub -#line 299 "pidl/idl.yp" +#line 309 "idl.yp" { [ $_[1] ] } ], - [#Rule 85 + [#Rule 87 'element_list2', 3, sub -#line 300 "pidl/idl.yp" +#line 310 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 86 + [#Rule 88 'array_len', 0, undef ], - [#Rule 87 + [#Rule 89 'array_len', 3, sub -#line 305 "pidl/idl.yp" +#line 315 "idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], - [#Rule 88 + [#Rule 90 'array_len', 4, sub -#line 306 "pidl/idl.yp" +#line 316 "idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], - [#Rule 89 + [#Rule 91 'property_list', 0, undef ], - [#Rule 90 + [#Rule 92 'property_list', 4, sub -#line 312 "pidl/idl.yp" +#line 322 "idl.yp" { FlattenHash([$_[1],$_[3]]); } ], - [#Rule 91 + [#Rule 93 'properties', 1, sub -#line 315 "pidl/idl.yp" +#line 325 "idl.yp" { $_[1] } ], - [#Rule 92 + [#Rule 94 'properties', 3, sub -#line 316 "pidl/idl.yp" +#line 326 "idl.yp" { FlattenHash([$_[1], $_[3]]); } ], - [#Rule 93 + [#Rule 95 'property', 1, sub -#line 319 "pidl/idl.yp" +#line 329 "idl.yp" {{ "$_[1]" => "1" }} ], - [#Rule 94 + [#Rule 96 'property', 4, sub -#line 320 "pidl/idl.yp" +#line 330 "idl.yp" {{ "$_[1]" => "$_[3]" }} ], - [#Rule 95 + [#Rule 97 'listtext', 1, undef ], - [#Rule 96 + [#Rule 98 'listtext', 3, sub -#line 325 "pidl/idl.yp" +#line 335 "idl.yp" { "$_[1] $_[3]" } ], - [#Rule 97 + [#Rule 99 'commalisttext', 1, undef ], - [#Rule 98 + [#Rule 100 'commalisttext', 3, sub -#line 330 "pidl/idl.yp" +#line 340 "idl.yp" { "$_[1],$_[3]" } ], - [#Rule 99 + [#Rule 101 'anytext', 0, sub -#line 334 "pidl/idl.yp" +#line 344 "idl.yp" { "" } ], - [#Rule 100 - 'anytext', 1, undef - ], - [#Rule 101 - 'anytext', 1, undef - ], [#Rule 102 'anytext', 1, undef ], [#Rule 103 - 'anytext', 3, -sub -#line 336 "pidl/idl.yp" -{ "$_[1]$_[2]$_[3]" } + 'anytext', 1, undef ], [#Rule 104 - 'anytext', 3, -sub -#line 337 "pidl/idl.yp" -{ "$_[1]$_[2]$_[3]" } + 'anytext', 1, undef ], [#Rule 105 'anytext', 3, sub -#line 338 "pidl/idl.yp" +#line 346 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 106 'anytext', 3, sub -#line 339 "pidl/idl.yp" +#line 347 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 107 'anytext', 3, sub -#line 340 "pidl/idl.yp" +#line 348 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 108 'anytext', 3, sub -#line 341 "pidl/idl.yp" +#line 349 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 109 'anytext', 3, sub -#line 342 "pidl/idl.yp" +#line 350 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 110 'anytext', 3, sub -#line 343 "pidl/idl.yp" +#line 351 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 111 'anytext', 3, sub -#line 344 "pidl/idl.yp" +#line 352 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 112 'anytext', 3, sub -#line 345 "pidl/idl.yp" +#line 353 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 113 'anytext', 3, sub -#line 346 "pidl/idl.yp" +#line 354 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 114 'anytext', 3, sub -#line 347 "pidl/idl.yp" +#line 355 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 115 'anytext', 3, sub -#line 348 "pidl/idl.yp" +#line 356 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 116 + 'anytext', 3, +sub +#line 357 "idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 117 + 'anytext', 3, +sub +#line 358 "idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 118 'anytext', 5, sub -#line 349 "pidl/idl.yp" +#line 359 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 117 + [#Rule 119 'anytext', 5, sub -#line 350 "pidl/idl.yp" +#line 360 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 118 + [#Rule 120 'identifier', 1, undef ], - [#Rule 119 + [#Rule 121 'optional_identifier', 1, undef ], - [#Rule 120 + [#Rule 122 'optional_identifier', 0, undef ], - [#Rule 121 + [#Rule 123 'constant', 1, undef ], - [#Rule 122 + [#Rule 124 'text', 1, sub -#line 364 "pidl/idl.yp" +#line 374 "idl.yp" { "\"$_[1]\"" } ], - [#Rule 123 + [#Rule 125 'optional_semicolon', 0, undef ], - [#Rule 124 + [#Rule 126 'optional_semicolon', 1, undef ] ], @@ -2489,7 +2532,7 @@ sub bless($self,$class); } -#line 375 "pidl/idl.yp" +#line 385 "idl.yp" use Parse::Pidl qw(error); @@ -2584,7 +2627,7 @@ again: if (s/^([\w_]+)//) { $parser->YYData->{LAST_TOKEN} = $1; if ($1 =~ - /^(coclass|interface|const|typedef|declare|union + /^(coclass|interface|const|typedef|declare|union|cpp_quote |struct|enum|bitmap|void|unsigned|signed|import|include |importlib)$/x) { return $1; -- cgit From 92950a9f2f300292c237a78b308d9e95fba2bed2 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 12 Jan 2008 01:10:59 +0100 Subject: pidl: Remove support for the "declare" keyword in the parser. (This used to be commit ea3371389226a756ba641a7fc02cfbee78663411) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 2226 +++++++++++++++++------------------- 1 file changed, 1058 insertions(+), 1168 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index e9155e4e00..5956c43e43 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -38,7 +38,7 @@ sub new { "import" => 7, "include" => 13 }, - DEFAULT => -91, + DEFAULT => -83, GOTOS => { 'cpp_quote' => 11, 'importlib' => 10, @@ -124,7 +124,7 @@ sub new { } }, {#State 16 - DEFAULT => -124 + DEFAULT => -116 }, {#State 17 DEFAULT => -11 @@ -184,7 +184,7 @@ sub new { } }, {#State 26 - DEFAULT => -120 + DEFAULT => -112 }, {#State 27 ACTIONS => { @@ -206,10 +206,10 @@ sub new { ACTIONS => { "(" => 40 }, - DEFAULT => -95 + DEFAULT => -87 }, {#State 31 - DEFAULT => -93 + DEFAULT => -85 }, {#State 32 DEFAULT => -8 @@ -231,10 +231,9 @@ sub new { }, {#State 37 ACTIONS => { - "declare" => 49, - "const" => 53 + "const" => 51 }, - DEFAULT => -91, + DEFAULT => -83, GOTOS => { 'typedecl' => 42, 'function' => 43, @@ -243,12 +242,11 @@ sub new { 'definition' => 48, 'property_list' => 47, 'usertype' => 46, - 'const' => 52, - 'declare' => 51, - 'struct' => 50, - 'typedef' => 55, - 'enum' => 54, - 'union' => 56 + 'const' => 50, + 'struct' => 49, + 'typedef' => 53, + 'enum' => 52, + 'union' => 54 } }, {#State 38 @@ -257,1539 +255,1482 @@ sub new { }, GOTOS => { 'identifier' => 30, - 'property' => 57 + 'property' => 55 } }, {#State 39 - DEFAULT => -92 + DEFAULT => -84 }, {#State 40 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'text' => 63, - 'listtext' => 59, - 'anytext' => 58, - 'constant' => 60 + 'identifier' => 60, + 'text' => 61, + 'listtext' => 57, + 'anytext' => 56, + 'constant' => 58 } }, {#State 41 ACTIONS => { - "}" => 64, - "interface" => 65 + "}" => 62, + "interface" => 63 } }, {#State 42 - DEFAULT => -24 + DEFAULT => -23 }, {#State 43 DEFAULT => -20 }, {#State 44 - DEFAULT => -39 + DEFAULT => -31 }, {#State 45 ACTIONS => { - "}" => 66, - "declare" => 49, - "const" => 53 + "}" => 64, + "const" => 51 }, - DEFAULT => -91, + DEFAULT => -83, GOTOS => { 'typedecl' => 42, 'function' => 43, 'bitmap' => 44, - 'definition' => 67, + 'definition' => 65, 'property_list' => 47, 'usertype' => 46, - 'const' => 52, - 'struct' => 50, - 'declare' => 51, - 'typedef' => 55, - 'enum' => 54, - 'union' => 56 + 'struct' => 49, + 'const' => 50, + 'typedef' => 53, + 'enum' => 52, + 'union' => 54 } }, {#State 46 ACTIONS => { - ";" => 68 + ";" => 66 } }, {#State 47 ACTIONS => { - "typedef" => 69, + "typedef" => 67, 'IDENTIFIER' => 26, - "signed" => 77, - "union" => 70, - "enum" => 79, - "bitmap" => 80, - 'void' => 71, - "unsigned" => 81, + "signed" => 75, + "union" => 68, + "enum" => 77, + "bitmap" => 78, + 'void' => 69, + "unsigned" => 79, "[" => 20, - "struct" => 76 + "struct" => 74 }, GOTOS => { - 'existingtype' => 78, + 'existingtype' => 76, 'bitmap' => 44, - 'usertype' => 73, - 'property_list' => 72, - 'identifier' => 74, - 'struct' => 50, - 'enum' => 54, - 'type' => 82, - 'union' => 56, - 'sign' => 75 + 'usertype' => 71, + 'property_list' => 70, + 'identifier' => 72, + 'struct' => 49, + 'enum' => 52, + 'type' => 80, + 'union' => 54, + 'sign' => 73 } }, {#State 48 DEFAULT => -18 }, {#State 49 - DEFAULT => -91, - GOTOS => { - 'decl_enum' => 84, - 'decl_bitmap' => 85, - 'decl_type' => 87, - 'decl_union' => 86, - 'property_list' => 83 - } + DEFAULT => -28 }, {#State 50 - DEFAULT => -36 - }, - {#State 51 - DEFAULT => -23 - }, - {#State 52 DEFAULT => -21 }, - {#State 53 + {#State 51 ACTIONS => { 'IDENTIFIER' => 26 }, GOTOS => { - 'identifier' => 88 + 'identifier' => 81 } }, + {#State 52 + DEFAULT => -30 + }, + {#State 53 + DEFAULT => -22 + }, {#State 54 - DEFAULT => -38 + DEFAULT => -29 }, {#State 55 - DEFAULT => -22 + DEFAULT => -86 }, {#State 56 - DEFAULT => -37 + ACTIONS => { + "-" => 83, + ":" => 82, + "<" => 84, + "+" => 86, + "~" => 85, + "*" => 87, + "?" => 88, + "{" => 89, + "&" => 90, + "/" => 91, + "=" => 92, + "(" => 93, + "|" => 94, + "." => 95, + ">" => 96 + }, + DEFAULT => -89 }, {#State 57 - DEFAULT => -94 + ACTIONS => { + "," => 97, + ")" => 98 + } }, {#State 58 - ACTIONS => { - "-" => 90, - ":" => 89, - "<" => 91, - "+" => 93, - "~" => 92, - "*" => 94, - "?" => 95, - "{" => 96, - "&" => 97, - "/" => 98, - "=" => 99, - "(" => 100, - "|" => 101, - "." => 102, - ">" => 103 - }, - DEFAULT => -97 + DEFAULT => -95 }, {#State 59 - ACTIONS => { - "," => 104, - ")" => 105 - } + DEFAULT => -115 }, {#State 60 - DEFAULT => -103 + DEFAULT => -94 }, {#State 61 - DEFAULT => -123 + DEFAULT => -96 }, {#State 62 - DEFAULT => -102 - }, - {#State 63 - DEFAULT => -104 - }, - {#State 64 ACTIONS => { - ";" => 106 + ";" => 99 }, - DEFAULT => -125, + DEFAULT => -117, GOTOS => { - 'optional_semicolon' => 107 + 'optional_semicolon' => 100 } }, - {#State 65 + {#State 63 ACTIONS => { 'IDENTIFIER' => 26 }, GOTOS => { - 'identifier' => 108 + 'identifier' => 101 } }, - {#State 66 + {#State 64 ACTIONS => { - ";" => 106 + ";" => 99 }, - DEFAULT => -125, + DEFAULT => -117, GOTOS => { - 'optional_semicolon' => 109 + 'optional_semicolon' => 102 } }, - {#State 67 + {#State 65 DEFAULT => -19 }, - {#State 68 - DEFAULT => -40 + {#State 66 + DEFAULT => -32 }, - {#State 69 + {#State 67 ACTIONS => { 'IDENTIFIER' => 26, - "signed" => 77, - 'void' => 71, - "unsigned" => 81 + "signed" => 75, + 'void' => 69, + "unsigned" => 79 }, - DEFAULT => -91, + DEFAULT => -83, GOTOS => { - 'existingtype' => 78, + 'existingtype' => 76, 'bitmap' => 44, - 'usertype' => 73, - 'property_list' => 72, - 'identifier' => 74, - 'struct' => 50, - 'enum' => 54, - 'type' => 110, - 'union' => 56, - 'sign' => 75 + 'usertype' => 71, + 'property_list' => 70, + 'identifier' => 72, + 'struct' => 49, + 'enum' => 52, + 'type' => 103, + 'union' => 54, + 'sign' => 73 } }, - {#State 70 + {#State 68 ACTIONS => { - 'IDENTIFIER' => 111 + 'IDENTIFIER' => 104 }, - DEFAULT => -122, + DEFAULT => -114, GOTOS => { - 'optional_identifier' => 112 + 'optional_identifier' => 105 } }, - {#State 71 - DEFAULT => -47 + {#State 69 + DEFAULT => -39 }, - {#State 72 + {#State 70 ACTIONS => { - "union" => 70, - "enum" => 79, - "bitmap" => 80, + "union" => 68, + "enum" => 77, + "bitmap" => 78, "[" => 20, - "struct" => 76 + "struct" => 74 } }, - {#State 73 - DEFAULT => -45 + {#State 71 + DEFAULT => -37 }, - {#State 74 - DEFAULT => -44 + {#State 72 + DEFAULT => -36 }, - {#State 75 + {#State 73 ACTIONS => { 'IDENTIFIER' => 26 }, GOTOS => { - 'identifier' => 113 + 'identifier' => 106 } }, - {#State 76 + {#State 74 ACTIONS => { - 'IDENTIFIER' => 111 + 'IDENTIFIER' => 104 }, - DEFAULT => -122, + DEFAULT => -114, GOTOS => { - 'optional_identifier' => 114 + 'optional_identifier' => 107 } }, - {#State 77 - DEFAULT => -41 - }, - {#State 78 - DEFAULT => -46 + {#State 75 + DEFAULT => -33 }, - {#State 79 - ACTIONS => { - 'IDENTIFIER' => 111 - }, - DEFAULT => -122, - GOTOS => { - 'optional_identifier' => 115 - } + {#State 76 + DEFAULT => -38 }, - {#State 80 + {#State 77 ACTIONS => { - 'IDENTIFIER' => 111 + 'IDENTIFIER' => 104 }, - DEFAULT => -122, + DEFAULT => -114, GOTOS => { - 'optional_identifier' => 116 + 'optional_identifier' => 108 } }, - {#State 81 - DEFAULT => -42 - }, - {#State 82 + {#State 78 ACTIONS => { - 'IDENTIFIER' => 26 + 'IDENTIFIER' => 104 }, + DEFAULT => -114, GOTOS => { - 'identifier' => 117 - } - }, - {#State 83 - ACTIONS => { - "union" => 118, - "enum" => 119, - "bitmap" => 120, - "[" => 20 + 'optional_identifier' => 109 } }, - {#State 84 - DEFAULT => -29 - }, - {#State 85 - DEFAULT => -30 - }, - {#State 86 - DEFAULT => -31 + {#State 79 + DEFAULT => -34 }, - {#State 87 + {#State 80 ACTIONS => { 'IDENTIFIER' => 26 }, GOTOS => { - 'identifier' => 121 + 'identifier' => 110 } }, - {#State 88 - DEFAULT => -80, + {#State 81 + DEFAULT => -72, GOTOS => { - 'pointers' => 122 + 'pointers' => 111 } }, - {#State 89 + {#State 82 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 123, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 112, + 'text' => 61, + 'constant' => 58 } }, - {#State 90 + {#State 83 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 124, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 113, + 'text' => 61, + 'constant' => 58 } }, - {#State 91 + {#State 84 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 125, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 114, + 'text' => 61, + 'constant' => 58 } }, - {#State 92 + {#State 85 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 126, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 115, + 'text' => 61, + 'constant' => 58 } }, - {#State 93 + {#State 86 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 127, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 116, + 'text' => 61, + 'constant' => 58 } }, - {#State 94 + {#State 87 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 128, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 117, + 'text' => 61, + 'constant' => 58 } }, - {#State 95 + {#State 88 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 129, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 118, + 'text' => 61, + 'constant' => 58 } }, - {#State 96 + {#State 89 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 130, - 'text' => 63, - 'constant' => 60, - 'commalisttext' => 131 + 'identifier' => 60, + 'anytext' => 119, + 'text' => 61, + 'constant' => 58, + 'commalisttext' => 120 } }, - {#State 97 + {#State 90 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 132, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 121, + 'text' => 61, + 'constant' => 58 } }, - {#State 98 + {#State 91 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 133, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 122, + 'text' => 61, + 'constant' => 58 } }, - {#State 99 + {#State 92 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 134, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 123, + 'text' => 61, + 'constant' => 58 } }, - {#State 100 + {#State 93 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 130, - 'text' => 63, - 'constant' => 60, - 'commalisttext' => 135 + 'identifier' => 60, + 'anytext' => 119, + 'text' => 61, + 'constant' => 58, + 'commalisttext' => 124 } }, - {#State 101 + {#State 94 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 136, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 125, + 'text' => 61, + 'constant' => 58 } }, - {#State 102 + {#State 95 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 137, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 126, + 'text' => 61, + 'constant' => 58 } }, - {#State 103 + {#State 96 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 138, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 127, + 'text' => 61, + 'constant' => 58 } }, - {#State 104 + {#State 97 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 139, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 128, + 'text' => 61, + 'constant' => 58 } }, - {#State 105 - DEFAULT => -96 + {#State 98 + DEFAULT => -88 }, - {#State 106 - DEFAULT => -126 + {#State 99 + DEFAULT => -118 }, - {#State 107 + {#State 100 DEFAULT => -13 }, - {#State 108 + {#State 101 ACTIONS => { - ";" => 140 + ";" => 129 } }, - {#State 109 + {#State 102 DEFAULT => -16 }, - {#State 110 + {#State 103 ACTIONS => { 'IDENTIFIER' => 26 }, GOTOS => { - 'identifier' => 141 + 'identifier' => 130 } }, - {#State 111 - DEFAULT => -121 + {#State 104 + DEFAULT => -113 }, - {#State 112 + {#State 105 ACTIONS => { - "{" => 143 + "{" => 132 }, - DEFAULT => -76, + DEFAULT => -68, GOTOS => { - 'union_body' => 144, - 'opt_union_body' => 142 + 'union_body' => 133, + 'opt_union_body' => 131 } }, - {#State 113 - DEFAULT => -43 + {#State 106 + DEFAULT => -35 }, - {#State 114 + {#State 107 ACTIONS => { - "{" => 146 + "{" => 135 }, - DEFAULT => -66, + DEFAULT => -58, GOTOS => { - 'struct_body' => 145, - 'opt_struct_body' => 147 + 'struct_body' => 134, + 'opt_struct_body' => 136 } }, - {#State 115 + {#State 108 ACTIONS => { - "{" => 148 + "{" => 137 }, - DEFAULT => -49, + DEFAULT => -41, GOTOS => { - 'opt_enum_body' => 150, - 'enum_body' => 149 + 'opt_enum_body' => 139, + 'enum_body' => 138 } }, - {#State 116 + {#State 109 ACTIONS => { - "{" => 152 + "{" => 141 }, - DEFAULT => -57, + DEFAULT => -49, GOTOS => { - 'bitmap_body' => 153, - 'opt_bitmap_body' => 151 + 'bitmap_body' => 142, + 'opt_bitmap_body' => 140 } }, - {#State 117 - ACTIONS => { - "(" => 154 - } - }, - {#State 118 - DEFAULT => -34 - }, - {#State 119 - DEFAULT => -32 - }, - {#State 120 - DEFAULT => -33 - }, - {#State 121 + {#State 110 ACTIONS => { - ";" => 155 + "(" => 143 } }, - {#State 122 + {#State 111 ACTIONS => { 'IDENTIFIER' => 26, - "*" => 157 + "*" => 145 }, GOTOS => { - 'identifier' => 156 + 'identifier' => 144 } }, - {#State 123 - ACTIONS => { - "-" => 90, - ":" => 89, - "<" => 91, - "+" => 93, - "~" => 92, - "*" => 94, - "?" => 95, - "{" => 96, - "&" => 97, - "/" => 98, - "=" => 99, - "(" => 100, - "|" => 101, - "." => 102, - ">" => 103 - }, - DEFAULT => -114 - }, - {#State 124 + {#State 112 ACTIONS => { - ":" => 89, - "<" => 91, - "~" => 92, - "?" => 95, - "{" => 96, - "=" => 99 + "-" => 83, + ":" => 82, + "<" => 84, + "+" => 86, + "~" => 85, + "*" => 87, + "?" => 88, + "{" => 89, + "&" => 90, + "/" => 91, + "=" => 92, + "(" => 93, + "|" => 94, + "." => 95, + ">" => 96 }, - DEFAULT => -105 + DEFAULT => -106 }, - {#State 125 + {#State 113 ACTIONS => { - "-" => 90, - ":" => 89, - "<" => 91, - "+" => 93, - "~" => 92, - "*" => 94, - "?" => 95, - "{" => 96, - "&" => 97, - "/" => 98, - "=" => 99, - "(" => 100, - "|" => 101, - "." => 102, - ">" => 103 + ":" => 82, + "<" => 84, + "~" => 85, + "?" => 88, + "{" => 89, + "=" => 92 }, - DEFAULT => -109 + DEFAULT => -97 }, - {#State 126 + {#State 114 ACTIONS => { - "-" => 90, - ":" => 89, - "<" => 91, - "+" => 93, - "~" => 92, - "*" => 94, - "?" => 95, - "{" => 96, - "&" => 97, - "/" => 98, - "=" => 99, - "(" => 100, - "|" => 101, - "." => 102, - ">" => 103 - }, - DEFAULT => -117 + "-" => 83, + ":" => 82, + "<" => 84, + "+" => 86, + "~" => 85, + "*" => 87, + "?" => 88, + "{" => 89, + "&" => 90, + "/" => 91, + "=" => 92, + "(" => 93, + "|" => 94, + "." => 95, + ">" => 96 + }, + DEFAULT => -101 }, - {#State 127 + {#State 115 ACTIONS => { - ":" => 89, - "<" => 91, - "~" => 92, - "?" => 95, - "{" => 96, - "=" => 99 + "-" => 83, + ":" => 82, + "<" => 84, + "+" => 86, + "~" => 85, + "*" => 87, + "?" => 88, + "{" => 89, + "&" => 90, + "/" => 91, + "=" => 92, + "(" => 93, + "|" => 94, + "." => 95, + ">" => 96 }, - DEFAULT => -116 + DEFAULT => -109 }, - {#State 128 + {#State 116 ACTIONS => { - ":" => 89, - "<" => 91, - "~" => 92, - "?" => 95, - "{" => 96, - "=" => 99 + ":" => 82, + "<" => 84, + "~" => 85, + "?" => 88, + "{" => 89, + "=" => 92 }, - DEFAULT => -107 + DEFAULT => -108 }, - {#State 129 + {#State 117 ACTIONS => { - "-" => 90, - ":" => 89, - "<" => 91, - "+" => 93, - "~" => 92, - "*" => 94, - "?" => 95, - "{" => 96, - "&" => 97, - "/" => 98, - "=" => 99, - "(" => 100, - "|" => 101, - "." => 102, - ">" => 103 + ":" => 82, + "<" => 84, + "~" => 85, + "?" => 88, + "{" => 89, + "=" => 92 }, - DEFAULT => -113 + DEFAULT => -99 }, - {#State 130 + {#State 118 ACTIONS => { - "-" => 90, - ":" => 89, - "<" => 91, - "+" => 93, - "~" => 92, - "*" => 94, - "?" => 95, - "{" => 96, - "&" => 97, - "/" => 98, - "=" => 99, - "(" => 100, - "|" => 101, - "." => 102, - ">" => 103 + "-" => 83, + ":" => 82, + "<" => 84, + "+" => 86, + "~" => 85, + "*" => 87, + "?" => 88, + "{" => 89, + "&" => 90, + "/" => 91, + "=" => 92, + "(" => 93, + "|" => 94, + "." => 95, + ">" => 96 }, - DEFAULT => -99 + DEFAULT => -105 }, - {#State 131 + {#State 119 + ACTIONS => { + "-" => 83, + ":" => 82, + "<" => 84, + "+" => 86, + "~" => 85, + "*" => 87, + "?" => 88, + "{" => 89, + "&" => 90, + "/" => 91, + "=" => 92, + "(" => 93, + "|" => 94, + "." => 95, + ">" => 96 + }, + DEFAULT => -91 + }, + {#State 120 ACTIONS => { - "}" => 158, - "," => 159 + "}" => 146, + "," => 147 } }, - {#State 132 + {#State 121 ACTIONS => { - ":" => 89, - "<" => 91, - "~" => 92, - "?" => 95, - "{" => 96, - "=" => 99 + ":" => 82, + "<" => 84, + "~" => 85, + "?" => 88, + "{" => 89, + "=" => 92 }, - DEFAULT => -111 + DEFAULT => -103 }, - {#State 133 + {#State 122 ACTIONS => { - ":" => 89, - "<" => 91, - "~" => 92, - "?" => 95, - "{" => 96, - "=" => 99 + ":" => 82, + "<" => 84, + "~" => 85, + "?" => 88, + "{" => 89, + "=" => 92 }, - DEFAULT => -112 + DEFAULT => -104 }, - {#State 134 + {#State 123 ACTIONS => { - "-" => 90, - ":" => 89, - "<" => 91, - "+" => 93, - "~" => 92, - "*" => 94, - "?" => 95, - "{" => 96, - "&" => 97, - "/" => 98, - "=" => 99, - "(" => 100, - "|" => 101, - "." => 102, - ">" => 103 + "-" => 83, + ":" => 82, + "<" => 84, + "+" => 86, + "~" => 85, + "*" => 87, + "?" => 88, + "{" => 89, + "&" => 90, + "/" => 91, + "=" => 92, + "(" => 93, + "|" => 94, + "." => 95, + ">" => 96 }, - DEFAULT => -115 + DEFAULT => -107 }, - {#State 135 + {#State 124 ACTIONS => { - "," => 159, - ")" => 160 + "," => 147, + ")" => 148 } }, - {#State 136 + {#State 125 ACTIONS => { - ":" => 89, - "<" => 91, - "~" => 92, - "?" => 95, - "{" => 96, - "=" => 99 + ":" => 82, + "<" => 84, + "~" => 85, + "?" => 88, + "{" => 89, + "=" => 92 }, - DEFAULT => -110 + DEFAULT => -102 }, - {#State 137 + {#State 126 ACTIONS => { - ":" => 89, - "<" => 91, - "~" => 92, - "?" => 95, - "{" => 96, - "=" => 99 + ":" => 82, + "<" => 84, + "~" => 85, + "?" => 88, + "{" => 89, + "=" => 92 }, - DEFAULT => -106 + DEFAULT => -98 }, - {#State 138 + {#State 127 ACTIONS => { - ":" => 89, - "<" => 91, - "~" => 92, - "?" => 95, - "{" => 96, - "=" => 99 + ":" => 82, + "<" => 84, + "~" => 85, + "?" => 88, + "{" => 89, + "=" => 92 }, - DEFAULT => -108 + DEFAULT => -100 }, - {#State 139 + {#State 128 ACTIONS => { - "-" => 90, - ":" => 89, - "<" => 91, - "+" => 93, - "~" => 92, - "*" => 94, - "?" => 95, - "{" => 96, - "&" => 97, - "/" => 98, - "=" => 99, - "(" => 100, - "|" => 101, - "." => 102, - ">" => 103 + "-" => 83, + ":" => 82, + "<" => 84, + "+" => 86, + "~" => 85, + "*" => 87, + "?" => 88, + "{" => 89, + "&" => 90, + "/" => 91, + "=" => 92, + "(" => 93, + "|" => 94, + "." => 95, + ">" => 96 }, - DEFAULT => -98 + DEFAULT => -90 }, - {#State 140 + {#State 129 DEFAULT => -15 }, - {#State 141 + {#State 130 ACTIONS => { - "[" => 161 + "[" => 149 }, - DEFAULT => -88, + DEFAULT => -80, GOTOS => { - 'array_len' => 162 + 'array_len' => 150 } }, - {#State 142 - DEFAULT => -78 + {#State 131 + DEFAULT => -70 }, - {#State 143 - DEFAULT => -73, + {#State 132 + DEFAULT => -65, GOTOS => { - 'union_elements' => 163 + 'union_elements' => 151 } }, - {#State 144 - DEFAULT => -77 + {#State 133 + DEFAULT => -69 }, - {#State 145 - DEFAULT => -67 + {#State 134 + DEFAULT => -59 }, - {#State 146 - DEFAULT => -82, + {#State 135 + DEFAULT => -74, GOTOS => { - 'element_list1' => 164 + 'element_list1' => 152 } }, - {#State 147 - DEFAULT => -68 + {#State 136 + DEFAULT => -60 }, - {#State 148 + {#State 137 ACTIONS => { 'IDENTIFIER' => 26 }, GOTOS => { - 'identifier' => 165, - 'enum_element' => 166, - 'enum_elements' => 167 + 'identifier' => 153, + 'enum_element' => 154, + 'enum_elements' => 155 } }, - {#State 149 - DEFAULT => -50 + {#State 138 + DEFAULT => -42 }, - {#State 150 - DEFAULT => -51 + {#State 139 + DEFAULT => -43 }, - {#State 151 - DEFAULT => -59 + {#State 140 + DEFAULT => -51 }, - {#State 152 + {#State 141 ACTIONS => { 'IDENTIFIER' => 26 }, - DEFAULT => -62, + DEFAULT => -54, GOTOS => { - 'identifier' => 170, - 'bitmap_element' => 169, - 'bitmap_elements' => 168, - 'opt_bitmap_elements' => 171 + 'identifier' => 158, + 'bitmap_element' => 157, + 'bitmap_elements' => 156, + 'opt_bitmap_elements' => 159 } }, - {#State 153 - DEFAULT => -58 + {#State 142 + DEFAULT => -50 }, - {#State 154 + {#State 143 ACTIONS => { - "," => -84, - "void" => 175, - ")" => -84 + "," => -76, + "void" => 163, + ")" => -76 }, - DEFAULT => -91, + DEFAULT => -83, GOTOS => { - 'base_element' => 172, - 'element_list2' => 174, - 'property_list' => 173 + 'base_element' => 160, + 'element_list2' => 162, + 'property_list' => 161 } }, - {#State 155 - DEFAULT => -28 - }, - {#State 156 + {#State 144 ACTIONS => { - "[" => 161, - "=" => 177 + "[" => 149, + "=" => 165 }, GOTOS => { - 'array_len' => 176 + 'array_len' => 164 } }, - {#State 157 - DEFAULT => -81 + {#State 145 + DEFAULT => -73 }, - {#State 158 + {#State 146 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 178, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 166, + 'text' => 61, + 'constant' => 58 } }, - {#State 159 + {#State 147 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 179, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 167, + 'text' => 61, + 'constant' => 58 } }, - {#State 160 + {#State 148 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 180, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 168, + 'text' => 61, + 'constant' => 58 } }, - {#State 161 + {#State 149 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, - "]" => 181, + "]" => 169, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 182, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 170, + 'text' => 61, + 'constant' => 58 } }, - {#State 162 + {#State 150 ACTIONS => { - ";" => 183 + ";" => 171 } }, - {#State 163 + {#State 151 ACTIONS => { - "}" => 184 + "}" => 172 }, - DEFAULT => -91, + DEFAULT => -83, GOTOS => { - 'optional_base_element' => 186, - 'property_list' => 185 + 'optional_base_element' => 174, + 'property_list' => 173 } }, - {#State 164 + {#State 152 ACTIONS => { - "}" => 187 + "}" => 175 }, - DEFAULT => -91, + DEFAULT => -83, GOTOS => { - 'base_element' => 188, - 'property_list' => 173 + 'base_element' => 176, + 'property_list' => 161 } }, - {#State 165 + {#State 153 ACTIONS => { - "=" => 189 + "=" => 177 }, - DEFAULT => -54 + DEFAULT => -46 }, - {#State 166 - DEFAULT => -52 + {#State 154 + DEFAULT => -44 }, - {#State 167 + {#State 155 ACTIONS => { - "}" => 190, - "," => 191 + "}" => 178, + "," => 179 } }, - {#State 168 + {#State 156 ACTIONS => { - "," => 192 + "," => 180 }, - DEFAULT => -63 + DEFAULT => -55 }, - {#State 169 - DEFAULT => -60 + {#State 157 + DEFAULT => -52 }, - {#State 170 + {#State 158 ACTIONS => { - "=" => 193 + "=" => 181 } }, - {#State 171 + {#State 159 ACTIONS => { - "}" => 194 + "}" => 182 } }, - {#State 172 - DEFAULT => -86 + {#State 160 + DEFAULT => -78 }, - {#State 173 + {#State 161 ACTIONS => { 'IDENTIFIER' => 26, - "signed" => 77, - 'void' => 71, - "unsigned" => 81, + "signed" => 75, + 'void' => 69, + "unsigned" => 79, "[" => 20 }, - DEFAULT => -91, + DEFAULT => -83, GOTOS => { - 'existingtype' => 78, + 'existingtype' => 76, 'bitmap' => 44, - 'usertype' => 73, - 'property_list' => 72, - 'identifier' => 74, - 'struct' => 50, - 'enum' => 54, - 'type' => 195, - 'union' => 56, - 'sign' => 75 + 'usertype' => 71, + 'property_list' => 70, + 'identifier' => 72, + 'struct' => 49, + 'enum' => 52, + 'type' => 183, + 'union' => 54, + 'sign' => 73 } }, - {#State 174 + {#State 162 ACTIONS => { - "," => 196, - ")" => 197 + "," => 184, + ")" => 185 } }, - {#State 175 - DEFAULT => -85 + {#State 163 + DEFAULT => -77 }, - {#State 176 + {#State 164 ACTIONS => { - "=" => 198 + "=" => 186 } }, - {#State 177 + {#State 165 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 199, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 187, + 'text' => 61, + 'constant' => 58 } }, - {#State 178 + {#State 166 ACTIONS => { - "-" => 90, - ":" => 89, - "<" => 91, - "+" => 93, - "~" => 92, - "*" => 94, - "?" => 95, - "{" => 96, - "&" => 97, - "/" => 98, - "=" => 99, - "(" => 100, - "|" => 101, - "." => 102, - ">" => 103 - }, - DEFAULT => -119 + "-" => 83, + ":" => 82, + "<" => 84, + "+" => 86, + "~" => 85, + "*" => 87, + "?" => 88, + "{" => 89, + "&" => 90, + "/" => 91, + "=" => 92, + "(" => 93, + "|" => 94, + "." => 95, + ">" => 96 + }, + DEFAULT => -111 }, - {#State 179 + {#State 167 ACTIONS => { - "-" => 90, - ":" => 89, - "<" => 91, - "+" => 93, - "~" => 92, - "*" => 94, - "?" => 95, - "{" => 96, - "&" => 97, - "/" => 98, - "=" => 99, - "(" => 100, - "|" => 101, - "." => 102, - ">" => 103 + "-" => 83, + ":" => 82, + "<" => 84, + "+" => 86, + "~" => 85, + "*" => 87, + "?" => 88, + "{" => 89, + "&" => 90, + "/" => 91, + "=" => 92, + "(" => 93, + "|" => 94, + "." => 95, + ">" => 96 }, - DEFAULT => -100 + DEFAULT => -92 }, - {#State 180 + {#State 168 ACTIONS => { - ":" => 89, - "<" => 91, - "~" => 92, - "?" => 95, - "{" => 96, - "=" => 99 + ":" => 82, + "<" => 84, + "~" => 85, + "?" => 88, + "{" => 89, + "=" => 92 }, - DEFAULT => -118 + DEFAULT => -110 }, - {#State 181 + {#State 169 ACTIONS => { - "[" => 161 + "[" => 149 }, - DEFAULT => -88, + DEFAULT => -80, GOTOS => { - 'array_len' => 200 + 'array_len' => 188 } }, - {#State 182 + {#State 170 ACTIONS => { - "-" => 90, - ":" => 89, - "?" => 95, - "<" => 91, - "+" => 93, - "~" => 92, - "&" => 97, - "{" => 96, - "/" => 98, - "=" => 99, - "|" => 101, - "(" => 100, - "*" => 94, - "." => 102, - "]" => 201, - ">" => 103 + "-" => 83, + ":" => 82, + "?" => 88, + "<" => 84, + "+" => 86, + "~" => 85, + "&" => 90, + "{" => 89, + "/" => 91, + "=" => 92, + "|" => 94, + "(" => 93, + "*" => 87, + "." => 95, + "]" => 189, + ">" => 96 } }, - {#State 183 - DEFAULT => -35 + {#State 171 + DEFAULT => -27 }, - {#State 184 - DEFAULT => -75 + {#State 172 + DEFAULT => -67 }, - {#State 185 + {#State 173 ACTIONS => { "[" => 20 }, - DEFAULT => -91, + DEFAULT => -83, GOTOS => { - 'base_or_empty' => 202, - 'base_element' => 203, - 'empty_element' => 204, - 'property_list' => 205 + 'base_or_empty' => 190, + 'base_element' => 191, + 'empty_element' => 192, + 'property_list' => 193 } }, - {#State 186 - DEFAULT => -74 + {#State 174 + DEFAULT => -66 }, - {#State 187 - DEFAULT => -65 + {#State 175 + DEFAULT => -57 }, - {#State 188 + {#State 176 ACTIONS => { - ";" => 206 + ";" => 194 } }, - {#State 189 + {#State 177 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 207, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 195, + 'text' => 61, + 'constant' => 58 } }, - {#State 190 - DEFAULT => -48 + {#State 178 + DEFAULT => -40 }, - {#State 191 + {#State 179 ACTIONS => { 'IDENTIFIER' => 26 }, GOTOS => { - 'identifier' => 165, - 'enum_element' => 208 + 'identifier' => 153, + 'enum_element' => 196 } }, - {#State 192 + {#State 180 ACTIONS => { 'IDENTIFIER' => 26 }, GOTOS => { - 'identifier' => 170, - 'bitmap_element' => 209 + 'identifier' => 158, + 'bitmap_element' => 197 } }, - {#State 193 + {#State 181 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 210, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 198, + 'text' => 61, + 'constant' => 58 } }, - {#State 194 - DEFAULT => -56 + {#State 182 + DEFAULT => -48 }, - {#State 195 - DEFAULT => -80, + {#State 183 + DEFAULT => -72, GOTOS => { - 'pointers' => 211 + 'pointers' => 199 } }, - {#State 196 - DEFAULT => -91, + {#State 184 + DEFAULT => -83, GOTOS => { - 'base_element' => 212, - 'property_list' => 173 + 'base_element' => 200, + 'property_list' => 161 } }, - {#State 197 + {#State 185 ACTIONS => { - ";" => 213 + ";" => 201 } }, - {#State 198 + {#State 186 ACTIONS => { - 'CONSTANT' => 61, + 'CONSTANT' => 59, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -101, + DEFAULT => -93, GOTOS => { - 'identifier' => 62, - 'anytext' => 214, - 'text' => 63, - 'constant' => 60 + 'identifier' => 60, + 'anytext' => 202, + 'text' => 61, + 'constant' => 58 } }, - {#State 199 + {#State 187 ACTIONS => { - "-" => 90, - ":" => 89, - "?" => 95, - "<" => 91, - ";" => 215, - "+" => 93, - "~" => 92, - "&" => 97, - "{" => 96, - "/" => 98, - "=" => 99, - "|" => 101, - "(" => 100, - "*" => 94, - "." => 102, - ">" => 103 + "-" => 83, + ":" => 82, + "?" => 88, + "<" => 84, + ";" => 203, + "+" => 86, + "~" => 85, + "&" => 90, + "{" => 89, + "/" => 91, + "=" => 92, + "|" => 94, + "(" => 93, + "*" => 87, + "." => 95, + ">" => 96 } }, - {#State 200 - DEFAULT => -89 + {#State 188 + DEFAULT => -81 }, - {#State 201 + {#State 189 ACTIONS => { - "[" => 161 + "[" => 149 }, - DEFAULT => -88, + DEFAULT => -80, GOTOS => { - 'array_len' => 216 + 'array_len' => 204 } }, - {#State 202 - DEFAULT => -72 + {#State 190 + DEFAULT => -64 }, - {#State 203 + {#State 191 ACTIONS => { - ";" => 217 + ";" => 205 } }, - {#State 204 - DEFAULT => -71 + {#State 192 + DEFAULT => -63 }, - {#State 205 + {#State 193 ACTIONS => { 'IDENTIFIER' => 26, - "signed" => 77, - ";" => 218, - 'void' => 71, - "unsigned" => 81, + "signed" => 75, + ";" => 206, + 'void' => 69, + "unsigned" => 79, "[" => 20 }, - DEFAULT => -91, + DEFAULT => -83, GOTOS => { - 'existingtype' => 78, + 'existingtype' => 76, 'bitmap' => 44, - 'usertype' => 73, - 'property_list' => 72, - 'identifier' => 74, - 'struct' => 50, - 'enum' => 54, - 'type' => 195, - 'union' => 56, - 'sign' => 75 + 'usertype' => 71, + 'property_list' => 70, + 'identifier' => 72, + 'struct' => 49, + 'enum' => 52, + 'type' => 183, + 'union' => 54, + 'sign' => 73 } }, - {#State 206 - DEFAULT => -83 + {#State 194 + DEFAULT => -75 }, - {#State 207 + {#State 195 ACTIONS => { - "-" => 90, - ":" => 89, - "<" => 91, - "+" => 93, - "~" => 92, - "*" => 94, - "?" => 95, - "{" => 96, - "&" => 97, - "/" => 98, - "=" => 99, - "(" => 100, - "|" => 101, - "." => 102, - ">" => 103 + "-" => 83, + ":" => 82, + "<" => 84, + "+" => 86, + "~" => 85, + "*" => 87, + "?" => 88, + "{" => 89, + "&" => 90, + "/" => 91, + "=" => 92, + "(" => 93, + "|" => 94, + "." => 95, + ">" => 96 }, - DEFAULT => -55 + DEFAULT => -47 }, - {#State 208 - DEFAULT => -53 + {#State 196 + DEFAULT => -45 }, - {#State 209 - DEFAULT => -61 + {#State 197 + DEFAULT => -53 }, - {#State 210 - ACTIONS => { - "-" => 90, - ":" => 89, - "<" => 91, - "+" => 93, - "~" => 92, - "*" => 94, - "?" => 95, - "{" => 96, - "&" => 97, - "/" => 98, - "=" => 99, - "(" => 100, - "|" => 101, - "." => 102, - ">" => 103 + {#State 198 + ACTIONS => { + "-" => 83, + ":" => 82, + "<" => 84, + "+" => 86, + "~" => 85, + "*" => 87, + "?" => 88, + "{" => 89, + "&" => 90, + "/" => 91, + "=" => 92, + "(" => 93, + "|" => 94, + "." => 95, + ">" => 96 }, - DEFAULT => -64 + DEFAULT => -56 }, - {#State 211 + {#State 199 ACTIONS => { 'IDENTIFIER' => 26, - "*" => 157 + "*" => 145 }, GOTOS => { - 'identifier' => 219 + 'identifier' => 207 } }, - {#State 212 - DEFAULT => -87 + {#State 200 + DEFAULT => -79 }, - {#State 213 - DEFAULT => -27 + {#State 201 + DEFAULT => -26 }, - {#State 214 - ACTIONS => { - "-" => 90, - ":" => 89, - "?" => 95, - "<" => 91, - ";" => 220, - "+" => 93, - "~" => 92, - "&" => 97, - "{" => 96, - "/" => 98, - "=" => 99, - "|" => 101, - "(" => 100, - "*" => 94, - "." => 102, - ">" => 103 - } - }, - {#State 215 - DEFAULT => -25 + {#State 202 + ACTIONS => { + "-" => 83, + ":" => 82, + "?" => 88, + "<" => 84, + ";" => 208, + "+" => 86, + "~" => 85, + "&" => 90, + "{" => 89, + "/" => 91, + "=" => 92, + "|" => 94, + "(" => 93, + "*" => 87, + "." => 95, + ">" => 96 + } }, - {#State 216 - DEFAULT => -90 + {#State 203 + DEFAULT => -24 }, - {#State 217 - DEFAULT => -70 + {#State 204 + DEFAULT => -82 }, - {#State 218 - DEFAULT => -69 + {#State 205 + DEFAULT => -62 + }, + {#State 206 + DEFAULT => -61 }, - {#State 219 + {#State 207 ACTIONS => { - "[" => 161 + "[" => 149 }, - DEFAULT => -88, + DEFAULT => -80, GOTOS => { - 'array_len' => 221 + 'array_len' => 209 } }, - {#State 220 - DEFAULT => -26 + {#State 208 + DEFAULT => -25 }, - {#State 221 - DEFAULT => -79 + {#State 209 + DEFAULT => -71 } ], yyrules => @@ -1803,43 +1744,43 @@ sub new { [#Rule 2 'idl', 2, sub -#line 19 "idl.yp" +#line 19 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 3 'idl', 2, sub -#line 20 "idl.yp" +#line 20 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 4 'idl', 2, sub -#line 21 "idl.yp" +#line 21 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 5 'idl', 2, sub -#line 22 "idl.yp" +#line 22 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 6 'idl', 2, sub -#line 23 "idl.yp" +#line 23 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 7 'idl', 2, sub -#line 24 "idl.yp" +#line 24 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 8 'import', 3, sub -#line 27 "idl.yp" +#line 27 "pidl/idl.yp" {{ "TYPE" => "IMPORT", "PATHS" => $_[2], @@ -1850,7 +1791,7 @@ sub [#Rule 9 'include', 3, sub -#line 34 "idl.yp" +#line 34 "pidl/idl.yp" {{ "TYPE" => "INCLUDE", "PATHS" => $_[2], @@ -1861,7 +1802,7 @@ sub [#Rule 10 'importlib', 3, sub -#line 41 "idl.yp" +#line 41 "pidl/idl.yp" {{ "TYPE" => "IMPORTLIB", "PATHS" => $_[2], @@ -1872,19 +1813,19 @@ sub [#Rule 11 'commalist', 1, sub -#line 50 "idl.yp" +#line 50 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 12 'commalist', 3, sub -#line 51 "idl.yp" +#line 51 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 13 'coclass', 7, sub -#line 55 "idl.yp" +#line 55 "pidl/idl.yp" {{ "TYPE" => "COCLASS", "PROPERTIES" => $_[1], @@ -1900,13 +1841,13 @@ sub [#Rule 15 'interface_names', 4, sub -#line 67 "idl.yp" +#line 67 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 16 'interface', 7, sub -#line 71 "idl.yp" +#line 71 "pidl/idl.yp" {{ "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], @@ -1919,7 +1860,7 @@ sub [#Rule 17 'cpp_quote', 4, sub -#line 82 "idl.yp" +#line 82 "pidl/idl.yp" {{ "TYPE" => "CPP_QUOTE", "FILE" => $_[0]->YYData->{FILE}, @@ -1930,13 +1871,13 @@ sub [#Rule 18 'definitions', 1, sub -#line 91 "idl.yp" +#line 91 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 19 'definitions', 2, sub -#line 92 "idl.yp" +#line 92 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 20 @@ -1952,12 +1893,9 @@ sub 'definition', 1, undef ], [#Rule 24 - 'definition', 1, undef - ], - [#Rule 25 'const', 7, sub -#line 100 "idl.yp" +#line 100 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1968,10 +1906,10 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 26 + [#Rule 25 'const', 8, sub -#line 110 "idl.yp" +#line 110 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1983,10 +1921,10 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 27 + [#Rule 26 'function', 7, sub -#line 124 "idl.yp" +#line 124 "pidl/idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -1997,58 +1935,10 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 28 - 'declare', 4, -sub -#line 136 "idl.yp" -{{ - "TYPE" => "DECLARE", - "NAME" => $_[3], - "DATA" => $_[2], - "FILE" => $_[0]->YYData->{FILE}, - "LINE" => $_[0]->YYData->{LINE}, - }} - ], - [#Rule 29 - 'decl_type', 1, undef - ], - [#Rule 30 - 'decl_type', 1, undef - ], - [#Rule 31 - 'decl_type', 1, undef - ], - [#Rule 32 - 'decl_enum', 2, -sub -#line 149 "idl.yp" -{{ - "TYPE" => "ENUM", - "PROPERTIES" => $_[1] - }} - ], - [#Rule 33 - 'decl_bitmap', 2, -sub -#line 156 "idl.yp" -{{ - "TYPE" => "BITMAP", - "PROPERTIES" => $_[1] - }} - ], - [#Rule 34 - 'decl_union', 2, -sub -#line 163 "idl.yp" -{{ - "TYPE" => "UNION", - "PROPERTIES" => $_[1] - }} - ], - [#Rule 35 + [#Rule 27 'typedef', 6, sub -#line 170 "idl.yp" +#line 136 "pidl/idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[1], @@ -2059,67 +1949,67 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 36 + [#Rule 28 'usertype', 1, undef ], - [#Rule 37 + [#Rule 29 'usertype', 1, undef ], - [#Rule 38 + [#Rule 30 'usertype', 1, undef ], - [#Rule 39 + [#Rule 31 'usertype', 1, undef ], - [#Rule 40 + [#Rule 32 'typedecl', 2, sub -#line 183 "idl.yp" +#line 149 "pidl/idl.yp" { $_[1] } ], - [#Rule 41 + [#Rule 33 'sign', 1, undef ], - [#Rule 42 + [#Rule 34 'sign', 1, undef ], - [#Rule 43 + [#Rule 35 'existingtype', 2, sub -#line 188 "idl.yp" +#line 154 "pidl/idl.yp" { ($_[1]?$_[1]:"signed") ." $_[2]" } ], - [#Rule 44 + [#Rule 36 'existingtype', 1, undef ], - [#Rule 45 + [#Rule 37 'type', 1, undef ], - [#Rule 46 + [#Rule 38 'type', 1, undef ], - [#Rule 47 + [#Rule 39 'type', 1, sub -#line 192 "idl.yp" +#line 158 "pidl/idl.yp" { "void" } ], - [#Rule 48 + [#Rule 40 'enum_body', 3, sub -#line 194 "idl.yp" +#line 160 "pidl/idl.yp" { $_[2] } ], - [#Rule 49 + [#Rule 41 'opt_enum_body', 0, undef ], - [#Rule 50 + [#Rule 42 'opt_enum_body', 1, undef ], - [#Rule 51 + [#Rule 43 'enum', 4, sub -#line 197 "idl.yp" +#line 163 "pidl/idl.yp" {{ "TYPE" => "ENUM", "PROPERTIES" => $_[1], @@ -2127,43 +2017,43 @@ sub "ELEMENTS" => $_[4] }} ], - [#Rule 52 + [#Rule 44 'enum_elements', 1, sub -#line 206 "idl.yp" +#line 172 "pidl/idl.yp" { [ $_[1] ] } ], - [#Rule 53 + [#Rule 45 'enum_elements', 3, sub -#line 207 "idl.yp" +#line 173 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 54 + [#Rule 46 'enum_element', 1, undef ], - [#Rule 55 + [#Rule 47 'enum_element', 3, sub -#line 211 "idl.yp" +#line 177 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 56 + [#Rule 48 'bitmap_body', 3, sub -#line 214 "idl.yp" +#line 180 "pidl/idl.yp" { $_[2] } ], - [#Rule 57 + [#Rule 49 'opt_bitmap_body', 0, undef ], - [#Rule 58 + [#Rule 50 'opt_bitmap_body', 1, undef ], - [#Rule 59 + [#Rule 51 'bitmap', 4, sub -#line 217 "idl.yp" +#line 183 "pidl/idl.yp" {{ "TYPE" => "BITMAP", "PROPERTIES" => $_[1], @@ -2171,46 +2061,46 @@ sub "ELEMENTS" => $_[4] }} ], - [#Rule 60 + [#Rule 52 'bitmap_elements', 1, sub -#line 226 "idl.yp" +#line 192 "pidl/idl.yp" { [ $_[1] ] } ], - [#Rule 61 + [#Rule 53 'bitmap_elements', 3, sub -#line 227 "idl.yp" +#line 193 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 62 + [#Rule 54 'opt_bitmap_elements', 0, undef ], - [#Rule 63 + [#Rule 55 'opt_bitmap_elements', 1, undef ], - [#Rule 64 + [#Rule 56 'bitmap_element', 3, sub -#line 232 "idl.yp" +#line 198 "pidl/idl.yp" { "$_[1] ( $_[3] )" } ], - [#Rule 65 + [#Rule 57 'struct_body', 3, sub -#line 235 "idl.yp" +#line 201 "pidl/idl.yp" { $_[2] } ], - [#Rule 66 + [#Rule 58 'opt_struct_body', 0, undef ], - [#Rule 67 + [#Rule 59 'opt_struct_body', 1, undef ], - [#Rule 68 + [#Rule 60 'struct', 4, sub -#line 239 "idl.yp" +#line 205 "pidl/idl.yp" {{ "TYPE" => "STRUCT", "PROPERTIES" => $_[1], @@ -2218,10 +2108,10 @@ sub "ELEMENTS" => $_[4] }} ], - [#Rule 69 + [#Rule 61 'empty_element', 2, sub -#line 248 "idl.yp" +#line 214 "pidl/idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2232,43 +2122,43 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 70 + [#Rule 62 'base_or_empty', 2, undef ], - [#Rule 71 + [#Rule 63 'base_or_empty', 1, undef ], - [#Rule 72 + [#Rule 64 'optional_base_element', 2, sub -#line 262 "idl.yp" +#line 228 "pidl/idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], - [#Rule 73 + [#Rule 65 'union_elements', 0, undef ], - [#Rule 74 + [#Rule 66 'union_elements', 2, sub -#line 267 "idl.yp" +#line 233 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 75 + [#Rule 67 'union_body', 3, sub -#line 270 "idl.yp" +#line 236 "pidl/idl.yp" { $_[2] } ], - [#Rule 76 + [#Rule 68 'opt_union_body', 0, undef ], - [#Rule 77 + [#Rule 69 'opt_union_body', 1, undef ], - [#Rule 78 + [#Rule 70 'union', 4, sub -#line 274 "idl.yp" +#line 240 "pidl/idl.yp" {{ "TYPE" => "UNION", "PROPERTIES" => $_[1], @@ -2276,10 +2166,10 @@ sub "ELEMENTS" => $_[4] }} ], - [#Rule 79 + [#Rule 71 'base_element', 5, sub -#line 283 "idl.yp" +#line 249 "pidl/idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2290,241 +2180,241 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 80 + [#Rule 72 'pointers', 0, sub -#line 297 "idl.yp" +#line 263 "pidl/idl.yp" { 0 } ], - [#Rule 81 + [#Rule 73 'pointers', 2, sub -#line 298 "idl.yp" +#line 264 "pidl/idl.yp" { $_[1]+1 } ], - [#Rule 82 + [#Rule 74 'element_list1', 0, sub -#line 302 "idl.yp" +#line 268 "pidl/idl.yp" { [] } ], - [#Rule 83 + [#Rule 75 'element_list1', 3, sub -#line 303 "idl.yp" +#line 269 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 84 + [#Rule 76 'element_list2', 0, undef ], - [#Rule 85 + [#Rule 77 'element_list2', 1, undef ], - [#Rule 86 + [#Rule 78 'element_list2', 1, sub -#line 309 "idl.yp" +#line 275 "pidl/idl.yp" { [ $_[1] ] } ], - [#Rule 87 + [#Rule 79 'element_list2', 3, sub -#line 310 "idl.yp" +#line 276 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 88 + [#Rule 80 'array_len', 0, undef ], - [#Rule 89 + [#Rule 81 'array_len', 3, sub -#line 315 "idl.yp" +#line 281 "pidl/idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], - [#Rule 90 + [#Rule 82 'array_len', 4, sub -#line 316 "idl.yp" +#line 282 "pidl/idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], - [#Rule 91 + [#Rule 83 'property_list', 0, undef ], - [#Rule 92 + [#Rule 84 'property_list', 4, sub -#line 322 "idl.yp" +#line 288 "pidl/idl.yp" { FlattenHash([$_[1],$_[3]]); } ], - [#Rule 93 + [#Rule 85 'properties', 1, sub -#line 325 "idl.yp" +#line 291 "pidl/idl.yp" { $_[1] } ], - [#Rule 94 + [#Rule 86 'properties', 3, sub -#line 326 "idl.yp" +#line 292 "pidl/idl.yp" { FlattenHash([$_[1], $_[3]]); } ], - [#Rule 95 + [#Rule 87 'property', 1, sub -#line 329 "idl.yp" +#line 295 "pidl/idl.yp" {{ "$_[1]" => "1" }} ], - [#Rule 96 + [#Rule 88 'property', 4, sub -#line 330 "idl.yp" +#line 296 "pidl/idl.yp" {{ "$_[1]" => "$_[3]" }} ], - [#Rule 97 + [#Rule 89 'listtext', 1, undef ], - [#Rule 98 + [#Rule 90 'listtext', 3, sub -#line 335 "idl.yp" +#line 301 "pidl/idl.yp" { "$_[1] $_[3]" } ], - [#Rule 99 + [#Rule 91 'commalisttext', 1, undef ], - [#Rule 100 + [#Rule 92 'commalisttext', 3, sub -#line 340 "idl.yp" +#line 306 "pidl/idl.yp" { "$_[1],$_[3]" } ], - [#Rule 101 + [#Rule 93 'anytext', 0, sub -#line 344 "idl.yp" +#line 310 "pidl/idl.yp" { "" } ], - [#Rule 102 + [#Rule 94 'anytext', 1, undef ], - [#Rule 103 + [#Rule 95 'anytext', 1, undef ], - [#Rule 104 + [#Rule 96 'anytext', 1, undef ], - [#Rule 105 + [#Rule 97 'anytext', 3, sub -#line 346 "idl.yp" +#line 312 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 106 + [#Rule 98 'anytext', 3, sub -#line 347 "idl.yp" +#line 313 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 107 + [#Rule 99 'anytext', 3, sub -#line 348 "idl.yp" +#line 314 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 108 + [#Rule 100 'anytext', 3, sub -#line 349 "idl.yp" +#line 315 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 109 + [#Rule 101 'anytext', 3, sub -#line 350 "idl.yp" +#line 316 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 110 + [#Rule 102 'anytext', 3, sub -#line 351 "idl.yp" +#line 317 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 111 + [#Rule 103 'anytext', 3, sub -#line 352 "idl.yp" +#line 318 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 112 + [#Rule 104 'anytext', 3, sub -#line 353 "idl.yp" +#line 319 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 113 + [#Rule 105 'anytext', 3, sub -#line 354 "idl.yp" +#line 320 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 114 + [#Rule 106 'anytext', 3, sub -#line 355 "idl.yp" +#line 321 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 115 + [#Rule 107 'anytext', 3, sub -#line 356 "idl.yp" +#line 322 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 116 + [#Rule 108 'anytext', 3, sub -#line 357 "idl.yp" +#line 323 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 117 + [#Rule 109 'anytext', 3, sub -#line 358 "idl.yp" +#line 324 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 118 + [#Rule 110 'anytext', 5, sub -#line 359 "idl.yp" +#line 325 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 119 + [#Rule 111 'anytext', 5, sub -#line 360 "idl.yp" +#line 326 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 120 + [#Rule 112 'identifier', 1, undef ], - [#Rule 121 + [#Rule 113 'optional_identifier', 1, undef ], - [#Rule 122 + [#Rule 114 'optional_identifier', 0, undef ], - [#Rule 123 + [#Rule 115 'constant', 1, undef ], - [#Rule 124 + [#Rule 116 'text', 1, sub -#line 374 "idl.yp" +#line 340 "pidl/idl.yp" { "\"$_[1]\"" } ], - [#Rule 125 + [#Rule 117 'optional_semicolon', 0, undef ], - [#Rule 126 + [#Rule 118 'optional_semicolon', 1, undef ] ], @@ -2532,7 +2422,7 @@ sub bless($self,$class); } -#line 385 "idl.yp" +#line 351 "pidl/idl.yp" use Parse::Pidl qw(error); @@ -2627,7 +2517,7 @@ again: if (s/^([\w_]+)//) { $parser->YYData->{LAST_TOKEN} = $1; if ($1 =~ - /^(coclass|interface|const|typedef|declare|union|cpp_quote + /^(coclass|interface|const|typedef|union|cpp_quote |struct|enum|bitmap|void|unsigned|signed|import|include |importlib)$/x) { return $1; -- cgit From 1b906190091718eb16ea3754c671ebccb78a0b33 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 12 Jan 2008 21:21:14 +0100 Subject: pidl: Remove declare tests, add more tests for typedef. (This used to be commit 254bf85c2eb69fc2ee22d3a92a6b027a25594250) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 150 ++++++++++++++++++------------------- 1 file changed, 75 insertions(+), 75 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 5956c43e43..35e1d7bcd7 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -1744,43 +1744,43 @@ sub new { [#Rule 2 'idl', 2, sub -#line 19 "pidl/idl.yp" +#line 19 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 3 'idl', 2, sub -#line 20 "pidl/idl.yp" +#line 20 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 4 'idl', 2, sub -#line 21 "pidl/idl.yp" +#line 21 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 5 'idl', 2, sub -#line 22 "pidl/idl.yp" +#line 22 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 6 'idl', 2, sub -#line 23 "pidl/idl.yp" +#line 23 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 7 'idl', 2, sub -#line 24 "pidl/idl.yp" +#line 24 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 8 'import', 3, sub -#line 27 "pidl/idl.yp" +#line 27 "idl.yp" {{ "TYPE" => "IMPORT", "PATHS" => $_[2], @@ -1791,7 +1791,7 @@ sub [#Rule 9 'include', 3, sub -#line 34 "pidl/idl.yp" +#line 34 "idl.yp" {{ "TYPE" => "INCLUDE", "PATHS" => $_[2], @@ -1802,7 +1802,7 @@ sub [#Rule 10 'importlib', 3, sub -#line 41 "pidl/idl.yp" +#line 41 "idl.yp" {{ "TYPE" => "IMPORTLIB", "PATHS" => $_[2], @@ -1813,19 +1813,19 @@ sub [#Rule 11 'commalist', 1, sub -#line 50 "pidl/idl.yp" +#line 50 "idl.yp" { [ $_[1] ] } ], [#Rule 12 'commalist', 3, sub -#line 51 "pidl/idl.yp" +#line 51 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 13 'coclass', 7, sub -#line 55 "pidl/idl.yp" +#line 55 "idl.yp" {{ "TYPE" => "COCLASS", "PROPERTIES" => $_[1], @@ -1841,13 +1841,13 @@ sub [#Rule 15 'interface_names', 4, sub -#line 67 "pidl/idl.yp" +#line 67 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 16 'interface', 7, sub -#line 71 "pidl/idl.yp" +#line 71 "idl.yp" {{ "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], @@ -1860,7 +1860,7 @@ sub [#Rule 17 'cpp_quote', 4, sub -#line 82 "pidl/idl.yp" +#line 82 "idl.yp" {{ "TYPE" => "CPP_QUOTE", "FILE" => $_[0]->YYData->{FILE}, @@ -1871,13 +1871,13 @@ sub [#Rule 18 'definitions', 1, sub -#line 91 "pidl/idl.yp" +#line 91 "idl.yp" { [ $_[1] ] } ], [#Rule 19 'definitions', 2, sub -#line 92 "pidl/idl.yp" +#line 92 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 20 @@ -1895,7 +1895,7 @@ sub [#Rule 24 'const', 7, sub -#line 100 "pidl/idl.yp" +#line 100 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1909,7 +1909,7 @@ sub [#Rule 25 'const', 8, sub -#line 110 "pidl/idl.yp" +#line 110 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1924,7 +1924,7 @@ sub [#Rule 26 'function', 7, sub -#line 124 "pidl/idl.yp" +#line 124 "idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -1938,7 +1938,7 @@ sub [#Rule 27 'typedef', 6, sub -#line 136 "pidl/idl.yp" +#line 136 "idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[1], @@ -1964,7 +1964,7 @@ sub [#Rule 32 'typedecl', 2, sub -#line 149 "pidl/idl.yp" +#line 149 "idl.yp" { $_[1] } ], [#Rule 33 @@ -1976,7 +1976,7 @@ sub [#Rule 35 'existingtype', 2, sub -#line 154 "pidl/idl.yp" +#line 154 "idl.yp" { ($_[1]?$_[1]:"signed") ." $_[2]" } ], [#Rule 36 @@ -1991,13 +1991,13 @@ sub [#Rule 39 'type', 1, sub -#line 158 "pidl/idl.yp" +#line 158 "idl.yp" { "void" } ], [#Rule 40 'enum_body', 3, sub -#line 160 "pidl/idl.yp" +#line 160 "idl.yp" { $_[2] } ], [#Rule 41 @@ -2009,7 +2009,7 @@ sub [#Rule 43 'enum', 4, sub -#line 163 "pidl/idl.yp" +#line 163 "idl.yp" {{ "TYPE" => "ENUM", "PROPERTIES" => $_[1], @@ -2020,13 +2020,13 @@ sub [#Rule 44 'enum_elements', 1, sub -#line 172 "pidl/idl.yp" +#line 172 "idl.yp" { [ $_[1] ] } ], [#Rule 45 'enum_elements', 3, sub -#line 173 "pidl/idl.yp" +#line 173 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 46 @@ -2035,13 +2035,13 @@ sub [#Rule 47 'enum_element', 3, sub -#line 177 "pidl/idl.yp" +#line 177 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 48 'bitmap_body', 3, sub -#line 180 "pidl/idl.yp" +#line 180 "idl.yp" { $_[2] } ], [#Rule 49 @@ -2053,7 +2053,7 @@ sub [#Rule 51 'bitmap', 4, sub -#line 183 "pidl/idl.yp" +#line 183 "idl.yp" {{ "TYPE" => "BITMAP", "PROPERTIES" => $_[1], @@ -2064,13 +2064,13 @@ sub [#Rule 52 'bitmap_elements', 1, sub -#line 192 "pidl/idl.yp" +#line 192 "idl.yp" { [ $_[1] ] } ], [#Rule 53 'bitmap_elements', 3, sub -#line 193 "pidl/idl.yp" +#line 193 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 54 @@ -2082,13 +2082,13 @@ sub [#Rule 56 'bitmap_element', 3, sub -#line 198 "pidl/idl.yp" +#line 198 "idl.yp" { "$_[1] ( $_[3] )" } ], [#Rule 57 'struct_body', 3, sub -#line 201 "pidl/idl.yp" +#line 201 "idl.yp" { $_[2] } ], [#Rule 58 @@ -2100,7 +2100,7 @@ sub [#Rule 60 'struct', 4, sub -#line 205 "pidl/idl.yp" +#line 205 "idl.yp" {{ "TYPE" => "STRUCT", "PROPERTIES" => $_[1], @@ -2111,7 +2111,7 @@ sub [#Rule 61 'empty_element', 2, sub -#line 214 "pidl/idl.yp" +#line 214 "idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2131,7 +2131,7 @@ sub [#Rule 64 'optional_base_element', 2, sub -#line 228 "pidl/idl.yp" +#line 228 "idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], [#Rule 65 @@ -2140,13 +2140,13 @@ sub [#Rule 66 'union_elements', 2, sub -#line 233 "pidl/idl.yp" +#line 233 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 67 'union_body', 3, sub -#line 236 "pidl/idl.yp" +#line 236 "idl.yp" { $_[2] } ], [#Rule 68 @@ -2158,7 +2158,7 @@ sub [#Rule 70 'union', 4, sub -#line 240 "pidl/idl.yp" +#line 240 "idl.yp" {{ "TYPE" => "UNION", "PROPERTIES" => $_[1], @@ -2169,7 +2169,7 @@ sub [#Rule 71 'base_element', 5, sub -#line 249 "pidl/idl.yp" +#line 249 "idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2183,25 +2183,25 @@ sub [#Rule 72 'pointers', 0, sub -#line 263 "pidl/idl.yp" +#line 263 "idl.yp" { 0 } ], [#Rule 73 'pointers', 2, sub -#line 264 "pidl/idl.yp" +#line 264 "idl.yp" { $_[1]+1 } ], [#Rule 74 'element_list1', 0, sub -#line 268 "pidl/idl.yp" +#line 268 "idl.yp" { [] } ], [#Rule 75 'element_list1', 3, sub -#line 269 "pidl/idl.yp" +#line 269 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 76 @@ -2213,13 +2213,13 @@ sub [#Rule 78 'element_list2', 1, sub -#line 275 "pidl/idl.yp" +#line 275 "idl.yp" { [ $_[1] ] } ], [#Rule 79 'element_list2', 3, sub -#line 276 "pidl/idl.yp" +#line 276 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 80 @@ -2228,13 +2228,13 @@ sub [#Rule 81 'array_len', 3, sub -#line 281 "pidl/idl.yp" +#line 281 "idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], [#Rule 82 'array_len', 4, sub -#line 282 "pidl/idl.yp" +#line 282 "idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], [#Rule 83 @@ -2243,31 +2243,31 @@ sub [#Rule 84 'property_list', 4, sub -#line 288 "pidl/idl.yp" +#line 288 "idl.yp" { FlattenHash([$_[1],$_[3]]); } ], [#Rule 85 'properties', 1, sub -#line 291 "pidl/idl.yp" +#line 291 "idl.yp" { $_[1] } ], [#Rule 86 'properties', 3, sub -#line 292 "pidl/idl.yp" +#line 292 "idl.yp" { FlattenHash([$_[1], $_[3]]); } ], [#Rule 87 'property', 1, sub -#line 295 "pidl/idl.yp" +#line 295 "idl.yp" {{ "$_[1]" => "1" }} ], [#Rule 88 'property', 4, sub -#line 296 "pidl/idl.yp" +#line 296 "idl.yp" {{ "$_[1]" => "$_[3]" }} ], [#Rule 89 @@ -2276,7 +2276,7 @@ sub [#Rule 90 'listtext', 3, sub -#line 301 "pidl/idl.yp" +#line 301 "idl.yp" { "$_[1] $_[3]" } ], [#Rule 91 @@ -2285,13 +2285,13 @@ sub [#Rule 92 'commalisttext', 3, sub -#line 306 "pidl/idl.yp" +#line 306 "idl.yp" { "$_[1],$_[3]" } ], [#Rule 93 'anytext', 0, sub -#line 310 "pidl/idl.yp" +#line 310 "idl.yp" { "" } ], [#Rule 94 @@ -2306,91 +2306,91 @@ sub [#Rule 97 'anytext', 3, sub -#line 312 "pidl/idl.yp" +#line 312 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 98 'anytext', 3, sub -#line 313 "pidl/idl.yp" +#line 313 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 99 'anytext', 3, sub -#line 314 "pidl/idl.yp" +#line 314 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 100 'anytext', 3, sub -#line 315 "pidl/idl.yp" +#line 315 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 101 'anytext', 3, sub -#line 316 "pidl/idl.yp" +#line 316 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 102 'anytext', 3, sub -#line 317 "pidl/idl.yp" +#line 317 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 103 'anytext', 3, sub -#line 318 "pidl/idl.yp" +#line 318 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 104 'anytext', 3, sub -#line 319 "pidl/idl.yp" +#line 319 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 105 'anytext', 3, sub -#line 320 "pidl/idl.yp" +#line 320 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 106 'anytext', 3, sub -#line 321 "pidl/idl.yp" +#line 321 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 107 'anytext', 3, sub -#line 322 "pidl/idl.yp" +#line 322 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 108 'anytext', 3, sub -#line 323 "pidl/idl.yp" +#line 323 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 109 'anytext', 3, sub -#line 324 "pidl/idl.yp" +#line 324 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 110 'anytext', 5, sub -#line 325 "pidl/idl.yp" +#line 325 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 111 'anytext', 5, sub -#line 326 "pidl/idl.yp" +#line 326 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], [#Rule 112 @@ -2408,7 +2408,7 @@ sub [#Rule 116 'text', 1, sub -#line 340 "pidl/idl.yp" +#line 340 "idl.yp" { "\"$_[1]\"" } ], [#Rule 117 @@ -2422,7 +2422,7 @@ sub bless($self,$class); } -#line 351 "pidl/idl.yp" +#line 351 "idl.yp" use Parse::Pidl qw(error); -- cgit From 0f9c453e12ffb03fc8359f726b1e93f3c7d17671 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 31 Jan 2008 15:30:50 +0100 Subject: pidl/IDL: don't strip ',' from the properties content metze (This used to be commit fdf9bcb163516f7d96675ae0dce2917afb8f86d3) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 845 +++++++++++++++++-------------------- 1 file changed, 391 insertions(+), 454 deletions(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 35e1d7bcd7..aeee69e306 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -124,7 +124,7 @@ sub new { } }, {#State 16 - DEFAULT => -116 + DEFAULT => -114 }, {#State 17 DEFAULT => -11 @@ -184,7 +184,7 @@ sub new { } }, {#State 26 - DEFAULT => -112 + DEFAULT => -110 }, {#State 27 ACTIONS => { @@ -263,17 +263,17 @@ sub new { }, {#State 40 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, 'text' => 61, - 'listtext' => 57, 'anytext' => 56, - 'constant' => 58 + 'constant' => 57, + 'commalisttext' => 59 } }, {#State 41 @@ -392,28 +392,28 @@ sub new { DEFAULT => -89 }, {#State 57 - ACTIONS => { - "," => 97, - ")" => 98 - } + DEFAULT => -93 }, {#State 58 - DEFAULT => -95 + DEFAULT => -113 }, {#State 59 - DEFAULT => -115 + ACTIONS => { + "," => 97, + ")" => 98 + } }, {#State 60 - DEFAULT => -94 + DEFAULT => -92 }, {#State 61 - DEFAULT => -96 + DEFAULT => -94 }, {#State 62 ACTIONS => { ";" => 99 }, - DEFAULT => -117, + DEFAULT => -115, GOTOS => { 'optional_semicolon' => 100 } @@ -430,7 +430,7 @@ sub new { ACTIONS => { ";" => 99 }, - DEFAULT => -117, + DEFAULT => -115, GOTOS => { 'optional_semicolon' => 102 } @@ -466,7 +466,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 104 }, - DEFAULT => -114, + DEFAULT => -112, GOTOS => { 'optional_identifier' => 105 } @@ -501,7 +501,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 104 }, - DEFAULT => -114, + DEFAULT => -112, GOTOS => { 'optional_identifier' => 107 } @@ -516,7 +516,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 104 }, - DEFAULT => -114, + DEFAULT => -112, GOTOS => { 'optional_identifier' => 108 } @@ -525,7 +525,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 104 }, - DEFAULT => -114, + DEFAULT => -112, GOTOS => { 'optional_identifier' => 109 } @@ -549,242 +549,242 @@ sub new { }, {#State 82 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, 'anytext' => 112, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, {#State 83 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, 'anytext' => 113, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, {#State 84 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, 'anytext' => 114, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, {#State 85 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, 'anytext' => 115, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, {#State 86 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, 'anytext' => 116, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, {#State 87 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, 'anytext' => 117, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, {#State 88 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, 'anytext' => 118, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, {#State 89 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 119, + 'anytext' => 56, 'text' => 61, - 'constant' => 58, - 'commalisttext' => 120 + 'constant' => 57, + 'commalisttext' => 119 } }, {#State 90 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 121, + 'anytext' => 120, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, {#State 91 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 122, + 'anytext' => 121, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, {#State 92 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 123, + 'anytext' => 122, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, {#State 93 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 119, + 'anytext' => 56, 'text' => 61, - 'constant' => 58, - 'commalisttext' => 124 + 'constant' => 57, + 'commalisttext' => 123 } }, {#State 94 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 125, + 'anytext' => 124, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, {#State 95 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 126, + 'anytext' => 125, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, {#State 96 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 127, + 'anytext' => 126, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, {#State 97 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 128, + 'anytext' => 127, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, {#State 98 DEFAULT => -88 }, {#State 99 - DEFAULT => -118 + DEFAULT => -116 }, {#State 100 DEFAULT => -13 }, {#State 101 ACTIONS => { - ";" => 129 + ";" => 128 } }, {#State 102 @@ -795,20 +795,20 @@ sub new { 'IDENTIFIER' => 26 }, GOTOS => { - 'identifier' => 130 + 'identifier' => 129 } }, {#State 104 - DEFAULT => -113 + DEFAULT => -111 }, {#State 105 ACTIONS => { - "{" => 132 + "{" => 131 }, DEFAULT => -68, GOTOS => { - 'union_body' => 133, - 'opt_union_body' => 131 + 'union_body' => 132, + 'opt_union_body' => 130 } }, {#State 106 @@ -816,46 +816,46 @@ sub new { }, {#State 107 ACTIONS => { - "{" => 135 + "{" => 134 }, DEFAULT => -58, GOTOS => { - 'struct_body' => 134, - 'opt_struct_body' => 136 + 'struct_body' => 133, + 'opt_struct_body' => 135 } }, {#State 108 ACTIONS => { - "{" => 137 + "{" => 136 }, DEFAULT => -41, GOTOS => { - 'opt_enum_body' => 139, - 'enum_body' => 138 + 'opt_enum_body' => 138, + 'enum_body' => 137 } }, {#State 109 ACTIONS => { - "{" => 141 + "{" => 140 }, DEFAULT => -49, GOTOS => { - 'bitmap_body' => 142, - 'opt_bitmap_body' => 140 + 'bitmap_body' => 141, + 'opt_bitmap_body' => 139 } }, {#State 110 ACTIONS => { - "(" => 143 + "(" => 142 } }, {#State 111 ACTIONS => { 'IDENTIFIER' => 26, - "*" => 145 + "*" => 144 }, GOTOS => { - 'identifier' => 144 + 'identifier' => 143 } }, {#State 112 @@ -876,7 +876,7 @@ sub new { "." => 95, ">" => 96 }, - DEFAULT => -106 + DEFAULT => -104 }, {#State 113 ACTIONS => { @@ -887,7 +887,7 @@ sub new { "{" => 89, "=" => 92 }, - DEFAULT => -97 + DEFAULT => -95 }, {#State 114 ACTIONS => { @@ -907,7 +907,7 @@ sub new { "." => 95, ">" => 96 }, - DEFAULT => -101 + DEFAULT => -99 }, {#State 115 ACTIONS => { @@ -927,7 +927,7 @@ sub new { "." => 95, ">" => 96 }, - DEFAULT => -109 + DEFAULT => -107 }, {#State 116 ACTIONS => { @@ -938,7 +938,7 @@ sub new { "{" => 89, "=" => 92 }, - DEFAULT => -108 + DEFAULT => -106 }, {#State 117 ACTIONS => { @@ -949,7 +949,7 @@ sub new { "{" => 89, "=" => 92 }, - DEFAULT => -99 + DEFAULT => -97 }, {#State 118 ACTIONS => { @@ -969,35 +969,15 @@ sub new { "." => 95, ">" => 96 }, - DEFAULT => -105 + DEFAULT => -103 }, {#State 119 ACTIONS => { - "-" => 83, - ":" => 82, - "<" => 84, - "+" => 86, - "~" => 85, - "*" => 87, - "?" => 88, - "{" => 89, - "&" => 90, - "/" => 91, - "=" => 92, - "(" => 93, - "|" => 94, - "." => 95, - ">" => 96 - }, - DEFAULT => -91 - }, - {#State 120 - ACTIONS => { - "}" => 146, - "," => 147 + "}" => 145, + "," => 97 } }, - {#State 121 + {#State 120 ACTIONS => { ":" => 82, "<" => 84, @@ -1006,9 +986,9 @@ sub new { "{" => 89, "=" => 92 }, - DEFAULT => -103 + DEFAULT => -101 }, - {#State 122 + {#State 121 ACTIONS => { ":" => 82, "<" => 84, @@ -1017,9 +997,9 @@ sub new { "{" => 89, "=" => 92 }, - DEFAULT => -104 + DEFAULT => -102 }, - {#State 123 + {#State 122 ACTIONS => { "-" => 83, ":" => 82, @@ -1037,15 +1017,15 @@ sub new { "." => 95, ">" => 96 }, - DEFAULT => -107 + DEFAULT => -105 }, - {#State 124 + {#State 123 ACTIONS => { - "," => 147, - ")" => 148 + "," => 97, + ")" => 146 } }, - {#State 125 + {#State 124 ACTIONS => { ":" => 82, "<" => 84, @@ -1054,9 +1034,9 @@ sub new { "{" => 89, "=" => 92 }, - DEFAULT => -102 + DEFAULT => -100 }, - {#State 126 + {#State 125 ACTIONS => { ":" => 82, "<" => 84, @@ -1065,9 +1045,9 @@ sub new { "{" => 89, "=" => 92 }, - DEFAULT => -98 + DEFAULT => -96 }, - {#State 127 + {#State 126 ACTIONS => { ":" => 82, "<" => 84, @@ -1076,9 +1056,9 @@ sub new { "{" => 89, "=" => 92 }, - DEFAULT => -100 + DEFAULT => -98 }, - {#State 128 + {#State 127 ACTIONS => { "-" => 83, ":" => 82, @@ -1098,221 +1078,207 @@ sub new { }, DEFAULT => -90 }, - {#State 129 + {#State 128 DEFAULT => -15 }, - {#State 130 + {#State 129 ACTIONS => { - "[" => 149 + "[" => 147 }, DEFAULT => -80, GOTOS => { - 'array_len' => 150 + 'array_len' => 148 } }, - {#State 131 + {#State 130 DEFAULT => -70 }, - {#State 132 + {#State 131 DEFAULT => -65, GOTOS => { - 'union_elements' => 151 + 'union_elements' => 149 } }, - {#State 133 + {#State 132 DEFAULT => -69 }, - {#State 134 + {#State 133 DEFAULT => -59 }, - {#State 135 + {#State 134 DEFAULT => -74, GOTOS => { - 'element_list1' => 152 + 'element_list1' => 150 } }, - {#State 136 + {#State 135 DEFAULT => -60 }, - {#State 137 + {#State 136 ACTIONS => { 'IDENTIFIER' => 26 }, GOTOS => { - 'identifier' => 153, - 'enum_element' => 154, - 'enum_elements' => 155 + 'identifier' => 151, + 'enum_element' => 152, + 'enum_elements' => 153 } }, - {#State 138 + {#State 137 DEFAULT => -42 }, - {#State 139 + {#State 138 DEFAULT => -43 }, - {#State 140 + {#State 139 DEFAULT => -51 }, - {#State 141 + {#State 140 ACTIONS => { 'IDENTIFIER' => 26 }, DEFAULT => -54, GOTOS => { - 'identifier' => 158, - 'bitmap_element' => 157, - 'bitmap_elements' => 156, - 'opt_bitmap_elements' => 159 + 'identifier' => 156, + 'bitmap_element' => 155, + 'bitmap_elements' => 154, + 'opt_bitmap_elements' => 157 } }, - {#State 142 + {#State 141 DEFAULT => -50 }, - {#State 143 + {#State 142 ACTIONS => { "," => -76, - "void" => 163, + "void" => 161, ")" => -76 }, DEFAULT => -83, GOTOS => { - 'base_element' => 160, - 'element_list2' => 162, - 'property_list' => 161 + 'base_element' => 158, + 'element_list2' => 160, + 'property_list' => 159 } }, - {#State 144 + {#State 143 ACTIONS => { - "[" => 149, - "=" => 165 + "[" => 147, + "=" => 163 }, GOTOS => { - 'array_len' => 164 + 'array_len' => 162 } }, - {#State 145 + {#State 144 DEFAULT => -73 }, - {#State 146 - ACTIONS => { - 'CONSTANT' => 59, - 'TEXT' => 16, - 'IDENTIFIER' => 26 - }, - DEFAULT => -93, - GOTOS => { - 'identifier' => 60, - 'anytext' => 166, - 'text' => 61, - 'constant' => 58 - } - }, - {#State 147 + {#State 145 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 167, + 'anytext' => 164, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, - {#State 148 + {#State 146 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 168, + 'anytext' => 165, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, - {#State 149 + {#State 147 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, - "]" => 169, + "]" => 166, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 170, + 'anytext' => 167, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, - {#State 150 + {#State 148 ACTIONS => { - ";" => 171 + ";" => 168 } }, - {#State 151 + {#State 149 ACTIONS => { - "}" => 172 + "}" => 169 }, DEFAULT => -83, GOTOS => { - 'optional_base_element' => 174, - 'property_list' => 173 + 'optional_base_element' => 171, + 'property_list' => 170 } }, - {#State 152 + {#State 150 ACTIONS => { - "}" => 175 + "}" => 172 }, DEFAULT => -83, GOTOS => { - 'base_element' => 176, - 'property_list' => 161 + 'base_element' => 173, + 'property_list' => 159 } }, - {#State 153 + {#State 151 ACTIONS => { - "=" => 177 + "=" => 174 }, DEFAULT => -46 }, - {#State 154 + {#State 152 DEFAULT => -44 }, - {#State 155 + {#State 153 ACTIONS => { - "}" => 178, - "," => 179 + "}" => 175, + "," => 176 } }, - {#State 156 + {#State 154 ACTIONS => { - "," => 180 + "," => 177 }, DEFAULT => -55 }, - {#State 157 + {#State 155 DEFAULT => -52 }, - {#State 158 + {#State 156 ACTIONS => { - "=" => 181 + "=" => 178 } }, - {#State 159 + {#State 157 ACTIONS => { - "}" => 182 + "}" => 179 } }, - {#State 160 + {#State 158 DEFAULT => -78 }, - {#State 161 + {#State 159 ACTIONS => { 'IDENTIFIER' => 26, "signed" => 75, @@ -1329,60 +1295,40 @@ sub new { 'identifier' => 72, 'struct' => 49, 'enum' => 52, - 'type' => 183, + 'type' => 180, 'union' => 54, 'sign' => 73 } }, - {#State 162 + {#State 160 ACTIONS => { - "," => 184, - ")" => 185 + "," => 181, + ")" => 182 } }, - {#State 163 + {#State 161 DEFAULT => -77 }, - {#State 164 + {#State 162 ACTIONS => { - "=" => 186 + "=" => 183 } }, - {#State 165 + {#State 163 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 187, + 'anytext' => 184, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, - {#State 166 - ACTIONS => { - "-" => 83, - ":" => 82, - "<" => 84, - "+" => 86, - "~" => 85, - "*" => 87, - "?" => 88, - "{" => 89, - "&" => 90, - "/" => 91, - "=" => 92, - "(" => 93, - "|" => 94, - "." => 95, - ">" => 96 - }, - DEFAULT => -111 - }, - {#State 167 + {#State 164 ACTIONS => { "-" => 83, ":" => 82, @@ -1400,9 +1346,9 @@ sub new { "." => 95, ">" => 96 }, - DEFAULT => -92 + DEFAULT => -109 }, - {#State 168 + {#State 165 ACTIONS => { ":" => 82, "<" => 84, @@ -1411,18 +1357,18 @@ sub new { "{" => 89, "=" => 92 }, - DEFAULT => -110 + DEFAULT => -108 }, - {#State 169 + {#State 166 ACTIONS => { - "[" => 149 + "[" => 147 }, DEFAULT => -80, GOTOS => { - 'array_len' => 188 + 'array_len' => 185 } }, - {#State 170 + {#State 167 ACTIONS => { "-" => 83, ":" => 82, @@ -1438,130 +1384,130 @@ sub new { "(" => 93, "*" => 87, "." => 95, - "]" => 189, + "]" => 186, ">" => 96 } }, - {#State 171 + {#State 168 DEFAULT => -27 }, - {#State 172 + {#State 169 DEFAULT => -67 }, - {#State 173 + {#State 170 ACTIONS => { "[" => 20 }, DEFAULT => -83, GOTOS => { - 'base_or_empty' => 190, - 'base_element' => 191, - 'empty_element' => 192, - 'property_list' => 193 + 'base_or_empty' => 187, + 'base_element' => 188, + 'empty_element' => 189, + 'property_list' => 190 } }, - {#State 174 + {#State 171 DEFAULT => -66 }, - {#State 175 + {#State 172 DEFAULT => -57 }, - {#State 176 + {#State 173 ACTIONS => { - ";" => 194 + ";" => 191 } }, - {#State 177 + {#State 174 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 195, + 'anytext' => 192, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, - {#State 178 + {#State 175 DEFAULT => -40 }, - {#State 179 + {#State 176 ACTIONS => { 'IDENTIFIER' => 26 }, GOTOS => { - 'identifier' => 153, - 'enum_element' => 196 + 'identifier' => 151, + 'enum_element' => 193 } }, - {#State 180 + {#State 177 ACTIONS => { 'IDENTIFIER' => 26 }, GOTOS => { - 'identifier' => 158, - 'bitmap_element' => 197 + 'identifier' => 156, + 'bitmap_element' => 194 } }, - {#State 181 + {#State 178 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 198, + 'anytext' => 195, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, - {#State 182 + {#State 179 DEFAULT => -48 }, - {#State 183 + {#State 180 DEFAULT => -72, GOTOS => { - 'pointers' => 199 + 'pointers' => 196 } }, - {#State 184 + {#State 181 DEFAULT => -83, GOTOS => { - 'base_element' => 200, - 'property_list' => 161 + 'base_element' => 197, + 'property_list' => 159 } }, - {#State 185 + {#State 182 ACTIONS => { - ";" => 201 + ";" => 198 } }, - {#State 186 + {#State 183 ACTIONS => { - 'CONSTANT' => 59, + 'CONSTANT' => 58, 'TEXT' => 16, 'IDENTIFIER' => 26 }, - DEFAULT => -93, + DEFAULT => -91, GOTOS => { 'identifier' => 60, - 'anytext' => 202, + 'anytext' => 199, 'text' => 61, - 'constant' => 58 + 'constant' => 57 } }, - {#State 187 + {#State 184 ACTIONS => { "-" => 83, ":" => 82, "?" => 88, "<" => 84, - ";" => 203, + ";" => 200, "+" => 86, "~" => 85, "&" => 90, @@ -1575,34 +1521,34 @@ sub new { ">" => 96 } }, - {#State 188 + {#State 185 DEFAULT => -81 }, - {#State 189 + {#State 186 ACTIONS => { - "[" => 149 + "[" => 147 }, DEFAULT => -80, GOTOS => { - 'array_len' => 204 + 'array_len' => 201 } }, - {#State 190 + {#State 187 DEFAULT => -64 }, - {#State 191 + {#State 188 ACTIONS => { - ";" => 205 + ";" => 202 } }, - {#State 192 + {#State 189 DEFAULT => -63 }, - {#State 193 + {#State 190 ACTIONS => { 'IDENTIFIER' => 26, "signed" => 75, - ";" => 206, + ";" => 203, 'void' => 69, "unsigned" => 79, "[" => 20 @@ -1616,15 +1562,15 @@ sub new { 'identifier' => 72, 'struct' => 49, 'enum' => 52, - 'type' => 183, + 'type' => 180, 'union' => 54, 'sign' => 73 } }, - {#State 194 + {#State 191 DEFAULT => -75 }, - {#State 195 + {#State 192 ACTIONS => { "-" => 83, ":" => 82, @@ -1644,13 +1590,13 @@ sub new { }, DEFAULT => -47 }, - {#State 196 + {#State 193 DEFAULT => -45 }, - {#State 197 + {#State 194 DEFAULT => -53 }, - {#State 198 + {#State 195 ACTIONS => { "-" => 83, ":" => 82, @@ -1670,28 +1616,28 @@ sub new { }, DEFAULT => -56 }, - {#State 199 + {#State 196 ACTIONS => { 'IDENTIFIER' => 26, - "*" => 145 + "*" => 144 }, GOTOS => { - 'identifier' => 207 + 'identifier' => 204 } }, - {#State 200 + {#State 197 DEFAULT => -79 }, - {#State 201 + {#State 198 DEFAULT => -26 }, - {#State 202 + {#State 199 ACTIONS => { "-" => 83, ":" => 82, "?" => 88, "<" => 84, - ";" => 208, + ";" => 205, "+" => 86, "~" => 85, "&" => 90, @@ -1705,31 +1651,31 @@ sub new { ">" => 96 } }, - {#State 203 + {#State 200 DEFAULT => -24 }, - {#State 204 + {#State 201 DEFAULT => -82 }, - {#State 205 + {#State 202 DEFAULT => -62 }, - {#State 206 + {#State 203 DEFAULT => -61 }, - {#State 207 + {#State 204 ACTIONS => { - "[" => 149 + "[" => 147 }, DEFAULT => -80, GOTOS => { - 'array_len' => 209 + 'array_len' => 206 } }, - {#State 208 + {#State 205 DEFAULT => -25 }, - {#State 209 + {#State 206 DEFAULT => -71 } ], @@ -1744,43 +1690,43 @@ sub new { [#Rule 2 'idl', 2, sub -#line 19 "idl.yp" +#line 19 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 3 'idl', 2, sub -#line 20 "idl.yp" +#line 20 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 4 'idl', 2, sub -#line 21 "idl.yp" +#line 21 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 5 'idl', 2, sub -#line 22 "idl.yp" +#line 22 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 6 'idl', 2, sub -#line 23 "idl.yp" +#line 23 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 7 'idl', 2, sub -#line 24 "idl.yp" +#line 24 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 8 'import', 3, sub -#line 27 "idl.yp" +#line 27 "pidl/idl.yp" {{ "TYPE" => "IMPORT", "PATHS" => $_[2], @@ -1791,7 +1737,7 @@ sub [#Rule 9 'include', 3, sub -#line 34 "idl.yp" +#line 34 "pidl/idl.yp" {{ "TYPE" => "INCLUDE", "PATHS" => $_[2], @@ -1802,7 +1748,7 @@ sub [#Rule 10 'importlib', 3, sub -#line 41 "idl.yp" +#line 41 "pidl/idl.yp" {{ "TYPE" => "IMPORTLIB", "PATHS" => $_[2], @@ -1813,19 +1759,19 @@ sub [#Rule 11 'commalist', 1, sub -#line 50 "idl.yp" +#line 50 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 12 'commalist', 3, sub -#line 51 "idl.yp" +#line 51 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 13 'coclass', 7, sub -#line 55 "idl.yp" +#line 55 "pidl/idl.yp" {{ "TYPE" => "COCLASS", "PROPERTIES" => $_[1], @@ -1841,13 +1787,13 @@ sub [#Rule 15 'interface_names', 4, sub -#line 67 "idl.yp" +#line 67 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 16 'interface', 7, sub -#line 71 "idl.yp" +#line 71 "pidl/idl.yp" {{ "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], @@ -1860,7 +1806,7 @@ sub [#Rule 17 'cpp_quote', 4, sub -#line 82 "idl.yp" +#line 82 "pidl/idl.yp" {{ "TYPE" => "CPP_QUOTE", "FILE" => $_[0]->YYData->{FILE}, @@ -1871,13 +1817,13 @@ sub [#Rule 18 'definitions', 1, sub -#line 91 "idl.yp" +#line 91 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 19 'definitions', 2, sub -#line 92 "idl.yp" +#line 92 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 20 @@ -1895,7 +1841,7 @@ sub [#Rule 24 'const', 7, sub -#line 100 "idl.yp" +#line 100 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1909,7 +1855,7 @@ sub [#Rule 25 'const', 8, sub -#line 110 "idl.yp" +#line 110 "pidl/idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -1924,7 +1870,7 @@ sub [#Rule 26 'function', 7, sub -#line 124 "idl.yp" +#line 124 "pidl/idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -1938,7 +1884,7 @@ sub [#Rule 27 'typedef', 6, sub -#line 136 "idl.yp" +#line 136 "pidl/idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[1], @@ -1964,7 +1910,7 @@ sub [#Rule 32 'typedecl', 2, sub -#line 149 "idl.yp" +#line 149 "pidl/idl.yp" { $_[1] } ], [#Rule 33 @@ -1976,7 +1922,7 @@ sub [#Rule 35 'existingtype', 2, sub -#line 154 "idl.yp" +#line 154 "pidl/idl.yp" { ($_[1]?$_[1]:"signed") ." $_[2]" } ], [#Rule 36 @@ -1991,13 +1937,13 @@ sub [#Rule 39 'type', 1, sub -#line 158 "idl.yp" +#line 158 "pidl/idl.yp" { "void" } ], [#Rule 40 'enum_body', 3, sub -#line 160 "idl.yp" +#line 160 "pidl/idl.yp" { $_[2] } ], [#Rule 41 @@ -2009,7 +1955,7 @@ sub [#Rule 43 'enum', 4, sub -#line 163 "idl.yp" +#line 163 "pidl/idl.yp" {{ "TYPE" => "ENUM", "PROPERTIES" => $_[1], @@ -2020,13 +1966,13 @@ sub [#Rule 44 'enum_elements', 1, sub -#line 172 "idl.yp" +#line 172 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 45 'enum_elements', 3, sub -#line 173 "idl.yp" +#line 173 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 46 @@ -2035,13 +1981,13 @@ sub [#Rule 47 'enum_element', 3, sub -#line 177 "idl.yp" +#line 177 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 48 'bitmap_body', 3, sub -#line 180 "idl.yp" +#line 180 "pidl/idl.yp" { $_[2] } ], [#Rule 49 @@ -2053,7 +1999,7 @@ sub [#Rule 51 'bitmap', 4, sub -#line 183 "idl.yp" +#line 183 "pidl/idl.yp" {{ "TYPE" => "BITMAP", "PROPERTIES" => $_[1], @@ -2064,13 +2010,13 @@ sub [#Rule 52 'bitmap_elements', 1, sub -#line 192 "idl.yp" +#line 192 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 53 'bitmap_elements', 3, sub -#line 193 "idl.yp" +#line 193 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 54 @@ -2082,13 +2028,13 @@ sub [#Rule 56 'bitmap_element', 3, sub -#line 198 "idl.yp" +#line 198 "pidl/idl.yp" { "$_[1] ( $_[3] )" } ], [#Rule 57 'struct_body', 3, sub -#line 201 "idl.yp" +#line 201 "pidl/idl.yp" { $_[2] } ], [#Rule 58 @@ -2100,7 +2046,7 @@ sub [#Rule 60 'struct', 4, sub -#line 205 "idl.yp" +#line 205 "pidl/idl.yp" {{ "TYPE" => "STRUCT", "PROPERTIES" => $_[1], @@ -2111,7 +2057,7 @@ sub [#Rule 61 'empty_element', 2, sub -#line 214 "idl.yp" +#line 214 "pidl/idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2131,7 +2077,7 @@ sub [#Rule 64 'optional_base_element', 2, sub -#line 228 "idl.yp" +#line 228 "pidl/idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], [#Rule 65 @@ -2140,13 +2086,13 @@ sub [#Rule 66 'union_elements', 2, sub -#line 233 "idl.yp" +#line 233 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 67 'union_body', 3, sub -#line 236 "idl.yp" +#line 236 "pidl/idl.yp" { $_[2] } ], [#Rule 68 @@ -2158,7 +2104,7 @@ sub [#Rule 70 'union', 4, sub -#line 240 "idl.yp" +#line 240 "pidl/idl.yp" {{ "TYPE" => "UNION", "PROPERTIES" => $_[1], @@ -2169,7 +2115,7 @@ sub [#Rule 71 'base_element', 5, sub -#line 249 "idl.yp" +#line 249 "pidl/idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2183,25 +2129,25 @@ sub [#Rule 72 'pointers', 0, sub -#line 263 "idl.yp" +#line 263 "pidl/idl.yp" { 0 } ], [#Rule 73 'pointers', 2, sub -#line 264 "idl.yp" +#line 264 "pidl/idl.yp" { $_[1]+1 } ], [#Rule 74 'element_list1', 0, sub -#line 268 "idl.yp" +#line 268 "pidl/idl.yp" { [] } ], [#Rule 75 'element_list1', 3, sub -#line 269 "idl.yp" +#line 269 "pidl/idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 76 @@ -2213,13 +2159,13 @@ sub [#Rule 78 'element_list2', 1, sub -#line 275 "idl.yp" +#line 275 "pidl/idl.yp" { [ $_[1] ] } ], [#Rule 79 'element_list2', 3, sub -#line 276 "idl.yp" +#line 276 "pidl/idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 80 @@ -2228,13 +2174,13 @@ sub [#Rule 81 'array_len', 3, sub -#line 281 "idl.yp" +#line 281 "pidl/idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], [#Rule 82 'array_len', 4, sub -#line 282 "idl.yp" +#line 282 "pidl/idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], [#Rule 83 @@ -2243,178 +2189,169 @@ sub [#Rule 84 'property_list', 4, sub -#line 288 "idl.yp" +#line 288 "pidl/idl.yp" { FlattenHash([$_[1],$_[3]]); } ], [#Rule 85 'properties', 1, sub -#line 291 "idl.yp" +#line 291 "pidl/idl.yp" { $_[1] } ], [#Rule 86 'properties', 3, sub -#line 292 "idl.yp" +#line 292 "pidl/idl.yp" { FlattenHash([$_[1], $_[3]]); } ], [#Rule 87 'property', 1, sub -#line 295 "idl.yp" +#line 295 "pidl/idl.yp" {{ "$_[1]" => "1" }} ], [#Rule 88 'property', 4, sub -#line 296 "idl.yp" +#line 296 "pidl/idl.yp" {{ "$_[1]" => "$_[3]" }} ], [#Rule 89 - 'listtext', 1, undef - ], - [#Rule 90 - 'listtext', 3, -sub -#line 301 "idl.yp" -{ "$_[1] $_[3]" } - ], - [#Rule 91 'commalisttext', 1, undef ], - [#Rule 92 + [#Rule 90 'commalisttext', 3, sub -#line 306 "idl.yp" +#line 301 "pidl/idl.yp" { "$_[1],$_[3]" } ], - [#Rule 93 + [#Rule 91 'anytext', 0, sub -#line 310 "idl.yp" +#line 305 "pidl/idl.yp" { "" } ], + [#Rule 92 + 'anytext', 1, undef + ], + [#Rule 93 + 'anytext', 1, undef + ], [#Rule 94 'anytext', 1, undef ], [#Rule 95 - 'anytext', 1, undef + 'anytext', 3, +sub +#line 307 "pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } ], [#Rule 96 - 'anytext', 1, undef + 'anytext', 3, +sub +#line 308 "pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } ], [#Rule 97 'anytext', 3, sub -#line 312 "idl.yp" +#line 309 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 98 'anytext', 3, sub -#line 313 "idl.yp" +#line 310 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 99 'anytext', 3, sub -#line 314 "idl.yp" +#line 311 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 100 'anytext', 3, sub -#line 315 "idl.yp" +#line 312 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 101 'anytext', 3, sub -#line 316 "idl.yp" +#line 313 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 102 'anytext', 3, sub -#line 317 "idl.yp" +#line 314 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 103 'anytext', 3, sub -#line 318 "idl.yp" +#line 315 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 104 'anytext', 3, sub -#line 319 "idl.yp" +#line 316 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 105 'anytext', 3, sub -#line 320 "idl.yp" +#line 317 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 106 'anytext', 3, sub -#line 321 "idl.yp" +#line 318 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 107 'anytext', 3, sub -#line 322 "idl.yp" +#line 319 "pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 108 - 'anytext', 3, -sub -#line 323 "idl.yp" -{ "$_[1]$_[2]$_[3]" } - ], - [#Rule 109 - 'anytext', 3, -sub -#line 324 "idl.yp" -{ "$_[1]$_[2]$_[3]" } - ], - [#Rule 110 'anytext', 5, sub -#line 325 "idl.yp" +#line 320 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 111 + [#Rule 109 'anytext', 5, sub -#line 326 "idl.yp" +#line 321 "pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 112 + [#Rule 110 'identifier', 1, undef ], - [#Rule 113 + [#Rule 111 'optional_identifier', 1, undef ], - [#Rule 114 + [#Rule 112 'optional_identifier', 0, undef ], - [#Rule 115 + [#Rule 113 'constant', 1, undef ], - [#Rule 116 + [#Rule 114 'text', 1, sub -#line 340 "idl.yp" +#line 335 "pidl/idl.yp" { "\"$_[1]\"" } ], - [#Rule 117 + [#Rule 115 'optional_semicolon', 0, undef ], - [#Rule 118 + [#Rule 116 'optional_semicolon', 1, undef ] ], @@ -2422,7 +2359,7 @@ sub bless($self,$class); } -#line 351 "idl.yp" +#line 346 "pidl/idl.yp" use Parse::Pidl qw(error); -- cgit From bcca7d43c8dc1c96f060a3daff8f0e43c43129c2 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Tue, 26 Feb 2008 15:38:45 +0100 Subject: pidl: Remove superfluous semicolon in perl code. Michael (This used to be commit 85f707c6abc48739c0c3b423ac0b196d2b75e40c) --- source4/pidl/lib/Parse/Pidl/IDL.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/pidl/lib/Parse/Pidl/IDL.pm') diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index aeee69e306..4adb4dcea8 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -2408,7 +2408,7 @@ sub _Error { error($_[0]->YYData, $_[0]->YYData->{ERRMSG}); delete $_[0]->YYData->{ERRMSG}; return; - }; + } my $last_token = $_[0]->YYData->{LAST_TOKEN}; error($_[0]->YYData, "Syntax error near '$last_token'"); -- cgit