summaryrefslogtreecommitdiff
path: root/pidl/lib/Parse/Pidl/IDL.pm
diff options
context:
space:
mode:
Diffstat (limited to 'pidl/lib/Parse/Pidl/IDL.pm')
-rw-r--r--pidl/lib/Parse/Pidl/IDL.pm2137
1 files changed, 1023 insertions, 1114 deletions
diff --git a/pidl/lib/Parse/Pidl/IDL.pm b/pidl/lib/Parse/Pidl/IDL.pm
index 1a3c59d35c..06d54fb4b5 100644
--- a/pidl/lib/Parse/Pidl/IDL.pm
+++ b/pidl/lib/Parse/Pidl/IDL.pm
@@ -38,7 +38,7 @@ sub new {
"import" => 7,
"include" => 13
},
- DEFAULT => -89,
+ DEFAULT => -85,
GOTOS => {
'cpp_quote' => 11,
'importlib' => 10,
@@ -124,7 +124,7 @@ sub new {
}
},
{#State 16
- DEFAULT => -120
+ DEFAULT => -116
},
{#State 17
DEFAULT => -11
@@ -184,7 +184,7 @@ sub new {
}
},
{#State 26
- DEFAULT => -116
+ DEFAULT => -112
},
{#State 27
ACTIONS => {
@@ -210,10 +210,10 @@ sub new {
ACTIONS => {
"(" => 41
},
- DEFAULT => -93
+ DEFAULT => -89
},
{#State 31
- DEFAULT => -91
+ DEFAULT => -87
},
{#State 32
DEFAULT => -8
@@ -256,7 +256,7 @@ sub new {
}
},
{#State 40
- DEFAULT => -90
+ DEFAULT => -86
},
{#State 41
ACTIONS => {
@@ -264,7 +264,7 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
'text' => 51,
@@ -284,73 +284,72 @@ sub new {
},
{#State 44
ACTIONS => {
- "const" => 64
+ "const" => 63
},
- DEFAULT => -89,
+ DEFAULT => -85,
GOTOS => {
'typedecl' => 54,
'function' => 55,
- 'pipe' => 56,
- 'definitions' => 58,
- 'bitmap' => 57,
- 'definition' => 61,
- 'property_list' => 60,
- 'usertype' => 59,
- 'const' => 63,
- 'struct' => 62,
- 'typedef' => 66,
- 'enum' => 65,
- 'union' => 67
+ 'definitions' => 57,
+ 'bitmap' => 56,
+ 'definition' => 60,
+ 'property_list' => 59,
+ 'usertype' => 58,
+ 'const' => 62,
+ 'struct' => 61,
+ 'typedef' => 65,
+ 'enum' => 64,
+ 'union' => 66
}
},
{#State 45
- DEFAULT => -92
+ DEFAULT => -88
},
{#State 46
ACTIONS => {
- "-" => 69,
- ":" => 68,
- "<" => 71,
- "+" => 73,
- "~" => 72,
- "*" => 80,
- "?" => 70,
- "{" => 74,
- "&" => 75,
- "/" => 76,
- "=" => 77,
- "(" => 78,
- "|" => 79,
- "." => 81,
- ">" => 82
+ "-" => 68,
+ ":" => 67,
+ "<" => 70,
+ "+" => 72,
+ "~" => 71,
+ "*" => 79,
+ "?" => 69,
+ "{" => 73,
+ "&" => 74,
+ "/" => 75,
+ "=" => 76,
+ "(" => 77,
+ "|" => 78,
+ "." => 80,
+ ">" => 81
},
- DEFAULT => -95
+ DEFAULT => -91
},
{#State 47
- DEFAULT => -99
+ DEFAULT => -95
},
{#State 48
- DEFAULT => -119
+ DEFAULT => -115
},
{#State 49
ACTIONS => {
- "," => 83,
- ")" => 84
+ "," => 82,
+ ")" => 83
}
},
{#State 50
- DEFAULT => -98
+ DEFAULT => -94
},
{#State 51
- DEFAULT => -100
+ DEFAULT => -96
},
{#State 52
ACTIONS => {
- ";" => 86
+ ";" => 85
},
- DEFAULT => -121,
+ DEFAULT => -117,
GOTOS => {
- 'optional_semicolon' => 85
+ 'optional_semicolon' => 84
}
},
{#State 53
@@ -358,7 +357,7 @@ sub new {
'IDENTIFIER' => 26
},
GOTOS => {
- 'identifier' => 87
+ 'identifier' => 86
}
},
{#State 54
@@ -368,1390 +367,1336 @@ sub new {
DEFAULT => -22
},
{#State 56
- DEFAULT => -34
- },
- {#State 57
DEFAULT => -33
},
- {#State 58
+ {#State 57
ACTIONS => {
- "}" => 88,
- "const" => 64
+ "}" => 87,
+ "const" => 63
},
- DEFAULT => -89,
+ DEFAULT => -85,
GOTOS => {
'typedecl' => 54,
'function' => 55,
- 'pipe' => 56,
- 'bitmap' => 57,
- 'definition' => 89,
- 'property_list' => 60,
- 'usertype' => 59,
- 'const' => 63,
- 'struct' => 62,
- 'typedef' => 66,
- 'enum' => 65,
- 'union' => 67
+ 'bitmap' => 56,
+ 'definition' => 88,
+ 'property_list' => 59,
+ 'usertype' => 58,
+ 'struct' => 61,
+ 'const' => 62,
+ 'typedef' => 65,
+ 'enum' => 64,
+ 'union' => 66
}
},
- {#State 59
+ {#State 58
ACTIONS => {
- ";" => 90
+ ";" => 89
}
},
- {#State 60
+ {#State 59
ACTIONS => {
- "typedef" => 91,
+ "typedef" => 90,
'IDENTIFIER' => 26,
- "signed" => 100,
- "union" => 92,
- "enum" => 101,
- "bitmap" => 102,
- 'void' => 93,
- "pipe" => 103,
- "unsigned" => 104,
+ "signed" => 98,
+ "union" => 91,
+ "enum" => 100,
+ "bitmap" => 101,
+ 'void' => 92,
+ "unsigned" => 102,
"[" => 20,
- "struct" => 98
+ "struct" => 97
},
GOTOS => {
'existingtype' => 99,
- 'pipe' => 56,
- 'bitmap' => 57,
- 'usertype' => 95,
- 'property_list' => 94,
- 'identifier' => 96,
- 'struct' => 62,
- 'enum' => 65,
- 'type' => 105,
- 'union' => 67,
- 'sign' => 97
+ 'bitmap' => 56,
+ 'usertype' => 94,
+ 'property_list' => 93,
+ 'identifier' => 95,
+ 'struct' => 61,
+ 'enum' => 64,
+ 'type' => 103,
+ 'union' => 66,
+ 'sign' => 96
}
},
- {#State 61
+ {#State 60
DEFAULT => -20
},
- {#State 62
+ {#State 61
DEFAULT => -30
},
- {#State 63
+ {#State 62
DEFAULT => -23
},
- {#State 64
+ {#State 63
ACTIONS => {
'IDENTIFIER' => 26
},
GOTOS => {
- 'identifier' => 106
+ 'identifier' => 104
}
},
- {#State 65
+ {#State 64
DEFAULT => -32
},
- {#State 66
+ {#State 65
DEFAULT => -24
},
- {#State 67
+ {#State 66
DEFAULT => -31
},
- {#State 68
+ {#State 67
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 107,
+ 'anytext' => 105,
'text' => 51,
'constant' => 47
}
},
- {#State 69
+ {#State 68
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 108,
+ 'anytext' => 106,
'text' => 51,
'constant' => 47
}
},
- {#State 70
+ {#State 69
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 109,
+ 'anytext' => 107,
'text' => 51,
'constant' => 47
}
},
- {#State 71
+ {#State 70
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 110,
+ 'anytext' => 108,
'text' => 51,
'constant' => 47
}
},
- {#State 72
+ {#State 71
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 111,
+ 'anytext' => 109,
'text' => 51,
'constant' => 47
}
},
- {#State 73
+ {#State 72
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 112,
+ 'anytext' => 110,
'text' => 51,
'constant' => 47
}
},
- {#State 74
+ {#State 73
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
'anytext' => 46,
'text' => 51,
'constant' => 47,
- 'commalisttext' => 113
+ 'commalisttext' => 111
}
},
- {#State 75
+ {#State 74
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 114,
+ 'anytext' => 112,
'text' => 51,
'constant' => 47
}
},
- {#State 76
+ {#State 75
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 115,
+ 'anytext' => 113,
'text' => 51,
'constant' => 47
}
},
- {#State 77
+ {#State 76
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 116,
+ 'anytext' => 114,
'text' => 51,
'constant' => 47
}
},
- {#State 78
+ {#State 77
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
'anytext' => 46,
'text' => 51,
'constant' => 47,
- 'commalisttext' => 117
+ 'commalisttext' => 115
}
},
- {#State 79
+ {#State 78
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 118,
+ 'anytext' => 116,
'text' => 51,
'constant' => 47
}
},
- {#State 80
+ {#State 79
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 119,
+ 'anytext' => 117,
'text' => 51,
'constant' => 47
}
},
- {#State 81
+ {#State 80
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 120,
+ 'anytext' => 118,
'text' => 51,
'constant' => 47
}
},
- {#State 82
+ {#State 81
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 121,
+ 'anytext' => 119,
'text' => 51,
'constant' => 47
}
},
- {#State 83
+ {#State 82
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 122,
+ 'anytext' => 120,
'text' => 51,
'constant' => 47
}
},
+ {#State 83
+ DEFAULT => -90
+ },
{#State 84
- DEFAULT => -94
+ DEFAULT => -13
},
{#State 85
- DEFAULT => -13
+ DEFAULT => -118
},
{#State 86
- DEFAULT => -122
- },
- {#State 87
ACTIONS => {
- ";" => 123
+ ";" => 121
}
},
- {#State 88
+ {#State 87
ACTIONS => {
- ";" => 86
+ ";" => 85
},
- DEFAULT => -121,
+ DEFAULT => -117,
GOTOS => {
- 'optional_semicolon' => 124
+ 'optional_semicolon' => 122
}
},
- {#State 89
+ {#State 88
DEFAULT => -21
},
- {#State 90
- DEFAULT => -35
+ {#State 89
+ DEFAULT => -34
},
- {#State 91
+ {#State 90
ACTIONS => {
'IDENTIFIER' => 26,
- "signed" => 100,
- 'void' => 93,
- "unsigned" => 104
+ "signed" => 98,
+ 'void' => 92,
+ "unsigned" => 102
},
- DEFAULT => -89,
+ DEFAULT => -85,
GOTOS => {
'existingtype' => 99,
- 'pipe' => 56,
- 'bitmap' => 57,
- 'usertype' => 95,
- 'property_list' => 94,
- 'identifier' => 96,
- 'struct' => 62,
- 'enum' => 65,
- 'type' => 125,
- 'union' => 67,
- 'sign' => 97
+ 'bitmap' => 56,
+ 'usertype' => 94,
+ 'property_list' => 93,
+ 'identifier' => 95,
+ 'struct' => 61,
+ 'enum' => 64,
+ 'type' => 123,
+ 'union' => 66,
+ 'sign' => 96
}
},
- {#State 92
+ {#State 91
ACTIONS => {
- 'IDENTIFIER' => 126
+ 'IDENTIFIER' => 124
},
- DEFAULT => -117,
+ DEFAULT => -114,
GOTOS => {
- 'optional_identifier' => 127
+ 'optional_identifier' => 125
}
},
- {#State 93
- DEFAULT => -42
+ {#State 92
+ DEFAULT => -41
},
- {#State 94
+ {#State 93
ACTIONS => {
- "pipe" => 103,
- "union" => 92,
- "enum" => 101,
- "bitmap" => 102,
+ "union" => 91,
+ "enum" => 100,
+ "bitmap" => 101,
"[" => 20,
- "struct" => 98
+ "struct" => 97
}
},
+ {#State 94
+ DEFAULT => -39
+ },
{#State 95
- DEFAULT => -40
+ DEFAULT => -38
},
{#State 96
- DEFAULT => -39
- },
- {#State 97
ACTIONS => {
'IDENTIFIER' => 26
},
GOTOS => {
- 'identifier' => 128
+ 'identifier' => 126
}
},
- {#State 98
+ {#State 97
ACTIONS => {
- 'IDENTIFIER' => 126
+ 'IDENTIFIER' => 124
},
- DEFAULT => -117,
+ DEFAULT => -114,
GOTOS => {
- 'optional_identifier' => 129
+ 'optional_identifier' => 127
}
},
+ {#State 98
+ DEFAULT => -35
+ },
{#State 99
- DEFAULT => -41
+ DEFAULT => -40
},
{#State 100
- DEFAULT => -36
- },
- {#State 101
ACTIONS => {
- 'IDENTIFIER' => 126
+ 'IDENTIFIER' => 124
},
- DEFAULT => -117,
+ DEFAULT => -114,
GOTOS => {
- 'optional_identifier' => 130
+ 'optional_identifier' => 128
}
},
- {#State 102
+ {#State 101
ACTIONS => {
- 'IDENTIFIER' => 126
+ 'IDENTIFIER' => 124
},
- DEFAULT => -117,
+ DEFAULT => -114,
GOTOS => {
- 'optional_identifier' => 131
+ 'optional_identifier' => 129
}
},
+ {#State 102
+ DEFAULT => -36
+ },
{#State 103
ACTIONS => {
- 'IDENTIFIER' => 26,
- "signed" => 100,
- 'void' => 93,
- "unsigned" => 104
+ 'IDENTIFIER' => 26
},
- DEFAULT => -89,
GOTOS => {
- 'existingtype' => 99,
- 'pipe' => 56,
- 'bitmap' => 57,
- 'usertype' => 95,
- 'property_list' => 94,
- 'identifier' => 96,
- 'struct' => 62,
- 'enum' => 65,
- 'type' => 132,
- 'union' => 67,
- 'sign' => 97
+ 'identifier' => 130
}
},
{#State 104
- DEFAULT => -37
+ DEFAULT => -74,
+ GOTOS => {
+ 'pointers' => 131
+ }
},
{#State 105
ACTIONS => {
- 'IDENTIFIER' => 26
+ "-" => 68,
+ ":" => 67,
+ "<" => 70,
+ "+" => 72,
+ "~" => 71,
+ "*" => 79,
+ "?" => 69,
+ "{" => 73,
+ "&" => 74,
+ "/" => 75,
+ "=" => 76,
+ "(" => 77,
+ "|" => 78,
+ "." => 80,
+ ">" => 81
},
- GOTOS => {
- 'identifier' => 133
- }
+ DEFAULT => -106
},
{#State 106
- DEFAULT => -75,
- GOTOS => {
- 'pointers' => 134
- }
+ ACTIONS => {
+ ":" => 67,
+ "<" => 70,
+ "~" => 71,
+ "?" => 69,
+ "{" => 73,
+ "=" => 76
+ },
+ DEFAULT => -97
},
{#State 107
ACTIONS => {
- "-" => 69,
- ":" => 68,
- "<" => 71,
- "+" => 73,
- "~" => 72,
- "*" => 80,
- "?" => 70,
- "{" => 74,
- "&" => 75,
- "/" => 76,
- "=" => 77,
- "(" => 78,
- "|" => 79,
- "." => 81,
- ">" => 82
+ "-" => 68,
+ ":" => 67,
+ "<" => 70,
+ "+" => 72,
+ "~" => 71,
+ "*" => 79,
+ "?" => 69,
+ "{" => 73,
+ "&" => 74,
+ "/" => 75,
+ "=" => 76,
+ "(" => 77,
+ "|" => 78,
+ "." => 80,
+ ">" => 81
},
- DEFAULT => -110
+ DEFAULT => -105
},
{#State 108
ACTIONS => {
- ":" => 68,
- "<" => 71,
- "~" => 72,
- "?" => 70,
- "{" => 74,
- "=" => 77
+ "-" => 68,
+ ":" => 67,
+ "<" => 70,
+ "+" => 72,
+ "~" => 71,
+ "*" => 79,
+ "?" => 69,
+ "{" => 73,
+ "&" => 74,
+ "/" => 75,
+ "=" => 76,
+ "(" => 77,
+ "|" => 78,
+ "." => 80,
+ ">" => 81
},
DEFAULT => -101
},
{#State 109
ACTIONS => {
- "-" => 69,
- ":" => 68,
- "<" => 71,
- "+" => 73,
- "~" => 72,
- "*" => 80,
- "?" => 70,
- "{" => 74,
- "&" => 75,
- "/" => 76,
- "=" => 77,
- "(" => 78,
- "|" => 79,
- "." => 81,
- ">" => 82
+ "-" => 68,
+ ":" => 67,
+ "<" => 70,
+ "+" => 72,
+ "~" => 71,
+ "*" => 79,
+ "?" => 69,
+ "{" => 73,
+ "&" => 74,
+ "/" => 75,
+ "=" => 76,
+ "(" => 77,
+ "|" => 78,
+ "." => 80,
+ ">" => 81
},
DEFAULT => -109
},
{#State 110
ACTIONS => {
- "-" => 69,
- ":" => 68,
- "<" => 71,
- "+" => 73,
- "~" => 72,
- "*" => 80,
- "?" => 70,
- "{" => 74,
- "&" => 75,
- "/" => 76,
- "=" => 77,
- "(" => 78,
- "|" => 79,
- "." => 81,
- ">" => 82
+ ":" => 67,
+ "<" => 70,
+ "~" => 71,
+ "?" => 69,
+ "{" => 73,
+ "=" => 76
},
- DEFAULT => -105
+ DEFAULT => -108
},
{#State 111
ACTIONS => {
- "-" => 69,
- ":" => 68,
- "<" => 71,
- "+" => 73,
- "~" => 72,
- "*" => 80,
- "?" => 70,
- "{" => 74,
- "&" => 75,
- "/" => 76,
- "=" => 77,
- "(" => 78,
- "|" => 79,
- "." => 81,
- ">" => 82
- },
- DEFAULT => -113
+ "}" => 132,
+ "," => 82
+ }
},
{#State 112
ACTIONS => {
- ":" => 68,
- "<" => 71,
- "~" => 72,
- "?" => 70,
- "{" => 74,
- "=" => 77
+ ":" => 67,
+ "<" => 70,
+ "~" => 71,
+ "?" => 69,
+ "{" => 73,
+ "=" => 76
},
- DEFAULT => -112
+ DEFAULT => -103
},
{#State 113
ACTIONS => {
- "}" => 135,
- "," => 83
- }
+ ":" => 67,
+ "<" => 70,
+ "~" => 71,
+ "?" => 69,
+ "{" => 73,
+ "=" => 76
+ },
+ DEFAULT => -104
},
{#State 114
ACTIONS => {
- ":" => 68,
- "<" => 71,
- "~" => 72,
- "?" => 70,
- "{" => 74,
- "=" => 77
+ "-" => 68,
+ ":" => 67,
+ "<" => 70,
+ "+" => 72,
+ "~" => 71,
+ "*" => 79,
+ "?" => 69,
+ "{" => 73,
+ "&" => 74,
+ "/" => 75,
+ "=" => 76,
+ "(" => 77,
+ "|" => 78,
+ "." => 80,
+ ">" => 81
},
DEFAULT => -107
},
{#State 115
ACTIONS => {
- ":" => 68,
- "<" => 71,
- "~" => 72,
- "?" => 70,
- "{" => 74,
- "=" => 77
- },
- DEFAULT => -108
+ "," => 82,
+ ")" => 133
+ }
},
{#State 116
ACTIONS => {
- "-" => 69,
- ":" => 68,
- "<" => 71,
- "+" => 73,
- "~" => 72,
- "*" => 80,
- "?" => 70,
- "{" => 74,
- "&" => 75,
- "/" => 76,
- "=" => 77,
- "(" => 78,
- "|" => 79,
- "." => 81,
- ">" => 82
+ ":" => 67,
+ "<" => 70,
+ "~" => 71,
+ "?" => 69,
+ "{" => 73,
+ "=" => 76
},
- DEFAULT => -111
+ DEFAULT => -102
},
{#State 117
ACTIONS => {
- "," => 83,
- ")" => 136
- }
+ ":" => 67,
+ "<" => 70,
+ "~" => 71,
+ "?" => 69,
+ "{" => 73,
+ "=" => 76
+ },
+ DEFAULT => -99
},
{#State 118
ACTIONS => {
- ":" => 68,
- "<" => 71,
- "~" => 72,
- "?" => 70,
- "{" => 74,
- "=" => 77
+ ":" => 67,
+ "<" => 70,
+ "~" => 71,
+ "?" => 69,
+ "{" => 73,
+ "=" => 76
},
- DEFAULT => -106
+ DEFAULT => -98
},
{#State 119
ACTIONS => {
- ":" => 68,
- "<" => 71,
- "~" => 72,
- "?" => 70,
- "{" => 74,
- "=" => 77
+ ":" => 67,
+ "<" => 70,
+ "~" => 71,
+ "?" => 69,
+ "{" => 73,
+ "=" => 76
},
- DEFAULT => -103
+ DEFAULT => -100
},
{#State 120
ACTIONS => {
- ":" => 68,
- "<" => 71,
- "~" => 72,
- "?" => 70,
- "{" => 74,
- "=" => 77
+ "-" => 68,
+ ":" => 67,
+ "<" => 70,
+ "+" => 72,
+ "~" => 71,
+ "*" => 79,
+ "?" => 69,
+ "{" => 73,
+ "&" => 74,
+ "/" => 75,
+ "=" => 76,
+ "(" => 77,
+ "|" => 78,
+ "." => 80,
+ ">" => 81
},
- DEFAULT => -102
+ DEFAULT => -92
},
{#State 121
- ACTIONS => {
- ":" => 68,
- "<" => 71,
- "~" => 72,
- "?" => 70,
- "{" => 74,
- "=" => 77
- },
- DEFAULT => -104
+ DEFAULT => -15
},
{#State 122
- ACTIONS => {
- "-" => 69,
- ":" => 68,
- "<" => 71,
- "+" => 73,
- "~" => 72,
- "*" => 80,
- "?" => 70,
- "{" => 74,
- "&" => 75,
- "/" => 76,
- "=" => 77,
- "(" => 78,
- "|" => 79,
- "." => 81,
- ">" => 82
- },
- DEFAULT => -96
+ DEFAULT => -16
},
{#State 123
- DEFAULT => -15
+ ACTIONS => {
+ 'IDENTIFIER' => 26
+ },
+ GOTOS => {
+ 'identifier' => 134
+ }
},
{#State 124
- DEFAULT => -16
+ DEFAULT => -113
},
{#State 125
ACTIONS => {
- 'IDENTIFIER' => 26
+ "{" => 136
},
+ DEFAULT => -70,
GOTOS => {
- 'identifier' => 137
+ 'union_body' => 137,
+ 'opt_union_body' => 135
}
},
{#State 126
- DEFAULT => -118
+ DEFAULT => -37
},
{#State 127
ACTIONS => {
"{" => 139
},
- DEFAULT => -71,
+ DEFAULT => -60,
GOTOS => {
- 'union_body' => 140,
- 'opt_union_body' => 138
+ 'struct_body' => 138,
+ 'opt_struct_body' => 140
}
},
{#State 128
- DEFAULT => -38
- },
- {#State 129
ACTIONS => {
- "{" => 142
+ "{" => 141
},
- DEFAULT => -61,
+ DEFAULT => -43,
GOTOS => {
- 'struct_body' => 141,
- 'opt_struct_body' => 143
+ 'opt_enum_body' => 143,
+ 'enum_body' => 142
}
},
- {#State 130
- ACTIONS => {
- "{" => 144
- },
- DEFAULT => -44,
- GOTOS => {
- 'opt_enum_body' => 146,
- 'enum_body' => 145
- }
- },
- {#State 131
+ {#State 129
ACTIONS => {
- "{" => 148
+ "{" => 145
},
- DEFAULT => -52,
+ DEFAULT => -51,
GOTOS => {
- 'bitmap_body' => 149,
- 'opt_bitmap_body' => 147
+ 'bitmap_body' => 146,
+ 'opt_bitmap_body' => 144
}
},
- {#State 132
- DEFAULT => -77
- },
- {#State 133
+ {#State 130
ACTIONS => {
- "(" => 150
+ "(" => 147
}
},
- {#State 134
+ {#State 131
ACTIONS => {
'IDENTIFIER' => 26,
- "*" => 152
+ "*" => 149
},
GOTOS => {
- 'identifier' => 151
+ 'identifier' => 148
}
},
- {#State 135
+ {#State 132
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 153,
+ 'anytext' => 150,
'text' => 51,
'constant' => 47
}
},
- {#State 136
+ {#State 133
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 154,
+ 'anytext' => 151,
'text' => 51,
'constant' => 47
}
},
- {#State 137
+ {#State 134
ACTIONS => {
- "[" => 155
+ "[" => 152
},
- DEFAULT => -86,
+ DEFAULT => -82,
GOTOS => {
- 'array_len' => 156
+ 'array_len' => 153
}
},
- {#State 138
- DEFAULT => -73
+ {#State 135
+ DEFAULT => -72
},
- {#State 139
- DEFAULT => -68,
+ {#State 136
+ DEFAULT => -67,
GOTOS => {
- 'union_elements' => 157
+ 'union_elements' => 154
}
},
- {#State 140
- DEFAULT => -72
+ {#State 137
+ DEFAULT => -71
},
- {#State 141
- DEFAULT => -62
+ {#State 138
+ DEFAULT => -61
},
- {#State 142
- DEFAULT => -78,
+ {#State 139
+ DEFAULT => -76,
GOTOS => {
- 'element_list1' => 158
+ 'element_list1' => 155
}
},
- {#State 143
- DEFAULT => -63
+ {#State 140
+ DEFAULT => -62
},
- {#State 144
+ {#State 141
ACTIONS => {
'IDENTIFIER' => 26
},
GOTOS => {
- 'identifier' => 159,
- 'enum_element' => 160,
- 'enum_elements' => 161
+ 'identifier' => 156,
+ 'enum_element' => 157,
+ 'enum_elements' => 158
}
},
- {#State 145
- DEFAULT => -45
+ {#State 142
+ DEFAULT => -44
},
- {#State 146
- DEFAULT => -46
+ {#State 143
+ DEFAULT => -45
},
- {#State 147
- DEFAULT => -54
+ {#State 144
+ DEFAULT => -53
},
- {#State 148
+ {#State 145
ACTIONS => {
'IDENTIFIER' => 26
},
- DEFAULT => -57,
+ DEFAULT => -56,
GOTOS => {
- 'identifier' => 164,
- 'bitmap_element' => 163,
- 'bitmap_elements' => 162,
- 'opt_bitmap_elements' => 165
+ 'identifier' => 161,
+ 'bitmap_element' => 160,
+ 'bitmap_elements' => 159,
+ 'opt_bitmap_elements' => 162
}
},
- {#State 149
- DEFAULT => -53
+ {#State 146
+ DEFAULT => -52
},
- {#State 150
+ {#State 147
ACTIONS => {
- "," => -82,
- "void" => 169,
- "const" => 167,
- ")" => -82
+ "," => -78,
+ "void" => 166,
+ ")" => -78
},
- DEFAULT => -80,
+ DEFAULT => -85,
GOTOS => {
- 'optional_const' => 166,
- 'element_list2' => 168
+ 'base_element' => 163,
+ 'element_list2' => 165,
+ 'property_list' => 164
}
},
- {#State 151
+ {#State 148
ACTIONS => {
- "[" => 155,
- "=" => 171
+ "[" => 152,
+ "=" => 168
},
GOTOS => {
- 'array_len' => 170
+ 'array_len' => 167
}
},
- {#State 152
- DEFAULT => -76
+ {#State 149
+ DEFAULT => -75
},
- {#State 153
+ {#State 150
ACTIONS => {
- "-" => 69,
- ":" => 68,
- "<" => 71,
- "+" => 73,
- "~" => 72,
- "*" => 80,
- "?" => 70,
- "{" => 74,
- "&" => 75,
- "/" => 76,
- "=" => 77,
- "(" => 78,
- "|" => 79,
- "." => 81,
- ">" => 82
+ "-" => 68,
+ ":" => 67,
+ "<" => 70,
+ "+" => 72,
+ "~" => 71,
+ "*" => 79,
+ "?" => 69,
+ "{" => 73,
+ "&" => 74,
+ "/" => 75,
+ "=" => 76,
+ "(" => 77,
+ "|" => 78,
+ "." => 80,
+ ">" => 81
},
- DEFAULT => -115
+ DEFAULT => -111
},
- {#State 154
+ {#State 151
ACTIONS => {
- ":" => 68,
- "<" => 71,
- "~" => 72,
- "?" => 70,
- "{" => 74,
- "=" => 77
+ ":" => 67,
+ "<" => 70,
+ "~" => 71,
+ "?" => 69,
+ "{" => 73,
+ "=" => 76
},
- DEFAULT => -114
+ DEFAULT => -110
},
- {#State 155
+ {#State 152
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
- "]" => 172,
+ "]" => 169,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 173,
+ 'anytext' => 170,
'text' => 51,
'constant' => 47
}
},
- {#State 156
+ {#State 153
ACTIONS => {
- ";" => 174
+ ";" => 171
}
},
- {#State 157
+ {#State 154
ACTIONS => {
- "}" => 175
+ "}" => 172
},
- DEFAULT => -89,
+ DEFAULT => -85,
GOTOS => {
- 'optional_base_element' => 177,
- 'property_list' => 176
+ 'optional_base_element' => 174,
+ 'property_list' => 173
}
},
- {#State 158
+ {#State 155
ACTIONS => {
- "}" => 178
+ "}" => 175
},
- DEFAULT => -89,
+ DEFAULT => -85,
GOTOS => {
- 'base_element' => 179,
- 'property_list' => 180
+ 'base_element' => 176,
+ 'property_list' => 164
+ }
+ },
+ {#State 156
+ ACTIONS => {
+ "=" => 177
+ },
+ DEFAULT => -48
+ },
+ {#State 157
+ DEFAULT => -46
+ },
+ {#State 158
+ ACTIONS => {
+ "}" => 178,
+ "," => 179
}
},
{#State 159
ACTIONS => {
- "=" => 181
+ "," => 180
},
- DEFAULT => -49
+ DEFAULT => -57
},
{#State 160
- DEFAULT => -47
+ DEFAULT => -54
},
{#State 161
ACTIONS => {
- "}" => 182,
- "," => 183
+ "=" => 181
}
},
{#State 162
ACTIONS => {
- "," => 184
- },
- DEFAULT => -58
+ "}" => 182
+ }
},
{#State 163
- DEFAULT => -55
+ DEFAULT => -80
},
{#State 164
ACTIONS => {
- "=" => 185
+ 'IDENTIFIER' => 26,
+ "signed" => 98,
+ 'void' => 92,
+ "unsigned" => 102,
+ "[" => 20
+ },
+ DEFAULT => -85,
+ GOTOS => {
+ 'existingtype' => 99,
+ 'bitmap' => 56,
+ 'usertype' => 94,
+ 'property_list' => 93,
+ 'identifier' => 95,
+ 'struct' => 61,
+ 'enum' => 64,
+ 'type' => 183,
+ 'union' => 66,
+ 'sign' => 96
}
},
{#State 165
ACTIONS => {
- "}" => 186
+ "," => 184,
+ ")" => 185
}
},
{#State 166
- DEFAULT => -89,
- GOTOS => {
- 'base_element' => 187,
- 'property_list' => 180
- }
+ DEFAULT => -79
},
{#State 167
- DEFAULT => -81
- },
- {#State 168
- ACTIONS => {
- "," => 188,
- ")" => 189
- }
- },
- {#State 169
- DEFAULT => -83
- },
- {#State 170
ACTIONS => {
- "=" => 190
+ "=" => 186
}
},
- {#State 171
+ {#State 168
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 191,
+ 'anytext' => 187,
'text' => 51,
'constant' => 47
}
},
- {#State 172
+ {#State 169
ACTIONS => {
- "[" => 155
+ "[" => 152
},
- DEFAULT => -86,
+ DEFAULT => -82,
GOTOS => {
- 'array_len' => 192
+ 'array_len' => 188
}
},
- {#State 173
+ {#State 170
ACTIONS => {
- "-" => 69,
- ":" => 68,
- "?" => 70,
- "<" => 71,
- "+" => 73,
- "~" => 72,
- "&" => 75,
- "{" => 74,
- "/" => 76,
- "=" => 77,
- "|" => 79,
- "(" => 78,
- "*" => 80,
- "." => 81,
- "]" => 193,
- ">" => 82
+ "-" => 68,
+ ":" => 67,
+ "?" => 69,
+ "<" => 70,
+ "+" => 72,
+ "~" => 71,
+ "&" => 74,
+ "{" => 73,
+ "/" => 75,
+ "=" => 76,
+ "|" => 78,
+ "(" => 77,
+ "*" => 79,
+ "." => 80,
+ "]" => 189,
+ ">" => 81
}
},
- {#State 174
+ {#State 171
DEFAULT => -29
},
- {#State 175
- DEFAULT => -70
+ {#State 172
+ DEFAULT => -69
},
- {#State 176
+ {#State 173
ACTIONS => {
"[" => 20
},
- DEFAULT => -89,
+ DEFAULT => -85,
GOTOS => {
- 'base_or_empty' => 194,
- 'base_element' => 195,
- 'empty_element' => 196,
- 'property_list' => 197
+ 'base_or_empty' => 190,
+ 'base_element' => 191,
+ 'empty_element' => 192,
+ 'property_list' => 193
}
},
- {#State 177
- DEFAULT => -69
- },
- {#State 178
- DEFAULT => -60
+ {#State 174
+ DEFAULT => -68
},
- {#State 179
- ACTIONS => {
- ";" => 198
- }
+ {#State 175
+ DEFAULT => -59
},
- {#State 180
+ {#State 176
ACTIONS => {
- 'IDENTIFIER' => 26,
- "signed" => 100,
- 'void' => 93,
- "unsigned" => 104,
- "[" => 20
- },
- DEFAULT => -89,
- GOTOS => {
- 'existingtype' => 99,
- 'pipe' => 56,
- 'bitmap' => 57,
- 'usertype' => 95,
- 'property_list' => 94,
- 'identifier' => 96,
- 'struct' => 62,
- 'enum' => 65,
- 'type' => 199,
- 'union' => 67,
- 'sign' => 97
+ ";" => 194
}
},
- {#State 181
+ {#State 177
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 200,
+ 'anytext' => 195,
'text' => 51,
'constant' => 47
}
},
- {#State 182
- DEFAULT => -43
+ {#State 178
+ DEFAULT => -42
},
- {#State 183
+ {#State 179
ACTIONS => {
'IDENTIFIER' => 26
},
GOTOS => {
- 'identifier' => 159,
- 'enum_element' => 201
+ 'identifier' => 156,
+ 'enum_element' => 196
}
},
- {#State 184
+ {#State 180
ACTIONS => {
'IDENTIFIER' => 26
},
GOTOS => {
- 'identifier' => 164,
- 'bitmap_element' => 202
+ 'identifier' => 161,
+ 'bitmap_element' => 197
}
},
- {#State 185
+ {#State 181
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 203,
+ 'anytext' => 198,
'text' => 51,
'constant' => 47
}
},
- {#State 186
- DEFAULT => -51
+ {#State 182
+ DEFAULT => -50
},
- {#State 187
- DEFAULT => -84
+ {#State 183
+ DEFAULT => -74,
+ GOTOS => {
+ 'pointers' => 199
+ }
},
- {#State 188
- ACTIONS => {
- "const" => 167
- },
- DEFAULT => -80,
+ {#State 184
+ DEFAULT => -85,
GOTOS => {
- 'optional_const' => 204
+ 'base_element' => 200,
+ 'property_list' => 164
}
},
- {#State 189
+ {#State 185
ACTIONS => {
- ";" => 205
+ ";" => 201
}
},
- {#State 190
+ {#State 186
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -97,
+ DEFAULT => -93,
GOTOS => {
'identifier' => 50,
- 'anytext' => 206,
+ 'anytext' => 202,
'text' => 51,
'constant' => 47
}
},
- {#State 191
+ {#State 187
ACTIONS => {
- "-" => 69,
- ":" => 68,
- "?" => 70,
- "<" => 71,
- ";" => 207,
- "+" => 73,
- "~" => 72,
- "&" => 75,
- "{" => 74,
- "/" => 76,
- "=" => 77,
- "|" => 79,
- "(" => 78,
- "*" => 80,
- "." => 81,
- ">" => 82
+ "-" => 68,
+ ":" => 67,
+ "?" => 69,
+ "<" => 70,
+ ";" => 203,
+ "+" => 72,
+ "~" => 71,
+ "&" => 74,
+ "{" => 73,
+ "/" => 75,
+ "=" => 76,
+ "|" => 78,
+ "(" => 77,
+ "*" => 79,
+ "." => 80,
+ ">" => 81
}
},
- {#State 192
- DEFAULT => -87
+ {#State 188
+ DEFAULT => -83
},
- {#State 193
+ {#State 189
ACTIONS => {
- "[" => 155
+ "[" => 152
},
- DEFAULT => -86,
+ DEFAULT => -82,
GOTOS => {
- 'array_len' => 208
+ 'array_len' => 204
}
},
- {#State 194
- DEFAULT => -67
+ {#State 190
+ DEFAULT => -66
},
- {#State 195
+ {#State 191
ACTIONS => {
- ";" => 209
+ ";" => 205
}
},
- {#State 196
- DEFAULT => -66
+ {#State 192
+ DEFAULT => -65
},
- {#State 197
+ {#State 193
ACTIONS => {
'IDENTIFIER' => 26,
- "signed" => 100,
- ";" => 210,
- 'void' => 93,
- "unsigned" => 104,
+ "signed" => 98,
+ ";" => 206,
+ 'void' => 92,
+ "unsigned" => 102,
"[" => 20
},
- DEFAULT => -89,
+ DEFAULT => -85,
GOTOS => {
'existingtype' => 99,
- 'pipe' => 56,
- 'bitmap' => 57,
- 'usertype' => 95,
- 'property_list' => 94,
- 'identifier' => 96,
- 'struct' => 62,
- 'enum' => 65,
- 'type' => 199,
- 'union' => 67,
- 'sign' => 97
+ 'bitmap' => 56,
+ 'usertype' => 94,
+ 'property_list' => 93,
+ 'identifier' => 95,
+ 'struct' => 61,
+ 'enum' => 64,
+ 'type' => 183,
+ 'union' => 66,
+ 'sign' => 96
}
},
- {#State 198
- DEFAULT => -79
- },
- {#State 199
- DEFAULT => -75,
- GOTOS => {
- 'pointers' => 211
- }
+ {#State 194
+ DEFAULT => -77
},
- {#State 200
+ {#State 195
ACTIONS => {
- "-" => 69,
- ":" => 68,
- "<" => 71,
- "+" => 73,
- "~" => 72,
- "*" => 80,
- "?" => 70,
- "{" => 74,
- "&" => 75,
- "/" => 76,
- "=" => 77,
- "(" => 78,
- "|" => 79,
- "." => 81,
- ">" => 82
+ "-" => 68,
+ ":" => 67,
+ "<" => 70,
+ "+" => 72,
+ "~" => 71,
+ "*" => 79,
+ "?" => 69,
+ "{" => 73,
+ "&" => 74,
+ "/" => 75,
+ "=" => 76,
+ "(" => 77,
+ "|" => 78,
+ "." => 80,
+ ">" => 81
},
- DEFAULT => -50
+ DEFAULT => -49
},
- {#State 201
- DEFAULT => -48
+ {#State 196
+ DEFAULT => -47
},
- {#State 202
- DEFAULT => -56
+ {#State 197
+ DEFAULT => -55
},
- {#State 203
+ {#State 198
ACTIONS => {
- "-" => 69,
- ":" => 68,
- "<" => 71,
- "+" => 73,
- "~" => 72,
- "*" => 80,
- "?" => 70,
- "{" => 74,
- "&" => 75,
- "/" => 76,
- "=" => 77,
- "(" => 78,
- "|" => 79,
- "." => 81,
- ">" => 82
+ "-" => 68,
+ ":" => 67,
+ "<" => 70,
+ "+" => 72,
+ "~" => 71,
+ "*" => 79,
+ "?" => 69,
+ "{" => 73,
+ "&" => 74,
+ "/" => 75,
+ "=" => 76,
+ "(" => 77,
+ "|" => 78,
+ "." => 80,
+ ">" => 81
},
- DEFAULT => -59
+ DEFAULT => -58
},
- {#State 204
- DEFAULT => -89,
+ {#State 199
+ ACTIONS => {
+ 'IDENTIFIER' => 26,
+ "*" => 149
+ },
GOTOS => {
- 'base_element' => 212,
- 'property_list' => 180
+ 'identifier' => 207
}
},
- {#State 205
+ {#State 200
+ DEFAULT => -81
+ },
+ {#State 201
DEFAULT => -28
},
- {#State 206
+ {#State 202
ACTIONS => {
- "-" => 69,
- ":" => 68,
- "?" => 70,
- "<" => 71,
- ";" => 213,
- "+" => 73,
- "~" => 72,
- "&" => 75,
- "{" => 74,
- "/" => 76,
- "=" => 77,
- "|" => 79,
- "(" => 78,
- "*" => 80,
- "." => 81,
- ">" => 82
+ "-" => 68,
+ ":" => 67,
+ "?" => 69,
+ "<" => 70,
+ ";" => 208,
+ "+" => 72,
+ "~" => 71,
+ "&" => 74,
+ "{" => 73,
+ "/" => 75,
+ "=" => 76,
+ "|" => 78,
+ "(" => 77,
+ "*" => 79,
+ "." => 80,
+ ">" => 81
}
},
- {#State 207
+ {#State 203
DEFAULT => -26
},
- {#State 208
- DEFAULT => -88
- },
- {#State 209
- DEFAULT => -65
+ {#State 204
+ DEFAULT => -84
},
- {#State 210
+ {#State 205
DEFAULT => -64
},
- {#State 211
+ {#State 206
+ DEFAULT => -63
+ },
+ {#State 207
ACTIONS => {
- 'IDENTIFIER' => 26,
- "*" => 152
+ "[" => 152
},
+ DEFAULT => -82,
GOTOS => {
- 'identifier' => 214
+ 'array_len' => 209
}
},
- {#State 212
- DEFAULT => -85
- },
- {#State 213
+ {#State 208
DEFAULT => -27
},
- {#State 214
- ACTIONS => {
- "[" => 155
- },
- DEFAULT => -86,
- GOTOS => {
- 'array_len' => 215
- }
- },
- {#State 215
- DEFAULT => -74
+ {#State 209
+ DEFAULT => -73
}
],
yyrules =>
@@ -1765,96 +1710,96 @@ sub new {
[#Rule 2
'idl', 2,
sub
-#line 20 "./../pidl/idl.yp"
+#line 19 "pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 3
'idl', 2,
sub
-#line 22 "./../pidl/idl.yp"
+#line 20 "pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 4
'idl', 2,
sub
-#line 24 "./../pidl/idl.yp"
+#line 21 "pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 5
'idl', 2,
sub
-#line 26 "./../pidl/idl.yp"
+#line 22 "pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 6
'idl', 2,
sub
-#line 28 "./../pidl/idl.yp"
+#line 23 "pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 7
'idl', 2,
sub
-#line 30 "./../pidl/idl.yp"
+#line 24 "pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 8
'import', 3,
sub
-#line 35 "./../pidl/idl.yp"
+#line 27 "pidl/idl.yp"
{{
- "TYPE" => "IMPORT",
- "PATHS" => $_[2],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "TYPE" => "IMPORT",
+ "PATHS" => $_[2],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE}
+ }}
],
[#Rule 9
'include', 3,
sub
-#line 45 "./../pidl/idl.yp"
-{{
- "TYPE" => "INCLUDE",
- "PATHS" => $_[2],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+#line 34 "pidl/idl.yp"
+{{
+ "TYPE" => "INCLUDE",
+ "PATHS" => $_[2],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE}
+ }}
],
[#Rule 10
'importlib', 3,
sub
-#line 55 "./../pidl/idl.yp"
-{{
- "TYPE" => "IMPORTLIB",
- "PATHS" => $_[2],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+#line 41 "pidl/idl.yp"
+{{
+ "TYPE" => "IMPORTLIB",
+ "PATHS" => $_[2],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE}
+ }}
],
[#Rule 11
'commalist', 1,
sub
-#line 64 "./../pidl/idl.yp"
+#line 50 "pidl/idl.yp"
{ [ $_[1] ] }
],
[#Rule 12
'commalist', 3,
sub
-#line 66 "./../pidl/idl.yp"
+#line 51 "pidl/idl.yp"
{ push(@{$_[1]}, $_[3]); $_[1] }
],
[#Rule 13
'coclass', 7,
sub
-#line 71 "./../pidl/idl.yp"
+#line 55 "pidl/idl.yp"
{{
- "TYPE" => "COCLASS",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "DATA" => $_[5],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "TYPE" => "COCLASS",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "DATA" => $_[5],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
[#Rule 14
'interface_names', 0, undef
@@ -1862,22 +1807,22 @@ sub
[#Rule 15
'interface_names', 4,
sub
-#line 84 "./../pidl/idl.yp"
+#line 67 "pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 16
'interface', 8,
sub
-#line 89 "./../pidl/idl.yp"
+#line 71 "pidl/idl.yp"
{{
- "TYPE" => "INTERFACE",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "BASE" => $_[4],
- "DATA" => $_[6],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "TYPE" => "INTERFACE",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "BASE" => $_[4],
+ "DATA" => $_[6],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
[#Rule 17
'base_interface', 0, undef
@@ -1885,30 +1830,30 @@ sub
[#Rule 18
'base_interface', 2,
sub
-#line 103 "./../pidl/idl.yp"
+#line 84 "pidl/idl.yp"
{ $_[2] }
],
[#Rule 19
'cpp_quote', 4,
sub
-#line 109 "./../pidl/idl.yp"
+#line 89 "pidl/idl.yp"
{{
"TYPE" => "CPP_QUOTE",
- "DATA" => $_[3],
"FILE" => $_[0]->YYData->{FILE},
"LINE" => $_[0]->YYData->{LINE},
+ "DATA" => $_[3]
}}
],
[#Rule 20
'definitions', 1,
sub
-#line 118 "./../pidl/idl.yp"
+#line 98 "pidl/idl.yp"
{ [ $_[1] ] }
],
[#Rule 21
'definitions', 2,
sub
-#line 120 "./../pidl/idl.yp"
+#line 99 "pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 22
@@ -1926,36 +1871,36 @@ sub
[#Rule 26
'const', 7,
sub
-#line 135 "./../pidl/idl.yp"
+#line 107 "pidl/idl.yp"
{{
- "TYPE" => "CONST",
- "DTYPE" => $_[2],
- "POINTERS" => $_[3],
- "NAME" => $_[4],
- "VALUE" => $_[6],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "TYPE" => "CONST",
+ "DTYPE" => $_[2],
+ "POINTERS" => $_[3],
+ "NAME" => $_[4],
+ "VALUE" => $_[6],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
[#Rule 27
'const', 8,
sub
-#line 146 "./../pidl/idl.yp"
+#line 117 "pidl/idl.yp"
{{
- "TYPE" => "CONST",
- "DTYPE" => $_[2],
- "POINTERS" => $_[3],
- "NAME" => $_[4],
- "ARRAY_LEN" => $_[5],
- "VALUE" => $_[7],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "TYPE" => "CONST",
+ "DTYPE" => $_[2],
+ "POINTERS" => $_[3],
+ "NAME" => $_[4],
+ "ARRAY_LEN" => $_[5],
+ "VALUE" => $_[7],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
[#Rule 28
'function', 7,
sub
-#line 160 "./../pidl/idl.yp"
+#line 131 "pidl/idl.yp"
{{
"TYPE" => "FUNCTION",
"NAME" => $_[3],
@@ -1964,20 +1909,20 @@ sub
"ELEMENTS" => $_[5],
"FILE" => $_[0]->YYData->{FILE},
"LINE" => $_[0]->YYData->{LINE},
- }}
+ }}
],
[#Rule 29
'typedef', 6,
sub
-#line 173 "./../pidl/idl.yp"
+#line 143 "pidl/idl.yp"
{{
- "TYPE" => "TYPEDEF",
- "PROPERTIES" => $_[1],
- "NAME" => $_[4],
- "DATA" => $_[3],
- "ARRAY_LEN" => $_[5],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
+ "TYPE" => "TYPEDEF",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[4],
+ "DATA" => $_[3],
+ "ARRAY_LEN" => $_[5],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
}}
],
[#Rule 30
@@ -1993,480 +1938,450 @@ sub
'usertype', 1, undef
],
[#Rule 34
- 'usertype', 1, undef
- ],
- [#Rule 35
'typedecl', 2,
sub
-#line 197 "./../pidl/idl.yp"
+#line 156 "pidl/idl.yp"
{ $_[1] }
],
- [#Rule 36
+ [#Rule 35
'sign', 1, undef
],
- [#Rule 37
+ [#Rule 36
'sign', 1, undef
],
- [#Rule 38
+ [#Rule 37
'existingtype', 2,
sub
-#line 207 "./../pidl/idl.yp"
+#line 161 "pidl/idl.yp"
{ ($_[1]?$_[1]:"signed") ." $_[2]" }
],
- [#Rule 39
+ [#Rule 38
'existingtype', 1, undef
],
- [#Rule 40
+ [#Rule 39
'type', 1, undef
],
- [#Rule 41
+ [#Rule 40
'type', 1, undef
],
- [#Rule 42
+ [#Rule 41
'type', 1,
sub
-#line 217 "./../pidl/idl.yp"
+#line 165 "pidl/idl.yp"
{ "void" }
],
- [#Rule 43
+ [#Rule 42
'enum_body', 3,
sub
-#line 221 "./../pidl/idl.yp"
+#line 167 "pidl/idl.yp"
{ $_[2] }
],
- [#Rule 44
+ [#Rule 43
'opt_enum_body', 0, undef
],
- [#Rule 45
+ [#Rule 44
'opt_enum_body', 1, undef
],
- [#Rule 46
+ [#Rule 45
'enum', 4,
sub
-#line 232 "./../pidl/idl.yp"
+#line 170 "pidl/idl.yp"
{{
- "TYPE" => "ENUM",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "ELEMENTS" => $_[4],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "TYPE" => "ENUM",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "ELEMENTS" => $_[4]
+ }}
],
- [#Rule 47
+ [#Rule 46
'enum_elements', 1,
sub
-#line 243 "./../pidl/idl.yp"
+#line 179 "pidl/idl.yp"
{ [ $_[1] ] }
],
- [#Rule 48
+ [#Rule 47
'enum_elements', 3,
sub
-#line 245 "./../pidl/idl.yp"
+#line 180 "pidl/idl.yp"
{ push(@{$_[1]}, $_[3]); $_[1] }
],
- [#Rule 49
+ [#Rule 48
'enum_element', 1, undef
],
- [#Rule 50
+ [#Rule 49
'enum_element', 3,
sub
-#line 251 "./../pidl/idl.yp"
+#line 184 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 51
+ [#Rule 50
'bitmap_body', 3,
sub
-#line 255 "./../pidl/idl.yp"
+#line 187 "pidl/idl.yp"
{ $_[2] }
],
- [#Rule 52
+ [#Rule 51
'opt_bitmap_body', 0, undef
],
- [#Rule 53
+ [#Rule 52
'opt_bitmap_body', 1, undef
],
- [#Rule 54
+ [#Rule 53
'bitmap', 4,
sub
-#line 266 "./../pidl/idl.yp"
+#line 190 "pidl/idl.yp"
{{
- "TYPE" => "BITMAP",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "ELEMENTS" => $_[4],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "TYPE" => "BITMAP",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "ELEMENTS" => $_[4]
+ }}
],
- [#Rule 55
+ [#Rule 54
'bitmap_elements', 1,
sub
-#line 277 "./../pidl/idl.yp"
+#line 199 "pidl/idl.yp"
{ [ $_[1] ] }
],
- [#Rule 56
+ [#Rule 55
'bitmap_elements', 3,
sub
-#line 279 "./../pidl/idl.yp"
+#line 200 "pidl/idl.yp"
{ push(@{$_[1]}, $_[3]); $_[1] }
],
- [#Rule 57
+ [#Rule 56
'opt_bitmap_elements', 0, undef
],
- [#Rule 58
+ [#Rule 57
'opt_bitmap_elements', 1, undef
],
- [#Rule 59
+ [#Rule 58
'bitmap_element', 3,
sub
-#line 289 "./../pidl/idl.yp"
+#line 205 "pidl/idl.yp"
{ "$_[1] ( $_[3] )" }
],
- [#Rule 60
+ [#Rule 59
'struct_body', 3,
sub
-#line 293 "./../pidl/idl.yp"
+#line 208 "pidl/idl.yp"
{ $_[2] }
],
- [#Rule 61
+ [#Rule 60
'opt_struct_body', 0, undef
],
- [#Rule 62
+ [#Rule 61
'opt_struct_body', 1, undef
],
- [#Rule 63
+ [#Rule 62
'struct', 4,
sub
-#line 304 "./../pidl/idl.yp"
+#line 212 "pidl/idl.yp"
{{
- "TYPE" => "STRUCT",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "ELEMENTS" => $_[4],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "TYPE" => "STRUCT",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "ELEMENTS" => $_[4]
+ }}
],
- [#Rule 64
+ [#Rule 63
'empty_element', 2,
sub
-#line 316 "./../pidl/idl.yp"
+#line 221 "pidl/idl.yp"
{{
- "NAME" => "",
- "TYPE" => "EMPTY",
- "PROPERTIES" => $_[1],
- "POINTERS" => 0,
- "ARRAY_LEN" => [],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "NAME" => "",
+ "TYPE" => "EMPTY",
+ "PROPERTIES" => $_[1],
+ "POINTERS" => 0,
+ "ARRAY_LEN" => [],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
- [#Rule 65
+ [#Rule 64
'base_or_empty', 2, undef
],
- [#Rule 66
+ [#Rule 65
'base_or_empty', 1, undef
],
- [#Rule 67
+ [#Rule 66
'optional_base_element', 2,
sub
-#line 333 "./../pidl/idl.yp"
+#line 235 "pidl/idl.yp"
{ $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] }
],
- [#Rule 68
+ [#Rule 67
'union_elements', 0, undef
],
- [#Rule 69
+ [#Rule 68
'union_elements', 2,
sub
-#line 339 "./../pidl/idl.yp"
+#line 240 "pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
- [#Rule 70
+ [#Rule 69
'union_body', 3,
sub
-#line 343 "./../pidl/idl.yp"
+#line 243 "pidl/idl.yp"
{ $_[2] }
],
- [#Rule 71
+ [#Rule 70
'opt_union_body', 0, undef
],
- [#Rule 72
+ [#Rule 71
'opt_union_body', 1, undef
],
- [#Rule 73
+ [#Rule 72
'union', 4,
sub
-#line 354 "./../pidl/idl.yp"
+#line 247 "pidl/idl.yp"
{{
- "TYPE" => "UNION",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "ELEMENTS" => $_[4],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "TYPE" => "UNION",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "ELEMENTS" => $_[4]
+ }}
],
- [#Rule 74
+ [#Rule 73
'base_element', 5,
sub
-#line 366 "./../pidl/idl.yp"
+#line 256 "pidl/idl.yp"
{{
- "NAME" => $_[4],
- "TYPE" => $_[2],
- "PROPERTIES" => $_[1],
- "POINTERS" => $_[3],
- "ARRAY_LEN" => $_[5],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "NAME" => $_[4],
+ "TYPE" => $_[2],
+ "PROPERTIES" => $_[1],
+ "POINTERS" => $_[3],
+ "ARRAY_LEN" => $_[5],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
- [#Rule 75
+ [#Rule 74
'pointers', 0,
sub
-#line 379 "./../pidl/idl.yp"
+#line 270 "pidl/idl.yp"
{ 0 }
],
- [#Rule 76
+ [#Rule 75
'pointers', 2,
sub
-#line 381 "./../pidl/idl.yp"
+#line 271 "pidl/idl.yp"
{ $_[1]+1 }
],
- [#Rule 77
- 'pipe', 3,
-sub
-#line 386 "./../pidl/idl.yp"
-{{
- "TYPE" => "PIPE",
- "PROPERTIES" => $_[1],
- "NAME" => $_[4],
- "DATA" => $_[3],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
- ],
- [#Rule 78
+ [#Rule 76
'element_list1', 0,
sub
-#line 398 "./../pidl/idl.yp"
+#line 275 "pidl/idl.yp"
{ [] }
],
- [#Rule 79
+ [#Rule 77
'element_list1', 3,
sub
-#line 400 "./../pidl/idl.yp"
+#line 276 "pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
- [#Rule 80
- 'optional_const', 0, undef
- ],
- [#Rule 81
- 'optional_const', 1, undef
- ],
- [#Rule 82
+ [#Rule 78
'element_list2', 0, undef
],
- [#Rule 83
+ [#Rule 79
'element_list2', 1, undef
],
- [#Rule 84
- 'element_list2', 2,
+ [#Rule 80
+ 'element_list2', 1,
sub
-#line 414 "./../pidl/idl.yp"
-{ [ $_[2] ] }
+#line 282 "pidl/idl.yp"
+{ [ $_[1] ] }
],
- [#Rule 85
- 'element_list2', 4,
+ [#Rule 81
+ 'element_list2', 3,
sub
-#line 416 "./../pidl/idl.yp"
-{ push(@{$_[1]}, $_[4]); $_[1] }
+#line 283 "pidl/idl.yp"
+{ push(@{$_[1]}, $_[3]); $_[1] }
],
- [#Rule 86
+ [#Rule 82
'array_len', 0, undef
],
- [#Rule 87
+ [#Rule 83
'array_len', 3,
sub
-#line 422 "./../pidl/idl.yp"
+#line 288 "pidl/idl.yp"
{ push(@{$_[3]}, "*"); $_[3] }
],
- [#Rule 88
+ [#Rule 84
'array_len', 4,
sub
-#line 424 "./../pidl/idl.yp"
+#line 289 "pidl/idl.yp"
{ push(@{$_[4]}, "$_[2]"); $_[4] }
],
- [#Rule 89
+ [#Rule 85
'property_list', 0, undef
],
- [#Rule 90
+ [#Rule 86
'property_list', 4,
sub
-#line 430 "./../pidl/idl.yp"
+#line 295 "pidl/idl.yp"
{ FlattenHash([$_[1],$_[3]]); }
],
- [#Rule 91
+ [#Rule 87
'properties', 1,
sub
-#line 434 "./../pidl/idl.yp"
+#line 298 "pidl/idl.yp"
{ $_[1] }
],
- [#Rule 92
+ [#Rule 88
'properties', 3,
sub
-#line 436 "./../pidl/idl.yp"
+#line 299 "pidl/idl.yp"
{ FlattenHash([$_[1], $_[3]]); }
],
- [#Rule 93
+ [#Rule 89
'property', 1,
sub
-#line 440 "./../pidl/idl.yp"
+#line 302 "pidl/idl.yp"
{{ "$_[1]" => "1" }}
],
- [#Rule 94
+ [#Rule 90
'property', 4,
sub
-#line 442 "./../pidl/idl.yp"
+#line 303 "pidl/idl.yp"
{{ "$_[1]" => "$_[3]" }}
],
- [#Rule 95
+ [#Rule 91
'commalisttext', 1, undef
],
- [#Rule 96
+ [#Rule 92
'commalisttext', 3,
sub
-#line 448 "./../pidl/idl.yp"
+#line 308 "pidl/idl.yp"
{ "$_[1],$_[3]" }
],
- [#Rule 97
+ [#Rule 93
'anytext', 0,
sub
-#line 453 "./../pidl/idl.yp"
+#line 312 "pidl/idl.yp"
{ "" }
],
- [#Rule 98
+ [#Rule 94
'anytext', 1, undef
],
- [#Rule 99
+ [#Rule 95
'anytext', 1, undef
],
- [#Rule 100
+ [#Rule 96
'anytext', 1, undef
],
- [#Rule 101
+ [#Rule 97
'anytext', 3,
sub
-#line 461 "./../pidl/idl.yp"
+#line 314 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 102
+ [#Rule 98
'anytext', 3,
sub
-#line 463 "./../pidl/idl.yp"
+#line 315 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 103
+ [#Rule 99
'anytext', 3,
sub
-#line 465 "./../pidl/idl.yp"
+#line 316 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 104
+ [#Rule 100
'anytext', 3,
sub
-#line 467 "./../pidl/idl.yp"
+#line 317 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 105
+ [#Rule 101
'anytext', 3,
sub
-#line 469 "./../pidl/idl.yp"
+#line 318 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 106
+ [#Rule 102
'anytext', 3,
sub
-#line 471 "./../pidl/idl.yp"
+#line 319 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 107
+ [#Rule 103
'anytext', 3,
sub
-#line 473 "./../pidl/idl.yp"
+#line 320 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 108
+ [#Rule 104
'anytext', 3,
sub
-#line 475 "./../pidl/idl.yp"
+#line 321 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 109
+ [#Rule 105
'anytext', 3,
sub
-#line 477 "./../pidl/idl.yp"
+#line 322 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 110
+ [#Rule 106
'anytext', 3,
sub
-#line 479 "./../pidl/idl.yp"
+#line 323 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 111
+ [#Rule 107
'anytext', 3,
sub
-#line 481 "./../pidl/idl.yp"
+#line 324 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 112
+ [#Rule 108
'anytext', 3,
sub
-#line 483 "./../pidl/idl.yp"
+#line 325 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 113
+ [#Rule 109
'anytext', 3,
sub
-#line 485 "./../pidl/idl.yp"
+#line 326 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 114
+ [#Rule 110
'anytext', 5,
sub
-#line 487 "./../pidl/idl.yp"
+#line 327 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]$_[4]$_[5]" }
],
- [#Rule 115
+ [#Rule 111
'anytext', 5,
sub
-#line 489 "./../pidl/idl.yp"
+#line 328 "pidl/idl.yp"
{ "$_[1]$_[2]$_[3]$_[4]$_[5]" }
],
- [#Rule 116
+ [#Rule 112
'identifier', 1, undef
],
- [#Rule 117
- 'optional_identifier', 0, undef
- ],
- [#Rule 118
+ [#Rule 113
'optional_identifier', 1, undef
],
- [#Rule 119
+ [#Rule 114
+ 'optional_identifier', 0, undef
+ ],
+ [#Rule 115
'constant', 1, undef
],
- [#Rule 120
+ [#Rule 116
'text', 1,
sub
-#line 507 "./../pidl/idl.yp"
+#line 342 "pidl/idl.yp"
{ "\"$_[1]\"" }
],
- [#Rule 121
+ [#Rule 117
'optional_semicolon', 0, undef
],
- [#Rule 122
+ [#Rule 118
'optional_semicolon', 1, undef
]
],
@@ -2474,63 +2389,58 @@ sub
bless($self,$class);
}
-#line 519 "./../pidl/idl.yp"
+#line 353 "pidl/idl.yp"
use Parse::Pidl qw(error);
#####################################################################
# flatten an array of hashes into a single hash
-sub FlattenHash($)
-{
- my $a = shift;
- my %b;
- for my $d (@{$a}) {
- for my $k (keys %{$d}) {
- $b{$k} = $d->{$k};
- }
+sub FlattenHash($)
+{
+ my $a = shift;
+ my %b;
+ for my $d (@{$a}) {
+ for my $k (keys %{$d}) {
+ $b{$k} = $d->{$k};
}
- return \%b;
+ }
+ return \%b;
}
+
+
#####################################################################
# traverse a perl data structure removing any empty arrays or
# hashes and any hash elements that map to undef
sub CleanData($)
{
- sub CleanData($);
- my($v) = shift;
-
+ sub CleanData($);
+ my($v) = shift;
return undef if (not defined($v));
-
- if (ref($v) eq "ARRAY") {
- foreach my $i (0 .. $#{$v}) {
- CleanData($v->[$i]);
- }
- # this removes any undefined elements from the array
- @{$v} = grep { defined $_ } @{$v};
- } elsif (ref($v) eq "HASH") {
- foreach my $x (keys %{$v}) {
- CleanData($v->{$x});
- if (!defined $v->{$x}) {
- delete($v->{$x});
- next;
- }
- }
+ if (ref($v) eq "ARRAY") {
+ foreach my $i (0 .. $#{$v}) {
+ CleanData($v->[$i]);
}
-
+ # this removes any undefined elements from the array
+ @{$v} = grep { defined $_ } @{$v};
+ } elsif (ref($v) eq "HASH") {
+ foreach my $x (keys %{$v}) {
+ CleanData($v->{$x});
+ if (!defined $v->{$x}) { delete($v->{$x}); next; }
+ }
+ }
return $v;
}
sub _Error {
- if (exists $_[0]->YYData->{ERRMSG}) {
+ if (exists $_[0]->YYData->{ERRMSG}) {
error($_[0]->YYData, $_[0]->YYData->{ERRMSG});
delete $_[0]->YYData->{ERRMSG};
return;
}
-
my $last_token = $_[0]->YYData->{LAST_TOKEN};
-
+
error($_[0]->YYData, "Syntax error near '$last_token'");
}
@@ -2538,7 +2448,7 @@ sub _Lexer($)
{
my($parser)=shift;
- $parser->YYData->{INPUT} or return('',undef);
+ $parser->YYData->{INPUT} or return('',undef);
again:
$parser->YYData->{INPUT} =~ s/^[ \t]*//;
@@ -2565,19 +2475,18 @@ again:
}
if (s/^\"(.*?)\"//) {
$parser->YYData->{LAST_TOKEN} = $1;
- return('TEXT',$1);
+ return('TEXT',$1);
}
if (s/^(\d+)(\W|$)/$2/) {
$parser->YYData->{LAST_TOKEN} = $1;
- return('CONSTANT',$1);
+ return('CONSTANT',$1);
}
if (s/^([\w_]+)//) {
$parser->YYData->{LAST_TOKEN} = $1;
- if ($1 =~
- /^(coclass|interface|import|importlib
- |include|cpp_quote|typedef
- |union|struct|enum|bitmap|pipe
- |void|const|unsigned|signed)$/x) {
+ if ($1 =~
+ /^(coclass|interface|const|typedef|union|cpp_quote
+ |struct|enum|bitmap|void|unsigned|signed|import|include
+ |importlib)$/x) {
return $1;
}
return('IDENTIFIER',$1);
@@ -2595,10 +2504,10 @@ sub parse_string
my $self = new Parse::Pidl::IDL;
- $self->YYData->{FILE} = $filename;
- $self->YYData->{INPUT} = $data;
- $self->YYData->{LINE} = 0;
- $self->YYData->{LAST_TOKEN} = "NONE";
+ $self->YYData->{FILE} = $filename;
+ $self->YYData->{INPUT} = $data;
+ $self->YYData->{LINE} = 0;
+ $self->YYData->{LAST_TOKEN} = "NONE";
my $idl = $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error );