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