follow.set revision 608:7e06bf1dcb09
1/* 2 * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26/* 27 * COMPONENT_NAME: idl.parser 28 * 29 * ORIGINS: 27 30 * 31 * 5639-D57, (C) COPYRIGHT International Business Machines Corp., 1997, 1998 32 * 33 */ 34 35CORBA IDL 36----------------- 37 38<specification> EOF 39 40<specification'> EOF 41 42<definition> EOF, typedef, struct, union, enum, const, exception, interface, module, } 43 44<module> ; 45 46<module'> } 47 48<module''> } 49 50<interface> ; 51 52<interface'> ; 53 54<interface_dcl> ; 55 56<interface_body> } 57 58<interface_body'> } 59 60<export> typedef, struct, union, enum, const, exception, readonly, attribute, oneway, float, double, long, short, unsigned, char, boolean, octet, any, string, id, ::, void, state, } 61 62<state_def> typedef, struct, union, enum, const, exception, readonly, attribute, oneway, float, double, long, short, unsigned, char, boolean, octet, any, string, id, ::, void, state, } 63 64<state_def'> } 65 66<state_member> private, protected, public, float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum, } 67 68<state_modifier> float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum 69 70<inheritance_spec> { 71 72<inheritance_spec'> { 73 74<scoped_name> ",", {, id, ::, literal, (, >, ), macroID 75 76<scoped_name'> ",", {, id, ::, literal, (, >, ), macroID 77 78<const_dcl> ; 79 80<const_type> id 81 82<const_exp> ;, ), >, ], : 83 84<or_expr> ;, ), >, ], : 85 86<or_expr'> ;, ), >, ], : 87 88<xor_expr> |, ;, ), >, ], : 89 90<xor_expr'> | ;, ), >, ], : 91 92<and_expr> ^, |, ;, ), >, ], : 93 94<and_expr'> ^, |, ;, ), >, ], : 95 96<shift_expr> &, ^, |, ;, ), >, ], : 97 98<shift_expr'> &, ^, |, ;, ), >, ], : 99 100<add_expr> >>, <<, &, ^, |, ;, ), >, ], : 101 102<add_expr'> >>, <<, &, ^, |, ;, ), >, ], : 103 104<mult_expr> >>, <<, &, ^, |, ;, ), >, ], : 105 106<mult_expr'> +, -, >>, <<, &, ^, |, ;, ), >, ], : 107 108<unary_expr> *, /, %, +, -, >>, <<, &, ^, |, ;, ), >, ], : 109 110<unary_operator> id, ::, literal, ( 111 112<primary_expr> *, /, %, +, -, >>, <<, &, ^, |, ;, ), >, ], : 113 114<literal> *, /, %, +, -, >>, <<, &, ^, |, ;, ), >, ], : (and , for string literal in <context_expr>) 115 116<positive_int_const> >, ] 117 118<type_dcl> ; 119 120<type_declarator> ; 121 122<type_spec> id 123 124<simple_type_spec> id, ",", > 125 126<base_type_spec> id, ",", >, macroID 127 128<template_type_spec> id, ",", > 129 130<constr_type_spec> id 131 132<declarators> ; 133 134<declarators'> ; 135 136<declarator> ",", ; 137 138<declarator'> ",", ; 139 140<floating_pt_type> id, ",", >, macroID 141 142<integer_type> id, ",", >, macroID, ) 143 144<signed_int> id, ",", >, macroID, ) 145 146<unsigned_int> id, ",", >, macroID, ) 147 148<char_type> id, ",", >, macroID, ) 149 150<boolean_type> id, ",", >, macroID, ) 151 152<octet_type> id, ",", >, macroID 153 154<any_type> id, ",", >, macroID 155 156<struct_type> ;, id 157 158<member_list> } 159 160<member_list'> } 161 162<member> float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum, } 163 164<union_type> ;, id 165 166<switch_type_spec> ) 167 168<switch_body> } 169 170<switch_body'> } 171 172<case> case, default, } 173 174<case'> float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum 175 176<case_label> case, default, float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum 177 178<element_spec> ; 179 180<enum_type> ;, id, ) 181 182<enum_type'> } 183 184<sequence_type> id, ",", > 185 186<sequence_type'> id, ",", > 187 188<string_type> id, ",", >, macroID 189 190<string_type'> id, ",", >, macroID 191 192<fixed_array_size> [, ",", ; 193 194<attr_dcl> ; 195 196<attr_dcl'> ; 197 198<except_dcl> ; 199 200<except_dcl'> } 201 202<op_dcl> ; 203 204<op_dcl'> ; 205 206<op_dcl''> ; 207 208<op_dcl'''> ; 209 210<op_attribute> float, double, long, short, unsigned, char, boolean, octet, any, string, id, ::, void 211 212<op_type_spec> id, macroID 213 214<parameter_dcls> raises, context, ; 215 216<parameter_dcls'> raises, context, ; 217 218<parameter_dcls''> ) 219 220<param_dcl> , ) 221 222<param_attribute> float, double, long, short, unsigned, char, boolean, octet, any, string, id, :: 223 224<raises_expr> context, ; 225 226<raises_expr'> ) 227 228<context_expr> ; 229 230<context_expr'> ) 231 232<param_type_spec> id, macroID 233 234