ACTIONS => {
'' => 2
},
- DEFAULT => -49,
+ DEFAULT => -60,
GOTOS => {
'interface' => 3,
'coclass' => 4,
}
},
{#State 9
- DEFAULT => -73
+ DEFAULT => -86
},
{#State 10
ACTIONS => {
ACTIONS => {
"(" => 16
},
- DEFAULT => -53
+ DEFAULT => -64
},
{#State 12
- DEFAULT => -51
+ DEFAULT => -62
},
{#State 13
ACTIONS => {
{#State 15
DEFAULT => -5,
GOTOS => {
- 'interfaces' => 21
+ 'interface_names' => 21
}
},
{#State 16
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'listtext' => 26,
}
},
{#State 18
- DEFAULT => -50
+ DEFAULT => -61
},
{#State 19
ACTIONS => {
},
{#State 21
ACTIONS => {
- "}" => 32
- },
- DEFAULT => -49,
- GOTOS => {
- 'interface' => 33,
- 'property_list' => 34
+ "}" => 32,
+ "interface" => 33
}
},
{#State 22
- DEFAULT => -75
+ DEFAULT => -88
},
{#State 23
- DEFAULT => -60
+ DEFAULT => -71
},
{#State 24
- DEFAULT => -62
+ DEFAULT => -73
},
{#State 25
ACTIONS => {
- "-" => 35,
- "+" => 36,
- "&" => 38,
- "{" => 37,
- "/" => 39,
- "|" => 40,
+ "-" => 34,
+ "<" => 35,
+ "+" => 37,
+ "~" => 36,
+ "&" => 39,
+ "{" => 38,
+ "/" => 40,
"(" => 41,
- "*" => 42,
- "." => 43,
- ">" => 44
+ "|" => 42,
+ "*" => 43,
+ "." => 44,
+ ">" => 45
},
- DEFAULT => -55
+ DEFAULT => -66
},
{#State 26
ACTIONS => {
- "," => 45,
- ")" => 46
+ "," => 46,
+ ")" => 47
}
},
{#State 27
- DEFAULT => -61
+ DEFAULT => -72
},
{#State 28
- DEFAULT => -74
+ DEFAULT => -87
},
{#State 29
- DEFAULT => -52
+ DEFAULT => -63
},
{#State 30
DEFAULT => -9
},
{#State 31
ACTIONS => {
- "typedef" => 47,
- "const" => 53
+ "typedef" => 48,
+ "declare" => 53,
+ "const" => 56
},
- DEFAULT => -49,
+ DEFAULT => -60,
GOTOS => {
- 'const' => 52,
- 'function' => 48,
- 'typedef' => 54,
- 'definitions' => 49,
- 'definition' => 51,
- 'property_list' => 50
+ 'const' => 55,
+ 'declare' => 54,
+ 'function' => 49,
+ 'typedef' => 57,
+ 'definitions' => 50,
+ 'definition' => 52,
+ 'property_list' => 51
}
},
{#State 32
ACTIONS => {
- ";" => 56
+ ";" => 59
},
- DEFAULT => -76,
+ DEFAULT => -89,
GOTOS => {
- 'optional_semicolon' => 55
+ 'optional_semicolon' => 58
}
},
{#State 33
- DEFAULT => -6
+ ACTIONS => {
+ 'IDENTIFIER' => 9
+ },
+ GOTOS => {
+ 'identifier' => 60
+ }
},
{#State 34
ACTIONS => {
- "[" => 7,
- "interface" => 8
+ 'CONSTANT' => 28,
+ 'TEXT' => 22,
+ 'IDENTIFIER' => 9
+ },
+ DEFAULT => -70,
+ GOTOS => {
+ 'identifier' => 23,
+ 'text' => 24,
+ 'anytext' => 61,
+ 'constant' => 27
}
},
{#State 35
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 57,
+ 'anytext' => 62,
'constant' => 27
}
},
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 58,
+ 'anytext' => 63,
'constant' => 27
}
},
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 59,
- 'constant' => 27,
- 'commalisttext' => 60
+ 'anytext' => 64,
+ 'constant' => 27
}
},
{#State 38
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 61,
- 'constant' => 27
+ 'anytext' => 65,
+ 'constant' => 27,
+ 'commalisttext' => 66
}
},
{#State 39
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 62,
+ 'anytext' => 67,
'constant' => 27
}
},
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 63,
+ 'anytext' => 68,
'constant' => 27
}
},
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 59,
+ 'anytext' => 65,
'constant' => 27,
- 'commalisttext' => 64
+ 'commalisttext' => 69
}
},
{#State 42
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 65,
+ 'anytext' => 70,
'constant' => 27
}
},
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 66,
+ 'anytext' => 71,
'constant' => 27
}
},
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 67,
+ 'anytext' => 72,
'constant' => 27
}
},
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 68,
+ 'anytext' => 73,
'constant' => 27
}
},
{#State 46
- DEFAULT => -54
+ ACTIONS => {
+ 'CONSTANT' => 28,
+ 'TEXT' => 22,
+ 'IDENTIFIER' => 9
+ },
+ DEFAULT => -70,
+ GOTOS => {
+ 'identifier' => 23,
+ 'text' => 24,
+ 'anytext' => 74,
+ 'constant' => 27
+ }
},
{#State 47
- DEFAULT => -49,
+ DEFAULT => -65
+ },
+ {#State 48
+ DEFAULT => -60,
GOTOS => {
- 'property_list' => 69
+ 'property_list' => 75
}
},
- {#State 48
+ {#State 49
DEFAULT => -12
},
- {#State 49
+ {#State 50
ACTIONS => {
- "}" => 70,
- "typedef" => 47,
- "const" => 53
+ "}" => 76,
+ "typedef" => 48,
+ "declare" => 53,
+ "const" => 56
},
- DEFAULT => -49,
+ DEFAULT => -60,
GOTOS => {
- 'const' => 52,
- 'function' => 48,
- 'typedef' => 54,
- 'definition' => 71,
- 'property_list' => 50
+ 'const' => 55,
+ 'declare' => 54,
+ 'function' => 49,
+ 'typedef' => 57,
+ 'definition' => 77,
+ 'property_list' => 51
}
},
- {#State 50
+ {#State 51
ACTIONS => {
'IDENTIFIER' => 9,
- "enum" => 72,
+ "union" => 78,
+ "enum" => 79,
"[" => 7,
- 'void' => 73
+ 'void' => 81,
+ "bitmap" => 80,
+ "struct" => 88
},
- DEFAULT => -49,
GOTOS => {
- 'identifier' => 75,
- 'struct' => 76,
- 'enum' => 77,
- 'type' => 78,
- 'union' => 79,
- 'property_list' => 74
+ 'identifier' => 83,
+ 'struct' => 84,
+ 'enum' => 85,
+ 'type' => 86,
+ 'union' => 87,
+ 'bitmap' => 82
}
},
- {#State 51
- DEFAULT => -10
- },
{#State 52
- DEFAULT => -13
+ DEFAULT => -10
},
{#State 53
- ACTIONS => {
- 'IDENTIFIER' => 9
- },
+ DEFAULT => -60,
GOTOS => {
- 'identifier' => 80
+ 'property_list' => 89
}
},
{#State 54
- DEFAULT => -14
+ DEFAULT => -15
},
{#State 55
- DEFAULT => -4
+ DEFAULT => -13
},
{#State 56
- DEFAULT => -77
- },
- {#State 57
ACTIONS => {
- "{" => 37
+ 'IDENTIFIER' => 9
},
- DEFAULT => -63
+ GOTOS => {
+ 'identifier' => 90
+ }
+ },
+ {#State 57
+ DEFAULT => -14
},
{#State 58
- ACTIONS => {
- "{" => 37
- },
- DEFAULT => -70
+ DEFAULT => -4
},
{#State 59
- ACTIONS => {
- "-" => 35,
- "+" => 36,
- "&" => 38,
- "{" => 37,
- "/" => 39,
- "(" => 41,
- "|" => 40,
- "*" => 42,
- "." => 43,
- ">" => 44
- },
- DEFAULT => -57
+ DEFAULT => -90
},
{#State 60
ACTIONS => {
- "}" => 81,
- "," => 82
+ ";" => 91
}
},
{#State 61
ACTIONS => {
- "{" => 37
+ "<" => 35,
+ "~" => 36,
+ "{" => 38
},
- DEFAULT => -68
+ DEFAULT => -74
},
{#State 62
ACTIONS => {
- "{" => 37
+ "-" => 34,
+ "<" => 35,
+ "+" => 37,
+ "~" => 36,
+ "*" => 43,
+ "{" => 38,
+ "&" => 39,
+ "/" => 40,
+ "|" => 42,
+ "(" => 41,
+ "." => 44,
+ ">" => 45
},
- DEFAULT => -69
+ DEFAULT => -78
},
{#State 63
ACTIONS => {
- "{" => 37
+ "-" => 34,
+ "<" => 35,
+ "+" => 37,
+ "~" => 36,
+ "*" => 43,
+ "{" => 38,
+ "&" => 39,
+ "/" => 40,
+ "|" => 42,
+ "(" => 41,
+ "." => 44,
+ ">" => 45
},
- DEFAULT => -67
+ DEFAULT => -83
},
{#State 64
ACTIONS => {
- "," => 82,
- ")" => 83
- }
+ "<" => 35,
+ "~" => 36,
+ "{" => 38
+ },
+ DEFAULT => -82
},
{#State 65
ACTIONS => {
- "{" => 37
+ "-" => 34,
+ "<" => 35,
+ "+" => 37,
+ "~" => 36,
+ "*" => 43,
+ "{" => 38,
+ "&" => 39,
+ "/" => 40,
+ "|" => 42,
+ "(" => 41,
+ "." => 44,
+ ">" => 45
},
- DEFAULT => -65
+ DEFAULT => -68
},
{#State 66
ACTIONS => {
- "{" => 37
- },
- DEFAULT => -64
+ "}" => 92,
+ "," => 93
+ }
},
{#State 67
ACTIONS => {
- "{" => 37
+ "<" => 35,
+ "~" => 36,
+ "{" => 38
},
- DEFAULT => -66
+ DEFAULT => -80
},
{#State 68
ACTIONS => {
- "-" => 35,
- "+" => 36,
- "&" => 38,
- "{" => 37,
- "/" => 39,
- "(" => 41,
- "|" => 40,
- "*" => 42,
- "." => 43,
- ">" => 44
+ "<" => 35,
+ "~" => 36,
+ "{" => 38
},
- DEFAULT => -56
+ DEFAULT => -81
},
{#State 69
ACTIONS => {
- 'IDENTIFIER' => 9,
- "enum" => 72,
- "[" => 7,
- 'void' => 73
- },
- DEFAULT => -49,
- GOTOS => {
- 'identifier' => 75,
- 'struct' => 76,
- 'enum' => 77,
- 'type' => 84,
- 'union' => 79,
- 'property_list' => 74
+ "," => 93,
+ ")" => 94
}
},
{#State 70
ACTIONS => {
- ";" => 56
+ "<" => 35,
+ "~" => 36,
+ "{" => 38
},
- DEFAULT => -76,
- GOTOS => {
- 'optional_semicolon' => 85
- }
+ DEFAULT => -79
},
{#State 71
- DEFAULT => -11
+ ACTIONS => {
+ "<" => 35,
+ "~" => 36,
+ "{" => 38
+ },
+ DEFAULT => -76
},
{#State 72
ACTIONS => {
- "{" => 86
- }
+ "<" => 35,
+ "~" => 36,
+ "{" => 38
+ },
+ DEFAULT => -75
},
{#State 73
- DEFAULT => -23
+ ACTIONS => {
+ "<" => 35,
+ "~" => 36,
+ "{" => 38
+ },
+ DEFAULT => -77
},
{#State 74
ACTIONS => {
- "union" => 87,
+ "-" => 34,
+ "<" => 35,
+ "+" => 37,
+ "~" => 36,
+ "&" => 39,
+ "{" => 38,
+ "/" => 40,
+ "(" => 41,
+ "|" => 42,
+ "*" => 43,
+ "." => 44,
+ ">" => 45
+ },
+ DEFAULT => -67
+ },
+ {#State 75
+ ACTIONS => {
+ 'IDENTIFIER' => 9,
+ "union" => 78,
+ "enum" => 79,
"[" => 7,
+ 'void' => 81,
+ "bitmap" => 80,
"struct" => 88
+ },
+ GOTOS => {
+ 'identifier' => 83,
+ 'struct' => 84,
+ 'enum' => 85,
+ 'type' => 95,
+ 'union' => 87,
+ 'bitmap' => 82
}
},
- {#State 75
- DEFAULT => -22
- },
{#State 76
- DEFAULT => -19
+ ACTIONS => {
+ ";" => 59
+ },
+ DEFAULT => -89,
+ GOTOS => {
+ 'optional_semicolon' => 96
+ }
},
{#State 77
- DEFAULT => -21
+ DEFAULT => -11
},
{#State 78
+ ACTIONS => {
+ "{" => 97
+ }
+ },
+ {#State 79
+ ACTIONS => {
+ "{" => 98
+ }
+ },
+ {#State 80
+ ACTIONS => {
+ "{" => 99
+ }
+ },
+ {#State 81
+ DEFAULT => -30
+ },
+ {#State 82
+ DEFAULT => -28
+ },
+ {#State 83
+ DEFAULT => -29
+ },
+ {#State 84
+ DEFAULT => -25
+ },
+ {#State 85
+ DEFAULT => -27
+ },
+ {#State 86
ACTIONS => {
'IDENTIFIER' => 9
},
GOTOS => {
- 'identifier' => 89
+ 'identifier' => 100
}
},
- {#State 79
- DEFAULT => -20
+ {#State 87
+ DEFAULT => -26
},
- {#State 80
+ {#State 88
+ ACTIONS => {
+ "{" => 101
+ }
+ },
+ {#State 89
+ ACTIONS => {
+ "enum" => 102,
+ "[" => 7,
+ "bitmap" => 103
+ },
+ GOTOS => {
+ 'decl_enum' => 104,
+ 'decl_bitmap' => 105,
+ 'decl_type' => 106
+ }
+ },
+ {#State 90
ACTIONS => {
'IDENTIFIER' => 9
},
GOTOS => {
- 'identifier' => 90
+ 'identifier' => 107
}
},
- {#State 81
+ {#State 91
+ DEFAULT => -6
+ },
+ {#State 92
ACTIONS => {
'CONSTANT' => 28,
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 91,
+ 'anytext' => 108,
'constant' => 27
}
},
- {#State 82
+ {#State 93
ACTIONS => {
'CONSTANT' => 28,
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 92,
+ 'anytext' => 109,
'constant' => 27
}
},
- {#State 83
+ {#State 94
ACTIONS => {
'CONSTANT' => 28,
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 93,
+ 'anytext' => 110,
'constant' => 27
}
},
- {#State 84
+ {#State 95
ACTIONS => {
'IDENTIFIER' => 9
},
GOTOS => {
- 'identifier' => 94
+ 'identifier' => 111
}
},
- {#State 85
+ {#State 96
DEFAULT => -7
},
- {#State 86
+ {#State 97
+ DEFAULT => -45,
+ GOTOS => {
+ 'union_elements' => 112
+ }
+ },
+ {#State 98
ACTIONS => {
'IDENTIFIER' => 9
},
GOTOS => {
- 'identifier' => 95,
- 'enum_element' => 96,
- 'enum_elements' => 97
+ 'identifier' => 113,
+ 'enum_element' => 114,
+ 'enum_elements' => 115
}
},
- {#State 87
+ {#State 99
ACTIONS => {
- "{" => 98
+ 'IDENTIFIER' => 9
+ },
+ GOTOS => {
+ 'identifier' => 118,
+ 'bitmap_elements' => 117,
+ 'bitmap_element' => 116
}
},
- {#State 88
+ {#State 100
ACTIONS => {
- "{" => 99
+ "(" => 119
}
},
- {#State 89
- ACTIONS => {
- "(" => 100
+ {#State 101
+ DEFAULT => -51,
+ GOTOS => {
+ 'element_list1' => 120
}
},
- {#State 90
+ {#State 102
+ DEFAULT => -22
+ },
+ {#State 103
+ DEFAULT => -23
+ },
+ {#State 104
+ DEFAULT => -20
+ },
+ {#State 105
+ DEFAULT => -21
+ },
+ {#State 106
ACTIONS => {
- "[" => 103,
- "=" => 102
+ 'IDENTIFIER' => 9
},
GOTOS => {
- 'array_len' => 101
+ 'identifier' => 121
}
},
- {#State 91
+ {#State 107
ACTIONS => {
- "-" => 35,
- "+" => 36,
- "*" => 42,
- "{" => 37,
- "&" => 38,
- "/" => 39,
- "|" => 40,
- "(" => 41,
- "." => 43,
- ">" => 44
+ "[" => 124,
+ "=" => 123
},
- DEFAULT => -72
+ GOTOS => {
+ 'array_len' => 122
+ }
},
- {#State 92
+ {#State 108
ACTIONS => {
- "-" => 35,
- "+" => 36,
- "&" => 38,
- "{" => 37,
- "/" => 39,
+ "-" => 34,
+ "<" => 35,
+ "+" => 37,
+ "~" => 36,
+ "*" => 43,
+ "{" => 38,
+ "&" => 39,
+ "/" => 40,
+ "|" => 42,
"(" => 41,
- "|" => 40,
- "*" => 42,
- "." => 43,
- ">" => 44
+ "." => 44,
+ ">" => 45
},
- DEFAULT => -58
+ DEFAULT => -85
},
- {#State 93
+ {#State 109
ACTIONS => {
- "{" => 37
+ "-" => 34,
+ "<" => 35,
+ "+" => 37,
+ "~" => 36,
+ "*" => 43,
+ "{" => 38,
+ "&" => 39,
+ "/" => 40,
+ "|" => 42,
+ "(" => 41,
+ "." => 44,
+ ">" => 45
},
- DEFAULT => -71
+ DEFAULT => -69
},
- {#State 94
+ {#State 110
ACTIONS => {
- "[" => 103
+ "<" => 35,
+ "~" => 36,
+ "{" => 38
},
- DEFAULT => -46,
+ DEFAULT => -84
+ },
+ {#State 111
+ ACTIONS => {
+ "[" => 124
+ },
+ DEFAULT => -57,
GOTOS => {
- 'array_len' => 104
+ 'array_len' => 125
}
},
- {#State 95
+ {#State 112
ACTIONS => {
- "=" => 105
+ "}" => 126
},
- DEFAULT => -27
+ DEFAULT => -60,
+ GOTOS => {
+ 'optional_base_element' => 128,
+ 'property_list' => 127
+ }
},
- {#State 96
- DEFAULT => -25
+ {#State 113
+ ACTIONS => {
+ "=" => 129
+ },
+ DEFAULT => -34
},
- {#State 97
+ {#State 114
+ DEFAULT => -32
+ },
+ {#State 115
ACTIONS => {
- "}" => 106,
- "," => 107
+ "}" => 130,
+ "," => 131
}
},
- {#State 98
+ {#State 116
+ DEFAULT => -37
+ },
+ {#State 117
ACTIONS => {
- "[" => 110
- },
- GOTOS => {
- 'union_elements' => 108,
- 'union_element' => 109
+ "}" => 132,
+ "," => 133
}
},
- {#State 99
- DEFAULT => -40,
+ {#State 118
+ ACTIONS => {
+ "=" => 134
+ }
+ },
+ {#State 119
+ ACTIONS => {
+ "," => -53,
+ "void" => 137,
+ ")" => -53
+ },
+ DEFAULT => -60,
GOTOS => {
- 'element_list1' => 111
+ 'base_element' => 135,
+ 'element_list2' => 138,
+ 'property_list' => 136
}
},
- {#State 100
+ {#State 120
ACTIONS => {
- "," => -42,
- "void" => 114,
- ")" => -42
+ "}" => 139
},
- DEFAULT => -49,
+ DEFAULT => -60,
GOTOS => {
- 'base_element' => 112,
- 'element_list2' => 115,
- 'property_list' => 113
+ 'base_element' => 140,
+ 'property_list' => 136
}
},
- {#State 101
+ {#State 121
ACTIONS => {
- "=" => 116
+ ";" => 141
}
},
- {#State 102
+ {#State 122
+ ACTIONS => {
+ "=" => 142
+ }
+ },
+ {#State 123
ACTIONS => {
- 'IDENTIFIER' => 9,
'CONSTANT' => 28,
- 'TEXT' => 22
+ 'TEXT' => 22,
+ 'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 117,
+ 'anytext' => 143,
'constant' => 27
}
},
- {#State 103
+ {#State 124
ACTIONS => {
- 'IDENTIFIER' => 9,
'CONSTANT' => 28,
'TEXT' => 22,
- "]" => 119
+ "]" => 145,
+ 'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 118,
+ 'anytext' => 144,
'constant' => 27
}
},
- {#State 104
+ {#State 125
ACTIONS => {
- ";" => 120
+ ";" => 146
}
},
- {#State 105
+ {#State 126
+ DEFAULT => -47
+ },
+ {#State 127
+ ACTIONS => {
+ "[" => 7
+ },
+ DEFAULT => -60,
+ GOTOS => {
+ 'base_or_empty' => 147,
+ 'base_element' => 148,
+ 'empty_element' => 149,
+ 'property_list' => 150
+ }
+ },
+ {#State 128
+ DEFAULT => -46
+ },
+ {#State 129
ACTIONS => {
'CONSTANT' => 28,
'TEXT' => 22,
'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 121,
+ 'anytext' => 151,
'constant' => 27
}
},
- {#State 106
- DEFAULT => -24
+ {#State 130
+ DEFAULT => -31
},
- {#State 107
+ {#State 131
ACTIONS => {
'IDENTIFIER' => 9
},
GOTOS => {
- 'identifier' => 95,
- 'enum_element' => 122
+ 'identifier' => 113,
+ 'enum_element' => 152
}
},
- {#State 108
+ {#State 132
+ DEFAULT => -36
+ },
+ {#State 133
ACTIONS => {
- "}" => 123,
- "[" => 110
+ 'IDENTIFIER' => 9
},
GOTOS => {
- 'union_element' => 124
+ 'identifier' => 118,
+ 'bitmap_element' => 153
}
},
- {#State 109
- DEFAULT => -31
- },
- {#State 110
- ACTIONS => {
- "case" => 125,
- "default" => 126
- }
- },
- {#State 111
+ {#State 134
ACTIONS => {
- "}" => 127
+ 'CONSTANT' => 28,
+ 'TEXT' => 22,
+ 'IDENTIFIER' => 9
},
- DEFAULT => -49,
+ DEFAULT => -70,
GOTOS => {
- 'base_element' => 128,
- 'property_list' => 113
+ 'identifier' => 23,
+ 'text' => 24,
+ 'anytext' => 154,
+ 'constant' => 27
}
},
- {#State 112
- DEFAULT => -44
+ {#State 135
+ DEFAULT => -55
},
- {#State 113
+ {#State 136
ACTIONS => {
'IDENTIFIER' => 9,
- "enum" => 72,
+ "union" => 78,
+ "enum" => 79,
"[" => 7,
- 'void' => 73
+ 'void' => 81,
+ "bitmap" => 80,
+ "struct" => 88
},
- DEFAULT => -49,
GOTOS => {
- 'identifier' => 75,
- 'struct' => 76,
- 'enum' => 77,
- 'type' => 129,
- 'union' => 79,
- 'property_list' => 74
+ 'identifier' => 83,
+ 'struct' => 84,
+ 'enum' => 85,
+ 'type' => 155,
+ 'union' => 87,
+ 'bitmap' => 82
}
},
- {#State 114
- DEFAULT => -43
+ {#State 137
+ DEFAULT => -54
},
- {#State 115
+ {#State 138
ACTIONS => {
- "," => 130,
- ")" => 131
+ "," => 156,
+ ")" => 157
}
},
- {#State 116
+ {#State 139
+ DEFAULT => -40
+ },
+ {#State 140
+ ACTIONS => {
+ ";" => 158
+ }
+ },
+ {#State 141
+ DEFAULT => -19
+ },
+ {#State 142
ACTIONS => {
- 'IDENTIFIER' => 9,
'CONSTANT' => 28,
- 'TEXT' => 22
+ 'TEXT' => 22,
+ 'IDENTIFIER' => 9
},
- DEFAULT => -59,
+ DEFAULT => -70,
GOTOS => {
'identifier' => 23,
'text' => 24,
- 'anytext' => 132,
+ 'anytext' => 159,
'constant' => 27
}
},
- {#State 117
+ {#State 143
ACTIONS => {
- "-" => 35,
- ";" => 133,
- "+" => 36,
- "&" => 38,
- "{" => 37,
- "/" => 39,
+ "-" => 34,
+ "<" => 35,
+ ";" => 160,
+ "+" => 37,
+ "~" => 36,
+ "&" => 39,
+ "{" => 38,
+ "/" => 40,
"(" => 41,
- "|" => 40,
- "*" => 42,
- "." => 43,
- ">" => 44
+ "|" => 42,
+ "*" => 43,
+ "." => 44,
+ ">" => 45
}
},
- {#State 118
+ {#State 144
ACTIONS => {
- "-" => 35,
- "+" => 36,
- "&" => 38,
- "{" => 37,
- "/" => 39,
+ "-" => 34,
+ "<" => 35,
+ "+" => 37,
+ "~" => 36,
+ "&" => 39,
+ "{" => 38,
+ "/" => 40,
"(" => 41,
- "|" => 40,
- "*" => 42,
- "." => 43,
- "]" => 134,
- ">" => 44
+ "|" => 42,
+ "*" => 43,
+ "]" => 161,
+ "." => 44,
+ ">" => 45
}
},
- {#State 119
- DEFAULT => -47
- },
- {#State 120
- DEFAULT => -18
- },
- {#State 121
+ {#State 145
ACTIONS => {
- "-" => 35,
- "+" => 36,
- "&" => 38,
- "{" => 37,
- "/" => 39,
- "(" => 41,
- "|" => 40,
- "*" => 42,
- "." => 43,
- ">" => 44
+ "[" => 124
},
- DEFAULT => -28
- },
- {#State 122
- DEFAULT => -26
- },
- {#State 123
- DEFAULT => -30
- },
- {#State 124
- DEFAULT => -32
- },
- {#State 125
- ACTIONS => {
- "(" => 135
+ DEFAULT => -57,
+ GOTOS => {
+ 'array_len' => 162
}
},
- {#State 126
- ACTIONS => {
- "]" => 136
- }
+ {#State 146
+ DEFAULT => -24
},
- {#State 127
- DEFAULT => -29
+ {#State 147
+ DEFAULT => -44
},
- {#State 128
+ {#State 148
ACTIONS => {
- ";" => 137
+ ";" => 163
}
},
- {#State 129
- DEFAULT => -38,
- GOTOS => {
- 'pointers' => 138
- }
- },
- {#State 130
- DEFAULT => -49,
- GOTOS => {
- 'base_element' => 139,
- 'property_list' => 113
- }
+ {#State 149
+ DEFAULT => -43
},
- {#State 131
+ {#State 150
ACTIONS => {
- ";" => 140
+ 'IDENTIFIER' => 9,
+ "union" => 78,
+ ";" => 164,
+ "enum" => 79,
+ "[" => 7,
+ 'void' => 81,
+ "bitmap" => 80,
+ "struct" => 88
+ },
+ GOTOS => {
+ 'identifier' => 83,
+ 'struct' => 84,
+ 'enum' => 85,
+ 'type' => 155,
+ 'union' => 87,
+ 'bitmap' => 82
}
},
- {#State 132
+ {#State 151
ACTIONS => {
- "-" => 35,
- ";" => 141,
- "+" => 36,
- "&" => 38,
- "{" => 37,
- "/" => 39,
+ "-" => 34,
+ "<" => 35,
+ "+" => 37,
+ "~" => 36,
+ "&" => 39,
+ "{" => 38,
+ "/" => 40,
"(" => 41,
- "|" => 40,
- "*" => 42,
- "." => 43,
- ">" => 44
- }
+ "|" => 42,
+ "*" => 43,
+ "." => 44,
+ ">" => 45
+ },
+ DEFAULT => -35
},
- {#State 133
- DEFAULT => -15
+ {#State 152
+ DEFAULT => -33
},
- {#State 134
- DEFAULT => -48
+ {#State 153
+ DEFAULT => -38
},
- {#State 135
+ {#State 154
ACTIONS => {
- 'IDENTIFIER' => 9,
- 'CONSTANT' => 28,
- 'TEXT' => 22
+ "-" => 34,
+ "<" => 35,
+ "+" => 37,
+ "~" => 36,
+ "&" => 39,
+ "{" => 38,
+ "/" => 40,
+ "(" => 41,
+ "|" => 42,
+ "*" => 43,
+ "." => 44,
+ ">" => 45
},
- DEFAULT => -59,
- GOTOS => {
- 'identifier' => 23,
- 'text' => 24,
- 'anytext' => 142,
- 'constant' => 27
- }
+ DEFAULT => -39
},
- {#State 136
- ACTIONS => {
- ";" => 143
- },
+ {#State 155
DEFAULT => -49,
GOTOS => {
- 'base_element' => 144,
- 'property_list' => 113
+ 'pointers' => 165
}
},
- {#State 137
- DEFAULT => -41
- },
- {#State 138
- ACTIONS => {
- 'IDENTIFIER' => 9,
- "*" => 146
- },
+ {#State 156
+ DEFAULT => -60,
GOTOS => {
- 'identifier' => 145
+ 'base_element' => 166,
+ 'property_list' => 136
}
},
- {#State 139
- DEFAULT => -45
- },
- {#State 140
- DEFAULT => -17
+ {#State 157
+ ACTIONS => {
+ ";" => 167
+ }
},
- {#State 141
- DEFAULT => -16
+ {#State 158
+ DEFAULT => -52
},
- {#State 142
+ {#State 159
ACTIONS => {
- "-" => 35,
- "+" => 36,
- "&" => 38,
- "{" => 37,
- "/" => 39,
+ "-" => 34,
+ "<" => 35,
+ ";" => 168,
+ "+" => 37,
+ "~" => 36,
+ "&" => 39,
+ "{" => 38,
+ "/" => 40,
"(" => 41,
- "|" => 40,
- "*" => 42,
- "." => 43,
- ")" => 147,
- ">" => 44
+ "|" => 42,
+ "*" => 43,
+ "." => 44,
+ ">" => 45
}
},
- {#State 143
- DEFAULT => -36
+ {#State 160
+ DEFAULT => -16
},
- {#State 144
+ {#State 161
ACTIONS => {
- ";" => 148
+ "[" => 124
+ },
+ DEFAULT => -57,
+ GOTOS => {
+ 'array_len' => 169
}
},
- {#State 145
+ {#State 162
+ DEFAULT => -58
+ },
+ {#State 163
+ DEFAULT => -42
+ },
+ {#State 164
+ DEFAULT => -41
+ },
+ {#State 165
ACTIONS => {
- "[" => 103
+ 'IDENTIFIER' => 9,
+ "*" => 171
},
- DEFAULT => -46,
GOTOS => {
- 'array_len' => 149
+ 'identifier' => 170
}
},
- {#State 146
- DEFAULT => -39
+ {#State 166
+ DEFAULT => -56
},
- {#State 147
- ACTIONS => {
- "]" => 150
- }
+ {#State 167
+ DEFAULT => -18
},
- {#State 148
- DEFAULT => -35
+ {#State 168
+ DEFAULT => -17
},
- {#State 149
- DEFAULT => -37
+ {#State 169
+ DEFAULT => -59
},
- {#State 150
+ {#State 170
ACTIONS => {
- ";" => 151
+ "[" => 124
},
- DEFAULT => -49,
+ DEFAULT => -57,
GOTOS => {
- 'base_element' => 152,
- 'property_list' => 113
+ 'array_len' => 172
}
},
- {#State 151
- DEFAULT => -34
- },
- {#State 152
- ACTIONS => {
- ";" => 153
- }
+ {#State 171
+ DEFAULT => -50
},
- {#State 153
- DEFAULT => -33
+ {#State 172
+ DEFAULT => -48
}
],
yyrules =>
#line 24 "build/pidl/idl.yp"
{$_[3] => {
"TYPE" => "COCLASS",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "DATA" => $_[5],
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "DATA" => $_[5],
+ "FILE" => $_[0]->YYData->{INPUT_FILENAME},
+ "LINE" => $_[0]->YYData->{LINE},
}}
],
[#Rule 5
- 'interfaces', 0, undef
+ 'interface_names', 0, undef
],
[#Rule 6
- 'interfaces', 2,
+ 'interface_names', 4,
sub
-#line 34 "build/pidl/idl.yp"
+#line 36 "build/pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 7
'interface', 8,
sub
-#line 38 "build/pidl/idl.yp"
+#line 40 "build/pidl/idl.yp"
{$_[3] => {
"TYPE" => "INTERFACE",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "BASE" => $_[4],
- "DATA" => $_[6],
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "BASE" => $_[4],
+ "DATA" => $_[6],
+ "FILE" => $_[0]->YYData->{INPUT_FILENAME},
+ "LINE" => $_[0]->YYData->{LINE},
}}
],
[#Rule 8
[#Rule 9
'base_interface', 2,
sub
-#line 49 "build/pidl/idl.yp"
+#line 53 "build/pidl/idl.yp"
{ $_[2] }
],
[#Rule 10
'definitions', 1,
sub
-#line 53 "build/pidl/idl.yp"
+#line 57 "build/pidl/idl.yp"
{ [ $_[1] ] }
],
[#Rule 11
'definitions', 2,
sub
-#line 54 "build/pidl/idl.yp"
+#line 58 "build/pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 12
'definition', 1, undef
],
[#Rule 15
+ 'definition', 1, undef
+ ],
+ [#Rule 16
'const', 6,
sub
-#line 62 "build/pidl/idl.yp"
+#line 66 "build/pidl/idl.yp"
{{
"TYPE" => "CONST",
"DTYPE" => $_[2],
"NAME" => $_[3],
- "VALUE" => $_[5]
+ "VALUE" => $_[5],
+ "FILE" => $_[0]->YYData->{INPUT_FILENAME},
+ "LINE" => $_[0]->YYData->{LINE},
}}
],
- [#Rule 16
+ [#Rule 17
'const', 7,
sub
-#line 69 "build/pidl/idl.yp"
+#line 75 "build/pidl/idl.yp"
{{
"TYPE" => "CONST",
"DTYPE" => $_[2],
"NAME" => $_[3],
"ARRAY_LEN" => $_[4],
"VALUE" => $_[6],
+ "FILE" => $_[0]->YYData->{INPUT_FILENAME},
+ "LINE" => $_[0]->YYData->{LINE},
}}
],
- [#Rule 17
+ [#Rule 18
'function', 7,
sub
-#line 80 "build/pidl/idl.yp"
+#line 88 "build/pidl/idl.yp"
{{
"TYPE" => "FUNCTION",
"NAME" => $_[3],
"RETURN_TYPE" => $_[2],
"PROPERTIES" => $_[1],
- "DATA" => $_[5]
- }}
+ "ELEMENTS" => $_[5],
+ "FILE" => $_[0]->YYData->{INPUT_FILENAME},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
- [#Rule 18
+ [#Rule 19
+ 'declare', 5,
+sub
+#line 100 "build/pidl/idl.yp"
+{{
+ "TYPE" => "DECLARE",
+ "PROPERTIES" => $_[2],
+ "NAME" => $_[4],
+ "DATA" => $_[3],
+ "FILE" => $_[0]->YYData->{INPUT_FILENAME},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
+ ],
+ [#Rule 20
+ 'decl_type', 1, undef
+ ],
+ [#Rule 21
+ 'decl_type', 1, undef
+ ],
+ [#Rule 22
+ 'decl_enum', 1,
+sub
+#line 114 "build/pidl/idl.yp"
+{{
+ "TYPE" => "ENUM"
+ }}
+ ],
+ [#Rule 23
+ 'decl_bitmap', 1,
+sub
+#line 120 "build/pidl/idl.yp"
+{{
+ "TYPE" => "BITMAP"
+ }}
+ ],
+ [#Rule 24
'typedef', 6,
sub
-#line 90 "build/pidl/idl.yp"
+#line 126 "build/pidl/idl.yp"
{{
"TYPE" => "TYPEDEF",
"PROPERTIES" => $_[2],
"NAME" => $_[4],
"DATA" => $_[3],
- "ARRAY_LEN" => $_[5]
+ "ARRAY_LEN" => $_[5],
+ "FILE" => $_[0]->YYData->{INPUT_FILENAME},
+ "LINE" => $_[0]->YYData->{LINE},
}}
],
- [#Rule 19
+ [#Rule 25
'type', 1, undef
],
- [#Rule 20
+ [#Rule 26
'type', 1, undef
],
- [#Rule 21
+ [#Rule 27
'type', 1, undef
],
- [#Rule 22
+ [#Rule 28
'type', 1, undef
],
- [#Rule 23
+ [#Rule 29
+ 'type', 1, undef
+ ],
+ [#Rule 30
'type', 1,
sub
-#line 100 "build/pidl/idl.yp"
+#line 138 "build/pidl/idl.yp"
{ "void" }
],
- [#Rule 24
+ [#Rule 31
'enum', 4,
sub
-#line 105 "build/pidl/idl.yp"
+#line 143 "build/pidl/idl.yp"
{{
- "TYPE" => "ENUM",
+ "TYPE" => "ENUM",
"ELEMENTS" => $_[3]
}}
],
- [#Rule 25
+ [#Rule 32
'enum_elements', 1,
sub
-#line 112 "build/pidl/idl.yp"
+#line 150 "build/pidl/idl.yp"
{ [ $_[1] ] }
],
- [#Rule 26
+ [#Rule 33
'enum_elements', 3,
sub
-#line 113 "build/pidl/idl.yp"
+#line 151 "build/pidl/idl.yp"
{ push(@{$_[1]}, $_[3]); $_[1] }
],
- [#Rule 27
+ [#Rule 34
'enum_element', 1, undef
],
- [#Rule 28
+ [#Rule 35
'enum_element', 3,
sub
-#line 117 "build/pidl/idl.yp"
+#line 155 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 29
- 'struct', 5,
+ [#Rule 36
+ 'bitmap', 4,
sub
-#line 121 "build/pidl/idl.yp"
+#line 159 "build/pidl/idl.yp"
{{
- "TYPE" => "STRUCT",
- "PROPERTIES" => $_[1],
- "ELEMENTS" => $_[4]
+ "TYPE" => "BITMAP",
+ "ELEMENTS" => $_[3]
}}
],
- [#Rule 30
- 'union', 5,
+ [#Rule 37
+ 'bitmap_elements', 1,
sub
-#line 129 "build/pidl/idl.yp"
-{{
- "TYPE" => "UNION",
- "PROPERTIES" => $_[1],
- "DATA" => $_[4]
- }}
+#line 166 "build/pidl/idl.yp"
+{ [ $_[1] ] }
],
- [#Rule 31
- 'union_elements', 1,
+ [#Rule 38
+ 'bitmap_elements', 3,
sub
-#line 137 "build/pidl/idl.yp"
-{ [ $_[1] ] }
+#line 167 "build/pidl/idl.yp"
+{ push(@{$_[1]}, $_[3]); $_[1] }
],
- [#Rule 32
- 'union_elements', 2,
+ [#Rule 39
+ 'bitmap_element', 3,
sub
-#line 138 "build/pidl/idl.yp"
-{ push(@{$_[1]}, $_[2]); $_[1] }
+#line 170 "build/pidl/idl.yp"
+{ "$_[1] ( $_[3] )" }
],
- [#Rule 33
- 'union_element', 8,
+ [#Rule 40
+ 'struct', 4,
sub
-#line 143 "build/pidl/idl.yp"
+#line 174 "build/pidl/idl.yp"
{{
- "TYPE" => "UNION_ELEMENT",
- "CASE" => $_[4],
- "DATA" => $_[7]
- }}
+ "TYPE" => "STRUCT",
+ "ELEMENTS" => $_[3]
+ }}
],
- [#Rule 34
- 'union_element', 7,
+ [#Rule 41
+ 'empty_element', 2,
sub
-#line 149 "build/pidl/idl.yp"
+#line 181 "build/pidl/idl.yp"
{{
- "TYPE" => "EMPTY",
- "CASE" => $_[4],
+ "NAME" => "",
+ "TYPE" => "EMPTY",
+ "PROPERTIES" => $_[1],
+ "POINTERS" => 0,
+ "ARRAY_LEN" => [],
+ "FILE" => $_[0]->YYData->{INPUT_FILENAME},
+ "LINE" => $_[0]->YYData->{LINE},
}}
],
- [#Rule 35
- 'union_element', 5,
+ [#Rule 42
+ 'base_or_empty', 2, undef
+ ],
+ [#Rule 43
+ 'base_or_empty', 1, undef
+ ],
+ [#Rule 44
+ 'optional_base_element', 2,
sub
-#line 154 "build/pidl/idl.yp"
-{{
- "TYPE" => "UNION_ELEMENT",
- "CASE" => "default",
- "DATA" => $_[4]
- }}
+#line 195 "build/pidl/idl.yp"
+{ $_[2]->{PROPERTIES} = util::FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] }
],
- [#Rule 36
- 'union_element', 4,
+ [#Rule 45
+ 'union_elements', 0, undef
+ ],
+ [#Rule 46
+ 'union_elements', 2,
+sub
+#line 200 "build/pidl/idl.yp"
+{ push(@{$_[1]}, $_[2]); $_[1] }
+ ],
+ [#Rule 47
+ 'union', 4,
sub
-#line 160 "build/pidl/idl.yp"
+#line 204 "build/pidl/idl.yp"
{{
- "TYPE" => "EMPTY",
- "CASE" => "default",
- }}
+ "TYPE" => "UNION",
+ "ELEMENTS" => $_[3]
+ }}
],
- [#Rule 37
+ [#Rule 48
'base_element', 5,
sub
-#line 167 "build/pidl/idl.yp"
+#line 211 "build/pidl/idl.yp"
{{
"NAME" => $_[4],
"TYPE" => $_[2],
"PROPERTIES" => $_[1],
"POINTERS" => $_[3],
- "ARRAY_LEN" => $_[5]
+ "ARRAY_LEN" => $_[5],
+ "FILE" => $_[0]->YYData->{INPUT_FILENAME},
+ "LINE" => $_[0]->YYData->{LINE},
}}
],
- [#Rule 38
+ [#Rule 49
'pointers', 0,
sub
-#line 179 "build/pidl/idl.yp"
+#line 225 "build/pidl/idl.yp"
{ 0 }
],
- [#Rule 39
+ [#Rule 50
'pointers', 2,
sub
-#line 180 "build/pidl/idl.yp"
+#line 226 "build/pidl/idl.yp"
{ $_[1]+1 }
],
- [#Rule 40
+ [#Rule 51
'element_list1', 0, undef
],
- [#Rule 41
+ [#Rule 52
'element_list1', 3,
sub
-#line 187 "build/pidl/idl.yp"
+#line 231 "build/pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
- [#Rule 42
+ [#Rule 53
'element_list2', 0, undef
],
- [#Rule 43
+ [#Rule 54
'element_list2', 1, undef
],
- [#Rule 44
+ [#Rule 55
'element_list2', 1,
sub
-#line 193 "build/pidl/idl.yp"
+#line 237 "build/pidl/idl.yp"
{ [ $_[1] ] }
],
- [#Rule 45
+ [#Rule 56
'element_list2', 3,
sub
-#line 194 "build/pidl/idl.yp"
+#line 238 "build/pidl/idl.yp"
{ push(@{$_[1]}, $_[3]); $_[1] }
],
- [#Rule 46
+ [#Rule 57
'array_len', 0, undef
],
- [#Rule 47
- 'array_len', 2,
+ [#Rule 58
+ 'array_len', 3,
sub
-#line 199 "build/pidl/idl.yp"
-{ "*" }
+#line 243 "build/pidl/idl.yp"
+{ push(@{$_[3]}, "*"); $_[3] }
],
- [#Rule 48
- 'array_len', 3,
+ [#Rule 59
+ 'array_len', 4,
sub
-#line 200 "build/pidl/idl.yp"
-{ "$_[2]" }
+#line 244 "build/pidl/idl.yp"
+{ push(@{$_[4]}, "$_[2]"); $_[4] }
],
- [#Rule 49
+ [#Rule 60
'property_list', 0, undef
],
- [#Rule 50
+ [#Rule 61
'property_list', 4,
sub
-#line 206 "build/pidl/idl.yp"
+#line 250 "build/pidl/idl.yp"
{ util::FlattenHash([$_[1],$_[3]]); }
],
- [#Rule 51
+ [#Rule 62
'properties', 1,
sub
-#line 209 "build/pidl/idl.yp"
+#line 253 "build/pidl/idl.yp"
{ $_[1] }
],
- [#Rule 52
+ [#Rule 63
'properties', 3,
sub
-#line 210 "build/pidl/idl.yp"
+#line 254 "build/pidl/idl.yp"
{ util::FlattenHash([$_[1], $_[3]]); }
],
- [#Rule 53
+ [#Rule 64
'property', 1,
sub
-#line 213 "build/pidl/idl.yp"
+#line 257 "build/pidl/idl.yp"
{{ "$_[1]" => "1" }}
],
- [#Rule 54
+ [#Rule 65
'property', 4,
sub
-#line 214 "build/pidl/idl.yp"
+#line 258 "build/pidl/idl.yp"
{{ "$_[1]" => "$_[3]" }}
],
- [#Rule 55
+ [#Rule 66
'listtext', 1, undef
],
- [#Rule 56
+ [#Rule 67
'listtext', 3,
sub
-#line 219 "build/pidl/idl.yp"
+#line 263 "build/pidl/idl.yp"
{ "$_[1] $_[3]" }
],
- [#Rule 57
+ [#Rule 68
'commalisttext', 1, undef
],
- [#Rule 58
+ [#Rule 69
'commalisttext', 3,
sub
-#line 224 "build/pidl/idl.yp"
+#line 268 "build/pidl/idl.yp"
{ "$_[1],$_[3]" }
],
- [#Rule 59
+ [#Rule 70
'anytext', 0,
sub
-#line 228 "build/pidl/idl.yp"
+#line 272 "build/pidl/idl.yp"
{ "" }
],
- [#Rule 60
+ [#Rule 71
'anytext', 1, undef
],
- [#Rule 61
+ [#Rule 72
'anytext', 1, undef
],
- [#Rule 62
+ [#Rule 73
'anytext', 1, undef
],
- [#Rule 63
+ [#Rule 74
'anytext', 3,
sub
-#line 230 "build/pidl/idl.yp"
+#line 274 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 64
+ [#Rule 75
'anytext', 3,
sub
-#line 231 "build/pidl/idl.yp"
+#line 275 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 65
+ [#Rule 76
'anytext', 3,
sub
-#line 232 "build/pidl/idl.yp"
+#line 276 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 66
+ [#Rule 77
'anytext', 3,
sub
-#line 233 "build/pidl/idl.yp"
+#line 277 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 67
+ [#Rule 78
'anytext', 3,
sub
-#line 234 "build/pidl/idl.yp"
+#line 278 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 68
+ [#Rule 79
'anytext', 3,
sub
-#line 235 "build/pidl/idl.yp"
+#line 279 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 69
+ [#Rule 80
'anytext', 3,
sub
-#line 236 "build/pidl/idl.yp"
+#line 280 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 70
+ [#Rule 81
'anytext', 3,
sub
-#line 237 "build/pidl/idl.yp"
+#line 281 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 71
+ [#Rule 82
+ 'anytext', 3,
+sub
+#line 282 "build/pidl/idl.yp"
+{ "$_[1]$_[2]$_[3]" }
+ ],
+ [#Rule 83
+ 'anytext', 3,
+sub
+#line 283 "build/pidl/idl.yp"
+{ "$_[1]$_[2]$_[3]" }
+ ],
+ [#Rule 84
'anytext', 5,
sub
-#line 238 "build/pidl/idl.yp"
+#line 284 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]$_[4]$_[5]" }
],
- [#Rule 72
+ [#Rule 85
'anytext', 5,
sub
-#line 239 "build/pidl/idl.yp"
+#line 285 "build/pidl/idl.yp"
{ "$_[1]$_[2]$_[3]$_[4]$_[5]" }
],
- [#Rule 73
+ [#Rule 86
'identifier', 1, undef
],
- [#Rule 74
+ [#Rule 87
'constant', 1, undef
],
- [#Rule 75
+ [#Rule 88
'text', 1,
sub
-#line 248 "build/pidl/idl.yp"
+#line 294 "build/pidl/idl.yp"
{ "\"$_[1]\"" }
],
- [#Rule 76
+ [#Rule 89
'optional_semicolon', 0, undef
],
- [#Rule 77
+ [#Rule 90
'optional_semicolon', 1, undef
]
],
bless($self,$class);
}
-#line 259 "build/pidl/idl.yp"
+#line 305 "build/pidl/idl.yp"
-use util;
+use pidl::util;
sub _Error {
- if (exists $_[0]->YYData->{ERRMSG}) {
+ if (exists $_[0]->YYData->{ERRMSG}) {
print $_[0]->YYData->{ERRMSG};
delete $_[0]->YYData->{ERRMSG};
return;
if (s/^([\w_]+)//) {
$parser->YYData->{LAST_TOKEN} = $1;
if ($1 =~
- /^(coclass|interface|const|typedef|union
- |struct|enum|void|case|default)$/x) {
+ /^(coclass|interface|const|typedef|declare|union
+ |struct|enum|bitmap|void)$/x) {
return $1;
}
return('IDENTIFIER',$1);
if (! defined $cpp) {
$cpp = "cpp"
}
- my $data = `$cpp -xc $filename`;
+ my $data = `$cpp -D__PIDL__ -xc $filename`;
$/ = $saved_delim;
$self->YYData->{INPUT} = $data;
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") {
- $e->{PROPERTIES}->{object} = 1;
- unshift(@{$e->{DATA}},
- { 'NAME' => 'ORPCthis',
- 'POINTERS' => 0,
- 'PROPERTIES' => { 'in' => '1' },
- 'TYPE' => 'ORPCTHIS'
- });
- unshift(@{$e->{DATA}},
- { 'NAME' => 'ORPCthat',
- 'POINTERS' => 0,
- '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;
+ return util::CleanData($idl);
}
1;