summaryrefslogtreecommitdiff
path: root/source4/build/pidl/idl.pm
diff options
context:
space:
mode:
Diffstat (limited to 'source4/build/pidl/idl.pm')
-rw-r--r--source4/build/pidl/idl.pm1215
1 files changed, 584 insertions, 631 deletions
diff --git a/source4/build/pidl/idl.pm b/source4/build/pidl/idl.pm
index e469c0fdc8..29e3cae9eb 100644
--- a/source4/build/pidl/idl.pm
+++ b/source4/build/pidl/idl.pm
@@ -500,88 +500,85 @@ sub new {
yystates =>
[
{#State 0
- ACTIONS => {
- "[" => 2
- },
+ DEFAULT => -1,
GOTOS => {
- 'idl_interface' => 1,
- 'idl' => 3,
- 'module_header' => 4
+ 'idl' => 1
}
},
{#State 1
- DEFAULT => -1
- },
- {#State 2
ACTIONS => {
- 'IDENTIFIER' => 5
+ '' => 2
},
- DEFAULT => -5,
+ DEFAULT => -44,
GOTOS => {
- 'module_params' => 7,
- 'identifier' => 6,
- 'module_param' => 8
+ 'interface' => 3,
+ 'property_list' => 4
}
},
+ {#State 2
+ DEFAULT => 0
+ },
{#State 3
+ DEFAULT => -2
+ },
+ {#State 4
ACTIONS => {
- '' => 9,
- "[" => 2
- },
- GOTOS => {
- 'idl_interface' => 10,
- 'module_header' => 4
+ "interface" => 6,
+ "[" => 5
}
},
- {#State 4
+ {#State 5
ACTIONS => {
- "interface" => 12
+ 'IDENTIFIER' => 7
},
GOTOS => {
- 'interface' => 11
+ 'identifier' => 8,
+ 'properties' => 10,
+ 'property' => 9
}
},
- {#State 5
- DEFAULT => -69
- },
{#State 6
ACTIONS => {
- "(" => 13
+ 'IDENTIFIER' => 7
+ },
+ GOTOS => {
+ 'identifier' => 11
}
},
{#State 7
- ACTIONS => {
- "," => 14,
- "]" => 15
- }
+ DEFAULT => -65
},
{#State 8
- DEFAULT => -6
+ ACTIONS => {
+ "(" => 12
+ },
+ DEFAULT => -48
},
{#State 9
- DEFAULT => 0
+ DEFAULT => -46
},
{#State 10
- DEFAULT => -2
+ ACTIONS => {
+ "," => 13,
+ "]" => 14
+ }
},
{#State 11
- DEFAULT => -3
- },
- {#State 12
ACTIONS => {
- 'IDENTIFIER' => 5
+ ":" => 15
},
+ DEFAULT => -4,
GOTOS => {
- 'identifier' => 16
+ 'base_interface' => 16
}
},
- {#State 13
+ {#State 12
ACTIONS => {
- 'IDENTIFIER' => 5,
+ 'IDENTIFIER' => 7,
'CONSTANT' => 23,
'TEXT' => 17
},
- DEFAULT => -56,
+ DEFAULT => -52,
GOTOS => {
'identifier' => 18,
'listtext' => 21,
@@ -590,97 +587,94 @@ sub new {
'constant' => 22
}
},
- {#State 14
+ {#State 13
ACTIONS => {
- 'IDENTIFIER' => 5
+ 'IDENTIFIER' => 7
},
GOTOS => {
- 'identifier' => 6,
- 'module_param' => 24
+ 'identifier' => 8,
+ 'property' => 24
}
},
+ {#State 14
+ DEFAULT => -45
+ },
{#State 15
- DEFAULT => -4
+ ACTIONS => {
+ 'IDENTIFIER' => 7
+ },
+ GOTOS => {
+ 'identifier' => 25
+ }
},
{#State 16
ACTIONS => {
- "{" => 25
+ "{" => 26
}
},
{#State 17
- DEFAULT => -71
+ DEFAULT => -67
},
{#State 18
- DEFAULT => -57
+ DEFAULT => -53
},
{#State 19
- DEFAULT => -59
+ DEFAULT => -55
},
{#State 20
ACTIONS => {
- "-" => 26,
- "+" => 27,
- "&" => 28,
- "/" => 29,
- "|" => 30,
- "(" => 31,
- "*" => 32,
- "." => 33,
- ">" => 34
+ "-" => 27,
+ "+" => 28,
+ "&" => 29,
+ "/" => 30,
+ "|" => 31,
+ "(" => 32,
+ "*" => 33,
+ "." => 34,
+ ">" => 35
},
- DEFAULT => -54
+ DEFAULT => -50
},
{#State 21
ACTIONS => {
- "," => 35,
- ")" => 36
+ "," => 36,
+ ")" => 37
}
},
{#State 22
- DEFAULT => -58
+ DEFAULT => -54
},
{#State 23
- DEFAULT => -70
+ DEFAULT => -66
},
{#State 24
- DEFAULT => -7
+ DEFAULT => -47
},
{#State 25
- ACTIONS => {
- "typedef" => 37,
- "const" => 43
- },
- DEFAULT => -48,
- GOTOS => {
- 'const' => 42,
- 'function' => 38,
- 'typedef' => 44,
- 'definitions' => 39,
- 'definition' => 41,
- 'property_list' => 40
- }
+ DEFAULT => -5
},
{#State 26
ACTIONS => {
- 'CONSTANT' => 23,
- 'TEXT' => 17,
- 'IDENTIFIER' => 5
+ "typedef" => 38,
+ "const" => 44
},
- DEFAULT => -56,
+ DEFAULT => -44,
GOTOS => {
- 'identifier' => 18,
- 'text' => 19,
- 'anytext' => 45,
- 'constant' => 22
+ 'const' => 43,
+ 'function' => 39,
+ 'typedef' => 45,
+ 'definitions' => 40,
+ 'definition' => 42,
+ 'property_list' => 41
}
},
{#State 27
ACTIONS => {
'CONSTANT' => 23,
'TEXT' => 17,
- 'IDENTIFIER' => 5
+ 'IDENTIFIER' => 7
},
- DEFAULT => -56,
+ DEFAULT => -52,
GOTOS => {
'identifier' => 18,
'text' => 19,
@@ -692,9 +686,9 @@ sub new {
ACTIONS => {
'CONSTANT' => 23,
'TEXT' => 17,
- 'IDENTIFIER' => 5
+ 'IDENTIFIER' => 7
},
- DEFAULT => -56,
+ DEFAULT => -52,
GOTOS => {
'identifier' => 18,
'text' => 19,
@@ -706,9 +700,9 @@ sub new {
ACTIONS => {
'CONSTANT' => 23,
'TEXT' => 17,
- 'IDENTIFIER' => 5
+ 'IDENTIFIER' => 7
},
- DEFAULT => -56,
+ DEFAULT => -52,
GOTOS => {
'identifier' => 18,
'text' => 19,
@@ -720,9 +714,9 @@ sub new {
ACTIONS => {
'CONSTANT' => 23,
'TEXT' => 17,
- 'IDENTIFIER' => 5
+ 'IDENTIFIER' => 7
},
- DEFAULT => -56,
+ DEFAULT => -52,
GOTOS => {
'identifier' => 18,
'text' => 19,
@@ -732,11 +726,11 @@ sub new {
},
{#State 31
ACTIONS => {
- 'IDENTIFIER' => 5,
'CONSTANT' => 23,
- 'TEXT' => 17
+ 'TEXT' => 17,
+ 'IDENTIFIER' => 7
},
- DEFAULT => -56,
+ DEFAULT => -52,
GOTOS => {
'identifier' => 18,
'text' => 19,
@@ -746,11 +740,11 @@ sub new {
},
{#State 32
ACTIONS => {
+ 'IDENTIFIER' => 7,
'CONSTANT' => 23,
- 'TEXT' => 17,
- 'IDENTIFIER' => 5
+ 'TEXT' => 17
},
- DEFAULT => -56,
+ DEFAULT => -52,
GOTOS => {
'identifier' => 18,
'text' => 19,
@@ -762,9 +756,9 @@ sub new {
ACTIONS => {
'CONSTANT' => 23,
'TEXT' => 17,
- 'IDENTIFIER' => 5
+ 'IDENTIFIER' => 7
},
- DEFAULT => -56,
+ DEFAULT => -52,
GOTOS => {
'identifier' => 18,
'text' => 19,
@@ -776,9 +770,9 @@ sub new {
ACTIONS => {
'CONSTANT' => 23,
'TEXT' => 17,
- 'IDENTIFIER' => 5
+ 'IDENTIFIER' => 7
},
- DEFAULT => -56,
+ DEFAULT => -52,
GOTOS => {
'identifier' => 18,
'text' => 19,
@@ -788,11 +782,11 @@ sub new {
},
{#State 35
ACTIONS => {
- 'IDENTIFIER' => 5,
'CONSTANT' => 23,
- 'TEXT' => 17
+ 'TEXT' => 17,
+ 'IDENTIFIER' => 7
},
- DEFAULT => -56,
+ DEFAULT => -52,
GOTOS => {
'identifier' => 18,
'text' => 19,
@@ -801,678 +795,621 @@ sub new {
}
},
{#State 36
- DEFAULT => -8
- },
- {#State 37
ACTIONS => {
- 'IDENTIFIER' => 5,
- "enum" => 55,
- 'void' => 56
+ 'IDENTIFIER' => 7,
+ 'CONSTANT' => 23,
+ 'TEXT' => 17
},
- DEFAULT => -48,
+ DEFAULT => -52,
GOTOS => {
- 'identifier' => 58,
- 'struct' => 59,
- 'enum' => 60,
- 'type' => 61,
- 'union' => 62,
- 'property_list' => 57
+ 'identifier' => 18,
+ 'text' => 19,
+ 'anytext' => 55,
+ 'constant' => 22
}
},
- {#State 38
- DEFAULT => -12
+ {#State 37
+ DEFAULT => -49
},
- {#State 39
+ {#State 38
ACTIONS => {
- "}" => 63,
- "typedef" => 37,
- "const" => 43
+ 'IDENTIFIER' => 7,
+ "enum" => 56,
+ 'void' => 57
},
- DEFAULT => -48,
+ DEFAULT => -44,
GOTOS => {
- 'const' => 42,
- 'function' => 38,
- 'typedef' => 44,
- 'definition' => 64,
- 'property_list' => 40
+ 'identifier' => 59,
+ 'struct' => 60,
+ 'enum' => 61,
+ 'type' => 62,
+ 'union' => 63,
+ 'property_list' => 58
}
},
+ {#State 39
+ DEFAULT => -8
+ },
{#State 40
ACTIONS => {
- 'IDENTIFIER' => 5,
- "enum" => 55,
- "[" => 65,
- 'void' => 56
+ "}" => 64,
+ "typedef" => 38,
+ "const" => 44
},
- DEFAULT => -48,
+ DEFAULT => -44,
GOTOS => {
- 'identifier' => 58,
- 'struct' => 59,
- 'enum' => 60,
- 'type' => 66,
- 'union' => 62,
- 'property_list' => 57
+ 'const' => 43,
+ 'function' => 39,
+ 'typedef' => 45,
+ 'definition' => 65,
+ 'property_list' => 41
}
},
{#State 41
- DEFAULT => -10
+ ACTIONS => {
+ 'IDENTIFIER' => 7,
+ "enum" => 56,
+ "[" => 5,
+ 'void' => 57
+ },
+ DEFAULT => -44,
+ GOTOS => {
+ 'identifier' => 59,
+ 'struct' => 60,
+ 'enum' => 61,
+ 'type' => 66,
+ 'union' => 63,
+ 'property_list' => 58
+ }
},
{#State 42
- DEFAULT => -13
+ DEFAULT => -6
},
{#State 43
+ DEFAULT => -9
+ },
+ {#State 44
ACTIONS => {
- 'IDENTIFIER' => 5
+ 'IDENTIFIER' => 7
},
GOTOS => {
'identifier' => 67
}
},
- {#State 44
- DEFAULT => -14
- },
{#State 45
- DEFAULT => -60
+ DEFAULT => -10
},
{#State 46
- DEFAULT => -67
+ DEFAULT => -56
},
{#State 47
- DEFAULT => -65
+ DEFAULT => -63
},
{#State 48
- DEFAULT => -66
+ DEFAULT => -61
},
{#State 49
- DEFAULT => -64
+ DEFAULT => -62
},
{#State 50
+ DEFAULT => -60
+ },
+ {#State 51
ACTIONS => {
- "-" => 26,
- "+" => 27,
- "&" => 28,
- "/" => 29,
- "(" => 31,
- "|" => 30,
- "*" => 32,
- "." => 33,
+ "-" => 27,
+ "+" => 28,
+ "&" => 29,
+ "/" => 30,
+ "(" => 32,
+ "|" => 31,
+ "*" => 33,
+ "." => 34,
")" => 68,
- ">" => 34
+ ">" => 35
}
},
- {#State 51
- DEFAULT => -62
- },
{#State 52
- DEFAULT => -61
+ DEFAULT => -58
},
{#State 53
- DEFAULT => -63
+ DEFAULT => -57
},
{#State 54
+ DEFAULT => -59
+ },
+ {#State 55
ACTIONS => {
- "-" => 26,
- "+" => 27,
- "&" => 28,
- "/" => 29,
- "(" => 31,
- "|" => 30,
- "*" => 32,
- "." => 33,
- ">" => 34
+ "-" => 27,
+ "+" => 28,
+ "&" => 29,
+ "/" => 30,
+ "(" => 32,
+ "|" => 31,
+ "*" => 33,
+ "." => 34,
+ ">" => 35
},
- DEFAULT => -55
+ DEFAULT => -51
},
- {#State 55
+ {#State 56
ACTIONS => {
"{" => 69
}
},
- {#State 56
- DEFAULT => -22
- },
{#State 57
+ DEFAULT => -18
+ },
+ {#State 58
ACTIONS => {
"union" => 70,
- "[" => 65,
+ "[" => 5,
"struct" => 71
}
},
- {#State 58
- DEFAULT => -21
- },
{#State 59
- DEFAULT => -18
+ DEFAULT => -17
},
{#State 60
- DEFAULT => -20
+ DEFAULT => -14
},
{#State 61
+ DEFAULT => -16
+ },
+ {#State 62
ACTIONS => {
- 'IDENTIFIER' => 5
+ 'IDENTIFIER' => 7
},
GOTOS => {
'identifier' => 72
}
},
- {#State 62
- DEFAULT => -19
- },
{#State 63
- DEFAULT => -9
+ DEFAULT => -15
},
{#State 64
- DEFAULT => -11
+ DEFAULT => -3
},
{#State 65
- ACTIONS => {
- 'IDENTIFIER' => 5
- },
- GOTOS => {
- 'identifier' => 74,
- 'property' => 75,
- 'properties' => 73
- }
+ DEFAULT => -7
},
{#State 66
ACTIONS => {
- 'IDENTIFIER' => 5
+ 'IDENTIFIER' => 7
},
GOTOS => {
- 'identifier' => 76
+ 'identifier' => 73
}
},
{#State 67
ACTIONS => {
- 'IDENTIFIER' => 5
+ 'IDENTIFIER' => 7
},
GOTOS => {
- 'identifier' => 77
+ 'identifier' => 74
}
},
{#State 68
ACTIONS => {
'CONSTANT' => 23,
'TEXT' => 17,
- 'IDENTIFIER' => 5
+ 'IDENTIFIER' => 7
},
- DEFAULT => -56,
+ DEFAULT => -52,
GOTOS => {
'identifier' => 18,
'text' => 19,
- 'anytext' => 78,
+ 'anytext' => 75,
'constant' => 22
}
},
{#State 69
ACTIONS => {
- 'IDENTIFIER' => 5
+ 'IDENTIFIER' => 7
},
GOTOS => {
- 'identifier' => 79,
- 'enum_element' => 80,
- 'enum_elements' => 81
+ 'identifier' => 76,
+ 'enum_element' => 77,
+ 'enum_elements' => 78
}
},
{#State 70
ACTIONS => {
- "{" => 82
+ "{" => 79
}
},
{#State 71
ACTIONS => {
- "{" => 83
+ "{" => 80
}
},
{#State 72
ACTIONS => {
- "[" => 85
+ "[" => 82
},
- DEFAULT => -45,
+ DEFAULT => -41,
GOTOS => {
- 'array_len' => 84
+ 'array_len' => 81
}
},
{#State 73
ACTIONS => {
- "," => 86,
- "]" => 87
+ "(" => 83
}
},
{#State 74
ACTIONS => {
- "(" => 88
- },
- DEFAULT => -52
+ "=" => 84
+ }
},
{#State 75
- DEFAULT => -50
+ DEFAULT => -64
},
{#State 76
ACTIONS => {
- "(" => 89
- }
+ "=" => 85
+ },
+ DEFAULT => -22
},
{#State 77
- ACTIONS => {
- "=" => 90
- }
+ DEFAULT => -20
},
{#State 78
- DEFAULT => -68
- },
- {#State 79
- ACTIONS => {
- "=" => 91
- },
- DEFAULT => -26
- },
- {#State 80
- DEFAULT => -24
- },
- {#State 81
ACTIONS => {
- "}" => 92,
- "," => 93
+ "}" => 86,
+ "," => 87
}
},
- {#State 82
+ {#State 79
ACTIONS => {
- "[" => 96
+ "[" => 90
},
GOTOS => {
- 'union_elements' => 94,
- 'union_element' => 95
+ 'union_elements' => 88,
+ 'union_element' => 89
}
},
- {#State 83
- DEFAULT => -39,
+ {#State 80
+ DEFAULT => -35,
GOTOS => {
- 'element_list1' => 97
+ 'element_list1' => 91
}
},
- {#State 84
+ {#State 81
ACTIONS => {
- ";" => 98
+ ";" => 92
}
},
- {#State 85
+ {#State 82
ACTIONS => {
- 'IDENTIFIER' => 5,
+ 'IDENTIFIER' => 7,
'CONSTANT' => 23,
'TEXT' => 17,
- "]" => 100
+ "]" => 94
},
- DEFAULT => -56,
+ DEFAULT => -52,
GOTOS => {
'identifier' => 18,
'text' => 19,
- 'anytext' => 99,
+ 'anytext' => 93,
'constant' => 22
}
},
- {#State 86
- ACTIONS => {
- 'IDENTIFIER' => 5
- },
- GOTOS => {
- 'identifier' => 74,
- 'property' => 101
- }
- },
- {#State 87
- DEFAULT => -49
- },
- {#State 88
- ACTIONS => {
- 'IDENTIFIER' => 5,
- 'CONSTANT' => 23,
- 'TEXT' => 17
- },
- DEFAULT => -56,
- GOTOS => {
- 'identifier' => 18,
- 'text' => 19,
- 'anytext' => 102,
- 'constant' => 22
- }
- },
- {#State 89
+ {#State 83
ACTIONS => {
- "void" => 105,
- "," => -41,
- ")" => -41
+ "void" => 97,
+ "," => -37,
+ ")" => -37
},
- DEFAULT => -48,
+ DEFAULT => -44,
GOTOS => {
- 'base_element' => 103,
- 'element_list2' => 106,
- 'property_list' => 104
+ 'base_element' => 95,
+ 'element_list2' => 98,
+ 'property_list' => 96
}
},
- {#State 90
+ {#State 84
ACTIONS => {
- 'IDENTIFIER' => 5,
+ 'IDENTIFIER' => 7,
'CONSTANT' => 23,
'TEXT' => 17
},
- DEFAULT => -56,
+ DEFAULT => -52,
GOTOS => {
'identifier' => 18,
'text' => 19,
- 'anytext' => 107,
+ 'anytext' => 99,
'constant' => 22
}
},
- {#State 91
+ {#State 85
ACTIONS => {
- 'IDENTIFIER' => 5,
+ 'IDENTIFIER' => 7,
'CONSTANT' => 23,
'TEXT' => 17
},
- DEFAULT => -56,
+ DEFAULT => -52,
GOTOS => {
'identifier' => 18,
'text' => 19,
- 'anytext' => 108,
+ 'anytext' => 100,
'constant' => 22
}
},
- {#State 92
- DEFAULT => -23
+ {#State 86
+ DEFAULT => -19
},
- {#State 93
+ {#State 87
ACTIONS => {
- 'IDENTIFIER' => 5
+ 'IDENTIFIER' => 7
},
GOTOS => {
- 'identifier' => 79,
- 'enum_element' => 109
+ 'identifier' => 76,
+ 'enum_element' => 101
}
},
- {#State 94
+ {#State 88
ACTIONS => {
- "}" => 110,
- "[" => 96
+ "}" => 102,
+ "[" => 90
},
GOTOS => {
- 'union_element' => 111
+ 'union_element' => 103
}
},
- {#State 95
- DEFAULT => -30
+ {#State 89
+ DEFAULT => -26
},
- {#State 96
+ {#State 90
ACTIONS => {
- "case" => 112,
- "default" => 113
+ "case" => 104,
+ "default" => 105
}
},
- {#State 97
+ {#State 91
ACTIONS => {
- "}" => 114
+ "}" => 106
},
- DEFAULT => -48,
+ DEFAULT => -44,
GOTOS => {
- 'base_element' => 115,
- 'property_list' => 104
+ 'base_element' => 107,
+ 'property_list' => 96
}
},
- {#State 98
- DEFAULT => -17
+ {#State 92
+ DEFAULT => -13
},
- {#State 99
+ {#State 93
ACTIONS => {
- "-" => 26,
- "+" => 27,
- "&" => 28,
- "/" => 29,
- "(" => 31,
- "|" => 30,
- "*" => 32,
- "." => 33,
- "]" => 116,
- ">" => 34
+ "-" => 27,
+ "+" => 28,
+ "&" => 29,
+ "/" => 30,
+ "(" => 32,
+ "|" => 31,
+ "*" => 33,
+ "." => 34,
+ "]" => 108,
+ ">" => 35
}
},
- {#State 100
- DEFAULT => -46
- },
- {#State 101
- DEFAULT => -51
- },
- {#State 102
- ACTIONS => {
- "-" => 26,
- "+" => 27,
- "&" => 28,
- "/" => 29,
- "(" => 31,
- "|" => 30,
- "*" => 32,
- "." => 33,
- ")" => 117,
- ">" => 34
- }
+ {#State 94
+ DEFAULT => -42
},
- {#State 103
- DEFAULT => -43
+ {#State 95
+ DEFAULT => -39
},
- {#State 104
+ {#State 96
ACTIONS => {
- 'IDENTIFIER' => 5,
- "enum" => 55,
- "[" => 65,
- 'void' => 56
+ 'IDENTIFIER' => 7,
+ "enum" => 56,
+ "[" => 5,
+ 'void' => 57
},
- DEFAULT => -48,
+ DEFAULT => -44,
GOTOS => {
- 'identifier' => 58,
- 'struct' => 59,
- 'enum' => 60,
- 'type' => 118,
- 'union' => 62,
- 'property_list' => 57
+ 'identifier' => 59,
+ 'struct' => 60,
+ 'enum' => 61,
+ 'type' => 109,
+ 'union' => 63,
+ 'property_list' => 58
}
},
- {#State 105
- DEFAULT => -42
+ {#State 97
+ DEFAULT => -38
},
- {#State 106
+ {#State 98
ACTIONS => {
- "," => 119,
- ")" => 120
+ "," => 110,
+ ")" => 111
}
},
- {#State 107
+ {#State 99
ACTIONS => {
- "-" => 26,
- "|" => 30,
- "(" => 31,
- "*" => 32,
- ";" => 121,
- "+" => 27,
- "&" => 28,
- "/" => 29,
- "." => 33,
- ">" => 34
+ "-" => 27,
+ "|" => 31,
+ "(" => 32,
+ "*" => 33,
+ ";" => 112,
+ "+" => 28,
+ "&" => 29,
+ "/" => 30,
+ "." => 34,
+ ">" => 35
}
},
- {#State 108
+ {#State 100
ACTIONS => {
- "-" => 26,
- "+" => 27,
- "&" => 28,
- "/" => 29,
- "(" => 31,
- "|" => 30,
- "*" => 32,
- "." => 33,
- ">" => 34
+ "-" => 27,
+ "+" => 28,
+ "&" => 29,
+ "/" => 30,
+ "(" => 32,
+ "|" => 31,
+ "*" => 33,
+ "." => 34,
+ ">" => 35
},
- DEFAULT => -27
+ DEFAULT => -23
},
- {#State 109
- DEFAULT => -25
+ {#State 101
+ DEFAULT => -21
},
- {#State 110
- DEFAULT => -29
+ {#State 102
+ DEFAULT => -25
},
- {#State 111
- DEFAULT => -31
+ {#State 103
+ DEFAULT => -27
},
- {#State 112
+ {#State 104
ACTIONS => {
- "(" => 122
+ "(" => 113
}
},
- {#State 113
+ {#State 105
ACTIONS => {
- "]" => 123
+ "]" => 114
}
},
- {#State 114
- DEFAULT => -28
+ {#State 106
+ DEFAULT => -24
},
- {#State 115
+ {#State 107
ACTIONS => {
- ";" => 124
+ ";" => 115
}
},
- {#State 116
- DEFAULT => -47
- },
- {#State 117
- DEFAULT => -53
+ {#State 108
+ DEFAULT => -43
},
- {#State 118
- DEFAULT => -37,
+ {#State 109
+ DEFAULT => -33,
GOTOS => {
- 'pointers' => 125
+ 'pointers' => 116
}
},
- {#State 119
- DEFAULT => -48,
+ {#State 110
+ DEFAULT => -44,
GOTOS => {
- 'base_element' => 126,
- 'property_list' => 104
+ 'base_element' => 117,
+ 'property_list' => 96
}
},
- {#State 120
+ {#State 111
ACTIONS => {
- ";" => 127
+ ";" => 118
}
},
- {#State 121
- DEFAULT => -15
+ {#State 112
+ DEFAULT => -11
},
- {#State 122
+ {#State 113
ACTIONS => {
- 'IDENTIFIER' => 5,
+ 'IDENTIFIER' => 7,
'CONSTANT' => 23,
'TEXT' => 17
},
- DEFAULT => -56,
+ DEFAULT => -52,
GOTOS => {
'identifier' => 18,
'text' => 19,
- 'anytext' => 128,
+ 'anytext' => 119,
'constant' => 22
}
},
- {#State 123
+ {#State 114
ACTIONS => {
- ";" => 129
+ ";" => 120
},
- DEFAULT => -48,
+ DEFAULT => -44,
GOTOS => {
- 'base_element' => 130,
- 'property_list' => 104
+ 'base_element' => 121,
+ 'property_list' => 96
}
},
- {#State 124
- DEFAULT => -40
+ {#State 115
+ DEFAULT => -36
},
- {#State 125
+ {#State 116
ACTIONS => {
- 'IDENTIFIER' => 5,
- "*" => 132
+ 'IDENTIFIER' => 7,
+ "*" => 123
},
GOTOS => {
- 'identifier' => 131
+ 'identifier' => 122
}
},
- {#State 126
- DEFAULT => -44
+ {#State 117
+ DEFAULT => -40
},
- {#State 127
- DEFAULT => -16
+ {#State 118
+ DEFAULT => -12
},
- {#State 128
+ {#State 119
ACTIONS => {
- "-" => 26,
- "+" => 27,
- "&" => 28,
- "/" => 29,
- "(" => 31,
- "|" => 30,
- "*" => 32,
- "." => 33,
- ")" => 133,
- ">" => 34
+ "-" => 27,
+ "+" => 28,
+ "&" => 29,
+ "/" => 30,
+ "(" => 32,
+ "|" => 31,
+ "*" => 33,
+ "." => 34,
+ ")" => 124,
+ ">" => 35
}
},
- {#State 129
- DEFAULT => -35
+ {#State 120
+ DEFAULT => -31
},
- {#State 130
+ {#State 121
ACTIONS => {
- ";" => 134
+ ";" => 125
}
},
- {#State 131
+ {#State 122
ACTIONS => {
- "[" => 85
+ "[" => 82
},
- DEFAULT => -45,
+ DEFAULT => -41,
GOTOS => {
- 'array_len' => 135
+ 'array_len' => 126
}
},
- {#State 132
- DEFAULT => -38
+ {#State 123
+ DEFAULT => -34
},
- {#State 133
+ {#State 124
ACTIONS => {
- "]" => 136
+ "]" => 127
}
},
- {#State 134
- DEFAULT => -34
+ {#State 125
+ DEFAULT => -30
},
- {#State 135
- DEFAULT => -36
+ {#State 126
+ DEFAULT => -32
},
- {#State 136
+ {#State 127
ACTIONS => {
- ";" => 137
+ ";" => 128
},
- DEFAULT => -48,
+ DEFAULT => -44,
GOTOS => {
- 'base_element' => 138,
- 'property_list' => 104
+ 'base_element' => 129,
+ 'property_list' => 96
}
},
- {#State 137
- DEFAULT => -33
+ {#State 128
+ DEFAULT => -29
},
- {#State 138
+ {#State 129
ACTIONS => {
- ";" => 139
+ ";" => 130
}
},
- {#State 139
- DEFAULT => -32
+ {#State 130
+ DEFAULT => -28
}
],
yyrules =>
@@ -1481,85 +1418,62 @@ sub new {
'$start', 2, undef
],
[#Rule 1
- 'idl', 1, undef
+ 'idl', 0, undef
],
[#Rule 2
'idl', 2,
sub
-#line 18 "build/pidl/idl.yp"
-{ util::FlattenArray([$_[1],$_[2]]) }
+#line 19 "build/pidl/idl.yp"
+{
+ push(@{$_[1]}, $_[2]); $_[1]
+ }
],
[#Rule 3
- 'idl_interface', 2,
-sub
-#line 21 "build/pidl/idl.yp"
-{ [ $_[1], $_[2] ] }
- ],
- [#Rule 4
- 'module_header', 3,
+ 'interface', 7,
sub
#line 25 "build/pidl/idl.yp"
-{{
- "TYPE" => "MODULEHEADER",
- "PROPERTIES" => util::FlattenHash($_[2])
+{$_[3] => {
+ "TYPE" => "INTERFACE",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "BASE" => $_[4],
+ "DATA" => $_[6],
}}
],
- [#Rule 5
- 'module_params', 0, undef
- ],
- [#Rule 6
- 'module_params', 1,
-sub
-#line 33 "build/pidl/idl.yp"
-{ [ $_[1] ] }
- ],
- [#Rule 7
- 'module_params', 3,
-sub
-#line 34 "build/pidl/idl.yp"
-{ push(@{$_[1]}, $_[3]); $_[1] }
- ],
- [#Rule 8
- 'module_param', 4,
-sub
-#line 38 "build/pidl/idl.yp"
-{ { "$_[1]" => "$_[3]" } }
+ [#Rule 4
+ 'base_interface', 0, undef
],
- [#Rule 9
- 'interface', 5,
+ [#Rule 5
+ 'base_interface', 2,
sub
-#line 42 "build/pidl/idl.yp"
-{{
- "TYPE" => "INTERFACE",
- "NAME" => $_[2],
- "DATA" => $_[4]
- }}
+#line 36 "build/pidl/idl.yp"
+{ $_[2] }
],
- [#Rule 10
+ [#Rule 6
'definitions', 1,
sub
-#line 50 "build/pidl/idl.yp"
+#line 40 "build/pidl/idl.yp"
{ [ $_[1] ] }
],
- [#Rule 11
+ [#Rule 7
'definitions', 2,
sub
-#line 51 "build/pidl/idl.yp"
+#line 41 "build/pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
- [#Rule 12
+ [#Rule 8
'definition', 1, undef
],
- [#Rule 13
+ [#Rule 9
'definition', 1, undef
],
- [#Rule 14
+ [#Rule 10
'definition', 1, undef
],
- [#Rule 15
+ [#Rule 11
'const', 6,
sub
-#line 59 "build/pidl/idl.yp"
+#line 49 "build/pidl/idl.yp"
{{
"TYPE" => "CONST",
"DTYPE" => $_[2],
@@ -1567,10 +1481,10 @@ sub
"VALUE" => $_[5]
}}
],
- [#Rule 16
+ [#Rule 12
'function', 7,
sub
-#line 69 "build/pidl/idl.yp"
+#line 59 "build/pidl/idl.yp"
{{
"TYPE" => "FUNCTION",
"NAME" => $_[3],
@@ -1579,10 +1493,10 @@ sub
"DATA" => $_[5]
}}
],
- [#Rule 17
+ [#Rule 13
'typedef', 5,
sub
-#line 79 "build/pidl/idl.yp"
+#line 69 "build/pidl/idl.yp"
{{
"TYPE" => "TYPEDEF",
"NAME" => $_[3],
@@ -1590,128 +1504,128 @@ sub
"ARRAY_LEN" => $_[4]
}}
],
- [#Rule 18
+ [#Rule 14
'type', 1, undef
],
- [#Rule 19
+ [#Rule 15
'type', 1, undef
],
- [#Rule 20
+ [#Rule 16
'type', 1, undef
],
- [#Rule 21
+ [#Rule 17
'type', 1, undef
],
- [#Rule 22
+ [#Rule 18
'type', 1,
sub
-#line 88 "build/pidl/idl.yp"
+#line 78 "build/pidl/idl.yp"
{ "void" }
],
- [#Rule 23
+ [#Rule 19
'enum', 4,
sub
-#line 93 "build/pidl/idl.yp"
+#line 83 "build/pidl/idl.yp"
{{
"TYPE" => "ENUM",
"ELEMENTS" => $_[3]
}}
],
- [#Rule 24
+ [#Rule 20
'enum_elements', 1,
sub
-#line 100 "build/pidl/idl.yp"
+#line 90 "build/pidl/idl.yp"
{ [ $_[1] ] }
],
- [#Rule 25
+ [#Rule 21
'enum_elements', 3,
sub
-#line 101 "build/pidl/idl.yp"
+#line 91 "build/pidl/idl.yp"
{ push(@{$_[1]}, $_[3]); $_[1] }
],
- [#Rule 26
+ [#Rule 22
'enum_element', 1, undef
],
- [#Rule 27
+ [#Rule 23
'enum_element', 3,
sub
-#line 105 "build/pidl/idl.yp"
+#line 95 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 28
+ [#Rule 24
'struct', 5,
sub
-#line 109 "build/pidl/idl.yp"
+#line 99 "build/pidl/idl.yp"
{{
"TYPE" => "STRUCT",
"PROPERTIES" => $_[1],
"ELEMENTS" => $_[4]
}}
],
- [#Rule 29
+ [#Rule 25
'union', 5,
sub
-#line 117 "build/pidl/idl.yp"
+#line 107 "build/pidl/idl.yp"
{{
"TYPE" => "UNION",
"PROPERTIES" => $_[1],
"DATA" => $_[4]
}}
],
- [#Rule 30
+ [#Rule 26
'union_elements', 1,
sub
-#line 125 "build/pidl/idl.yp"
+#line 115 "build/pidl/idl.yp"
{ [ $_[1] ] }
],
- [#Rule 31
+ [#Rule 27
'union_elements', 2,
sub
-#line 126 "build/pidl/idl.yp"
+#line 116 "build/pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
- [#Rule 32
+ [#Rule 28
'union_element', 8,
sub
-#line 131 "build/pidl/idl.yp"
+#line 121 "build/pidl/idl.yp"
{{
"TYPE" => "UNION_ELEMENT",
"CASE" => $_[4],
"DATA" => $_[7]
}}
],
- [#Rule 33
+ [#Rule 29
'union_element', 7,
sub
-#line 137 "build/pidl/idl.yp"
+#line 127 "build/pidl/idl.yp"
{{
"TYPE" => "EMPTY",
"CASE" => $_[4],
}}
],
- [#Rule 34
+ [#Rule 30
'union_element', 5,
sub
-#line 142 "build/pidl/idl.yp"
+#line 132 "build/pidl/idl.yp"
{{
"TYPE" => "UNION_ELEMENT",
"CASE" => "default",
"DATA" => $_[4]
}}
],
- [#Rule 35
+ [#Rule 31
'union_element', 4,
sub
-#line 148 "build/pidl/idl.yp"
+#line 138 "build/pidl/idl.yp"
{{
"TYPE" => "EMPTY",
"CASE" => "default",
}}
],
- [#Rule 36
+ [#Rule 32
'base_element', 5,
sub
-#line 155 "build/pidl/idl.yp"
+#line 145 "build/pidl/idl.yp"
{{
"NAME" => $_[4],
"TYPE" => $_[2],
@@ -1720,181 +1634,181 @@ sub
"ARRAY_LEN" => $_[5]
}}
],
- [#Rule 37
+ [#Rule 33
'pointers', 0,
sub
-#line 167 "build/pidl/idl.yp"
+#line 157 "build/pidl/idl.yp"
{ 0 }
],
- [#Rule 38
+ [#Rule 34
'pointers', 2,
sub
-#line 168 "build/pidl/idl.yp"
+#line 158 "build/pidl/idl.yp"
{ $_[1]+1 }
],
- [#Rule 39
+ [#Rule 35
'element_list1', 0, undef
],
- [#Rule 40
+ [#Rule 36
'element_list1', 3,
sub
-#line 175 "build/pidl/idl.yp"
+#line 165 "build/pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
- [#Rule 41
+ [#Rule 37
'element_list2', 0, undef
],
- [#Rule 42
+ [#Rule 38
'element_list2', 1, undef
],
- [#Rule 43
+ [#Rule 39
'element_list2', 1,
sub
-#line 181 "build/pidl/idl.yp"
+#line 171 "build/pidl/idl.yp"
{ [ $_[1] ] }
],
- [#Rule 44
+ [#Rule 40
'element_list2', 3,
sub
-#line 182 "build/pidl/idl.yp"
+#line 172 "build/pidl/idl.yp"
{ push(@{$_[1]}, $_[3]); $_[1] }
],
- [#Rule 45
+ [#Rule 41
'array_len', 0, undef
],
- [#Rule 46
+ [#Rule 42
'array_len', 2,
sub
-#line 187 "build/pidl/idl.yp"
+#line 177 "build/pidl/idl.yp"
{ "*" }
],
- [#Rule 47
+ [#Rule 43
'array_len', 3,
sub
-#line 188 "build/pidl/idl.yp"
+#line 178 "build/pidl/idl.yp"
{ "$_[2]" }
],
- [#Rule 48
+ [#Rule 44
'property_list', 0, undef
],
- [#Rule 49
+ [#Rule 45
'property_list', 4,
sub
-#line 194 "build/pidl/idl.yp"
+#line 184 "build/pidl/idl.yp"
{ util::FlattenHash([$_[1],$_[3]]); }
],
- [#Rule 50
+ [#Rule 46
'properties', 1,
sub
-#line 197 "build/pidl/idl.yp"
+#line 187 "build/pidl/idl.yp"
{ $_[1] }
],
- [#Rule 51
+ [#Rule 47
'properties', 3,
sub
-#line 198 "build/pidl/idl.yp"
+#line 188 "build/pidl/idl.yp"
{ util::FlattenHash([$_[1], $_[3]]); }
],
- [#Rule 52
+ [#Rule 48
'property', 1,
sub
-#line 201 "build/pidl/idl.yp"
+#line 191 "build/pidl/idl.yp"
{{ "$_[1]" => "1" }}
],
- [#Rule 53
+ [#Rule 49
'property', 4,
sub
-#line 202 "build/pidl/idl.yp"
+#line 192 "build/pidl/idl.yp"
{{ "$_[1]" => "$_[3]" }}
],
- [#Rule 54
+ [#Rule 50
'listtext', 1, undef
],
- [#Rule 55
+ [#Rule 51
'listtext', 3,
sub
-#line 207 "build/pidl/idl.yp"
+#line 197 "build/pidl/idl.yp"
{ "$_[1] $_[3]" }
],
- [#Rule 56
+ [#Rule 52
'anytext', 0,
sub
-#line 211 "build/pidl/idl.yp"
+#line 201 "build/pidl/idl.yp"
{ "" }
],
- [#Rule 57
+ [#Rule 53
'anytext', 1, undef
],
- [#Rule 58
+ [#Rule 54
'anytext', 1, undef
],
- [#Rule 59
+ [#Rule 55
'anytext', 1, undef
],
- [#Rule 60
+ [#Rule 56
'anytext', 3,
sub
-#line 213 "build/pidl/idl.yp"
+#line 203 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 61
+ [#Rule 57
'anytext', 3,
sub
-#line 214 "build/pidl/idl.yp"
+#line 204 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 62
+ [#Rule 58
'anytext', 3,
sub
-#line 215 "build/pidl/idl.yp"
+#line 205 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 63
+ [#Rule 59
'anytext', 3,
sub
-#line 216 "build/pidl/idl.yp"
+#line 206 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 64
+ [#Rule 60
'anytext', 3,
sub
-#line 217 "build/pidl/idl.yp"
+#line 207 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 65
+ [#Rule 61
'anytext', 3,
sub
-#line 218 "build/pidl/idl.yp"
+#line 208 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 66
+ [#Rule 62
'anytext', 3,
sub
-#line 219 "build/pidl/idl.yp"
+#line 209 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 67
+ [#Rule 63
'anytext', 3,
sub
-#line 220 "build/pidl/idl.yp"
+#line 210 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 68
+ [#Rule 64
'anytext', 5,
sub
-#line 221 "build/pidl/idl.yp"
+#line 211 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]$_[4]$_[5]" }
],
- [#Rule 69
+ [#Rule 65
'identifier', 1, undef
],
- [#Rule 70
+ [#Rule 66
'constant', 1, undef
],
- [#Rule 71
+ [#Rule 67
'text', 1,
sub
-#line 230 "build/pidl/idl.yp"
+#line 220 "build/pidl/idl.yp"
{ "\"$_[1]\"" }
]
],
@@ -1902,7 +1816,7 @@ sub
bless($self,$class);
}
-#line 236 "build/pidl/idl.yp"
+#line 226 "build/pidl/idl.yp"
use util;
@@ -1988,10 +1902,49 @@ sub parse_idl($$)
my $data = `$cpp -xc $filename`;
$/ = $saved_delim;
- $self->YYData->{INPUT} = $data;
- $self->YYData->{LINE} = 0;
- $self->YYData->{LAST_TOKEN} = "NONE";
- return $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error );
+ $self->YYData->{INPUT} = $data;
+ $self->YYData->{LINE} = 0;
+ $self->YYData->{LAST_TOKEN} = "NONE";
+
+ my $idl = $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error );
+
+ foreach my $x (@{$idl}) {
+ # Add [in] ORPCTHIS *this, [out] ORPCTHAT *that
+ # for 'object' interfaces
+ if (defined($x->{PROPERTIES}->{object})) {
+ foreach my $e (@{$x->{DATA}}) {
+ if($e->{TYPE} eq "FUNCTION") {
+ unshift(@{$e->{DATA}},
+ { 'NAME' => 'ORPCthis',
+ 'POINTERS' => 1,
+ 'PROPERTIES' => { 'in' => '1' },
+ 'TYPE' => 'ORPCTHIS'
+ });
+ unshift(@{$e->{DATA}},
+ { 'NAME' => 'ORPCthat',
+ 'POINTERS' => 1,
+ 'PROPERTIES' => { 'out' => '1' },
+ 'TYPE' => 'ORPCTHAT'
+ });
+ }
+ }
+ }
+
+ # Do the inheritance
+ if (defined($x->{BASE}) and $x->{BASE} ne "") {
+ my $parent = util::get_interface($idl, $x->{BASE});
+
+ if(not defined($parent)) {
+ die("No such parent interface " . $x->{BASE});
+ }
+
+ @{$x->{INHERITED_DATA}} = (@{$parent->{INHERITED_DATA}}, @{$x->{DATA}});
+ } else {
+ $x->{INHERITED_DATA} = $x->{DATA};
+ }
+ }
+
+ return $idl;
}
1;