r5486: - Use references to interfaces in coclasses rather then
authorJelmer Vernooij <jelmer@samba.org>
Mon, 21 Feb 2005 12:13:42 +0000 (12:13 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:10:49 +0000 (13:10 -0500)
full interfaces.
- Couple of bugfixes in odl.pm
- First use of multiple pointers in dcom.idl

source/build/pidl/idl.pm
source/build/pidl/idl.yp
source/build/pidl/odl.pm
source/librpc/idl/dcom.idl

index 5ba427e70c24a8ac3af85fce76f9e79871d8ad5a..9eea6679cc4dab53a8027effe6daeb5e02ced0d6 100644 (file)
@@ -593,7 +593,7 @@ sub new {
        {#State 15
                DEFAULT => -5,
                GOTOS => {
-                       'interfaces' => 21
+                       'interface_names' => 21
                }
        },
        {#State 16
@@ -638,12 +638,8 @@ sub new {
        },
        {#State 21
                ACTIONS => {
-                       "}" => 32
-               },
-               DEFAULT => -60,
-               GOTOS => {
-                       'interface' => 33,
-                       'property_list' => 34
+                       "}" => 32,
+                       "interface" => 33
                }
        },
        {#State 22
@@ -657,24 +653,24 @@ sub new {
        },
        {#State 25
                ACTIONS => {
-                       "-" => 35,
-                       "<" => 36,
-                       "+" => 37,
-                       "&" => 39,
-                       "{" => 38,
-                       "/" => 40,
-                       "|" => 41,
-                       "(" => 42,
-                       "*" => 43,
-                       "." => 44,
-                       ">" => 45
+                       "-" => 34,
+                       "<" => 35,
+                       "+" => 36,
+                       "&" => 38,
+                       "{" => 37,
+                       "/" => 39,
+                       "|" => 40,
+                       "(" => 41,
+                       "*" => 42,
+                       "." => 43,
+                       ">" => 44
                },
                DEFAULT => -66
        },
        {#State 26
                ACTIONS => {
-                       "," => 46,
-                       ")" => 47
+                       "," => 45,
+                       ")" => 46
                }
        },
        {#State 27
@@ -691,40 +687,39 @@ sub new {
        },
        {#State 31
                ACTIONS => {
-                       "typedef" => 48,
-                       "declare" => 53,
-                       "const" => 56
+                       "typedef" => 47,
+                       "declare" => 52,
+                       "const" => 55
                },
                DEFAULT => -60,
                GOTOS => {
-                       'const' => 55,
-                       'declare' => 54,
-                       'function' => 49,
-                       'typedef' => 57,
-                       'definitions' => 50,
-                       'definition' => 52,
-                       'property_list' => 51
+                       'const' => 54,
+                       'declare' => 53,
+                       'function' => 48,
+                       'typedef' => 56,
+                       'definitions' => 49,
+                       'definition' => 51,
+                       'property_list' => 50
                }
        },
        {#State 32
                ACTIONS => {
-                       ";" => 59
+                       ";" => 58
                },
                DEFAULT => -88,
                GOTOS => {
-                       'optional_semicolon' => 58
+                       'optional_semicolon' => 57
                }
        },
        {#State 33
-               DEFAULT => -6
-       },
-       {#State 34
                ACTIONS => {
-                       "[" => 7,
-                       "interface" => 8
+                       'IDENTIFIER' => 9
+               },
+               GOTOS => {
+                       'identifier' => 59
                }
        },
-       {#State 35
+       {#State 34
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -738,7 +733,7 @@ sub new {
                        'constant' => 27
                }
        },
-       {#State 36
+       {#State 35
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -752,7 +747,7 @@ sub new {
                        'constant' => 27
                }
        },
-       {#State 37
+       {#State 36
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -766,7 +761,7 @@ sub new {
                        'constant' => 27
                }
        },
-       {#State 38
+       {#State 37
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -781,7 +776,7 @@ sub new {
                        'commalisttext' => 64
                }
        },
-       {#State 39
+       {#State 38
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -795,7 +790,7 @@ sub new {
                        'constant' => 27
                }
        },
-       {#State 40
+       {#State 39
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -809,7 +804,7 @@ sub new {
                        'constant' => 27
                }
        },
-       {#State 41
+       {#State 40
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -823,7 +818,7 @@ sub new {
                        'constant' => 27
                }
        },
-       {#State 42
+       {#State 41
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -838,7 +833,7 @@ sub new {
                        'commalisttext' => 68
                }
        },
-       {#State 43
+       {#State 42
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -852,7 +847,7 @@ sub new {
                        'constant' => 27
                }
        },
-       {#State 44
+       {#State 43
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -866,7 +861,7 @@ sub new {
                        'constant' => 27
                }
        },
-       {#State 45
+       {#State 44
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -880,7 +875,7 @@ sub new {
                        'constant' => 27
                }
        },
-       {#State 46
+       {#State 45
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -894,36 +889,36 @@ sub new {
                        'constant' => 27
                }
        },
-       {#State 47
+       {#State 46
                DEFAULT => -65
        },
-       {#State 48
+       {#State 47
                DEFAULT => -60,
                GOTOS => {
                        'property_list' => 73
                }
        },
-       {#State 49
+       {#State 48
                DEFAULT => -12
        },
-       {#State 50
+       {#State 49
                ACTIONS => {
                        "}" => 74,
-                       "typedef" => 48,
-                       "declare" => 53,
-                       "const" => 56
+                       "typedef" => 47,
+                       "declare" => 52,
+                       "const" => 55
                },
                DEFAULT => -60,
                GOTOS => {
-                       'const' => 55,
-                       'declare' => 54,
-                       'function' => 49,
-                       'typedef' => 57,
+                       'const' => 54,
+                       'declare' => 53,
+                       'function' => 48,
+                       'typedef' => 56,
                        'definition' => 75,
-                       'property_list' => 51
+                       'property_list' => 50
                }
        },
-       {#State 51
+       {#State 50
                ACTIONS => {
                        'IDENTIFIER' => 9,
                        "union" => 76,
@@ -942,22 +937,22 @@ sub new {
                        'bitmap' => 80
                }
        },
-       {#State 52
+       {#State 51
                DEFAULT => -10
        },
-       {#State 53
+       {#State 52
                DEFAULT => -60,
                GOTOS => {
                        'property_list' => 87
                }
        },
-       {#State 54
+       {#State 53
                DEFAULT => -15
        },
-       {#State 55
+       {#State 54
                DEFAULT => -13
        },
-       {#State 56
+       {#State 55
                ACTIONS => {
                        'IDENTIFIER' => 9
                },
@@ -965,128 +960,133 @@ sub new {
                        'identifier' => 88
                }
        },
-       {#State 57
+       {#State 56
                DEFAULT => -14
        },
-       {#State 58
+       {#State 57
                DEFAULT => -4
        },
-       {#State 59
+       {#State 58
                DEFAULT => -89
        },
+       {#State 59
+               ACTIONS => {
+                       ";" => 89
+               }
+       },
        {#State 60
                ACTIONS => {
-                       "<" => 36,
-                       "{" => 38
+                       "<" => 35,
+                       "{" => 37
                },
                DEFAULT => -74
        },
        {#State 61
                ACTIONS => {
-                       "-" => 35,
-                       "<" => 36,
-                       "+" => 37,
-                       "*" => 43,
-                       "{" => 38,
-                       "&" => 39,
-                       "/" => 40,
-                       "|" => 41,
-                       "(" => 42,
-                       "." => 44,
-                       ">" => 45
+                       "-" => 34,
+                       "<" => 35,
+                       "+" => 36,
+                       "*" => 42,
+                       "{" => 37,
+                       "&" => 38,
+                       "/" => 39,
+                       "|" => 40,
+                       "(" => 41,
+                       "." => 43,
+                       ">" => 44
                },
                DEFAULT => -78
        },
        {#State 62
                ACTIONS => {
-                       "<" => 36,
-                       "{" => 38
+                       "<" => 35,
+                       "{" => 37
                },
                DEFAULT => -82
        },
        {#State 63
                ACTIONS => {
-                       "-" => 35,
-                       "<" => 36,
-                       "+" => 37,
-                       "&" => 39,
-                       "{" => 38,
-                       "/" => 40,
-                       "(" => 42,
-                       "|" => 41,
-                       "*" => 43,
-                       "." => 44,
-                       ">" => 45
+                       "-" => 34,
+                       "<" => 35,
+                       "+" => 36,
+                       "&" => 38,
+                       "{" => 37,
+                       "/" => 39,
+                       "(" => 41,
+                       "|" => 40,
+                       "*" => 42,
+                       "." => 43,
+                       ">" => 44
                },
                DEFAULT => -68
        },
        {#State 64
                ACTIONS => {
-                       "}" => 89,
-                       "," => 90
+                       "}" => 90,
+                       "," => 91
                }
        },
        {#State 65
                ACTIONS => {
-                       "<" => 36,
-                       "{" => 38
+                       "<" => 35,
+                       "{" => 37
                },
                DEFAULT => -80
        },
        {#State 66
                ACTIONS => {
-                       "<" => 36,
-                       "{" => 38
+                       "<" => 35,
+                       "{" => 37
                },
                DEFAULT => -81
        },
        {#State 67
                ACTIONS => {
-                       "<" => 36,
-                       "{" => 38
+                       "<" => 35,
+                       "{" => 37
                },
                DEFAULT => -79
        },
        {#State 68
                ACTIONS => {
-                       "," => 90,
-                       ")" => 91
+                       "," => 91,
+                       ")" => 92
                }
        },
        {#State 69
                ACTIONS => {
-                       "<" => 36,
-                       "{" => 38
+                       "<" => 35,
+                       "{" => 37
                },
                DEFAULT => -76
        },
        {#State 70
                ACTIONS => {
-                       "<" => 36,
-                       "{" => 38
+                       "<" => 35,
+                       "{" => 37
                },
                DEFAULT => -75
        },
        {#State 71
                ACTIONS => {
-                       "<" => 36,
-                       "{" => 38
+                       "<" => 35,
+                       "{" => 37
                },
                DEFAULT => -77
        },
        {#State 72
                ACTIONS => {
-                       "-" => 35,
-                       "<" => 36,
-                       "+" => 37,
-                       "&" => 39,
-                       "{" => 38,
-                       "/" => 40,
-                       "(" => 42,
-                       "|" => 41,
-                       "*" => 43,
-                       "." => 44,
-                       ">" => 45
+                       "-" => 34,
+                       "<" => 35,
+                       "+" => 36,
+                       "&" => 38,
+                       "{" => 37,
+                       "/" => 39,
+                       "(" => 41,
+                       "|" => 40,
+                       "*" => 42,
+                       "." => 43,
+                       ">" => 44
                },
                DEFAULT => -67
        },
@@ -1104,18 +1104,18 @@ sub new {
                        'identifier' => 81,
                        'struct' => 82,
                        'enum' => 83,
-                       'type' => 92,
+                       'type' => 93,
                        'union' => 85,
                        'bitmap' => 80
                }
        },
        {#State 74
                ACTIONS => {
-                       ";" => 59
+                       ";" => 58
                },
                DEFAULT => -88,
                GOTOS => {
-                       'optional_semicolon' => 93
+                       'optional_semicolon' => 94
                }
        },
        {#State 75
@@ -1123,17 +1123,17 @@ sub new {
        },
        {#State 76
                ACTIONS => {
-                       "{" => 94
+                       "{" => 95
                }
        },
        {#State 77
                ACTIONS => {
-                       "{" => 95
+                       "{" => 96
                }
        },
        {#State 78
                ACTIONS => {
-                       "{" => 96
+                       "{" => 97
                }
        },
        {#State 79
@@ -1156,7 +1156,7 @@ sub new {
                        'IDENTIFIER' => 9
                },
                GOTOS => {
-                       'identifier' => 97
+                       'identifier' => 98
                }
        },
        {#State 85
@@ -1164,19 +1164,19 @@ sub new {
        },
        {#State 86
                ACTIONS => {
-                       "{" => 98
+                       "{" => 99
                }
        },
        {#State 87
                ACTIONS => {
-                       "enum" => 99,
+                       "enum" => 100,
                        "[" => 7,
-                       "bitmap" => 100
+                       "bitmap" => 101
                },
                GOTOS => {
-                       'decl_enum' => 101,
-                       'decl_bitmap' => 102,
-                       'decl_type' => 103
+                       'decl_enum' => 102,
+                       'decl_bitmap' => 103,
+                       'decl_type' => 104
                }
        },
        {#State 88
@@ -1184,10 +1184,13 @@ sub new {
                        'IDENTIFIER' => 9
                },
                GOTOS => {
-                       'identifier' => 104
+                       'identifier' => 105
                }
        },
        {#State 89
+               DEFAULT => -6
+       },
+       {#State 90
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -1197,11 +1200,11 @@ sub new {
                GOTOS => {
                        'identifier' => 23,
                        'text' => 24,
-                       'anytext' => 105,
+                       'anytext' => 106,
                        'constant' => 27
                }
        },
-       {#State 90
+       {#State 91
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -1211,11 +1214,11 @@ sub new {
                GOTOS => {
                        'identifier' => 23,
                        'text' => 24,
-                       'anytext' => 106,
+                       'anytext' => 107,
                        'constant' => 27
                }
        },
-       {#State 91
+       {#State 92
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -1225,208 +1228,208 @@ sub new {
                GOTOS => {
                        'identifier' => 23,
                        'text' => 24,
-                       'anytext' => 107,
+                       'anytext' => 108,
                        'constant' => 27
                }
        },
-       {#State 92
+       {#State 93
                ACTIONS => {
                        'IDENTIFIER' => 9
                },
                GOTOS => {
-                       'identifier' => 108
+                       'identifier' => 109
                }
        },
-       {#State 93
+       {#State 94
                DEFAULT => -7
        },
-       {#State 94
+       {#State 95
                DEFAULT => -45,
                GOTOS => {
-                       'union_elements' => 109
+                       'union_elements' => 110
                }
        },
-       {#State 95
+       {#State 96
                ACTIONS => {
                        'IDENTIFIER' => 9
                },
                GOTOS => {
-                       'identifier' => 110,
-                       'enum_element' => 111,
-                       'enum_elements' => 112
+                       'identifier' => 111,
+                       'enum_element' => 112,
+                       'enum_elements' => 113
                }
        },
-       {#State 96
+       {#State 97
                ACTIONS => {
                        'IDENTIFIER' => 9
                },
                GOTOS => {
-                       'identifier' => 115,
-                       'bitmap_elements' => 114,
-                       'bitmap_element' => 113
+                       'identifier' => 116,
+                       'bitmap_elements' => 115,
+                       'bitmap_element' => 114
                }
        },
-       {#State 97
+       {#State 98
                ACTIONS => {
-                       "(" => 116
+                       "(" => 117
                }
        },
-       {#State 98
+       {#State 99
                DEFAULT => -51,
                GOTOS => {
-                       'element_list1' => 117
+                       'element_list1' => 118
                }
        },
-       {#State 99
+       {#State 100
                DEFAULT => -22
        },
-       {#State 100
+       {#State 101
                DEFAULT => -23
        },
-       {#State 101
+       {#State 102
                DEFAULT => -20
        },
-       {#State 102
+       {#State 103
                DEFAULT => -21
        },
-       {#State 103
+       {#State 104
                ACTIONS => {
                        'IDENTIFIER' => 9
                },
                GOTOS => {
-                       'identifier' => 118
+                       'identifier' => 119
                }
        },
-       {#State 104
+       {#State 105
                ACTIONS => {
-                       "[" => 121,
-                       "=" => 120
+                       "[" => 122,
+                       "=" => 121
                },
                GOTOS => {
-                       'array_len' => 119
+                       'array_len' => 120
                }
        },
-       {#State 105
+       {#State 106
                ACTIONS => {
-                       "-" => 35,
-                       "<" => 36,
-                       "+" => 37,
-                       "*" => 43,
-                       "{" => 38,
-                       "&" => 39,
-                       "/" => 40,
-                       "|" => 41,
-                       "(" => 42,
-                       "." => 44,
-                       ">" => 45
+                       "-" => 34,
+                       "<" => 35,
+                       "+" => 36,
+                       "*" => 42,
+                       "{" => 37,
+                       "&" => 38,
+                       "/" => 39,
+                       "|" => 40,
+                       "(" => 41,
+                       "." => 43,
+                       ">" => 44
                },
                DEFAULT => -84
        },
-       {#State 106
+       {#State 107
                ACTIONS => {
-                       "-" => 35,
-                       "<" => 36,
-                       "+" => 37,
-                       "&" => 39,
-                       "{" => 38,
-                       "/" => 40,
-                       "(" => 42,
-                       "|" => 41,
-                       "*" => 43,
-                       "." => 44,
-                       ">" => 45
+                       "-" => 34,
+                       "<" => 35,
+                       "+" => 36,
+                       "&" => 38,
+                       "{" => 37,
+                       "/" => 39,
+                       "(" => 41,
+                       "|" => 40,
+                       "*" => 42,
+                       "." => 43,
+                       ">" => 44
                },
                DEFAULT => -69
        },
-       {#State 107
+       {#State 108
                ACTIONS => {
-                       "<" => 36,
-                       "{" => 38
+                       "<" => 35,
+                       "{" => 37
                },
                DEFAULT => -83
        },
-       {#State 108
+       {#State 109
                ACTIONS => {
-                       "[" => 121
+                       "[" => 122
                },
                DEFAULT => -57,
                GOTOS => {
-                       'array_len' => 122
+                       'array_len' => 123
                }
        },
-       {#State 109
+       {#State 110
                ACTIONS => {
-                       "}" => 123
+                       "}" => 124
                },
                DEFAULT => -60,
                GOTOS => {
-                       'optional_base_element' => 125,
-                       'property_list' => 124
+                       'optional_base_element' => 126,
+                       'property_list' => 125
                }
        },
-       {#State 110
+       {#State 111
                ACTIONS => {
-                       "=" => 126
+                       "=" => 127
                },
                DEFAULT => -34
        },
-       {#State 111
+       {#State 112
                DEFAULT => -32
        },
-       {#State 112
+       {#State 113
                ACTIONS => {
-                       "}" => 127,
-                       "," => 128
+                       "}" => 128,
+                       "," => 129
                }
        },
-       {#State 113
+       {#State 114
                DEFAULT => -37
        },
-       {#State 114
+       {#State 115
                ACTIONS => {
-                       "}" => 129,
-                       "," => 130
+                       "}" => 130,
+                       "," => 131
                }
        },
-       {#State 115
+       {#State 116
                ACTIONS => {
-                       "=" => 131
+                       "=" => 132
                }
        },
-       {#State 116
+       {#State 117
                ACTIONS => {
                        "," => -53,
-                       "void" => 134,
+                       "void" => 135,
                        ")" => -53
                },
                DEFAULT => -60,
                GOTOS => {
-                       'base_element' => 132,
-                       'element_list2' => 135,
-                       'property_list' => 133
+                       'base_element' => 133,
+                       'element_list2' => 136,
+                       'property_list' => 134
                }
        },
-       {#State 117
+       {#State 118
                ACTIONS => {
-                       "}" => 136
+                       "}" => 137
                },
                DEFAULT => -60,
                GOTOS => {
-                       'base_element' => 137,
-                       'property_list' => 133
+                       'base_element' => 138,
+                       'property_list' => 134
                }
        },
-       {#State 118
+       {#State 119
                ACTIONS => {
-                       ";" => 138
+                       ";" => 139
                }
        },
-       {#State 119
+       {#State 120
                ACTIONS => {
-                       "=" => 139
+                       "=" => 140
                }
        },
-       {#State 120
+       {#State 121
                ACTIONS => {
                        'IDENTIFIER' => 9,
                        'CONSTANT' => 28,
@@ -1436,49 +1439,49 @@ sub new {
                GOTOS => {
                        'identifier' => 23,
                        'text' => 24,
-                       'anytext' => 140,
+                       'anytext' => 141,
                        'constant' => 27
                }
        },
-       {#State 121
+       {#State 122
                ACTIONS => {
                        'IDENTIFIER' => 9,
                        'CONSTANT' => 28,
                        'TEXT' => 22,
-                       "]" => 142
+                       "]" => 143
                },
                DEFAULT => -70,
                GOTOS => {
                        'identifier' => 23,
                        'text' => 24,
-                       'anytext' => 141,
+                       'anytext' => 142,
                        'constant' => 27
                }
        },
-       {#State 122
+       {#State 123
                ACTIONS => {
-                       ";" => 143
+                       ";" => 144
                }
        },
-       {#State 123
+       {#State 124
                DEFAULT => -47
        },
-       {#State 124
+       {#State 125
                ACTIONS => {
                        "[" => 7
                },
                DEFAULT => -60,
                GOTOS => {
-                       'base_or_empty' => 144,
-                       'base_element' => 145,
-                       'empty_element' => 146,
-                       'property_list' => 147
+                       'base_or_empty' => 145,
+                       'base_element' => 146,
+                       'empty_element' => 147,
+                       'property_list' => 148
                }
        },
-       {#State 125
+       {#State 126
                DEFAULT => -46
        },
-       {#State 126
+       {#State 127
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -1488,35 +1491,35 @@ sub new {
                GOTOS => {
                        'identifier' => 23,
                        'text' => 24,
-                       'anytext' => 148,
+                       'anytext' => 149,
                        'constant' => 27
                }
        },
-       {#State 127
+       {#State 128
                DEFAULT => -31
        },
-       {#State 128
+       {#State 129
                ACTIONS => {
                        'IDENTIFIER' => 9
                },
                GOTOS => {
-                       'identifier' => 110,
-                       'enum_element' => 149
+                       'identifier' => 111,
+                       'enum_element' => 150
                }
        },
-       {#State 129
+       {#State 130
                DEFAULT => -36
        },
-       {#State 130
+       {#State 131
                ACTIONS => {
                        'IDENTIFIER' => 9
                },
                GOTOS => {
-                       'identifier' => 115,
-                       'bitmap_element' => 150
+                       'identifier' => 116,
+                       'bitmap_element' => 151
                }
        },
-       {#State 131
+       {#State 132
                ACTIONS => {
                        'CONSTANT' => 28,
                        'TEXT' => 22,
@@ -1526,14 +1529,14 @@ sub new {
                GOTOS => {
                        'identifier' => 23,
                        'text' => 24,
-                       'anytext' => 151,
+                       'anytext' => 152,
                        'constant' => 27
                }
        },
-       {#State 132
+       {#State 133
                DEFAULT => -55
        },
-       {#State 133
+       {#State 134
                ACTIONS => {
                        'IDENTIFIER' => 9,
                        "union" => 76,
@@ -1547,32 +1550,32 @@ sub new {
                        'identifier' => 81,
                        'struct' => 82,
                        'enum' => 83,
-                       'type' => 152,
+                       'type' => 153,
                        'union' => 85,
                        'bitmap' => 80
                }
        },
-       {#State 134
+       {#State 135
                DEFAULT => -54
        },
-       {#State 135
+       {#State 136
                ACTIONS => {
-                       "," => 153,
-                       ")" => 154
+                       "," => 154,
+                       ")" => 155
                }
        },
-       {#State 136
+       {#State 137
                DEFAULT => -40
        },
-       {#State 137
+       {#State 138
                ACTIONS => {
-                       ";" => 155
+                       ";" => 156
                }
        },
-       {#State 138
+       {#State 139
                DEFAULT => -19
        },
-       {#State 139
+       {#State 140
                ACTIONS => {
                        'IDENTIFIER' => 9,
                        'CONSTANT' => 28,
@@ -1582,64 +1585,64 @@ sub new {
                GOTOS => {
                        'identifier' => 23,
                        'text' => 24,
-                       'anytext' => 156,
+                       'anytext' => 157,
                        'constant' => 27
                }
        },
-       {#State 140
+       {#State 141
                ACTIONS => {
-                       "-" => 35,
-                       "<" => 36,
-                       ";" => 157,
-                       "+" => 37,
-                       "&" => 39,
-                       "{" => 38,
-                       "/" => 40,
-                       "(" => 42,
-                       "|" => 41,
-                       "*" => 43,
-                       "." => 44,
-                       ">" => 45
+                       "-" => 34,
+                       "<" => 35,
+                       ";" => 158,
+                       "+" => 36,
+                       "&" => 38,
+                       "{" => 37,
+                       "/" => 39,
+                       "(" => 41,
+                       "|" => 40,
+                       "*" => 42,
+                       "." => 43,
+                       ">" => 44
                }
        },
-       {#State 141
+       {#State 142
                ACTIONS => {
-                       "-" => 35,
-                       "<" => 36,
-                       "+" => 37,
-                       "&" => 39,
-                       "{" => 38,
-                       "/" => 40,
-                       "(" => 42,
-                       "|" => 41,
-                       "*" => 43,
-                       "]" => 158,
-                       "." => 44,
-                       ">" => 45
+                       "-" => 34,
+                       "<" => 35,
+                       "+" => 36,
+                       "&" => 38,
+                       "{" => 37,
+                       "/" => 39,
+                       "(" => 41,
+                       "|" => 40,
+                       "*" => 42,
+                       "]" => 159,
+                       "." => 43,
+                       ">" => 44
                }
        },
-       {#State 142
+       {#State 143
                DEFAULT => -58
        },
-       {#State 143
+       {#State 144
                DEFAULT => -24
        },
-       {#State 144
+       {#State 145
                DEFAULT => -44
        },
-       {#State 145
+       {#State 146
                ACTIONS => {
-                       ";" => 159
+                       ";" => 160
                }
        },
-       {#State 146
+       {#State 147
                DEFAULT => -43
        },
-       {#State 147
+       {#State 148
                ACTIONS => {
                        'IDENTIFIER' => 9,
                        "union" => 76,
-                       ";" => 160,
+                       ";" => 161,
                        "enum" => 77,
                        "[" => 7,
                        'void' => 79,
@@ -1650,129 +1653,129 @@ sub new {
                        'identifier' => 81,
                        'struct' => 82,
                        'enum' => 83,
-                       'type' => 152,
+                       'type' => 153,
                        'union' => 85,
                        'bitmap' => 80
                }
        },
-       {#State 148
+       {#State 149
                ACTIONS => {
-                       "-" => 35,
-                       "<" => 36,
-                       "+" => 37,
-                       "&" => 39,
-                       "{" => 38,
-                       "/" => 40,
-                       "(" => 42,
-                       "|" => 41,
-                       "*" => 43,
-                       "." => 44,
-                       ">" => 45
+                       "-" => 34,
+                       "<" => 35,
+                       "+" => 36,
+                       "&" => 38,
+                       "{" => 37,
+                       "/" => 39,
+                       "(" => 41,
+                       "|" => 40,
+                       "*" => 42,
+                       "." => 43,
+                       ">" => 44
                },
                DEFAULT => -35
        },
-       {#State 149
+       {#State 150
                DEFAULT => -33
        },
-       {#State 150
+       {#State 151
                DEFAULT => -38
        },
-       {#State 151
+       {#State 152
                ACTIONS => {
-                       "-" => 35,
-                       "<" => 36,
-                       "+" => 37,
-                       "&" => 39,
-                       "{" => 38,
-                       "/" => 40,
-                       "(" => 42,
-                       "|" => 41,
-                       "*" => 43,
-                       "." => 44,
-                       ">" => 45
+                       "-" => 34,
+                       "<" => 35,
+                       "+" => 36,
+                       "&" => 38,
+                       "{" => 37,
+                       "/" => 39,
+                       "(" => 41,
+                       "|" => 40,
+                       "*" => 42,
+                       "." => 43,
+                       ">" => 44
                },
                DEFAULT => -39
        },
-       {#State 152
+       {#State 153
                DEFAULT => -49,
                GOTOS => {
-                       'pointers' => 161
+                       'pointers' => 162
                }
        },
-       {#State 153
+       {#State 154
                DEFAULT => -60,
                GOTOS => {
-                       'base_element' => 162,
-                       'property_list' => 133
+                       'base_element' => 163,
+                       'property_list' => 134
                }
        },
-       {#State 154
+       {#State 155
                ACTIONS => {
-                       ";" => 163
+                       ";" => 164
                }
        },
-       {#State 155
+       {#State 156
                DEFAULT => -52
        },
-       {#State 156
+       {#State 157
                ACTIONS => {
-                       "-" => 35,
-                       "<" => 36,
-                       ";" => 164,
-                       "+" => 37,
-                       "&" => 39,
-                       "{" => 38,
-                       "/" => 40,
-                       "(" => 42,
-                       "|" => 41,
-                       "*" => 43,
-                       "." => 44,
-                       ">" => 45
+                       "-" => 34,
+                       "<" => 35,
+                       ";" => 165,
+                       "+" => 36,
+                       "&" => 38,
+                       "{" => 37,
+                       "/" => 39,
+                       "(" => 41,
+                       "|" => 40,
+                       "*" => 42,
+                       "." => 43,
+                       ">" => 44
                }
        },
-       {#State 157
+       {#State 158
                DEFAULT => -16
        },
-       {#State 158
+       {#State 159
                DEFAULT => -59
        },
-       {#State 159
+       {#State 160
                DEFAULT => -42
        },
-       {#State 160
+       {#State 161
                DEFAULT => -41
        },
-       {#State 161
+       {#State 162
                ACTIONS => {
                        'IDENTIFIER' => 9,
-                       "*" => 166
+                       "*" => 167
                },
                GOTOS => {
-                       'identifier' => 165
+                       'identifier' => 166
                }
        },
-       {#State 162
+       {#State 163
                DEFAULT => -56
        },
-       {#State 163
+       {#State 164
                DEFAULT => -18
        },
-       {#State 164
+       {#State 165
                DEFAULT => -17
        },
-       {#State 165
+       {#State 166
                ACTIONS => {
-                       "[" => 121
+                       "[" => 122
                },
                DEFAULT => -57,
                GOTOS => {
-                       'array_len' => 167
+                       'array_len' => 168
                }
        },
-       {#State 166
+       {#State 167
                DEFAULT => -50
        },
-       {#State 167
+       {#State 168
                DEFAULT => -48
        }
 ],
@@ -1808,10 +1811,10 @@ sub
           }}
        ],
        [#Rule 5
-                'interfaces', 0, undef
+                'interface_names', 0, undef
        ],
        [#Rule 6
-                'interfaces', 2,
+                'interface_names', 4,
 sub
 #line 34 "build/pidl/idl.yp"
 { push(@{$_[1]}, $_[2]); $_[1] }
index b12c45c34db9401cea2fabc91778e6633ac3c7ae..3f670c7b2f751156048cb6d504ce495eafe45f0e 100644 (file)
@@ -20,7 +20,7 @@ idl:
        | idl coclass { push(@{$_[1]}, $_[2]); $_[1] }
 ;
 
-coclass: property_list 'coclass' identifier '{' interfaces '}' optional_semicolon
+coclass: property_list 'coclass' identifier '{' interface_names '}' optional_semicolon
           {$_[3] => {
                "TYPE" => "COCLASS", 
               "PROPERTIES" => $_[1],
@@ -29,9 +29,9 @@ coclass: property_list 'coclass' identifier '{' interfaces '}' optional_semicolo
           }}
 ;
 
-interfaces:
+interface_names:
        #empty { {} }
-       | interfaces interface { push(@{$_[1]}, $_[2]); $_[1] }
+       | interface_names 'interface' identifier ';' { push(@{$_[1]}, $_[2]); $_[1] }
 ;
 
 interface: property_list 'interface' identifier base_interface '{' definitions '}' optional_semicolon
index 37c8a5a6873fa9d6756121a7a34f05573e393420..95e81c07ce049cffdf3054cfbdc9447ea7b1cfa9 100644 (file)
@@ -29,8 +29,8 @@ sub ReplaceInterfacePointers($)
        my $e = shift;
 
        foreach my $x (@{$e->{ELEMENTS}}) {
-               next unless typelist::hasType($x);
-               next unless typelist::getType($x)->{DATA}->{TYPE} eq "INTERFACE";
+               next unless (typelist::hasType($x->{TYPE}));
+               next unless typelist::getType($x->{TYPE})->{DATA}->{TYPE} eq "INTERFACE";
                
                $x->{TYPE} = "MInterfacePointer";
        }
@@ -40,9 +40,8 @@ sub ReplaceInterfacePointers($)
 sub ODL2IDL($)
 {
        my $odl = shift;
-       my @idl = @{$odl};
        
-       foreach my $x (@idl) {
+       foreach my $x (@{$odl}) {
                # Add [in] ORPCTHIS *this, [out] ORPCTHAT *that
                # for 'object' interfaces
                if (util::has_property($x, "object")) {
@@ -53,7 +52,7 @@ sub ODL2IDL($)
                }
        }
 
-       return \@idl;
+       return $odl;
 }
 
 1;
index 099cb0d74df0551b9fb00bb958172ec90367241b..855fbfce8f0d6312eda4439aee16713d1a2d81ad 100644 (file)
@@ -31,7 +31,7 @@ interface IUnknown
        /* Returns the interface with the specified IID 
           if implemented by this object */
        [local] WERROR QueryInterface([in] GUID *iid,
-          [out,iid_is(riid)] MInterfacePointer *data);
+          [out,iid_is(riid),ref] IUnknown **data);
 
        /*****************/
        /* Function 0x01 */
@@ -263,21 +263,22 @@ object,
        WERROR UnMarshalInterface();
 }
 
+[
+       uuid(DA23F6DB-6F45-466C-9EED-0B65286F2D78),
+       helpstring("ICoffeeMachine Interface"),
+       pointer_default(unique),
+       object
+] interface ICoffeeMachine : IUnknown
+{
+       [helpstring("method MakeCoffee")] WERROR MakeCoffee(BSTR *flavor);
+}
+
 [
 uuid(DB7C21F8-FE33-4C11-AEA5-CEB56F076FBB),
        helpstring("CoffeeMachine Class")
 ] coclass CoffeeMachine
 {
-       [
-       uuid(DA23F6DB-6F45-466C-9EED-0B65286F2D78),
-       helpstring("ICoffeeMachine Interface"),
-       pointer_default(unique)
-       ]
-
-       interface ICoffeeMachine : IUnknown
-       {
-               [helpstring("method MakeCoffee")] HRESULT MakeCoffee(BSTR *flavor);
-       }
+       interface ICoffeeMachine;
 }
 
 [