pidl: Remove support for the "declare" keyword in the parser.
authorJelmer Vernooij <jelmer@samba.org>
Sat, 12 Jan 2008 00:10:59 +0000 (01:10 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Sat, 12 Jan 2008 00:10:59 +0000 (01:10 +0100)
(This used to be commit ea3371389226a756ba641a7fc02cfbee78663411)

source4/pidl/idl.yp
source4/pidl/lib/Parse/Pidl/IDL.pm

index c372569a75a044559505a3d9364ee752047b1163..d2543c580cf54f5ac406739a92f5d0f1e38bae4a 100644 (file)
@@ -93,7 +93,7 @@ definitions:
 ;    
 
 
-definition: function | const | typedef | declare | typedecl
+definition: function | const | typedef | typedecl
 ;
 
 const: 'const' identifier pointers identifier '=' anytext ';' 
@@ -132,40 +132,6 @@ function: property_list type identifier '(' element_list2 ')' ';'
          }}
 ;
 
-declare: 'declare' decl_type identifier';' 
-        {{
-                    "TYPE" => "DECLARE", 
-                    "NAME" => $_[3],
-                    "DATA" => $_[2],
-                    "FILE" => $_[0]->YYData->{FILE},
-                    "LINE" => $_[0]->YYData->{LINE},
-        }}
-;
-
-decl_type: decl_enum | decl_bitmap | decl_union
-;
-
-decl_enum: property_list 'enum' 
-        {{
-                     "TYPE" => "ENUM",
-                     "PROPERTIES" => $_[1]
-        }}
-;
-
-decl_bitmap: property_list 'bitmap' 
-        {{
-                     "TYPE" => "BITMAP",
-                     "PROPERTIES" => $_[1]
-        }}
-;
-
-decl_union: property_list 'union' 
-        {{
-                     "TYPE" => "UNION",
-                     "PROPERTIES" => $_[1]
-        }}
-;
-
 typedef: property_list 'typedef' type identifier array_len ';' 
         {{
                     "TYPE" => "TYPEDEF", 
@@ -476,7 +442,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;
index e9155e4e0027d9ad52e14151565b1e2d3e17fb07..5956c43e43b8c1e08ca9bf3e93f60ce45ad7566d 100644 (file)
@@ -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;