blob: bdd1d576a903c89463ff0b86a5a07e1fff983567 [file] [log] [blame]
/*
* Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* COMPONENT_NAME: idl.parser
*
* ORIGINS: 27
*
* 5639-D57, (C) COPYRIGHT International Business Machines Corp., 1997, 1998
*
*/
CORBA IDL
-----------------
<specification> EOF
<specification'> EOF
<definition> EOF, typedef, struct, union, enum, const, exception, interface, module, }
<module> ;
<module'> }
<module''> }
<interface> ;
<interface'> ;
<interface_dcl> ;
<interface_body> }
<interface_body'> }
<export> typedef, struct, union, enum, const, exception, readonly, attribute, oneway, float, double, long, short, unsigned, char, boolean, octet, any, string, id, ::, void, state, }
<state_def> typedef, struct, union, enum, const, exception, readonly, attribute, oneway, float, double, long, short, unsigned, char, boolean, octet, any, string, id, ::, void, state, }
<state_def'> }
<state_member> private, protected, public, float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum, }
<state_modifier> float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum
<inheritance_spec> {
<inheritance_spec'> {
<scoped_name> ",", {, id, ::, literal, (, >, ), macroID
<scoped_name'> ",", {, id, ::, literal, (, >, ), macroID
<const_dcl> ;
<const_type> id
<const_exp> ;, ), >, ], :
<or_expr> ;, ), >, ], :
<or_expr'> ;, ), >, ], :
<xor_expr> |, ;, ), >, ], :
<xor_expr'> | ;, ), >, ], :
<and_expr> ^, |, ;, ), >, ], :
<and_expr'> ^, |, ;, ), >, ], :
<shift_expr> &, ^, |, ;, ), >, ], :
<shift_expr'> &, ^, |, ;, ), >, ], :
<add_expr> >>, <<, &, ^, |, ;, ), >, ], :
<add_expr'> >>, <<, &, ^, |, ;, ), >, ], :
<mult_expr> >>, <<, &, ^, |, ;, ), >, ], :
<mult_expr'> +, -, >>, <<, &, ^, |, ;, ), >, ], :
<unary_expr> *, /, %, +, -, >>, <<, &, ^, |, ;, ), >, ], :
<unary_operator> id, ::, literal, (
<primary_expr> *, /, %, +, -, >>, <<, &, ^, |, ;, ), >, ], :
<literal> *, /, %, +, -, >>, <<, &, ^, |, ;, ), >, ], : (and , for string literal in <context_expr>)
<positive_int_const> >, ]
<type_dcl> ;
<type_declarator> ;
<type_spec> id
<simple_type_spec> id, ",", >
<base_type_spec> id, ",", >, macroID
<template_type_spec> id, ",", >
<constr_type_spec> id
<declarators> ;
<declarators'> ;
<declarator> ",", ;
<declarator'> ",", ;
<floating_pt_type> id, ",", >, macroID
<integer_type> id, ",", >, macroID, )
<signed_int> id, ",", >, macroID, )
<unsigned_int> id, ",", >, macroID, )
<char_type> id, ",", >, macroID, )
<boolean_type> id, ",", >, macroID, )
<octet_type> id, ",", >, macroID
<any_type> id, ",", >, macroID
<struct_type> ;, id
<member_list> }
<member_list'> }
<member> float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum, }
<union_type> ;, id
<switch_type_spec> )
<switch_body> }
<switch_body'> }
<case> case, default, }
<case'> float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum
<case_label> case, default, float, double, long, short, unsigned, char, boolean, octet, any, sequence, string, id, ::, struct, union, enum
<element_spec> ;
<enum_type> ;, id, )
<enum_type'> }
<sequence_type> id, ",", >
<sequence_type'> id, ",", >
<string_type> id, ",", >, macroID
<string_type'> id, ",", >, macroID
<fixed_array_size> [, ",", ;
<attr_dcl> ;
<attr_dcl'> ;
<except_dcl> ;
<except_dcl'> }
<op_dcl> ;
<op_dcl'> ;
<op_dcl''> ;
<op_dcl'''> ;
<op_attribute> float, double, long, short, unsigned, char, boolean, octet, any, string, id, ::, void
<op_type_spec> id, macroID
<parameter_dcls> raises, context, ;
<parameter_dcls'> raises, context, ;
<parameter_dcls''> )
<param_dcl> , )
<param_attribute> float, double, long, short, unsigned, char, boolean, octet, any, string, id, ::
<raises_expr> context, ;
<raises_expr'> )
<context_expr> ;
<context_expr'> )
<param_type_spec> id, macroID