/*
* Copyright (c) 2003, The Tendra Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice unmodified, this list of conditions, and the following
* disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*
* Crown Copyright (c) 1997
*
* This TenDRA(r) Computer Program is subject to Copyright
* owned by the United Kingdom Secretary of State for Defence
* acting through the Defence Evaluation and Research Agency
* (DERA). It is made available to Recipients with a
* royalty-free licence for its use, reproduction, transfer
* to other parties and amendment for any purpose not excluding
* product development provided that any such use et cetera
* shall be deemed to be acceptance of the following conditions:-
*
* (1) Its Recipients shall ensure that this Notice is
* reproduced upon any copies or amended versions of it;
*
* (2) Any amended version of it shall be clearly marked to
* show both the nature of and the organisation responsible
* for the relevant amendment or amendments;
*
* (3) Its onward transfer from a recipient to another
* party shall be deemed to be that party's acceptance of
* these conditions;
*
* (4) DERA gives no warranty or assurance as to its
* quality or suitability for any purpose and DERA accepts
* no liability whatsoever in relation to any use to which
* it may be put.
*
* $TenDRA: tendra/src/tools/pl/syntax.sid,v 1.2 2004/03/08 14:47:47 bp Exp $
*/
%types%
AL_TAGDEC ;
INT ;
LABDEC ;
NAME ;
PTR_TDF ;
STRING ;
SORT ;
TAGDEC ;
TDF ;
TOKDEC ;
TOKPAR ;
ULONG ;
%terminals%
access_cons ; access_sort ; access_tok ; addrop ; al_tag_sort ;
al_tag_tok ; al_tagdef ; alignment_cons ; alignment_sort ;
alignment_tok ; arithop ; bar ; !base ; bitfield_variety_cons ;
bitfield_variety_sort ; bitfield_variety_tok ; bool_cons ; bool_sort ;
bool_tok ; case_term ; ccurl ; char_term ; character ; check_stack ;
colon ; comma ; common_term ; commondec_term ; cons ; crd ; csq ;
dotdotdot ; double_term ; dynamic ; e_term ; eof ; equals ;
error_code_cons ; error_treatment_cons ; error_treatment_sort ;
error_treatment_tok ; exp_cons ; exp_sort ; exp_tok ; float_den ;
float_query ; float_term ; floating_variety_cons ;
floating_variety_sort ; floating_variety_tok ; general ; goesto ; hash ;
iddec ; ident ; int_den ; int_term ; keep ; lab ; label_sort ;
label_tok ; let ; line_term ; logop ; long_term ; !mantissa ; !maxexp ;
!minexp ; minus_term ; nat_cons ; nat_sort ; nat_tok ; !notaterminal ;
!ntest_cons ; ntest_sort ; ntest_tok ; ocurl ; offset_query ; ord ;
osq ; !point ; proc ; proc_query ; ptr ; ptr_query ; qstring ; query ;
relop ; rep ; rounding_mode_cons ; rounding_mode_sort ;
rounding_mode_tok ; same ; semi ; shape_cons ; shape_sort ; shape_tok ;
short_term ; signed_nat_cons ; signed_nat_sort ; signed_nat_tok ;
signed_term ; size_term ; star ; string_cons ; string_sort ;
string_term ; string_tok ; struct_term ; tag_cons ; tag_sort ; tag_tok ;
tail_call_term ; tokdec ; tokdef ; !token_cons ; token_sort ;
!token_tok ; transfer_mode_cons ; transfer_mode_sort ;
transfer_mode_tok ; unsigned_term ; untidy ; use ; var ; vardec ;
variety_cons ; variety_sort ; variety_tok ; varpar ;
%productions%
/* ACTION DECLARATIONS */
: ( :TDF, :TDF, :TDF, :PTR_TDF ) -> () ;
: ( :INT ) -> () ;
: () -> () ;
: () -> ( :TDF, :TDF, :PTR_TDF ) ;
: ( :TDF, :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: () -> ( :TDF, :PTR_TDF ) ;
: () -> ( :TDF, :PTR_TDF ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: () -> () ;
: ( :AL_TAGDEC, :TDF, :PTR_TDF, :INT ) -> () ;
: () -> ( :AL_TAGDEC, :TDF, :PTR_TDF, :INT ) ;
: ( :TDF, :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> ( :TDF, :TDF, :PTR_TDF ) ;
: ( :TDF, :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: ( :TDF, :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> ( :TDF, :TDF, :TDF, :TDF ) ;
: ( :TDF ) -> () ;
: ( :TDF ) -> () ;
: ( :TDF, :TDF, :TDF, :TDF ) -> () ;
: () -> ( :TDF, :PTR_TDF ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: () -> ( :TDF, :TDF, :PTR_TDF ) ;
: ( :TDF, :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> ( :TDF, :TDF, :PTR_TDF ) ;
: ( :TDF, :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: () -> () ;
: () -> ( :TDF, :TDF, :PTR_TDF ) ;
: ( :TDF, :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :PTR_TDF, :TAGDEC ) -> () ;
: ( :TDF, :TDF, :PTR_TDF, :TAGDEC, :INT ) -> () ;
: () -> ( :PTR_TDF ) ;
: ( :PTR_TDF ) -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: ( :TDF, :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> ( :TDF, :PTR_TDF ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> ( :TDF, :TDF, :PTR_TDF, :STRING ) ;
: ( :TDF, :TDF, :PTR_TDF, :STRING ) -> () ;
: ( :TDF, :TDF, :PTR_TDF, :STRING ) -> () ;
: ( :TDF, :TDF, :PTR_TDF, :STRING ) -> () ;
: ( :TDF, :TDF, :PTR_TDF, :STRING ) -> () ;
: () -> ( :TDF, :TDF, :TDF, :PTR_TDF, :INT, :LABDEC ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :INT, :LABDEC ) -> () ;
: ( :TDF, :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> ( :TDF, :TDF, :PTR_TDF ) ;
: ( :TDF, :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> ( :TAGDEC ) ;
: ( :TAGDEC ) -> () ;
: () -> () ;
: () -> ( :TDF, :PTR_TDF, :INT, :ULONG, :INT ) ;
: ( :TDF, :PTR_TDF, :INT, :ULONG, :INT ) -> () ;
: () -> () ;
: () -> () ;
: () -> ( :TDF, :TDF, :TDF, :PTR_TDF, :LABDEC ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :TDF, :PTR_TDF, :LABDEC ) -> () ;
: () -> ( :TDF, :PTR_TDF ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: () -> ( :TDF, :TDF, :TDF, :TDF, :PTR_TDF, :TAGDEC, :LABDEC ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :TDF, :TDF, :PTR_TDF, :TAGDEC, :LABDEC ) -> () ;
: () -> ( :TDF, :TDF, :TDF, :PTR_TDF, :LABDEC, :INT ) ;
: ( :INT ) -> () ;
: ( :TDF, :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :TDF, :PTR_TDF, :LABDEC, :INT ) -> () ;
: () -> () ;
: () -> ( :TDF, :TDF, :PTR_TDF ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> ( :TDF, :TDF, :PTR_TDF ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: () -> ( :TDF, :TDF, :TDF, :PTR_TDF, :INT ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :TDF, :PTR_TDF, :INT ) -> () ;
: () -> () ;
: () -> () ;
: () -> ( :TDF, :PTR_TDF ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: () -> ( :TDF, :TDF, :TDF, :TDF, :PTR_TDF, :INT, :ULONG ) ;
: () -> ( :TDF, :TDF, :TDF, :TDF, :PTR_TDF, :INT, :ULONG ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :TDF, :TDF, :PTR_TDF, :INT, :ULONG ) -> () ;
: () -> ( :PTR_TDF, :TOKDEC, :TOKDEC ) ;
: ( :PTR_TDF, :TOKDEC, :TOKDEC ) -> () ;
: ( :TDF, :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: () -> () ;
: () -> ( :TDF, :TDF, :TDF, :INT, :INT, :TAGDEC, :TAGDEC, :TAGDEC ) ;
: ( :TDF, :INT, :TAGDEC, :TAGDEC ) -> () ;
: ( :TDF, :INT, :TAGDEC ) -> () ;
: ( :TDF, :TDF, :TDF, :TDF, :TDF, :INT, :INT, :TAGDEC ) -> () ;
: () -> ( :TDF, :TDF, :TDF, :PTR_TDF ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: () -> ( :INT ) ;
: ( :INT ) -> () ;
: () -> ( :TDF, :PTR_TDF, :INT ) ;
: ( :TDF, :PTR_TDF, :INT ) -> () ;
: () -> ( :TOKDEC ) ;
: ( :TOKDEC ) -> () ;
: () -> ( :TDF, :TDF, :TDF, :TDF, :PTR_TDF, :INT, :INT, :INT, :TAGDEC, :LABDEC ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :PTR_TDF, :INT ) -> () ;
: ( :TDF, :PTR_TDF, :INT ) -> () ;
: ( :INT ) -> () ;
: ( :TDF, :TDF, :TDF, :TDF, :PTR_TDF, :INT, :INT, :INT, :TAGDEC, :LABDEC ) -> () ;
: () -> ( :TDF, :TDF, :TDF, :PTR_TDF, :NAME, :INT ) ;
: () -> () ;
: () -> () ;
: () -> ( :TDF, :TDF, :PTR_TDF, :TAGDEC, :INT ) ;
: ( :TDF, :PTR_TDF, :INT ) -> () ;
: ( :PTR_TDF, :TAGDEC ) -> () ;
: ( :TDF, :TDF, :PTR_TDF, :TAGDEC, :INT ) -> () ;
: ( :TDF, :TDF, :PTR_TDF, :TAGDEC, :INT ) -> () ;
: ( :TAGDEC ) -> () ;
: ( :TDF, :TDF, :TDF, :PTR_TDF, :NAME, :INT ) -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> ( :TDF, :PTR_TDF ) ;
: ( :TDF ) -> () ;
: () -> () ;
: () -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: () -> ( :PTR_TDF ) ;
: ( :PTR_TDF ) -> () ;
: () -> ( :TDF, :TDF ) ;
: ( :TDF, :TDF ) -> () ;
: ( :TDF, :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: () -> ( :TDF, :PTR_TDF ) ;
: () -> () ;
: ( :TDF, :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: ( :TDF, :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> ( :TDF, :PTR_TDF ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :PTR_TDF, :TAGDEC, :STRING, :INT ) -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> ( :PTR_TDF ) ;
: ( :PTR_TDF ) -> () ;
: ( :PTR_TDF ) -> () ;
: ( :PTR_TDF ) -> () ;
: () -> ( :TDF, :PTR_TDF ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: ( :TDF, :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: ( :TDF, :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: ( :PTR_TDF, :TDF, :PTR_TDF, :INT ) -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> ( :TDF, :PTR_TDF ) ;
: () -> ( :PTR_TDF, :TDF, :PTR_TDF, :INT ) ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: ( :TDF, :TDF, :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: () -> () ;
: () -> () ;
: () -> ( :TDF, :PTR_TDF ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: () -> ( :TDF, :PTR_TDF ) ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: () -> () ;
: () -> () ;
: () -> ( :SORT, :TOKPAR, :TOKPAR ) ;
: ( :TOKPAR ) -> () ;
: ( :SORT, :TOKPAR, :TOKPAR ) -> () ;
: () -> () ;
: () -> ( :SORT ) ;
: ( :SORT ) -> () ;
: () -> () ;
: () -> ( :TOKDEC ) ;
: ( :TOKDEC ) -> () ;
: () -> ( :TDF, :PTR_TDF ) ;
: () -> () ;
: () -> ( :TDF, :PTR_TDF, :TAGDEC, :INT ) ;
: ( :PTR_TDF, :TAGDEC, :INT ) -> () ;
: ( :TDF, :PTR_TDF, :TAGDEC, :INT ) -> () ;
: () -> () ;
: () -> () ;
: () -> ( :TDF, :TDF, :PTR_TDF, :TAGDEC ) ;
: ( :TAGDEC ) -> () ;
: ( :TDF, :TDF, :PTR_TDF, :TAGDEC ) -> () ;
: ( :TDF, :TDF, :PTR_TDF, :TAGDEC ) -> () ;
: ( :TDF, :TDF, :PTR_TDF, :TAGDEC ) -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: () -> ( :TDF, :TDF, :PTR_TDF, :TAGDEC, :STRING, :INT ) ;
: ( :TDF, :PTR_TDF, :TAGDEC, :STRING ) -> () ;
: ( :TDF, :TDF, :PTR_TDF, :TAGDEC ) -> () ;
: ( :PTR_TDF, :TAGDEC, :STRING ) -> () ;
: ( :TDF, :PTR_TDF ) -> () ;
: ( :TDF, :TDF, :PTR_TDF, :TAGDEC, :INT ) -> () ;
: () -> ( :TDF, :TDF, :PTR_TDF, :TAGDEC, :STRING, :INT ) ;
: ( :TDF, :TDF, :PTR_TDF, :TAGDEC ) -> () ;
: ( :TDF, :TDF, :PTR_TDF, :TAGDEC, :INT ) -> () ;
: ( :TAGDEC ) -> () ;