first.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> typedef, struct, union, enum, const, exception, interface, module 39 40<specification'> <FOLLOW>, typedef, struct, union, enum, const, exception, interface, module 41 42<definition> typedef, struct, union, enum, const, exception, interface, module 43 44<module> module 45 46<module'> typedef, struct, union, enum, const, exception, interface, module 47 48<module''> typedef, struct, union, enum, const, exception, interface, module, <FOLLOW> 49 50<interface> interface 51 52<interface'> <FOLLOW>, :, { 53 54<interface_dcl> :, { 55 56<interface_body> typedef, struct, union, enum, const, exception, readonly, attribute, oneway, float, double, long, short, unsigned, char, boolean, octet, any, string, id, ::, void, state 57 58<interface_body'> <FOLLOW>, typedef, struct, union, enum, const, exception, readonly, attribute, oneway, float, double, long, short, unsigned, char, boolean, octet, any, string, id, ::, void, state 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> state 63 64<state_def'> private, protected, public, float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum, <FOLLOW> 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> private, protected, public 69 70<inheritance_spec> : 71 72<inheritance_spec'> <FOLLOW>, "," 73 74<scoped_name> id, :: 75 76<scoped_name'> <FOLLOW>, :: 77 78<const_dcl> const 79 80<const_type> long, short, unsigned, char, boolean, float, double, string, id, :: 81 82<const_exp> -, +, ~, id, ::, literal, ( 83 84<or_expr> -, +, ~, id, ::, literal, ( 85 86<or_expr'> <FOLLOW>, | 87 88<xor_expr> -, +, ~, id, ::, literal, ( 89 90<xor_expr'> <FOLLOW>, ^ 91 92<and_expr> -, +, ~, id, ::, literal, ( 93 94<and_expr'> <FOLLOW>, & 95 96<shift_expr> -, +, ~, id, ::, literal, ( 97 98<shift_expr'> <FOLLOW>, >>, << 99 100<add_expr> -, +, ~, id, ::, literal, ( 101 102<add_expr'> <FOLLOW>, +, - 103 104<mult_expr> -, +, ~, id, ::, literal, ( 105 106<mult_expr'> <FOLLOW>, *, /, % 107 108<unary_expr> -, +, ~, id, ::, literal, ( 109 110<unary_operator> -, +, ~ 111 112<primary_expr> id, ::, literal, ( 113 114<literal> literals 115 116<positive_int_const> -, +, ~, id, ::, literal, ( 117 118<type_dcl> typedef, struct, union, enum 119 120<type_declarator> float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum 121 122<type_spec> float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum 123 124<simple_type_spec> float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, :: 125 126<base_type_spec> float, double, long, short, unsigned, char, boolean, octet, any 127 128<template_type_spec> sequence, string 129 130<constr_type_spec> struct, union, enum 131 132<declarators> id 133 134<declarators'> <FOLLOW>, "," 135 136<declarator> id 137 138<declarator'> <FOLLOW>, [ 139 140<floating_pt_type> float, double 141 142<integer_type> long, short, unsigned 143 144<signed_int> long, short 145 146<unsigned_int> unsigned 147 148<char_type> char 149 150<boolean_type> boolean 151 152<octet_type> octet 153 154<any_type> any 155 156<struct_type> struct 157 158<member_list> float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum 159 160<member_list'> <FOLLOW>, float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum 161 162<member> float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum 163 164<union_type> union 165 166<switch_type_spec> long, short, unsigned, char, boolean, enum, id, :: 167 168<switch_body> case, default 169 170<switch_body'> <FOLLOW>, case, default 171 172<case> case, default 173 174<case'> <FOLLOW>, case, default 175 176<case_label> case, default 177 178<element_spec> float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum 179 180<enum_type> enum 181 182<enum_type'> <FOLLOW>, "," 183 184<sequence_type> sequence 185 186<sequence_type'> ",", > 187 188<string_type> string 189 190<string_type'> <FOLLOW>, < 191 192<fixed_array_size> [ 193 194<attr_dcl> readonly, attribute 195 196<attr_dcl'> <FOLLOW>, "," 197 198<except_dcl> exception 199 200<except_dcl'> <FOLLOW>, float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum 201 202<op_dcl> oneway, float, double, long, short, unsigned, char, boolean, octet, any, string, id, ::, void 203 204<op_dcl'> id, macroID 205 206<op_dcl''> <FOLLOW>, raises, context, ; 207 208<op_dcl'''> <FOLLOW>, context 209 210<op_attribute> oneway 211 212<op_type_spec> float, double, long, short, unsigned, char, boolean, octet, any, string, id, ::, void 213 214<parameter_dcls> ( 215 216<parameter_dcls'> in, out, inout, ) 217 218<parameter_dcls''> <FOLLOW>, "," 219 220<param_dcl> in, out, inout 221 222<param_attribute> in, out, inout 223 224<raises_expr> raises 225 226<raises_expr'> <FOLLOW>, "," 227 228<context_expr> context 229 230<context_expr'> <FOLLOW>, "," 231 232<param_type_spec> float, double, long, short, unsigned, char, boolean, octet, any, string, id, :: 233 234