/* * Automatically generated from the files: * /mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.sid * and * /mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act * by: * /mnt/gmirror/ports/lang/TenDRA/work/tendra/obj/utilities/sid/sid */ /* BEGINNING OF HEADER */ #line 47 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* * Copyright (c) 2003-2004, 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.act,v 1.5 2005/09/27 09:31:14 stefanf Exp $ */ #include "config.h" #include "cstring.h" #include "fmm.h" #include "defs.h" #include "encodings.h" #include "enc_nos.h" #include "consfile.h" #include "lex.h" #include "analyse_sort.h" #include "find_id.h" #include "readstreams.h" #include "standardsh.h" #include "syntax.h" #include "units.h" #include "msgcat.h" #if FS_TENDRA #pragma TenDRA begin #pragma TenDRA unreachable code allow #pragma TenDRA variable analysis off #endif static int saved = 0 ; #define CURRENT_TERMINAL (unsigned)lex_v.t #define ADVANCE_LEXER lex_v = reader () #define SAVE_LEXER(e) ((saved = lex_v.t), (lex_v.t = (e))) #define RESTORE_LEXER (lex_v.t = saved) typedef Al_tagdec *PTR_Al_tagdec ; typedef Labdec *PTR_Labdec ; typedef char *PTR_char ; typedef Tagdec *PTR_Tagdec ; typedef TDF *PTR_TDF ; typedef Tokdec *PTR_Tokdec ; typedef Tokpar *PTR_Tokpar ; typedef unsigned long unsigned_long ; static Tokpar * g_tokpars; static Sort g_sname; static TDF g_tok_defn; static TokSort g_toksort; int search_for_toks = 1; static Tokdec * g_tokformals; static int g_lastfield; static TDF g_shape; static TDF g_lastshape; static Name * g_shtokname; static int g_has_vis = 0; static Bool issigned; static Labdec * g_labdec; static unsigned long intvalue; static TDF optlab; static TDF g_lower; static TDF g_upper; static Bool g_has_upper; static TDF intro_acc; static TDF intro_init; static int query_t; static int g_cr_v; static int g_ce_v; static int g_unt; static Tagdec * g_app_tags; static void do_procprops(int i) { switch(i) { case 0: return; case 1: OPTION(o_var_callers); return; case 2: OPTION(o_var_callees); return; case 3: OPTION(o_add_procprops(o_var_callers, o_var_callees)); return; case 4: OPTION(o_untidy); return; case 5: OPTION(o_add_procprops(o_var_callers, o_untidy)); return; case 6: OPTION(o_add_procprops(o_var_callees, o_untidy)); return; case 7: OPTION(o_add_procprops(o_var_callers, o_add_procprops(o_var_callees, o_untidy))); return; case 8: OPTION(o_check_stack); return; case 9: OPTION(o_add_procprops(o_var_callers,o_check_stack)); return; case 10: OPTION(o_add_procprops(o_var_callees,o_check_stack)); return; case 11: OPTION(o_add_procprops(o_check_stack, o_add_procprops(o_var_callers, o_var_callees))); return; case 12: OPTION(o_add_procprops(o_untidy,o_check_stack)); return; case 13: OPTION(o_add_procprops(o_check_stack, o_add_procprops(o_var_callers, o_untidy))); return; case 14: OPTION(o_add_procprops(o_check_stack, o_add_procprops(o_var_callees, o_untidy))); return; case 15: OPTION(o_add_procprops(o_check_stack, o_add_procprops(o_var_callers, o_add_procprops(o_var_callees, o_untidy)))); return; } } static int defaultlab = -1; static TDF g_lablist; BoolT do_pp = FALSE; static void success(void) { IGNORE printf("Reached end\n"); print_res(); } static int HAS_MAGIC = 1; unsigned long MAJOR_NO = major_version; unsigned long MINOR_NO = minor_version; #line 183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" /* BEGINNING OF FUNCTION DECLARATIONS */ extern void read_label (void); static void ZR641 (PTR_Tokdec *); static void ZRfull__sortname (void); static void ZR643 (int *); static void ZR645 (void); extern void read_variety (void); static void ZR646 (void); static void ZRtok__formal__list__opt (void); static void ZR647 (void); static void ZR648 (void); static void ZR650 (void); static void ZRsortname__list (void); static void ZRsignature__opt (void); static void ZRexp__sequence (void); static void ZRrange (void); static void ZR654 (void); static void ZR655 (TDF *, PTR_TDF *); static void ZRrange__label__list (void); static void ZR656 (void); extern void read_shape (void); static void ZR657 (void); static void ZRaccess__list (void); static void ZR660 (TDF *, TDF *, TDF *, TDF *); static void ZRtagshacc__list__opt (void); static void ZR661 (TDF *, PTR_TDF *); static void ZRlabdest__opt (void); static void ZR662 (PTR_TDF *); static void ZRalignment__list__opt (void); static void ZR663 (void); extern void read_string (void); static void ZR664 (void); static void ZRotagexp__list (void); static void ZRvariety__sign (void); static void ZR668 (void); static void ZR669 (TDF *, TDF *, PTR_TDF *, PTR_Tagdec *, int *); static void ZR670 (TDF *, TDF *, PTR_TDF *, PTR_Tagdec *, int *); extern void read_signed_nat (void); static void ZR672 (TDF *, TDF *, PTR_TDF *, PTR_char *); extern void read_token (void); static void ZR673 (void); static void ZRnat__not__int (void); static void ZRshape__body (void); static void ZRrepeat__starter__opt (void); static void ZR674 (void); static void ZRfield__list (void); static void ZR675 (void); static void ZR676 (void); static void ZR677 (TDF *, TDF *, PTR_TDF *, PTR_Tagdec *, PTR_char *, int *); static void ZRrounding__mode__opt (void); static void ZR678 (TDF *, TDF *, PTR_TDF *, PTR_Tagdec *, PTR_char *, int *); static void ZRnonst__shape (void); static void ZR679 (TDF *, TDF *, PTR_TDF *, PTR_Tagdec *, PTR_char *, int *); static void ZRaccess__opt (void); extern void read_error_code (void); static void ZRpostlude__opt (void); static void ZR680 (TDF *, TDF *, PTR_TDF *, PTR_Tagdec *, int *); static void ZRexponent__opt (void); static void ZR681 (TDF *, TDF *, PTR_TDF *, PTR_Tagdec *, int *); static void ZRclosed__exp (void); extern void read_bool (void); static void ZRvarintro__opt (void); extern void read_ntest (void); extern void read_bitfield_variety (void); static void ZRsigned__nat__body (void); static void ZRlabset__opt (void); static void ZRkeep__item (void); static void ZRstruct__def (void); static void ZRnonst__shape__body (void); extern void read_tag (void); static void ZRvariety__opt (void); extern void read_nat_option (void); static void ZRsortname__list__opt (void); extern void read_floating_variety (void); static void ZRtagshacc (void); static void ZRelement__list__opt (void); extern void read_nat (void); extern void read_alignment (void); static void ZRvarpar__opt (void); static void ZRkeep__list (void); static void ZRproc__def (void); extern void read_error_code_list (void); static void ZRcallee__var__opt (void); static void ZRtag__dec (void); static void ZRtag__intro (void); extern void read_exp (void); static void ZRtag__def (void); static void ZRotagexp__list__opt (void); static void ZRtok__formal__list (void); static void ZRuntidy__opt (void); static void ZRcaller__var__opt (void); static void ZRproc__def__body (void); static void ZRlabelled__list (void); static void ZRoffset__exp__list (void); static void ZRbitfield__sign (void); static void ZRtok__dec (void); static void ZRexp__comma__list (void); static void ZRexp__body (void); static void ZRtok__def (void); static void ZRunary__exp (void); static void ZRtagshacc__list (void); static void ZRshapetok (void); static void ZRalignment__list (void); extern void read_error_treatment (void); static void ZRcallee (void); extern void read_al_tag (void); extern void read_exp_list (void); static void ZRelement (void); static void ZR622 (void); static void ZRtok__def__body (void); static void ZRinteger (void); extern void read_transfer_mode (void); extern void read_rounding_mode (void); static void ZR625 (void); static void ZR626 (void); extern void read_access (void); static void ZR627 (void); static void ZR628 (void); static void ZR629 (void); static void ZR630 (void); static void ZR632 (void); static void ZRkeep__list__opt (void); static void ZR633 (void); static void ZRal__tag__def (void); static void ZRotagexp (void); extern void read_program (void); static void ZR634 (void); /* BEGINNING OF STATIC VARIABLES */ /* BEGINNING OF FUNCTION DEFINITIONS */ void read_label (void) { ZL2_label:; switch (CURRENT_TERMINAL) { case lex_label__sort: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF INLINE: label */ goto ZL2_label; /* END OF INLINE: label */ } /*UNREACHED*/ case lex_label__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 349 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 358 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case lex_ident: { /* BEGINNING OF ACTION: label1 */ { #line 1493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" char * n =lex_v.val.name; Labdec * x = find_lab(n); if (x==(Labdec*)0) { x = xalloc(sizeof(*x)); x->idname.id = n; x->idname.name.unit_name = next_label(); x->declared = 0; x->next = labdecs; labdecs = x; } g_labdec = x; o_make_label(out_tdfint32(LOCNAME(x->idname))); #line 379 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: label1 */ ADVANCE_LEXER; } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 398 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZR641 (PTR_Tokdec *ZI640) { switch (CURRENT_TERMINAL) { case lex_exp__tok: { ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((*ZI640), &(*ZI640)->sort); #line 416 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case lex_signed__nat__tok: { TDF ZIa; TDF ZIb; ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((*ZI640), &(*ZI640)->sort); #line 432 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ /* BEGINNING OF ACTION: mint1_dec */ { #line 1559 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ (ZIa) = *current_TDF; INIT_TDF(current_TDF); #line 442 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: mint1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_variety (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: mint2 */ { #line 1565 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIb) = *current_TDF; INIT_TDF(current_TDF); o_make_int(append_TDF(&(ZIb),1), append_TDF(&(ZIa),1)); #line 464 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: mint2 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRfull__sortname (void) { if ((CURRENT_TERMINAL) == 130) { return; } { /* BEGINNING OF ACTION: sortname1 */ { #line 1906 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_sname.sort = lex_v.t; #line 499 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: sortname1 */ /* BEGINNING OF INLINE: sortname */ { switch (CURRENT_TERMINAL) { case lex_access__sort: { ADVANCE_LEXER; } break; case lex_al__tag__sort: { ADVANCE_LEXER; } break; case lex_alignment__sort: { ADVANCE_LEXER; } break; case lex_bitfield__variety__sort: { ADVANCE_LEXER; } break; case lex_bool__sort: { ADVANCE_LEXER; } break; case lex_error__treatment__sort: { ADVANCE_LEXER; } break; case lex_exp__sort: { ADVANCE_LEXER; } break; case lex_floating__variety__sort: { ADVANCE_LEXER; } break; case lex_label__sort: { ADVANCE_LEXER; } break; case lex_nat__sort: { ADVANCE_LEXER; } break; case lex_ntest__sort: { ADVANCE_LEXER; } break; case lex_rounding__mode__sort: { ADVANCE_LEXER; } break; case lex_shape__sort: { ADVANCE_LEXER; } break; case lex_signed__nat__sort: { ADVANCE_LEXER; } break; case lex_string__sort: { ADVANCE_LEXER; } break; case lex_tag__sort: { ADVANCE_LEXER; } break; case lex_token__sort: { ADVANCE_LEXER; } break; case lex_transfer__mode__sort: { ADVANCE_LEXER; } break; case lex_variety__sort: { ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: sortname */ ZR674 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; SAVE_LEXER (130); return; } static void ZR643 (int *ZI642) { switch (CURRENT_TERMINAL) { case lex_exp__cons: { ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(*ZI642)].f)(); #line 629 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_signed__nat__cons: { TDF ZIa; TDF ZIb; ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(*ZI642)].f)(); #line 645 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ /* BEGINNING OF ACTION: mint1_dec */ { #line 1559 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ (ZIa) = *current_TDF; INIT_TDF(current_TDF); #line 655 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: mint1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_variety (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: mint2 */ { #line 1565 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIb) = *current_TDF; INIT_TDF(current_TDF); o_make_int(append_TDF(&(ZIb),1), append_TDF(&(ZIa),1)); #line 677 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: mint2 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR645 (void) { switch (CURRENT_TERMINAL) { case lex_ord: { TDF ZIa; PTR_TDF ZIb; ADVANCE_LEXER; /* BEGINNING OF ACTION: expneg1_dec */ { #line 842 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIb), &(ZIa)); #line 715 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expneg1_dec */ read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expnegate2 */ { #line 846 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); o_negate(o_wrap, append_TDF(&(ZIa),1)); #line 729 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expnegate2 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_character: case lex_int__den: case lex_nat__cons: case lex_nat__sort: case lex_nat__tok: { TDF ZIa; TDF ZIb; ZR634 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: mint1_dec */ { #line 1559 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ (ZIa) = *current_TDF; INIT_TDF(current_TDF); #line 759 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: mint1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_variety (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: mint2 */ { #line 1565 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIb) = *current_TDF; INIT_TDF(current_TDF); o_make_int(append_TDF(&(ZIb),1), append_TDF(&(ZIa),1)); #line 781 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: mint2 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_float__den: { TDF ZIa; TDF ZIb; TDF ZIc; TDF ZId; PTR_TDF ZIe; int ZIf; unsigned_long ZIg; /* BEGINNING OF ACTION: fden2_dec */ { #line 1023 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIc), (ZId) uninitialised */ (ZIf) = 1; (ZIg) = UL(radix); SET_TDF((ZIe), &(ZIa)); out_tdfstring_bytes(fformat(lex_v.val.name,lnum), 8, UI(lnum)); RESET_TDF((ZIe)); SET_TDF((ZIe), &(ZIb)); #line 814 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: fden2_dec */ ADVANCE_LEXER; ZRexponent__opt (); switch (CURRENT_TERMINAL) { case lex_ord: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: fden3 */ { #line 1033 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); SET_TDF((ZIe), &(ZIc)); #line 835 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: fden3 */ read_floating_variety (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: fden4 */ { #line 1038 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); SET_TDF((ZIe), &(ZId)); #line 849 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: fden4 */ ZRrounding__mode__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: fden5 */ { #line 1043 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); o_make_floating(append_TDF(&(ZIc),1), append_TDF(&(ZId),1), if ((ZIf)) { o_true; } else { o_false; }, o_make_string(append_TDF(&(ZIa), 1)), o_make_nat(out_tdfint32((ZIg))), append_TDF(&(ZIb), 1)); #line 868 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: fden5 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } void read_variety (void) { ZL2_variety:; switch (CURRENT_TERMINAL) { case lex_variety__sort: { ADVANCE_LEXER; /* BEGINNING OF INLINE: 649 */ { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; /* BEGINNING OF INLINE: variety */ goto ZL2_variety; /* END OF INLINE: variety */ } /*UNREACHED*/ case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond1_dec */ { #line 1164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ SET_TDF((ZId), &(ZIa)); #line 924 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond2 */ { #line 1169 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 945 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond2 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; read_variety (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond3 */ { #line 1174 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)); #line 966 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond3 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; read_variety (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: variety1 */ { #line 2425 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_var_cond(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1), append_TDF(&(ZIc),1)); #line 988 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: variety1 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: 649 */ } break; case lex_char__term: case lex_int__term: case lex_long__term: case lex_short__term: case lex_signed__term: case lex_unsigned__term: { ZRvariety__sign (); ZR650 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_variety__cons: { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 1027 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 1036 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_variety__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 1051 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 1060 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case lex_arithop: case lex_character: case lex_int__den: case lex_line__term: case lex_minus__term: case lex_signed__nat__cons: case lex_signed__nat__sort: case lex_signed__nat__tok: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; /* BEGINNING OF ACTION: variety2_dec */ { #line 2431 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ SET_TDF((ZIc), &(ZIa)); #line 1079 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: variety2_dec */ ZRsigned__nat__body (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: variety3 */ { #line 2436 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); SET_TDF((ZIc), &(ZIb)); #line 1093 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: variety3 */ switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto ZL1; } ADVANCE_LEXER; ZRsigned__nat__body (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: variety4 */ { #line 2441 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); o_var_limits(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1)); #line 1114 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: variety4 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 1132 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZR646 (void) { switch (CURRENT_TERMINAL) { case lex_osq: { TDF ZIa; TDF ZIb; TDF ZIc; TDF ZId; /* BEGINNING OF ACTION: call1_dec */ { #line 424 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc), (ZId) uninitialised */ (ZIa) = *current_TDF; INIT_TDF(current_TDF); #line 1156 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: call1_dec */ ADVANCE_LEXER; read_shape (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: call2 */ { #line 430 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIb) = *current_TDF; INIT_TDF(current_TDF); #line 1171 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: call2 */ switch (CURRENT_TERMINAL) { case lex_csq: break; default: goto ZL1; } ADVANCE_LEXER; ZR660 (&ZIa, &ZIb, &ZIc, &ZId); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_tail__call__term: { TDF ZIa; /* BEGINNING OF ACTION: tcall1_dec */ { #line 2225 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = *current_TDF; INIT_TDF(current_TDF); #line 1198 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tcall1_dec */ ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_osq: break; default: goto ZL1; } ADVANCE_LEXER; ZRcallee (); ZRcallee__var__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tcall2 */ { #line 2230 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" TDF cees; cees = *current_TDF; INIT_TDF(current_TDF); o_tail_call(do_procprops(g_ce_v*2), append_TDF(&(ZIa),1), append_TDF(&cees,1)); #line 1224 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tcall2 */ switch (CURRENT_TERMINAL) { case lex_csq: break; default: goto ZL1; } ADVANCE_LEXER; } break; case 130: return; default: break; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRtok__formal__list__opt (void) { switch (CURRENT_TERMINAL) { case lex_ident: { ZRtok__formal__list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; default: { /* BEGINNING OF ACTION: tok_fml_opt1 */ { #line 2405 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_tokpars = (Tokpar*)0; #line 1267 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tok_fml_opt1 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR647 (void) { switch (CURRENT_TERMINAL) { case lex_ident: { /* BEGINNING OF ACTION: expstar1 */ { #line 915 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" char * n = lex_v.val.name; Tagdec * x = find_tag(n); if (x == (Tagdec*)0) { MSG_not_a_tag(n); } else if (!x->isvar || x->hassh == 0) { MSG_dont_know_shape(n); } o_contents( if (x->hassh == 1) { o_shape_apply_token(make_tok(&x->sh.shtok), {}); } else { append_TDF(&x->sh.tdfsh, 0); }, o_obtain_tag(make_tag(&x->idname.name))); #line 1303 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expstar1 */ ADVANCE_LEXER; } break; case lex_ord: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; /* BEGINNING OF ACTION: expstar2_dec */ { #line 930 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ SET_TDF((ZIc), &(ZIa)); #line 1321 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expstar2_dec */ ADVANCE_LEXER; read_shape (); switch (CURRENT_TERMINAL) { case lex_crd: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: expstar3 */ { #line 935 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); SET_TDF((ZIc), &(ZIb)); #line 1342 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expstar3 */ ZRunary__exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expstar4 */ { #line 940 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); o_contents(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1)); #line 1356 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expstar4 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR648 (void) { switch (CURRENT_TERMINAL) { case lex_ocurl: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; int ZIe; PTR_Labdec ZIf; /* BEGINNING OF ACTION: expcond1_dec */ { #line 728 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ (ZIe) = defaultlab; (ZIf) = labdecs; defaultlab = -1; SET_TDF((ZId), &(ZIa)); #line 1394 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expcond1_dec */ ADVANCE_LEXER; ZRexp__sequence (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expcond2 */ { #line 736 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 1409 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expcond2 */ switch (CURRENT_TERMINAL) { case lex_bar: break; default: goto ZL1; } ADVANCE_LEXER; ZRlabset__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expcond3 */ { #line 741 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIc) = optlab; defaultlab = (ZIe); tidy_labels((ZIf)); #line 1431 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expcond3 */ ZRexp__sequence (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expcond4 */ { #line 747 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" INIT_TDF((ZId)); RESET_TDF((ZId)); o_conditional(append_TDF(&(ZIc),1), append_TDF(&(ZIa),1), append_TDF(&(ZIb),1)); #line 1447 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expcond4 */ switch (CURRENT_TERMINAL) { case lex_ccurl: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_ord: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; int ZIe; /* BEGINNING OF ACTION: query_type1 */ { #line 1696 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" query_t = lex_query; #line 1472 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: query_type1 */ ADVANCE_LEXER; /* BEGINNING OF ACTION: exptst1_dec */ { #line 967 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ (ZIe) = query_t; SET_TDF((ZId),&(ZIa)); #line 1483 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst1_dec */ read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptst2 */ { #line 973 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId),&(ZIb)); #line 1497 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst2 */ read_ntest (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptst3 */ { #line 978 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)) #line 1511 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst3 */ read_exp (); ZRlabdest__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptst4 */ { #line 983 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); switch((ZIe)) { case lex_query: o_integer_test({}, append_TDF(&(ZIb),1), append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1)); break; case lex_float__query: o_floating_test({}, o_impossible, append_TDF(&(ZIb),1), append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1)); break; case lex_ptr__query: o_pointer_test( {}, append_TDF(&(ZIb),1),append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1)); break; case lex_proc__query: o_proc_test( {}, append_TDF(&(ZIb),1),append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1) ); break; case lex_offset__query: o_offset_test({}, append_TDF(&(ZIb),1), append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1) ); break; default: MSG_dont_understand_test(); } #line 1551 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst4 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR650 (void) { switch (CURRENT_TERMINAL) { case lex_char__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: varietychar */ { #line 2446 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_var_limits( o_make_signed_nat(out_tdfbool(issigned), out_tdfint32(UL((issigned)?MINSC:0))), o_make_signed_nat(out_tdfbool(0), out_tdfint32(UL((issigned)?MAXSC:MAXUSC)))); #line 1590 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: varietychar */ } break; case lex_int__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: varietyint */ { #line 2454 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_var_limits( o_make_signed_nat(out_tdfbool(issigned), out_tdfint32(UL((issigned)?MINSI:0))), o_make_signed_nat(out_tdfbool(0), out_tdfint32(UL((issigned)?MAXSI:MAXUSI)))); #line 1607 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: varietyint */ } break; case lex_long__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: varietylong */ { #line 2462 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_var_limits( o_make_signed_nat(out_tdfbool(issigned), out_tdfint32(UL((issigned)?MINSL:0))), o_make_signed_nat(out_tdfbool(0), out_tdfint32(UL((issigned)?MAXSL:MAXUSL)))); #line 1624 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: varietylong */ } break; case lex_short__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: varietyshort */ { #line 2477 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_var_limits( o_make_signed_nat(out_tdfbool(issigned), out_tdfint32(UL((issigned)?MINSS:0))), o_make_signed_nat(out_tdfbool(0), out_tdfint32(UL((issigned)?MAXSS:MAXUSS)))); #line 1641 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: varietyshort */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRsortname__list (void) { if ((CURRENT_TERMINAL) == 130) { return; } { ZRfull__sortname (); ZR673 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; SAVE_LEXER (130); return; } static void ZRsignature__opt (void) { switch (CURRENT_TERMINAL) { case lex_qstring: case lex_string__cons: case lex_string__sort: case lex_string__tok: { read_string (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: newstr_opt1 */ { #line 1590 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no=1; #line 1694 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: newstr_opt1 */ } break; case 130: return; default: break; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRexp__sequence (void) { switch (CURRENT_TERMINAL) { case lex_arithop: case lex_case__term: case lex_character: case lex_cons: case lex_exp__cons: case lex_exp__sort: case lex_exp__tok: case lex_float__den: case lex_float__query: case lex_hash: case lex_ident: case lex_int__den: case lex_lab: case lex_let: case lex_line__term: case lex_minus__term: case lex_ocurl: case lex_offset__query: case lex_ord: case lex_osq: case lex_proc: case lex_proc__query: case lex_ptr__query: case lex_qstring: case lex_query: case lex_rep: case lex_signed__nat__cons: case lex_signed__nat__sort: case lex_signed__nat__tok: case lex_size__term: case lex_star: case lex_string__cons: case lex_string__sort: case lex_string__tok: case lex_tag__cons: case lex_tag__sort: case lex_tag__tok: case lex_var: { read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exp_sls2 */ { #line 700 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no =1; #line 1738 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exp_sls2 */ ZR628 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; default: { /* BEGINNING OF ACTION: exp_sls1 */ { #line 695 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no =1; o_make_top; #line 1756 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exp_sls1 */ ZR628 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRrange (void) { if ((CURRENT_TERMINAL) == 130) { return; } { PTR_TDF ZIa; /* BEGINNING OF ACTION: range1_dec */ { #line 1716 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIa), &g_lower); #line 1789 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: range1_dec */ ZRsigned__nat__body (); ZR662 (&ZIa); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; SAVE_LEXER (130); return; } static void ZR654 (void) { switch (CURRENT_TERMINAL) { case lex_char__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: shapechar */ { #line 1775 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" Name * shtok = tokforcharsh(issigned); o_shape_apply_token(make_tok(shtok), {}); #line 1818 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shapechar */ } break; case lex_int__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: shapeint */ { #line 1790 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" Name * shtok = tokforintsh(issigned); o_shape_apply_token(make_tok(shtok), {}); #line 1832 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shapeint */ } break; case lex_long__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: shapelong */ { #line 1795 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" Name * shtok = tokforlongsh(issigned); o_shape_apply_token(make_tok(shtok), {}); #line 1846 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shapelong */ } break; case lex_short__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: shapeshort */ { #line 1805 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" Name * shtok = tokforshortsh(issigned); o_shape_apply_token(make_tok(shtok), {}); #line 1860 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shapeshort */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR655 (TDF *ZIa, PTR_TDF *ZIb) { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; /* BEGINNING OF ACTION: otagexp3 */ { #line 1657 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" char* n = lex_v.val.name; Tagdec * x = find_tag(n); if (x != (Tagdec*)0) { MSG_tag_declared_twice(n); } x = xalloc(sizeof(*x)); x->isdeffed = 1; x->hassh=0; x->iskept=0; NEW_IDNAME(x->idname, n, tag_ent); x->isvar = 1; x->next = g_app_tags; g_app_tags = x; RESET_TDF((*ZIb)); o_make_otagexp( OPTION(make_tag(&x->idname.name)),append_TDF(&(*ZIa),1)); #line 1896 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: otagexp3 */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: { /* BEGINNING OF ACTION: otagexp2 */ { #line 1652 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIb)); o_make_otagexp( {}, append_TDF(&(*ZIa),1)); #line 1916 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: otagexp2 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRrange__label__list (void) { if ((CURRENT_TERMINAL) == 130) { return; } { TDF ZIa; PTR_TDF ZIb; /* BEGINNING OF ACTION: rllist1_dec */ { #line 1736 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIb),&(ZIa)); #line 1945 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: rllist1_dec */ ZRrange (); switch (CURRENT_TERMINAL) { case lex_goesto: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; read_label (); ZR661 (&ZIa, &ZIb); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; SAVE_LEXER (130); return; } static void ZR656 (void) { switch (CURRENT_TERMINAL) { case lex_arithop: case lex_case__term: case lex_character: case lex_cons: case lex_exp__cons: case lex_exp__sort: case lex_exp__tok: case lex_float__den: case lex_float__query: case lex_hash: case lex_ident: case lex_int__den: case lex_lab: case lex_let: case lex_line__term: case lex_minus__term: case lex_ocurl: case lex_offset__query: case lex_ord: case lex_osq: case lex_proc: case lex_proc__query: case lex_ptr__query: case lex_qstring: case lex_query: case lex_rep: case lex_signed__nat__cons: case lex_signed__nat__sort: case lex_signed__nat__tok: case lex_size__term: case lex_star: case lex_string__cons: case lex_string__sort: case lex_string__tok: case lex_tag__cons: case lex_tag__sort: case lex_tag__tok: case lex_var: { ZRexp__comma__list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case 130: return; default: break; } return; ZL1:; SAVE_LEXER (130); return; } void read_shape (void) { if ((CURRENT_TERMINAL) == 130) { return; } { TDF ZIa; PTR_TDF ZIb; int ZIc; /* BEGINNING OF ACTION: genhold1_dec */ { #line 1187 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIc) = (current_TDF->first == current_TDF->last && current_TDF->first->usage == 0 && current_TDF->first->offst == 0); if (!(ZIc)) { SET_TDF((ZIb), &(ZIa)); } #line 2027 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: genhold1_dec */ ZRshape__body (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: genhold2 */ { #line 1194 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" if (!(ZIc) ) { SET((ZIb)); RESET_TDF((ZIb)); append_TDF(&(ZIa),1); } #line 2044 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: genhold2 */ } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 2056 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZR657 (void) { switch (CURRENT_TERMINAL) { case lex_check__stack: { ADVANCE_LEXER; /* BEGINNING OF ACTION: untidy3 */ { #line 2417 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_unt = 3; #line 2074 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: untidy3 */ } break; default: { /* BEGINNING OF ACTION: untidy2 */ { #line 2413 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_unt = 1; #line 2086 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: untidy2 */ } break; case 130: return; } } static void ZRaccess__list (void) { if ((CURRENT_TERMINAL) == 130) { return; } { read_access (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: acc_l1 */ { #line 289 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no=1; #line 2113 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: acc_l1 */ ZR627 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; SAVE_LEXER (130); return; } static void ZR660 (TDF *ZIa, TDF *ZIb, TDF *ZIc, TDF *ZId) { switch (CURRENT_TERMINAL) { case lex_ord: { ADVANCE_LEXER; read_exp_list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: call3 */ { #line 435 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (*ZIc) = *current_TDF; INIT_TDF(current_TDF); #line 2146 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: call3 */ ZRvarpar__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: call4 */ { #line 440 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (*ZId) = *current_TDF; INIT_TDF(current_TDF); o_apply_proc(append_TDF(&(*ZIb),1), append_TDF(&(*ZIa),1), { append_TDF(&(*ZIc), 1); current_TDF->no = (*ZIc).no; }, if ((*ZId).no !=0) { OPTION(append_TDF(&(*ZId),1)); } ); #line 2164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: call4 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_osq: { TDF ZIe; TDF ZIf; TDF ZIg; int ZIh; int ZIi; PTR_Tagdec ZIj; PTR_Tagdec ZIk; PTR_Tagdec ZIl; ADVANCE_LEXER; /* BEGINNING OF ACTION: gcall1_dec */ { #line 1124 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIe), (ZIf), (ZIg) uninitialised */ /* (ZIh), (ZIi), (ZIk) uninitialised */ (ZIj) = g_app_tags; (ZIl) = tagdecs; g_app_tags = (Tagdec*)0; #line 2197 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gcall1_dec */ ZRotagexp__list__opt (); ZRcaller__var__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gcall2 */ { #line 1132 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIe) = *current_TDF; INIT_TDF(current_TDF); (ZIh) = g_cr_v; (ZIk) = g_app_tags; g_app_tags = (ZIj); #line 2215 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gcall2 */ switch (CURRENT_TERMINAL) { case lex_semi: break; default: goto ZL1; } ADVANCE_LEXER; ZRcallee (); ZRcallee__var__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gcall3 */ { #line 1140 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIf) = *current_TDF; (ZIi) = g_ce_v; INIT_TDF(current_TDF); while ((ZIk) != (Tagdec*)0) { Tagdec * x = (ZIk); (ZIk) = x->next; x->next = tagdecs; tagdecs = x; } #line 2244 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gcall3 */ ZRpostlude__opt (); switch (CURRENT_TERMINAL) { case lex_csq: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; ZRuntidy__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gcall4 */ { #line 1152 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIg) = *current_TDF; INIT_TDF(current_TDF); tagdecs = (ZIl); o_apply_general_proc( append_TDF(&(*ZIb),1), do_procprops((ZIh)+2*(ZIi)+4*g_unt), append_TDF(&(*ZIa),1), { append_TDF(&(ZIe),1); current_TDF->no = (ZIe).no; }, append_TDF(&(ZIf),1), append_TDF(&(ZIg), 1)) #line 2276 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gcall4 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRtagshacc__list__opt (void) { if ((CURRENT_TERMINAL) == 130) { return; } { /* BEGINNING OF ACTION: tagshacc_l1 */ { #line 2217 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no =0; #line 2304 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tagshacc_l1 */ ZR664 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; SAVE_LEXER (130); return; } static void ZR661 (TDF *ZIa, PTR_TDF *ZIb) { switch (CURRENT_TERMINAL) { default: { /* BEGINNING OF ACTION: rllist2 */ { #line 1740 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIb)); o_make_caselim(append_TDF(&(*ZIa),1), append_TDF(&g_lower, g_has_upper), append_TDF(&g_upper,1)); current_TDF->no = 1; #line 2334 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: rllist2 */ } break; case lex_comma: { /* BEGINNING OF ACTION: rllist3 */ { #line 1748 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIb)); o_make_caselim(append_TDF(&(*ZIa),1), append_TDF(&g_lower, g_has_upper), append_TDF(&g_upper,1)); #line 2349 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: rllist3 */ ADVANCE_LEXER; ZRrange__label__list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: rllist4 */ { #line 1755 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no++; #line 2363 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: rllist4 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRlabdest__opt (void) { switch (CURRENT_TERMINAL) { case lex_bar: { PTR_TDF ZIa; ADVANCE_LEXER; /* BEGINNING OF ACTION: dest_o1_dec */ { #line 553 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIa), &optlab); #line 2391 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: dest_o1_dec */ read_label (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: dest_opt2 */ { #line 557 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIa)); #line 2404 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: dest_opt2 */ } break; default: { /* BEGINNING OF ACTION: lset_o1 */ { #line 1535 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" TDF * hold; SET_TDF(hold, &optlab); if (defaultlab==-1) defaultlab = next_label(); o_make_label(out_tdfint32(UL(defaultlab))); RESET_TDF(hold); #line 2420 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: lset_o1 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR662 (PTR_TDF *ZIa) { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; /* BEGINNING OF ACTION: range3 */ { #line 1726 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIa)); SET_TDF((*ZIa), &g_upper); #line 2447 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: range3 */ ZRsigned__nat__body (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: range4 */ { #line 1731 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIa)); g_has_upper=1; #line 2461 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: range4 */ } break; default: { /* BEGINNING OF ACTION: range2 */ { #line 1720 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIa)); g_upper = g_lower; g_has_upper=0; #line 2475 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: range2 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRalignment__list__opt (void) { switch (CURRENT_TERMINAL) { default: { /* BEGINNING OF ACTION: al_list_opt1 */ { #line 331 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_alignment(o_top); #line 2500 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: al_list_opt1 */ } break; case lex_al__tag__sort: case lex_al__tag__tok: case lex_alignment__cons: case lex_alignment__sort: case lex_alignment__tok: case lex_ident: case lex_ord: { TDF ZIa; PTR_TDF ZIb; int ZIc; /* BEGINNING OF ACTION: genhold1_dec */ { #line 1187 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIc) = (current_TDF->first == current_TDF->last && current_TDF->first->usage == 0 && current_TDF->first->offst == 0); if (!(ZIc)) { SET_TDF((ZIb), &(ZIa)); } #line 2521 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: genhold1_dec */ ZRalignment__list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: genhold2 */ { #line 1194 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" if (!(ZIc) ) { SET((ZIb)); RESET_TDF((ZIb)); append_TDF(&(ZIa),1); } #line 2538 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: genhold2 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR663 (void) { switch (CURRENT_TERMINAL) { case lex_comma: { ADVANCE_LEXER; ZRoffset__exp__list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: offexpl2 */ { #line 1632 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no+=2; #line 2569 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: offexpl2 */ } break; default: { /* BEGINNING OF ACTION: offexpl1 */ { #line 1628 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no = 2; #line 2581 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: offexpl1 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } void read_string (void) { ZL2_string:; switch (CURRENT_TERMINAL) { case lex_string__sort: { ADVANCE_LEXER; /* BEGINNING OF INLINE: 631 */ { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; /* BEGINNING OF INLINE: string */ goto ZL2_string; /* END OF INLINE: string */ } /*UNREACHED*/ case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond1_dec */ { #line 1164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ SET_TDF((ZId), &(ZIa)); #line 2628 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond2 */ { #line 1169 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 2649 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond2 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; read_string (); switch (CURRENT_TERMINAL) { case lex_comma: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond3 */ { #line 1174 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)); #line 2676 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond3 */ read_string (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: newstring2 */ { #line 1599 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_string_cond(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1), append_TDF(&(ZIc),1)); #line 2691 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: newstring2 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: 631 */ } break; case lex_string__cons: { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 2719 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 2728 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_string__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 2743 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 2752 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case lex_qstring: { /* BEGINNING OF ACTION: newstring1 */ { #line 1594 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" char * s = lex_v.val.name; o_make_string(out_tdfstring_bytes(s, 8, UI(strlen(s)))); #line 2765 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: newstring1 */ ADVANCE_LEXER; } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 2784 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZR664 (void) { switch (CURRENT_TERMINAL) { case lex_ident: { ZRtagshacc__list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case 130: return; default: break; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRotagexp__list (void) { if ((CURRENT_TERMINAL) == 130) { return; } { ZRotagexp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: otagel1 */ { #line 1636 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no = 1; #line 2831 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: otagel1 */ ZR626 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; SAVE_LEXER (130); return; } static void ZRvariety__sign (void) { switch (CURRENT_TERMINAL) { case lex_signed__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: signedornot1 */ { #line 1892 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" issigned = 1; #line 2858 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: signedornot1 */ } break; case lex_unsigned__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: signedornot2 */ { #line 1896 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" issigned = 0; #line 2871 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: signedornot2 */ } break; default: { /* BEGINNING OF ACTION: signedornot1 */ { #line 1892 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" issigned = 1; #line 2883 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: signedornot1 */ } break; case 130: return; } } static void ZR668 (void) { switch (CURRENT_TERMINAL) { case lex_bar: { ADVANCE_LEXER; ZRlabelled__list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: llist4 */ { #line 1526 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_lablist.no++; #line 2910 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: llist4 */ } break; default: { /* BEGINNING OF ACTION: llist3 */ { #line 1522 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_lablist.no = 1; #line 2922 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: llist3 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR669 (TDF *ZIa, TDF *ZIb, PTR_TDF *ZIc, PTR_Tagdec *ZId, int *ZIe) { switch (CURRENT_TERMINAL) { case lex_equals: { /* BEGINNING OF ACTION: intro2 */ { #line 1288 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); SET_TDF((*ZIc), &(*ZIb)); (*ZIe) = g_has_vis; #line 2949 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: intro2 */ ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: intro4 */ { #line 1300 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); intro_acc = (*ZIa); intro_init = (*ZIb); (*ZId)->isvar=1; if ((*ZIe)) { Tagdec * y = xalloc(sizeof(*y)); *y = *(*ZId); y->next = tagdecs; tagdecs = y; } (*ZId)->next = localdecs; localdecs = (*ZId); #line 2974 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: intro4 */ } break; case lex_colon: { /* BEGINNING OF ACTION: intro3 */ { #line 1294 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); SET_TDF((*ZIc), &(*ZId)->sh.tdfsh); (*ZId)->hassh=2; #line 2988 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: intro3 */ ADVANCE_LEXER; read_shape (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: intro2 */ { #line 1288 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); SET_TDF((*ZIc), &(*ZIb)); (*ZIe) = g_has_vis; #line 3004 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: intro2 */ ZR670 (ZIa, ZIb, ZIc, ZId, ZIe); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR670 (TDF *ZIa, TDF *ZIb, PTR_TDF *ZIc, PTR_Tagdec *ZId, int *ZIe) { switch (CURRENT_TERMINAL) { case lex_equals: { ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: intro4 */ { #line 1300 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); intro_acc = (*ZIa); intro_init = (*ZIb); (*ZId)->isvar=1; if ((*ZIe)) { Tagdec * y = xalloc(sizeof(*y)); *y = *(*ZId); y->next = tagdecs; tagdecs = y; } (*ZId)->next = localdecs; localdecs = (*ZId); #line 3053 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: intro4 */ } break; default: { /* BEGINNING OF ACTION: intro6 */ { #line 1330 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_make_value(append_TDF(&(*ZId)->sh.tdfsh, 0)); #line 3065 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: intro6 */ /* BEGINNING OF ACTION: intro4 */ { #line 1300 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); intro_acc = (*ZIa); intro_init = (*ZIb); (*ZId)->isvar=1; if ((*ZIe)) { Tagdec * y = xalloc(sizeof(*y)); *y = *(*ZId); y->next = tagdecs; tagdecs = y; } (*ZId)->next = localdecs; localdecs = (*ZId); #line 3084 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: intro4 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } void read_signed_nat (void) { if ((CURRENT_TERMINAL) == 130) { return; } { ZRsigned__nat__body (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 3119 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZR672 (TDF *ZIa, TDF *ZIb, PTR_TDF *ZIc, PTR_char *ZId) { switch (CURRENT_TERMINAL) { case lex_addrop: { ADVANCE_LEXER; ZRunary__exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exp2 */ { #line 609 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" INIT_TDF((*ZIc)); RESET_TDF((*ZIc)); if(strcmp((*ZId), "*+.")==0) { o_add_to_ptr(append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if(strcmp((*ZId), "*-*")==0) { o_subtract_ptrs(append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if(strcmp((*ZId), ".*")==0) { o_offset_mult(append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if(strcmp((*ZId), ".+.")==0) { o_offset_add(append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if(strcmp((*ZId), ".-.")==0) { o_offset_subtract(append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if(strcmp((*ZId), "./")==0) { o_offset_div_by_int(append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if(strcmp((*ZId), "./.")==0) { o_offset_div( o_var_limits( o_make_signed_nat(out_tdfbool(1), out_tdfint32(UL(MINSI))), o_make_signed_nat(out_tdfbool(0), out_tdfint32(UL(MAXSI)))), append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if(strcmp((*ZId), ".max.")==0) { o_offset_max(append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else { MSG_not_an_addrop((*ZId)); } #line 3164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exp2 */ } break; case lex_equals: { ADVANCE_LEXER; ZRunary__exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exp6 */ { #line 689 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" INIT_TDF((*ZIc)); RESET_TDF((*ZIc)); o_assign(append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); #line 3184 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exp6 */ } break; case lex_logop: { ADVANCE_LEXER; ZRunary__exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exp3 */ { #line 635 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" INIT_TDF((*ZIc)); RESET_TDF((*ZIc)); if(strcmp((*ZId), "And")==0) { o_and(append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if(strcmp((*ZId), "Or")==0) { o_or(append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if(strcmp((*ZId), "Xor")==0) { o_xor(append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else { MSG_not_a_logop((*ZId)); } #line 3210 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exp3 */ } break; case lex_arithop: case lex_minus__term: case lex_star: { /* BEGINNING OF INLINE: binop */ { switch (CURRENT_TERMINAL) { case lex_arithop: { ADVANCE_LEXER; } break; case lex_minus__term: { ADVANCE_LEXER; } break; case lex_star: { ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: binop */ ZRunary__exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exp5 */ { #line 647 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" INIT_TDF((*ZIc)); RESET_TDF((*ZIc)); if (strcmp((*ZId),"%")==0) { o_rem2(o_continue, o_continue, append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if (strcmp((*ZId),"%1")==0) { o_rem1(o_continue, o_continue, append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if (strcmp((*ZId),"*")==0) { o_mult(o_wrap, append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if (strcmp((*ZId),"+")==0) { o_plus(o_wrap, append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if (strcmp((*ZId),"-")==0) { o_minus(o_wrap, append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if (strcmp((*ZId),"/")==0) { o_div2(o_continue, o_continue, append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if (strcmp((*ZId),"/1")==0) { o_div1(o_continue, o_continue, append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if (strcmp((*ZId),"<<")==0) { o_shift_left(o_wrap, append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if (strcmp((*ZId),"F*")==0) { o_floating_mult(o_continue, { LIST_ELEM(append_TDF(&(*ZIa),1)); LIST_ELEM(append_TDF(&(*ZIb),1)) }); } else if (strcmp((*ZId),">>")==0) { o_shift_right(append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if (strcmp((*ZId),"F+")==0) { o_floating_plus(o_continue, { LIST_ELEM(append_TDF(&(*ZIa),1)); LIST_ELEM(append_TDF(&(*ZIb),1)) }); } else if (strcmp((*ZId),"F-")==0) { o_floating_minus(o_continue, append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else if (strcmp((*ZId),"F/")==0) { o_floating_div(o_continue, append_TDF(&(*ZIa),1), append_TDF(&(*ZIb),1)); } else { MSG_not_an_arithop((*ZId)); } #line 3288 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exp5 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } void read_token (void) { ZL2_token:; switch (CURRENT_TERMINAL) { case lex_token__sort: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF INLINE: token */ goto ZL2_token; /* END OF INLINE: token */ } /*UNREACHED*/ case lex_use: { TDF ZIa; ADVANCE_LEXER; /* BEGINNING OF ACTION: tok2_dec */ { #line 2268 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = g_tok_defn; #line 3334 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tok2_dec */ ZRtok__def__body (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tok3 */ { #line 2272 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_use_tokdef(append_TDF(&g_tok_defn,1)); g_tok_defn = (ZIa); #line 3348 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tok3 */ } break; case lex_access__tok: case lex_al__tag__tok: case lex_alignment__tok: case lex_bitfield__variety__tok: case lex_bool__tok: case lex_error__treatment__tok: case lex_exp__tok: case lex_floating__variety__tok: case lex_label__tok: case lex_nat__tok: case lex_ntest__tok: case lex_rounding__mode__tok: case lex_shape__tok: case lex_signed__nat__tok: case lex_tag__tok: case lex_transfer__mode__tok: case lex_variety__tok: { /* BEGINNING OF ACTION: tok1 */ { #line 2258 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" Tokdec * td = lex_v.val.tokname; if (td->isparam) { o_token_apply_token(make_tok(&td->idname.name), {}); } else { make_tok(&td->idname.name); } /* token should only be expanded as parameter of a token */ #line 3371 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tok1 */ /* BEGINNING OF INLINE: tok_item */ { switch (CURRENT_TERMINAL) { case lex_access__tok: { ADVANCE_LEXER; } break; case lex_al__tag__tok: { ADVANCE_LEXER; } break; case lex_alignment__tok: { ADVANCE_LEXER; } break; case lex_bitfield__variety__tok: { ADVANCE_LEXER; } break; case lex_bool__tok: { ADVANCE_LEXER; } break; case lex_error__treatment__tok: { ADVANCE_LEXER; } break; case lex_exp__tok: { ADVANCE_LEXER; } break; case lex_floating__variety__tok: { ADVANCE_LEXER; } break; case lex_label__tok: { ADVANCE_LEXER; } break; case lex_nat__tok: { ADVANCE_LEXER; } break; case lex_ntest__tok: { ADVANCE_LEXER; } break; case lex_rounding__mode__tok: { ADVANCE_LEXER; } break; case lex_shape__tok: { ADVANCE_LEXER; } break; case lex_signed__nat__tok: { ADVANCE_LEXER; } break; case lex_tag__tok: { ADVANCE_LEXER; } break; case lex_transfer__mode__tok: { ADVANCE_LEXER; } break; case lex_variety__tok: { ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: tok_item */ } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 3482 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZR673 (void) { switch (CURRENT_TERMINAL) { default: { /* BEGINNING OF ACTION: snl1 */ { #line 1939 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_tokpars = xalloc(sizeof(*g_tokpars)); g_tokpars->par = g_sname; g_tokpars->next = (Tokpar*)0; #line 3501 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: snl1 */ } break; case lex_comma: { Sort ZIa; /* BEGINNING OF ACTION: snl2_dec */ { #line 1945 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = g_sname; #line 3515 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: snl2_dec */ ADVANCE_LEXER; ZRsortname__list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: snl3 */ { #line 1949 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" Tokpar * x = xalloc(sizeof(*x)); x->par = (ZIa); x->next = g_tokpars; g_tokpars = x; #line 3532 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: snl3 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRnat__not__int (void) { ZL2_nat__not__int:; switch (CURRENT_TERMINAL) { case lex_nat__sort: { ADVANCE_LEXER; /* BEGINNING OF INLINE: 651 */ { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; read_nat (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond1_dec */ { #line 1164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ SET_TDF((ZId), &(ZIa)); #line 3581 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond2 */ { #line 1169 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 3602 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond2 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; read_nat (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond3 */ { #line 1174 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)); #line 3623 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond3 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; read_nat (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: nat1 */ { #line 1571 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_nat_cond(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1), append_TDF(&(ZIc),1)); #line 3645 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: nat1 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: 651 */ } break; case lex_nat__cons: { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 3673 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 3682 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_nat__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 3697 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 3706 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRshape__body (void) { switch (CURRENT_TERMINAL) { case lex_double__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: shapedouble */ { #line 1780 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" Name * shtok = tokfordoublesh(); o_shape_apply_token(make_tok(shtok), {}); #line 3735 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shapedouble */ } break; case lex_float__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: shapefloat */ { #line 1785 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" Name * shtok = tokforfloatsh(); o_shape_apply_token(make_tok(shtok), {}); #line 3749 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shapefloat */ } break; case lex_ptr: { TDF ZIa; PTR_TDF ZIb; ADVANCE_LEXER; /* BEGINNING OF ACTION: shptr1_dec */ { #line 1831 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIb), &(ZIa)); #line 3765 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shptr1_dec */ read_shape (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: shapeptr2 */ { #line 1800 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); o_pointer(o_alignment(append_TDF(&(ZIa),1))); #line 3779 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shapeptr2 */ } break; case lex_shape__sort: { ADVANCE_LEXER; ZR676 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_char__term: case lex_int__term: case lex_long__term: case lex_short__term: case lex_signed__term: case lex_unsigned__term: { ZRvariety__sign (); ZR654 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_shape__cons: { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 3814 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 3823 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_shape__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 3838 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 3847 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRrepeat__starter__opt (void) { switch (CURRENT_TERMINAL) { case lex_ord: { ADVANCE_LEXER; ZRexp__sequence (); switch (CURRENT_TERMINAL) { case lex_crd: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; } break; default: { /* BEGINNING OF ACTION: strtr1 */ { #line 1956 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_make_top; #line 3890 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: strtr1 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR674 (void) { switch (CURRENT_TERMINAL) { default: { /* BEGINNING OF ACTION: sortname2 */ { #line 1910 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" if(g_sname.sort == token_sort) { MSG_token_pars_req(); } g_sname.toksort= (TokSort*)0; #line 3918 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: sortname2 */ } break; case lex_osq: { Sort ZIa; PTR_Tokpar ZIb; PTR_Tokpar ZIc; /* BEGINNING OF ACTION: sortname3_dec */ { #line 1917 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ (ZIc) = g_tokpars; (ZIa) = g_sname; if (g_sname.sort != token_sort) { MSG_token_pars_require_parameter(); } #line 3939 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: sortname3_dec */ ADVANCE_LEXER; ZRsortname__list__opt (); switch (CURRENT_TERMINAL) { case lex_csq: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: sortname4 */ { #line 1926 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIb) = g_tokpars; #line 3959 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: sortname4 */ ZRfull__sortname (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: sortname5 */ { #line 1930 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" TokSort * ts = xalloc(sizeof(*ts)); ts->ressort = g_sname; ts->pars = (ZIb); g_tokpars = (ZIc); (ZIa).toksort = ts; g_sname = (ZIa); #line 3977 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: sortname5 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRfield__list (void) { if ((CURRENT_TERMINAL) == 130) { return; } ZL2_field__list:; { PTR_TDF ZIa; PTR_Tokdec ZIb; PTR_Tokdec ZIc; /* BEGINNING OF ACTION: field1_dec */ { #line 1053 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" char * dotn = string_concat(".",lex_v.val.name); char * n = lex_v.val.name; (ZIb) = find_tok(dotn); (ZIc) = find_tok(n); if ((ZIb)!=(Tokdec*)0 || (ZIc)!=(Tokdec*)0) MSG_field_name_unique(dotn); (ZIb) = xalloc(sizeof(*(ZIb))); NEW_IDNAME((ZIb)->idname, dotn, tok_ent); (ZIb)->isdeffed = 1; (ZIb)->isused=0; (ZIb)->iskept = 0; (ZIb)->sort.ressort.sort = exp_sort; (ZIb)->sort.pars = (Tokpar *)0; (ZIc) = xalloc(sizeof(*(ZIc))); NEW_IDNAME((ZIc)->idname, n, tok_ent); (ZIc)->isdeffed = 1; (ZIc)->isused=0; (ZIc)->iskept = 0; (ZIc)->sort.ressort.sort = exp_sort; (ZIc)->sort.pars = xalloc(sizeof(Tokpar)); (ZIc)->sort.pars->par.sort = exp_sort; (ZIc)->sort.pars->next = (Tokpar*)0; (ZIb)->next = (ZIc); SET_TDF((ZIa), &g_shape); #line 4026 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: field1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto ZL1; } ADVANCE_LEXER; read_shape (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: field2 */ { #line 1075 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" int tn; RESET_TDF((ZIa)); o_make_tokdef(out_tdfint32(LOCNAME((ZIb)->idname)), {}, o_token_def(o_exp, {}, if (g_lastfield==-1) { /* first field */ o_offset_zero(o_alignment(append_TDF(&g_shape, 0))); } else { o_offset_pad(o_alignment(append_TDF(&g_shape,0)), o_offset_add(o_exp_apply_token( o_make_tok(out_tdfint32(UL(g_lastfield))),{}), o_shape_offset(append_TDF(&g_lastshape, 1)))) })); g_lastfield = (int)(LOCNAME((ZIb)->idname)); g_lastshape = g_shape; INC_LIST; o_make_tokdef(out_tdfint32(LOCNAME((ZIc)->idname)), {}, o_token_def(o_exp, LIST_ELEM(o_make_tokformals(o_exp, out_tdfint32(UL(tn=next_unit_name(tok_ent))))), o_component(append_TDF(&g_lastshape,0), o_exp_apply_token(o_make_tok(out_tdfint32(UL(tn))),{}), o_exp_apply_token( o_make_tok(out_tdfint32(UL(g_lastfield))),{})))); INC_LIST; (ZIc)->next = tokdecs; tokdecs = (ZIb); #line 4078 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: field2 */ /* BEGINNING OF INLINE: 682 */ { switch (CURRENT_TERMINAL) { case lex_comma: { ADVANCE_LEXER; /* BEGINNING OF INLINE: field_list */ goto ZL2_field__list; /* END OF INLINE: field_list */ } /*UNREACHED*/ default: break; } } /* END OF INLINE: 682 */ } return; ZL1:; SAVE_LEXER (130); return; } static void ZR675 (void) { switch (CURRENT_TERMINAL) { case lex_char__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: shapetokchar */ { #line 1819 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" * g_shtokname = *(tokforcharsh(issigned)); #line 4116 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shapetokchar */ } break; case lex_int__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: shapetokint */ { #line 1823 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" * g_shtokname = *(tokforintsh(issigned)); #line 4129 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shapetokint */ } break; case lex_long__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: shapetoklong */ { #line 1827 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" * g_shtokname = *(tokforlongsh(issigned)); #line 4142 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shapetoklong */ } break; case lex_short__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: shtokshrt */ { #line 1851 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" * g_shtokname = *(tokforshortsh(issigned)); #line 4155 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shtokshrt */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR676 (void) { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; read_shape (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond1_dec */ { #line 1164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ SET_TDF((ZId), &(ZIa)); #line 4199 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond2 */ { #line 1169 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 4220 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond2 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; read_shape (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond3 */ { #line 1174 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)); #line 4241 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond3 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; read_shape (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: shape1 */ { #line 1769 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_shape_cond(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1), append_TDF(&(ZIc),1)); #line 4263 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shape1 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR677 (TDF *ZIa, TDF *ZIb, PTR_TDF *ZIc, PTR_Tagdec *ZId, PTR_char *ZIe, int *ZIf) { switch (CURRENT_TERMINAL) { case lex_equals: { /* BEGINNING OF ACTION: tag_def2 */ { #line 2093 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); if (!(*ZId)->hassh) MSG_no_declaration_shape((*ZIe)); SET_TDF((*ZIc), &(*ZIa)); #line 4299 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def2 */ ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_def3 */ { #line 2099 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); o_make_var_tagdef(out_tdfint32(UL(non_local(&(*ZId)->idname.name, tag_ent))), {}, if ((*ZIb).no !=0) { OPTION(append_TDF(&(*ZIb), 1)); }, append_TDF(&(*ZIa), 1)); INC_LIST; (*ZId)->isdeffed = 1; #line 4319 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def3 */ } break; case lex_colon: { /* BEGINNING OF ACTION: tag_def4 */ { #line 2109 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); if ((*ZId)->hassh) MSG_two_declaration_shapes((*ZIe)); g_shtokname = &(*ZId)->sh.shtok; #line 4333 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def4 */ ADVANCE_LEXER; ZRshapetok (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_def5 */ { #line 2115 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((*ZIc), &(*ZIa)); #line 4347 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def5 */ ZR680 (ZIa, ZIb, ZIc, ZId, ZIf); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRrounding__mode__opt (void) { switch (CURRENT_TERMINAL) { case lex_rounding__mode__cons: case lex_rounding__mode__sort: case lex_rounding__mode__tok: { read_rounding_mode (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; default: { /* BEGINNING OF ACTION: rmodeopt1 */ { #line 1765 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_to_nearest; #line 4388 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: rmodeopt1 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR678 (TDF *ZIa, TDF *ZIb, PTR_TDF *ZIc, PTR_Tagdec *ZId, PTR_char *ZIe, int *ZIf) { switch (CURRENT_TERMINAL) { case lex_equals: { /* BEGINNING OF ACTION: tag_def2 */ { #line 2093 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); if (!(*ZId)->hassh) MSG_no_declaration_shape((*ZIe)); SET_TDF((*ZIc), &(*ZIa)); #line 4415 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def2 */ ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: ctag_def3 */ { #line 524 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); (*ZId)->iscommon = 1; o_common_tagdef(out_tdfint32(UL(non_local(&(*ZId)->idname.name, tag_ent))), {}, if ((*ZIb).no !=0) { OPTION(append_TDF(&(*ZIb), 1)); }, append_TDF(&(*ZIa), 1)); INC_LIST; (*ZId)->isdeffed = 1; #line 4435 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: ctag_def3 */ } break; case lex_colon: { /* BEGINNING OF ACTION: tag_def4 */ { #line 2109 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); if ((*ZId)->hassh) MSG_two_declaration_shapes((*ZIe)); g_shtokname = &(*ZId)->sh.shtok; #line 4449 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def4 */ ADVANCE_LEXER; ZRshapetok (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_def5 */ { #line 2115 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((*ZIc), &(*ZIa)); #line 4463 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def5 */ ZR681 (ZIa, ZIb, ZIc, ZId, ZIf); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRnonst__shape (void) { if ((CURRENT_TERMINAL) == 130) { return; } { TDF ZIa; PTR_TDF ZIb; int ZIc; /* BEGINNING OF ACTION: genhold1_dec */ { #line 1187 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIc) = (current_TDF->first == current_TDF->last && current_TDF->first->usage == 0 && current_TDF->first->offst == 0); if (!(ZIc)) { SET_TDF((ZIb), &(ZIa)); } #line 4503 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: genhold1_dec */ ZRnonst__shape__body (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: genhold2 */ { #line 1194 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" if (!(ZIc) ) { SET((ZIb)); RESET_TDF((ZIb)); append_TDF(&(ZIa),1); } #line 4520 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: genhold2 */ } return; ZL1:; SAVE_LEXER (130); return; } static void ZR679 (TDF *ZIa, TDF *ZIb, PTR_TDF *ZIc, PTR_Tagdec *ZId, PTR_char *ZIe, int *ZIf) { switch (CURRENT_TERMINAL) { case lex_equals: { ADVANCE_LEXER; /* BEGINNING OF ACTION: tag_def2 */ { #line 2093 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); if (!(*ZId)->hassh) MSG_no_declaration_shape((*ZIe)); SET_TDF((*ZIc), &(*ZIa)); #line 4544 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def2 */ read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_def8 */ { #line 2157 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); o_make_id_tagdef(out_tdfint32(UL(non_local(&(*ZId)->idname.name, tag_ent))), if ((*ZIb).no !=0) { OPTION(append_TDF(&(*ZIb), 1)); }, append_TDF(&(*ZIa), 1)); INC_LIST; (*ZId)->isdeffed = 1; #line 4562 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def8 */ } break; case lex_colon: { /* BEGINNING OF ACTION: tag_def4 */ { #line 2109 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); if ((*ZId)->hassh) MSG_two_declaration_shapes((*ZIe)); g_shtokname = &(*ZId)->sh.shtok; #line 4576 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def4 */ ADVANCE_LEXER; ZRshapetok (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_def5 */ { #line 2115 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((*ZIc), &(*ZIa)); #line 4590 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def5 */ switch (CURRENT_TERMINAL) { case lex_equals: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_def9 */ { #line 2166 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); o_make_id_tagdef(out_tdfint32(UL(local_name(&(*ZId)->idname.name, tag_ent))), if ((*ZIb).no !=0) { OPTION(append_TDF(&(*ZIb), (*ZIf))); }, append_TDF(&(*ZIa), 1)); INC_LIST; SELECT_UNIT(tagdec_unit); if (!(*ZIf)) { o_make_id_tagdec(out_tdfint32(UL(non_local(&(*ZId)->idname.name,tag_ent))), {}, if ((*ZIb).no !=0) { OPTION(append_TDF(&(*ZIb), 1)); }, o_shape_apply_token(make_tok(&(*ZId)->sh.shtok), {})); INC_LIST; } (*ZId)->isdeffed=1; (*ZId)->hassh =1; if (!(*ZIf)) { (*ZId)->next = tagdecs; tagdecs = (*ZId); } #line 4624 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def9 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRaccess__opt (void) { switch (CURRENT_TERMINAL) { case lex_osq: { ADVANCE_LEXER; ZRaccess__list (); switch (CURRENT_TERMINAL) { case lex_csq: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; } break; case 130: return; default: break; } return; ZL1:; SAVE_LEXER (130); return; } void read_error_code (void) { if ((CURRENT_TERMINAL) == 130) { return; } { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 4685 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ switch (CURRENT_TERMINAL) { case lex_error__code__cons: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 4700 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 4712 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZRpostlude__opt (void) { switch (CURRENT_TERMINAL) { case lex_semi: { ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; default: { /* BEGINNING OF ACTION: plude1 */ { #line 1669 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_make_top; #line 4739 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: plude1 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR680 (TDF *ZIa, TDF *ZIb, PTR_TDF *ZIc, PTR_Tagdec *ZId, int *ZIf) { switch (CURRENT_TERMINAL) { case lex_equals: { ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_def6 */ { #line 2119 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); o_make_var_tagdef(out_tdfint32(UL(local_name(&(*ZId)->idname.name, tag_ent))), {}, if ((*ZIb).no !=0 ) { OPTION(append_TDF(&(*ZIb), (*ZIf))); }, append_TDF(&(*ZIa), 1)); INC_LIST; SELECT_UNIT(tagdec_unit); if (!(*ZIf)) { o_make_var_tagdec(out_tdfint32(UL(non_local(&(*ZId)->idname.name,tag_ent))), {}, if ((*ZIb).no !=0 ) { OPTION(append_TDF(&(*ZIb), 1)); }, o_shape_apply_token(make_tok(&(*ZId)->sh.shtok), {})); INC_LIST; } (*ZId)->isdeffed=1; (*ZId)->hassh =1; if (!(*ZIf)) { (*ZId)->next = tagdecs; tagdecs = (*ZId); } #line 4785 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def6 */ } break; default: { /* BEGINNING OF ACTION: tag_def10 */ { #line 2053 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_make_value(o_shape_apply_token(make_tok(&(*ZId)->sh.shtok), {})); #line 4797 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def10 */ /* BEGINNING OF ACTION: tag_def6 */ { #line 2119 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); o_make_var_tagdef(out_tdfint32(UL(local_name(&(*ZId)->idname.name, tag_ent))), {}, if ((*ZIb).no !=0 ) { OPTION(append_TDF(&(*ZIb), (*ZIf))); }, append_TDF(&(*ZIa), 1)); INC_LIST; SELECT_UNIT(tagdec_unit); if (!(*ZIf)) { o_make_var_tagdec(out_tdfint32(UL(non_local(&(*ZId)->idname.name,tag_ent))), {}, if ((*ZIb).no !=0 ) { OPTION(append_TDF(&(*ZIb), 1)); }, o_shape_apply_token(make_tok(&(*ZId)->sh.shtok), {})); INC_LIST; } (*ZId)->isdeffed=1; (*ZId)->hassh =1; if (!(*ZIf)) { (*ZId)->next = tagdecs; tagdecs = (*ZId); } #line 4820 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def6 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRexponent__opt (void) { switch (CURRENT_TERMINAL) { case lex_e__term: { ADVANCE_LEXER; ZRsigned__nat__body (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; default: { /* BEGINNING OF ACTION: eopt1 */ { #line 565 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_make_signed_nat(out_tdfbool(0), out_tdfint32(UL(0))); #line 4855 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: eopt1 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR681 (TDF *ZIa, TDF *ZIb, PTR_TDF *ZIc, PTR_Tagdec *ZId, int *ZIf) { switch (CURRENT_TERMINAL) { case lex_equals: { ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: ctag_def6 */ { #line 534 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); (*ZId)->iscommon = 1; o_common_tagdef(out_tdfint32(UL(local_name(&(*ZId)->idname.name, tag_ent))), {}, if ((*ZIb).no !=0) { OPTION(append_TDF(&(*ZIb), (*ZIf))); }, append_TDF(&(*ZIa), 1)); INC_LIST; SELECT_UNIT(tagdec_unit); if (!(*ZIf)) { o_common_tagdec(out_tdfint32(UL(non_local(&(*ZId)->idname.name,tag_ent))), {}, if ((*ZIb).no !=0) { OPTION(append_TDF(&(*ZIb), 1)); }, o_shape_apply_token(make_tok(&(*ZId)->sh.shtok), {})); INC_LIST; } (*ZId)->isdeffed=1; (*ZId)->hassh =1; if (!(*ZIf)) { (*ZId)->next = tagdecs; tagdecs = (*ZId); } #line 4901 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: ctag_def6 */ } break; default: { /* BEGINNING OF ACTION: tag_def10 */ { #line 2053 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_make_value(o_shape_apply_token(make_tok(&(*ZId)->sh.shtok), {})); #line 4913 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def10 */ /* BEGINNING OF ACTION: ctag_def6 */ { #line 534 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((*ZIc)); (*ZId)->iscommon = 1; o_common_tagdef(out_tdfint32(UL(local_name(&(*ZId)->idname.name, tag_ent))), {}, if ((*ZIb).no !=0) { OPTION(append_TDF(&(*ZIb), (*ZIf))); }, append_TDF(&(*ZIa), 1)); INC_LIST; SELECT_UNIT(tagdec_unit); if (!(*ZIf)) { o_common_tagdec(out_tdfint32(UL(non_local(&(*ZId)->idname.name,tag_ent))), {}, if ((*ZIb).no !=0) { OPTION(append_TDF(&(*ZIb), 1)); }, o_shape_apply_token(make_tok(&(*ZId)->sh.shtok), {})); INC_LIST; } (*ZId)->isdeffed=1; (*ZId)->hassh =1; if (!(*ZIf)) { (*ZId)->next = tagdecs; tagdecs = (*ZId); } #line 4936 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: ctag_def6 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRclosed__exp (void) { switch (CURRENT_TERMINAL) { case lex_lab: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; PTR_Labdec ZIe; ADVANCE_LEXER; /* BEGINNING OF ACTION: explab1_dec */ { #line 818 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ (ZIe) = labdecs; (ZIc) = g_lablist; INIT_TDF(&g_lablist); SET_TDF((ZId), &(ZIa)); #line 4972 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: explab1_dec */ switch (CURRENT_TERMINAL) { case lex_ocurl: break; default: goto ZL1; } ADVANCE_LEXER; ZRexp__sequence (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: explab2 */ { #line 826 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 4993 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: explab2 */ switch (CURRENT_TERMINAL) { case lex_bar: break; default: goto ZL1; } ADVANCE_LEXER; ZRlabelled__list (); switch (CURRENT_TERMINAL) { case lex_ccurl: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: explab3 */ { #line 831 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_labelled( { append_TDF(&g_lablist,1); current_TDF->no = g_lablist.no;}, append_TDF(&(ZIa), 1), { append_TDF(&(ZIb),1); current_TDF->no = g_lablist.no;}); tidy_labels((ZIe)); g_lablist = (ZIc); #line 5026 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: explab3 */ } break; case lex_ocurl: { ADVANCE_LEXER; ZRexp__sequence (); switch (CURRENT_TERMINAL) { case lex_ccurl: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; int ZIe; PTR_Labdec ZIf; ADVANCE_LEXER; /* BEGINNING OF ACTION: expcond1_dec */ { #line 728 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ (ZIe) = defaultlab; (ZIf) = labdecs; defaultlab = -1; SET_TDF((ZId), &(ZIa)); #line 5066 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expcond1_dec */ switch (CURRENT_TERMINAL) { case lex_ocurl: break; default: goto ZL1; } ADVANCE_LEXER; ZRexp__sequence (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expcond2 */ { #line 736 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 5087 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expcond2 */ switch (CURRENT_TERMINAL) { case lex_bar: break; default: goto ZL1; } ADVANCE_LEXER; ZRlabset__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expcond3 */ { #line 741 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIc) = optlab; defaultlab = (ZIe); tidy_labels((ZIf)); #line 5109 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expcond3 */ ZRexp__sequence (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expcond4 */ { #line 747 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" INIT_TDF((ZId)); RESET_TDF((ZId)); o_conditional(append_TDF(&(ZIc),1), append_TDF(&(ZIa),1), append_TDF(&(ZIb),1)); #line 5125 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expcond4 */ switch (CURRENT_TERMINAL) { case lex_ccurl: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_rep: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; PTR_Labdec ZIe; int ZIf; ADVANCE_LEXER; /* BEGINNING OF ACTION: exprep1_dec */ { #line 891 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc), (ZIf) uninitialised */ (ZIe) = labdecs; SET_TDF((ZId), &(ZIa)); #line 5154 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exprep1_dec */ ZRrepeat__starter__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exprep2 */ { #line 897 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIf) = defaultlab; defaultlab = -1; #line 5168 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exprep2 */ switch (CURRENT_TERMINAL) { case lex_ocurl: break; default: goto ZL1; } ADVANCE_LEXER; ZRlabset__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exprep3 */ { #line 902 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIc) = optlab; RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 5190 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exprep3 */ ZRexp__sequence (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exprep4 */ { #line 908 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_repeat(append_TDF(&(ZIc),1), append_TDF(&(ZIa),1), append_TDF(&(ZIb),1)); tidy_labels((ZIe)); defaultlab = (ZIf); #line 5206 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exprep4 */ switch (CURRENT_TERMINAL) { case lex_ccurl: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_let: case lex_var: { PTR_Tagdec ZIa; TDF ZIb; TDF ZIc; TDF ZId; PTR_TDF ZIe; Name ZIf; int ZIg; /* BEGINNING OF ACTION: expdec1_dec */ { #line 770 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = localdecs; #line 5233 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expdec1_dec */ ZRtag__intro (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: ibody1_dec */ { #line 1261 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIg) = localdecs->isvar; (ZIb) = intro_acc; (ZIc) = intro_init; (ZIf) = localdecs->idname.name; SET_TDF((ZIe), &(ZId)); #line 5250 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: ibody1_dec */ ZRclosed__exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: introbody2 */ { #line 1334 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); if ((ZIg)) { o_variable( if((ZIb).no!=0) { OPTION(append_TDF(&(ZIb),1)); }, make_tag(&(ZIf)), append_TDF(&(ZIc),1), append_TDF(&(ZId),1)); } else { o_identify( if((ZIb).no!=0) { OPTION(append_TDF(&(ZIb),1)); }, make_tag(&(ZIf)), append_TDF(&(ZIc),1), append_TDF(&(ZId),1)); } #line 5272 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: introbody2 */ /* BEGINNING OF ACTION: expdec2 */ { #line 774 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" localdecs = (ZIa); #line 5280 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expdec2 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } void read_bool (void) { ZL2_bool:; switch (CURRENT_TERMINAL) { case lex_bool__sort: { ADVANCE_LEXER; /* BEGINNING OF INLINE: after_bool_sort */ { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; /* BEGINNING OF INLINE: bool */ goto ZL2_bool; /* END OF INLINE: bool */ } /*UNREACHED*/ case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; /* BEGINNING OF ACTION: gencond1_dec */ { #line 1164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ SET_TDF((ZId), &(ZIa)); #line 5328 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond1_dec */ ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); switch (CURRENT_TERMINAL) { case lex_comma: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond2 */ { #line 1169 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 5356 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond2 */ read_bool (); switch (CURRENT_TERMINAL) { case lex_comma: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond3 */ { #line 1174 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)); #line 5376 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond3 */ read_bool (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: bool1 */ { #line 392 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_bool_cond(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1), append_TDF(&(ZIc),1)); #line 5391 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: bool1 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: after_bool_sort */ } break; case lex_bool__cons: { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 5419 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 5428 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_bool__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 5443 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 5452 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 5470 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZRvarintro__opt (void) { switch (CURRENT_TERMINAL) { case lex_varpar: { ADVANCE_LEXER; read_tag (); switch (CURRENT_TERMINAL) { case lex_colon: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; read_alignment (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case 130: return; default: break; } return; ZL1:; SAVE_LEXER (130); return; } void read_ntest (void) { ZL2_ntest:; switch (CURRENT_TERMINAL) { case lex_ntest__sort: { ADVANCE_LEXER; /* BEGINNING OF INLINE: 671 */ { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; /* BEGINNING OF INLINE: ntest */ goto ZL2_ntest; /* END OF INLINE: ntest */ } /*UNREACHED*/ case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond1_dec */ { #line 1164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ SET_TDF((ZId), &(ZIa)); #line 5545 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond2 */ { #line 1169 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 5566 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond2 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; read_ntest (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond3 */ { #line 1174 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)); #line 5587 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond3 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; read_ntest (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: ntest1 */ { #line 1605 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_ntest_cond(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1), append_TDF(&(ZIc),1)); #line 5609 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: ntest1 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: 671 */ } break; case lex_ntest__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 5638 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 5647 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case lex_relop: { /* BEGINNING OF ACTION: ntest2 */ { #line 1611 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" char * n = lex_v.val.name; if (strcmp(n,"!<")==0) { o_not_less_than; } else if (strcmp(n,"!<=")==0) { o_not_less_than_or_equal; } else if (strcmp(n,"!=")==0) { o_not_equal; } else if (strcmp(n,"!>")==0) { o_not_greater_than; } else if (strcmp(n,"!>=")==0) { o_not_greater_than_or_equal; } else if (strcmp(n,"!Comparable")==0) { o_not_comparable; } else if (strcmp(n,"<")==0) { o_less_than; } else if (strcmp(n,"<=")==0) { o_less_than_or_equal; } else if (strcmp(n,"==")==0) { o_equal; } else if (strcmp(n,">")==0) { o_greater_than; } else if (strcmp(n,">=")==0) { o_greater_than_or_equal; } else if (strcmp(n,"Comparable")==0) { o_comparable; } else { MSG_not_a_comparison(n); } #line 5672 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: ntest2 */ ADVANCE_LEXER; } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 5691 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } void read_bitfield_variety (void) { ZL2_bitfield__variety:; switch (CURRENT_TERMINAL) { case lex_bitfield__variety__sort: { ADVANCE_LEXER; /* BEGINNING OF INLINE: after_bv_sort */ { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; /* BEGINNING OF INLINE: bitfield_variety */ goto ZL2_bitfield__variety; /* END OF INLINE: bitfield_variety */ } /*UNREACHED*/ case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; /* BEGINNING OF ACTION: gencond1_dec */ { #line 1164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ SET_TDF((ZId), &(ZIa)); #line 5729 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond1_dec */ ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); switch (CURRENT_TERMINAL) { case lex_comma: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond2 */ { #line 1169 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 5757 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond2 */ read_bitfield_variety (); switch (CURRENT_TERMINAL) { case lex_comma: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond3 */ { #line 1174 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)); #line 5777 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond3 */ read_bitfield_variety (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: bvariety1 */ { #line 403 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_bfvar_cond(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1), append_TDF(&(ZIc),1)); #line 5792 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: bvariety1 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: after_bv_sort */ } break; case lex_bool__cons: case lex_bool__sort: case lex_bool__tok: case lex_character: case lex_int__den: case lex_nat__cons: case lex_nat__sort: case lex_nat__tok: case lex_signed__term: case lex_unsigned__term: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; /* BEGINNING OF ACTION: bvar3_dec */ { #line 398 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ SET_TDF((ZIc), &(ZIa)); #line 5826 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: bvar3_dec */ ZRbitfield__sign (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: bvariety4 */ { #line 414 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); SET_TDF((ZIc), &(ZIb)); #line 5840 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: bvariety4 */ read_nat (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: bvariety5 */ { #line 419 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); o_bfvar_bits(append_TDF(&(ZIa),1), append_TDF(&(ZIb), 1)); #line 5854 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: bvariety5 */ } break; case lex_bitfield__variety__cons: { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 5868 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 5877 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_bitfield__variety__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 5892 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 5901 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 5919 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZRsigned__nat__body (void) { ZL2_signed__nat__body:; switch (CURRENT_TERMINAL) { case lex_minus__term: { ADVANCE_LEXER; ZR634 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_signed__nat__sort: { ADVANCE_LEXER; /* BEGINNING OF INLINE: 633 */ { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; /* BEGINNING OF INLINE: signed_nat_body */ goto ZL2_signed__nat__body; /* END OF INLINE: signed_nat_body */ } /*UNREACHED*/ case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond1_dec */ { #line 1164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ SET_TDF((ZId), &(ZIa)); #line 5968 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond2 */ { #line 1169 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 5989 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond2 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; ZRsigned__nat__body (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond3 */ { #line 1174 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)); #line 6010 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond3 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; ZRsigned__nat__body (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: signed_nat1 */ { #line 1855 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_signed_nat_cond(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1), append_TDF(&(ZIc),1)); #line 6032 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: signed_nat1 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: 633 */ } break; case lex_character: case lex_int__den: { ZRinteger (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: signed_nat2 */ { #line 1861 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_make_signed_nat(out_tdfbool(0), out_tdfint32(intvalue)); #line 6063 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: signed_nat2 */ } break; case lex_signed__nat__cons: { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 6077 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 6086 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_signed__nat__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 6101 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 6110 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case lex_line__term: { /* BEGINNING OF ACTION: signed_nat4 */ { #line 1869 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_make_signed_nat(out_tdfbool(0), out_tdfint32(cLINE)); #line 6122 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: signed_nat4 */ ADVANCE_LEXER; } break; case lex_arithop: { TDF ZIa; PTR_TDF ZIb; /* BEGINNING OF ACTION: signed_nat7_dec */ { #line 1882 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIb), &(ZIa)); if (strcmp(lex_v.val.name, "+")) MSG_only_plus_or_minus(); #line 6139 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: signed_nat7_dec */ ADVANCE_LEXER; ZRnat__not__int (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: signed_nat8 */ { #line 1887 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); o_snat_from_nat(o_false, append_TDF(&(ZIa),1)); #line 6154 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: signed_nat8 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRlabset__opt (void) { switch (CURRENT_TERMINAL) { default: { /* BEGINNING OF ACTION: lset_o1 */ { #line 1535 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" TDF * hold; SET_TDF(hold, &optlab); if (defaultlab==-1) defaultlab = next_label(); o_make_label(out_tdfint32(UL(defaultlab))); RESET_TDF(hold); #line 6185 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: lset_o1 */ } break; case lex_colon: { PTR_TDF ZIa; /* BEGINNING OF ACTION: lset_o2_dec */ { #line 1543 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIa), &optlab); g_labdec = (Labdec*)0; if (defaultlab != -1) { MSG_default_jump(); } #line 6201 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: lset_o2_dec */ ADVANCE_LEXER; read_label (); switch (CURRENT_TERMINAL) { case lex_colon: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: lset_o3 */ { #line 1549 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" if (g_labdec != (Labdec*)0) { if (g_labdec->declared) { MSG_label_set_twice(g_labdec->idname.id); } g_labdec->declared = 1; } RESET_TDF((ZIa)); #line 6227 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: lset_o3 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRkeep__item (void) { switch (CURRENT_TERMINAL) { case lex_access__tok: case lex_al__tag__tok: case lex_alignment__tok: case lex_bitfield__variety__tok: case lex_bool__tok: case lex_error__treatment__tok: case lex_exp__tok: case lex_floating__variety__tok: case lex_label__tok: case lex_nat__tok: case lex_ntest__tok: case lex_rounding__mode__tok: case lex_shape__tok: case lex_signed__nat__tok: case lex_tag__tok: case lex_transfer__mode__tok: case lex_variety__tok: { /* BEGINNING OF ACTION: keep1 */ { #line 1347 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" Tokdec * k = lex_v.val.tokname; k->iskept = 1; #line 6258 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: keep1 */ /* BEGINNING OF INLINE: tok_item */ { switch (CURRENT_TERMINAL) { case lex_access__tok: { ADVANCE_LEXER; } break; case lex_al__tag__tok: { ADVANCE_LEXER; } break; case lex_alignment__tok: { ADVANCE_LEXER; } break; case lex_bitfield__variety__tok: { ADVANCE_LEXER; } break; case lex_bool__tok: { ADVANCE_LEXER; } break; case lex_error__treatment__tok: { ADVANCE_LEXER; } break; case lex_exp__tok: { ADVANCE_LEXER; } break; case lex_floating__variety__tok: { ADVANCE_LEXER; } break; case lex_label__tok: { ADVANCE_LEXER; } break; case lex_nat__tok: { ADVANCE_LEXER; } break; case lex_ntest__tok: { ADVANCE_LEXER; } break; case lex_rounding__mode__tok: { ADVANCE_LEXER; } break; case lex_shape__tok: { ADVANCE_LEXER; } break; case lex_signed__nat__tok: { ADVANCE_LEXER; } break; case lex_tag__tok: { ADVANCE_LEXER; } break; case lex_transfer__mode__tok: { ADVANCE_LEXER; } break; case lex_variety__tok: { ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: tok_item */ } break; case lex_ident: { /* BEGINNING OF ACTION: keep2 */ { #line 1352 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" char * n = lex_v.val.name; Tagdec * t = find_tag(n); if (t != (Tagdec*)0){ t->iskept = 1; } else { Al_tagdec * a = find_al_tag(n); if (a == (Al_tagdec*)0) { MSG_ident_not_declared(n); } a->iskept = 1; } #line 6373 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: keep2 */ ADVANCE_LEXER; } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRstruct__def (void) { if ((CURRENT_TERMINAL) == 130) { return; } { PTR_Tokdec ZIa; switch (CURRENT_TERMINAL) { case lex_struct__term: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: struct1_dec */ { #line 1960 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" char * n = lex_v.val.name; (ZIa) = find_tok(n); SELECT_UNIT(tokdef_unit); if ((ZIa)!=(Tokdec*)0) MSG_struct_unique(n); (ZIa) = xalloc(sizeof(*(ZIa))); NEW_IDNAME((ZIa)->idname, n, tok_ent); (ZIa)->sort.ressort.sort = shape_sort; (ZIa)->sort.pars = (Tokpar*)0; (ZIa)->isdeffed = 1; (ZIa)->isused=0; (ZIa)->iskept=0; g_lastfield = -1; #line 6418 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: struct1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; ZRfield__list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: struct2 */ { #line 1971 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_make_tokdef(out_tdfint32(LOCNAME((ZIa)->idname)), {}, o_token_def(o_shape, {}, o_compound(o_offset_add( o_exp_apply_token( o_make_tok(out_tdfint32(UL(g_lastfield))),{}), o_shape_offset(append_TDF(&g_lastshape, 1)))))) INC_LIST; (ZIa)->next = tokdecs; tokdecs = (ZIa); #line 6453 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: struct2 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRnonst__shape__body (void) { switch (CURRENT_TERMINAL) { case lex_ptr: { TDF ZIa; PTR_TDF ZIb; ADVANCE_LEXER; /* BEGINNING OF ACTION: shptr1_dec */ { #line 1831 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIb), &(ZIa)); #line 6485 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shptr1_dec */ read_shape (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: shapeptr2 */ { #line 1800 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); o_pointer(o_alignment(append_TDF(&(ZIa),1))); #line 6499 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shapeptr2 */ } break; case lex_shape__sort: { ADVANCE_LEXER; ZR676 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_shape__cons: { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 6523 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 6532 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_shape__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 6547 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 6556 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } void read_tag (void) { ZL2_tag:; switch (CURRENT_TERMINAL) { case lex_tag__sort: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF INLINE: tag */ goto ZL2_tag; /* END OF INLINE: tag */ } /*UNREACHED*/ case lex_tag__cons: { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 6601 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 6610 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_tag__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 6625 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 6634 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case lex_ident: { /* BEGINNING OF ACTION: tag1 */ { #line 1987 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" char * n =lex_v.val.name; Tagdec * x = find_tag(n); if (x == (Tagdec*)0) { MSG_ident_not_declared(n); } x->isused = 1; make_tag(&x->idname.name); #line 6650 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag1 */ ADVANCE_LEXER; } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 6669 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZRvariety__opt (void) { switch (CURRENT_TERMINAL) { case lex_ord: { ADVANCE_LEXER; read_variety (); switch (CURRENT_TERMINAL) { case lex_crd: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; } break; default: { /* BEGINNING OF ACTION: varietyopt1 */ { #line 2470 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* unsigned char */ o_var_limits( o_make_signed_nat(out_tdfbool(0), out_tdfint32(UL(0))), o_make_signed_nat(out_tdfbool(0), out_tdfint32(UL(255)))); #line 6705 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: varietyopt1 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } void read_nat_option (void) { switch (CURRENT_TERMINAL) { case lex_character: case lex_int__den: case lex_nat__cons: case lex_nat__sort: case lex_nat__tok: { TDF ZIa; PTR_TDF ZIb; /* BEGINNING OF ACTION: natopt_dec */ { #line 1586 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIb), &(ZIa)); #line 6734 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: natopt_dec */ read_nat (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: natopt1 */ { #line 1581 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); OPTION(append_TDF(&(ZIa),1)); #line 6748 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: natopt1 */ } break; case 130: return; default: break; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 6766 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZRsortname__list__opt (void) { switch (CURRENT_TERMINAL) { case lex_access__sort: case lex_al__tag__sort: case lex_alignment__sort: case lex_bitfield__variety__sort: case lex_bool__sort: case lex_error__treatment__sort: case lex_exp__sort: case lex_floating__variety__sort: case lex_label__sort: case lex_nat__sort: case lex_ntest__sort: case lex_rounding__mode__sort: case lex_shape__sort: case lex_signed__nat__sort: case lex_string__sort: case lex_tag__sort: case lex_token__sort: case lex_transfer__mode__sort: case lex_variety__sort: { ZRsortname__list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; default: { /* BEGINNING OF ACTION: empty_snl */ { #line 561 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_tokpars = (Tokpar*)0; #line 6798 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: empty_snl */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } void read_floating_variety (void) { ZL2_floating__variety:; switch (CURRENT_TERMINAL) { case lex_double__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: fvardouble */ { #line 1110 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_flvar_parms(o_make_nat(out_tdfint32(UL(2))), o_make_nat(out_tdfint32(UL(MANT_DOUBLE))), o_make_nat(out_tdfint32(UL(MINEXP_DOUBLE))), o_make_nat(out_tdfint32(UL(MAXEXP_DOUBLE)))); #line 6828 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: fvardouble */ } break; case lex_float__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: fvarfloat */ { #line 1117 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_flvar_parms(o_make_nat(out_tdfint32(UL(2))), o_make_nat(out_tdfint32(UL(MANT_FLOAT))), o_make_nat(out_tdfint32(UL(MINEXP_FLOAT))), o_make_nat(out_tdfint32(UL(MAXEXP_FLOAT)))); #line 6844 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: fvarfloat */ } break; case lex_floating__variety__sort: { ADVANCE_LEXER; /* BEGINNING OF INLINE: 658 */ { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; /* BEGINNING OF INLINE: floating_variety */ goto ZL2_floating__variety; /* END OF INLINE: floating_variety */ } /*UNREACHED*/ case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; /* BEGINNING OF ACTION: gencond1_dec */ { #line 1164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ SET_TDF((ZId), &(ZIa)); #line 6876 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond1_dec */ ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); switch (CURRENT_TERMINAL) { case lex_comma: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond2 */ { #line 1169 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 6904 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond2 */ read_floating_variety (); switch (CURRENT_TERMINAL) { case lex_comma: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond3 */ { #line 1174 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)); #line 6924 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond3 */ read_floating_variety (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: fvar1 */ { #line 1104 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_flvar_cond(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1), append_TDF(&(ZIc),1)); #line 6939 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: fvar1 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: 658 */ } break; case lex_floating__variety__cons: { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 6967 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 6976 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_floating__variety__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 6991 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 7000 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 7018 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZRtagshacc (void) { if ((CURRENT_TERMINAL) == 130) { return; } { TDF ZIa; PTR_TDF ZIb; PTR_Tagdec ZIc; int ZId; /* BEGINNING OF ACTION: tagsa1_dec */ { #line 2184 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZId) uninitialised */ char * n =lex_v.val.name; (ZIc) = find_tag(n); if ((ZIc) != (Tagdec*)0) MSG_ident_already_declared(n); (ZIc) = xalloc(sizeof(*(ZIc))); (ZIc)->hassh = 2; (ZIc)->isvar =1; (ZIc)->isdeffed = 1; (ZIc)->iskept=0; NEW_IDNAME((ZIc)->idname, n, tag_ent); g_has_vis =0; SET_TDF((ZIb), &(ZIa)); #line 7049 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tagsa1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; ZRaccess__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tagshacc2 */ { #line 2196 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); SET_TDF((ZIb), &(ZIc)->sh.tdfsh); (ZId) = g_has_vis; #line 7071 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tagshacc2 */ switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto ZL1; } ADVANCE_LEXER; read_shape (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tagshacc3 */ { #line 2202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); o_make_tagshacc( append_TDF(&(ZIc)->sh.tdfsh, 0), if((ZIa).no != 0) {OPTION(append_TDF(&(ZIa),1));}, make_tag(&(ZIc)->idname.name)); if ((ZId)) { Tagdec * y = xalloc(sizeof(*y)); *y = *(ZIc); y->next = tagdecs; tagdecs = y; } (ZIc)->next = localdecs; localdecs = (ZIc); #line 7102 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tagshacc3 */ } return; ZL1:; SAVE_LEXER (130); return; } static void ZRelement__list__opt (void) { ZL2_element__list__opt:; switch (CURRENT_TERMINAL) { case lex_al__tagdef: case lex_common__term: case lex_commondec__term: case lex_iddec: case lex_let: case lex_proc: case lex_string__term: case lex_struct__term: case lex_tokdec: case lex_tokdef: case lex_var: case lex_vardec: { ZRelement (); switch (CURRENT_TERMINAL) { case lex_semi: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF INLINE: element_list_opt */ goto ZL2_element__list__opt; /* END OF INLINE: element_list_opt */ } /*UNREACHED*/ case 130: return; default: break; } return; ZL1:; SAVE_LEXER (130); return; } void read_nat (void) { ZL2_nat:; switch (CURRENT_TERMINAL) { case lex_character: case lex_int__den: { ZRinteger (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: nat2 */ { #line 1577 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_make_nat(out_tdfint32(intvalue)); #line 7166 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: nat2 */ } break; case lex_nat__cons: case lex_nat__sort: case lex_nat__tok: { ZRnat__not__int (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 7193 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } void read_alignment (void) { ZL2_alignment:; switch (CURRENT_TERMINAL) { case lex_alignment__sort: { ADVANCE_LEXER; /* BEGINNING OF INLINE: 666 */ { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; /* BEGINNING OF INLINE: alignment */ goto ZL2_alignment; /* END OF INLINE: alignment */ } /*UNREACHED*/ case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond1_dec */ { #line 1164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ SET_TDF((ZId), &(ZIa)); #line 7232 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); switch (CURRENT_TERMINAL) { case lex_comma: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond2 */ { #line 1169 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 7259 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond2 */ read_alignment (); switch (CURRENT_TERMINAL) { case lex_comma: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond3 */ { #line 1174 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)); #line 7279 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond3 */ read_alignment (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: alignment1 */ { #line 377 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_alignment_cond(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1), append_TDF(&(ZIc),1)); #line 7294 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: alignment1 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: 666 */ } break; case lex_ord: { ADVANCE_LEXER; ZRalignment__list__opt (); switch (CURRENT_TERMINAL) { case lex_crd: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_al__tag__sort: case lex_al__tag__tok: case lex_ident: { TDF ZIa; PTR_TDF ZIb; /* BEGINNING OF ACTION: alment2_dec */ { #line 388 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIb), &(ZIa)); #line 7339 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: alment2_dec */ read_al_tag (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: alignment3 */ { #line 383 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); o_obtain_al_tag(append_TDF(&(ZIa), 1)); #line 7353 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: alignment3 */ } break; case lex_alignment__cons: { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 7367 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 7376 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_alignment__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 7391 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 7400 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 7418 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZRvarpar__opt (void) { switch (CURRENT_TERMINAL) { case lex_varpar: { ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: vpar1 */ { #line 2485 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no=1; #line 7441 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: vpar1 */ } break; default: { /* BEGINNING OF ACTION: vpar2 */ { #line 2489 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no=0; #line 7453 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: vpar2 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRkeep__list (void) { if ((CURRENT_TERMINAL) == 130) { return; } ZL2_keep__list:; { ZRkeep__item (); /* BEGINNING OF INLINE: 683 */ { switch (CURRENT_TERMINAL) { case lex_comma: { ADVANCE_LEXER; /* BEGINNING OF INLINE: keep_list */ goto ZL2_keep__list; /* END OF INLINE: keep_list */ } /*UNREACHED*/ case 130: RESTORE_LEXER; goto ZL1; default: break; } } /* END OF INLINE: 683 */ } return; ZL1:; SAVE_LEXER (130); return; } static void ZRproc__def (void) { if ((CURRENT_TERMINAL) == 130) { return; } { TDF ZIa; TDF ZIb; PTR_TDF ZIc; PTR_Tagdec ZId; PTR_char ZIe; int ZIf; switch (CURRENT_TERMINAL) { case lex_proc: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: tag_def7_dec */ { #line 2138 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIa) uninitialised */ (ZIe) =lex_v.val.name; (ZId) = find_tag((ZIe)); SELECT_UNIT(tagdef_unit); if((ZId)!= (Tagdec*)0) { if ((ZId)->isdeffed && !(ZId)->iscommon) MSG_tag_defined_twice((ZIe)); if ((ZId)->isvar) MSG_tag_declared_as_variable((ZIe)); (ZIf) = 1; } else { (ZId) = xalloc(sizeof(*(ZId))); (ZId)->hassh = 0; (ZId)->isvar=0; (ZId)->iskept=0; (ZId)->iscommon = 0; (ZId)->isused = 0; NEW_IDNAME((ZId)->idname, (ZIe), tag_ent); (ZIf) = 0; } SET_TDF((ZIc), &(ZIb)); #line 7543 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def7_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_equals: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: proc_def1 */ { #line 1673 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); SET_TDF((ZIc), &(ZIa)); #line 7566 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: proc_def1 */ ZRproc__def__body (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: proc_def2 */ { #line 1678 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); o_make_id_tagdef(out_tdfint32(UL(local_name(&(ZId)->idname.name, tag_ent))), if ((ZIb).no !=0) { OPTION(append_TDF(&(ZIb), (ZIf))); }, append_TDF(&(ZIa), 1)); INC_LIST; SELECT_UNIT(tagdec_unit); if (!(ZIf)) { o_make_id_tagdec(out_tdfint32(UL(non_local(&(ZId)->idname.name,tag_ent))), {}, if ((ZIb).no !=0) { OPTION(append_TDF(&(ZIb), 1)); }, o_proc); INC_LIST; } (ZId)->isdeffed=1; if (!(ZIf)) {(ZId)->next = tagdecs; tagdecs = (ZId);} #line 7593 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: proc_def2 */ } return; ZL1:; SAVE_LEXER (130); return; } void read_error_code_list (void) { if ((CURRENT_TERMINAL) == 130) { return; } { read_error_code (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: errc1 */ { #line 569 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no = 1; #line 7620 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: errc1 */ ZR625 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 7637 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZRcallee__var__opt (void) { switch (CURRENT_TERMINAL) { case lex_dotdotdot: { ADVANCE_LEXER; /* BEGINNING OF ACTION: cevaropt2 */ { #line 481 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_ce_v = 1; #line 7655 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: cevaropt2 */ } break; default: { /* BEGINNING OF ACTION: cevaropt1 */ { #line 477 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_ce_v = 0; #line 7667 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: cevaropt1 */ } break; case 130: return; } } static void ZRtag__dec (void) { switch (CURRENT_TERMINAL) { case lex_commondec__term: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; PTR_Tagdec ZId; ADVANCE_LEXER; /* BEGINNING OF ACTION: tag_dec1_dec */ { #line 1995 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ char * n =lex_v.val.name; (ZId) = find_tag(n); if ((ZId) != (Tagdec*)0) MSG_tag_declared_twice(n); SELECT_UNIT(tagdec_unit); (ZId) = xalloc(sizeof(*(ZId))); NEW_IDNAME((ZId)->idname, n, tag_ent); (ZId)->isdeffed = 0; (ZId)->hassh = 1; (ZId)->iskept=0; (ZId)->iscommon=0; (ZId)->isused = 0; SET_TDF((ZIc), &(ZIa)); #line 7702 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_dec1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; ZRaccess__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_dec6 */ { #line 2048 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); SET_TDF((ZIc), &(ZIb)); #line 7723 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_dec6 */ ZRsignature__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_dec2 */ { #line 2007 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_shtokname = &(ZId)->sh.shtok; #line 7736 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_dec2 */ switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto ZL1; } ADVANCE_LEXER; ZRshapetok (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_dec5 */ { #line 2035 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); (ZId)->iscommon = 1; o_common_tagdec(out_tdfint32(LOCNAME((ZId)->idname)), if ((ZIa).no !=0) { OPTION(append_TDF(&(ZIa), 1)); }, if ((ZIb).no !=0) { OPTION(append_TDF(&(ZIb), 1)); }, o_shape_apply_token(make_tok(&(ZId)->sh.shtok), {})); INC_LIST; (ZId)->next = tagdecs; (ZId)->isvar = 1; tagdecs = (ZId); #line 7765 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_dec5 */ } break; case lex_iddec: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; PTR_Tagdec ZId; ADVANCE_LEXER; /* BEGINNING OF ACTION: tag_dec1_dec */ { #line 1995 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ char * n =lex_v.val.name; (ZId) = find_tag(n); if ((ZId) != (Tagdec*)0) MSG_tag_declared_twice(n); SELECT_UNIT(tagdec_unit); (ZId) = xalloc(sizeof(*(ZId))); NEW_IDNAME((ZId)->idname, n, tag_ent); (ZId)->isdeffed = 0; (ZId)->hassh = 1; (ZId)->iskept=0; (ZId)->iscommon=0; (ZId)->isused = 0; SET_TDF((ZIc), &(ZIa)); #line 7791 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_dec1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; ZRaccess__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_dec6 */ { #line 2048 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); SET_TDF((ZIc), &(ZIb)); #line 7812 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_dec6 */ ZRsignature__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_dec2 */ { #line 2007 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_shtokname = &(ZId)->sh.shtok; #line 7825 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_dec2 */ switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto ZL1; } ADVANCE_LEXER; ZRshapetok (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_dec4 */ { #line 2023 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); o_make_id_tagdec(out_tdfint32(LOCNAME((ZId)->idname)), if ((ZIa).no !=0) { OPTION(append_TDF(&(ZIa), 1)); }, if ((ZIb).no !=0) { OPTION(append_TDF(&(ZIb), 1)); }, o_shape_apply_token(make_tok(&(ZId)->sh.shtok), {})); INC_LIST; (ZId)->next = tagdecs; (ZId)->isvar = 0; tagdecs = (ZId); #line 7853 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_dec4 */ } break; case lex_vardec: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; PTR_Tagdec ZId; ADVANCE_LEXER; /* BEGINNING OF ACTION: tag_dec1_dec */ { #line 1995 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ char * n =lex_v.val.name; (ZId) = find_tag(n); if ((ZId) != (Tagdec*)0) MSG_tag_declared_twice(n); SELECT_UNIT(tagdec_unit); (ZId) = xalloc(sizeof(*(ZId))); NEW_IDNAME((ZId)->idname, n, tag_ent); (ZId)->isdeffed = 0; (ZId)->hassh = 1; (ZId)->iskept=0; (ZId)->iscommon=0; (ZId)->isused = 0; SET_TDF((ZIc), &(ZIa)); #line 7879 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_dec1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; ZRaccess__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_dec6 */ { #line 2048 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); SET_TDF((ZIc), &(ZIb)); #line 7900 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_dec6 */ ZRsignature__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_dec2 */ { #line 2007 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_shtokname = &(ZId)->sh.shtok; #line 7913 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_dec2 */ switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto ZL1; } ADVANCE_LEXER; ZRshapetok (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tag_dec3 */ { #line 2011 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); o_make_var_tagdec(out_tdfint32(LOCNAME((ZId)->idname)), if ((ZIa).no !=0) { OPTION(append_TDF(&(ZIa), 1)); }, if ((ZIb).no !=0) { OPTION(append_TDF(&(ZIb), 1)); }, o_shape_apply_token(make_tok(&(ZId)->sh.shtok), {})); INC_LIST; (ZId)->next = tagdecs; (ZId)->isvar = 1; tagdecs = (ZId); #line 7941 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_dec3 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRtag__intro (void) { switch (CURRENT_TERMINAL) { case lex_let: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; PTR_Tagdec ZId; int ZIe; ADVANCE_LEXER; /* BEGINNING OF ACTION: intro1_dec */ { #line 1277 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIe) uninitialised */ char* n = lex_v.val.name; (ZId) = find_tag(n); if ((ZId) != (Tagdec*)0) { MSG_tag_declared_twice(n); } (ZId) = xalloc(sizeof(*(ZId))); (ZId)->isdeffed = 1; (ZId)->hassh=0; (ZId)->iskept=0; NEW_IDNAME((ZId)->idname, n, tag_ent); g_has_vis = 0; SET_TDF((ZIc), &(ZIa)); #line 7982 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: intro1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; ZRaccess__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: intro2 */ { #line 1288 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); SET_TDF((ZIc), &(ZIb)); (ZIe) = g_has_vis; #line 8004 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: intro2 */ switch (CURRENT_TERMINAL) { case lex_equals: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: intro5 */ { #line 1315 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); intro_acc = (ZIa); intro_init = (ZIb); (ZId)->isvar=0; if ((ZIe)) { Tagdec * y = xalloc(sizeof(*y)); *y = *(ZId); y->next = tagdecs; tagdecs = y; } (ZId)->next = localdecs; localdecs = (ZId); #line 8035 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: intro5 */ } break; case lex_var: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; PTR_Tagdec ZId; int ZIe; ADVANCE_LEXER; /* BEGINNING OF ACTION: intro1_dec */ { #line 1277 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIe) uninitialised */ char* n = lex_v.val.name; (ZId) = find_tag(n); if ((ZId) != (Tagdec*)0) { MSG_tag_declared_twice(n); } (ZId) = xalloc(sizeof(*(ZId))); (ZId)->isdeffed = 1; (ZId)->hassh=0; (ZId)->iskept=0; NEW_IDNAME((ZId)->idname, n, tag_ent); g_has_vis = 0; SET_TDF((ZIc), &(ZIa)); #line 8061 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: intro1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; ZRaccess__opt (); ZR669 (&ZIa, &ZIb, &ZIc, &ZId, &ZIe); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } void read_exp (void) { if ((CURRENT_TERMINAL) == 130) { return; } { TDF ZIa; PTR_TDF ZIb; int ZIc; unsigned_long ZId; int ZIe; /* BEGINNING OF ACTION: exphold1_dec */ { #line 782 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIc) = (current_TDF->first == current_TDF->last && current_TDF->first->usage == 0 && current_TDF->first->offst == 0); (ZId) = cLINE; (ZIe) = bind; if (!(ZIc) || line_no_tok != -1) { SET_TDF((ZIb), &(ZIa)); } #line 8113 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exphold1_dec */ ZRexp__body (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exphold2 */ { #line 791 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" if (!(ZIc) || line_no_tok != -1) { SET((ZIb)); RESET_TDF((ZIb)); if (line_no_tok != -1) { o_exp_apply_token( o_make_tok(out_tdfint32(UL(cname_to_lname(line_no_tok,tok_ent)))), { append_TDF(&(ZIa),1); o_make_sourcemark(FILENAME(), o_make_nat(out_tdfint32((ZId))), o_make_nat(out_tdfint32(UL((ZIe))))); o_make_sourcemark(FILENAME(), o_make_nat(out_tdfint32(cLINE)), o_make_nat(out_tdfint32(UL(bind)))); }); } else append_TDF(&(ZIa),1); } #line 8141 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exphold2 */ } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 8153 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZRtag__def (void) { switch (CURRENT_TERMINAL) { case lex_common__term: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; PTR_Tagdec ZId; PTR_char ZIe; int ZIf; ADVANCE_LEXER; /* BEGINNING OF ACTION: tag_def1_dec */ { #line 2074 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIa) uninitialised */ (ZIe) =lex_v.val.name; (ZId) = find_tag((ZIe)); SELECT_UNIT(tagdef_unit); if((ZId)!= (Tagdec*)0) { if ((ZId)->isdeffed && !(ZId)->iscommon) MSG_tag_defined_twice((ZIe)); if (!(ZId)->isvar) MSG_tag_declared_non_variable((ZIe)); (ZIf) = 1; } else { (ZId) = xalloc(sizeof(*(ZId))); (ZId)->hassh = 0; (ZId)->isvar=1; (ZId)->iskept=0; (ZId)->iscommon = 0; (ZId)->isused=0; NEW_IDNAME((ZId)->idname, (ZIe), tag_ent); (ZIf)=0; } SET_TDF((ZIc), &(ZIb)); #line 8193 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; ZRsignature__opt (); ZR678 (&ZIa, &ZIb, &ZIc, &ZId, &ZIe, &ZIf); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_let: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; PTR_Tagdec ZId; PTR_char ZIe; int ZIf; ADVANCE_LEXER; /* BEGINNING OF ACTION: tag_def7_dec */ { #line 2138 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIa) uninitialised */ (ZIe) =lex_v.val.name; (ZId) = find_tag((ZIe)); SELECT_UNIT(tagdef_unit); if((ZId)!= (Tagdec*)0) { if ((ZId)->isdeffed && !(ZId)->iscommon) MSG_tag_defined_twice((ZIe)); if ((ZId)->isvar) MSG_tag_declared_as_variable((ZIe)); (ZIf) = 1; } else { (ZId) = xalloc(sizeof(*(ZId))); (ZId)->hassh = 0; (ZId)->isvar=0; (ZId)->iskept=0; (ZId)->iscommon = 0; (ZId)->isused = 0; NEW_IDNAME((ZId)->idname, (ZIe), tag_ent); (ZIf) = 0; } SET_TDF((ZIc), &(ZIb)); #line 8241 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def7_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; ZRsignature__opt (); ZR679 (&ZIa, &ZIb, &ZIc, &ZId, &ZIe, &ZIf); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_string__term: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; PTR_Tagdec ZId; PTR_char ZIe; int ZIf; TDF ZIg; PTR_char ZIh; ADVANCE_LEXER; /* BEGINNING OF ACTION: tag_def1_dec */ { #line 2074 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIa) uninitialised */ (ZIe) =lex_v.val.name; (ZId) = find_tag((ZIe)); SELECT_UNIT(tagdef_unit); if((ZId)!= (Tagdec*)0) { if ((ZId)->isdeffed && !(ZId)->iscommon) MSG_tag_defined_twice((ZIe)); if (!(ZId)->isvar) MSG_tag_declared_non_variable((ZIe)); (ZIf) = 1; } else { (ZId) = xalloc(sizeof(*(ZId))); (ZId)->hassh = 0; (ZId)->isvar=1; (ZId)->iskept=0; (ZId)->iscommon = 0; (ZId)->isused=0; NEW_IDNAME((ZId)->idname, (ZIe), tag_ent); (ZIf)=0; } SET_TDF((ZIc), &(ZIb)); #line 8291 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; ZRsignature__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tgdef10_dec */ { #line 2238 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); SET_TDF((ZIc), &(ZIg)); #line 8312 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tgdef10_dec */ ZRvariety__opt (); switch (CURRENT_TERMINAL) { case lex_equals: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: tgdef11_dec */ { #line 2243 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIh) = lex_v.val.name; if ((ZId)->hassh) MSG_two_declaration_shapes((ZIe)); RESET_TDF((ZIc)); SET_TDF((ZIc), &(ZIa)); o_make_nof_int(append_TDF(&(ZIg), 0), o_make_string(out_tdfstring_bytes((ZIh), 8, UI(strlen((ZIh))+1)))); #line 8336 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tgdef11_dec */ switch (CURRENT_TERMINAL) { case lex_qstring: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: tag_def12 */ { #line 2057 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); o_make_var_tagdef(out_tdfint32(UL(local_name(&(ZId)->idname.name, tag_ent))), {}, {}, append_TDF(&(ZIa), 1)); INC_LIST; SELECT_UNIT(tagdec_unit); if (!(ZIf)) { o_make_var_tagdec(out_tdfint32(UL(non_local(&(ZId)->idname.name,tag_ent))), {}, {}, o_nof(o_make_nat(out_tdfint32(UL(strlen((ZIh))+1))), o_integer(append_TDF(&(ZIg), 0)))); INC_LIST; } (ZId)->isdeffed=1; if (!(ZIf)) { (ZId)->next = tagdecs; tagdecs = (ZId); } #line 8364 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def12 */ } break; case lex_var: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; PTR_Tagdec ZId; PTR_char ZIe; int ZIf; ADVANCE_LEXER; /* BEGINNING OF ACTION: tag_def1_dec */ { #line 2074 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIa) uninitialised */ (ZIe) =lex_v.val.name; (ZId) = find_tag((ZIe)); SELECT_UNIT(tagdef_unit); if((ZId)!= (Tagdec*)0) { if ((ZId)->isdeffed && !(ZId)->iscommon) MSG_tag_defined_twice((ZIe)); if (!(ZId)->isvar) MSG_tag_declared_non_variable((ZIe)); (ZIf) = 1; } else { (ZId) = xalloc(sizeof(*(ZId))); (ZId)->hassh = 0; (ZId)->isvar=1; (ZId)->iskept=0; (ZId)->iscommon = 0; (ZId)->isused=0; NEW_IDNAME((ZId)->idname, (ZIe), tag_ent); (ZIf)=0; } SET_TDF((ZIc), &(ZIb)); #line 8399 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tag_def1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; ZRsignature__opt (); ZR677 (&ZIa, &ZIb, &ZIc, &ZId, &ZIe, &ZIf); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRotagexp__list__opt (void) { switch (CURRENT_TERMINAL) { case lex_arithop: case lex_case__term: case lex_character: case lex_cons: case lex_exp__cons: case lex_exp__sort: case lex_exp__tok: case lex_float__den: case lex_float__query: case lex_hash: case lex_ident: case lex_int__den: case lex_lab: case lex_let: case lex_line__term: case lex_minus__term: case lex_ocurl: case lex_offset__query: case lex_ord: case lex_osq: case lex_proc: case lex_proc__query: case lex_ptr__query: case lex_qstring: case lex_query: case lex_rep: case lex_signed__nat__cons: case lex_signed__nat__sort: case lex_signed__nat__tok: case lex_size__term: case lex_star: case lex_string__cons: case lex_string__sort: case lex_string__tok: case lex_tag__cons: case lex_tag__sort: case lex_tag__tok: case lex_var: { ZRotagexp__list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; default: { /* BEGINNING OF ACTION: otagel_opt1 */ { #line 1644 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no = 0; #line 8460 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: otagel_opt1 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRtok__formal__list (void) { if ((CURRENT_TERMINAL) == 130) { return; } { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: tok_fml1_dec */ { #line 2383 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" char * n = lex_v.val.name; (ZIa) = find_tok(n); if ((ZIa)!=(Tokdec*)0) MSG_token_parameter_name_unique(n); (ZIa) = xalloc(sizeof(*(ZIa))); NEW_IDNAME((ZIa)->idname, n, tok_ent); (ZIa)->isdeffed = 1; (ZIa)->isused = 0; (ZIa)->iskept=0; (ZIa)->next = (Tokdec*)0; #line 8493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tok_fml1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto ZL1; } ADVANCE_LEXER; ZRfull__sortname (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tok_fml2 */ { #line 2392 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa)->sort.ressort = g_sname; (ZIa)->sort.pars = (Tokpar*)0; /* no pars in formal pars */ g_tokformals = (ZIa); #line 8522 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tok_fml2 */ ZR629 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; SAVE_LEXER (130); return; } static void ZRuntidy__opt (void) { switch (CURRENT_TERMINAL) { case lex_check__stack: { ADVANCE_LEXER; /* BEGINNING OF ACTION: untidy4 */ { #line 2421 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_unt = 2; #line 8549 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: untidy4 */ } break; case lex_untidy: { ADVANCE_LEXER; ZR657 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; default: { /* BEGINNING OF ACTION: untidy1 */ { #line 2409 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_unt = 0; #line 8571 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: untidy1 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRcaller__var__opt (void) { switch (CURRENT_TERMINAL) { case lex_dotdotdot: { ADVANCE_LEXER; /* BEGINNING OF ACTION: crvaropt2 */ { #line 504 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_cr_v = 1; #line 8597 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: crvaropt2 */ } break; default: { /* BEGINNING OF ACTION: crvaropt1 */ { #line 500 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" g_cr_v = 0; #line 8609 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: crvaropt1 */ } break; case 130: return; } } static void ZRproc__def__body (void) { switch (CURRENT_TERMINAL) { case lex_general: { TDF ZIa; TDF ZIb; TDF ZIc; TDF ZId; PTR_TDF ZIe; int ZIf; int ZIg; int ZIh; PTR_Tagdec ZIi; PTR_Labdec ZIj; ADVANCE_LEXER; /* BEGINNING OF ACTION: gproc1_dec */ { #line 1211 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc), (ZId) uninitialised */ /* (ZIf), (ZIg) (ZIh) uninitialised */ (ZIi) = localdecs; (ZIj) = labdecs; localdecs = (Tagdec*)0; labdecs = (Labdec *)0; SET_TDF((ZIe), &(ZIa)); #line 8648 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gproc1_dec */ read_shape (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gproc2 */ { #line 1221 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); SET_TDF((ZIe), &(ZIb)); #line 8662 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gproc2 */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; ZRtagshacc__list__opt (); ZRcaller__var__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gproc3 */ { #line 1226 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); SET_TDF((ZIe), &(ZIc)); (ZIf) = g_cr_v; #line 8685 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gproc3 */ switch (CURRENT_TERMINAL) { case lex_semi: break; default: goto ZL1; } ADVANCE_LEXER; ZRtagshacc__list__opt (); ZRcallee__var__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gproc4 */ { #line 1232 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); SET_TDF((ZIe), &(ZId)); (ZIg) = g_ce_v; #line 8708 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gproc4 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; ZRuntidy__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gproc5 */ { #line 1238 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIh) = g_unt; #line 8728 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gproc5 */ ZRclosed__exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gproc6 */ { #line 1242 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); o_make_general_proc(append_TDF(&(ZIa),1), do_procprops((ZIf)+2*(ZIg)+4*(ZIh)), { append_TDF(&(ZIb),1); current_TDF->no = (ZIb).no;}, { append_TDF(&(ZIc),1); current_TDF->no = (ZIc).no;}, append_TDF(&(ZId),1)) while (labdecs != (Labdec *)0 ) { if (!labdecs->declared) { MSG_label_not_declared(labdecs->idname.id); } labdecs = labdecs->next; } localdecs = (ZIi); labdecs = (ZIj); #line 8756 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gproc6 */ } break; case lex_char__term: case lex_double__term: case lex_float__term: case lex_int__term: case lex_long__term: case lex_ptr: case lex_shape__cons: case lex_shape__sort: case lex_shape__tok: case lex_short__term: case lex_signed__term: case lex_unsigned__term: { TDF ZIa; TDF ZIb; TDF ZIc; TDF ZId; PTR_TDF ZIe; PTR_Tagdec ZIf; PTR_Labdec ZIg; /* BEGINNING OF ACTION: expproc1_dec */ { #line 851 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIa), (ZIb), (ZIc) uninitialised */ (ZIf) = localdecs; (ZIg) = labdecs; localdecs = (Tagdec*)0; labdecs = (Labdec *)0; SET_TDF((ZIe), &(ZId)); #line 8784 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expproc1_dec */ read_shape (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expproc2 */ { #line 860 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); SET_TDF((ZIe), &(ZIa)) #line 8798 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expproc2 */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; ZRtagshacc__list__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expproc3 */ { #line 865 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); SET_TDF((ZIe), &(ZIb)); #line 8819 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expproc3 */ ZRvarintro__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expproc4 */ { #line 870 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); SET_TDF((ZIe), &(ZIc)); #line 8833 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expproc4 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; ZRclosed__exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expproc5 */ { #line 875 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); o_make_proc(append_TDF(&(ZId),1), { append_TDF(&(ZIa),1); current_TDF->no = (ZIa).no;}, if ((ZIb).no !=0) {OPTION(append_TDF(&(ZIb),1)); }, append_TDF(&(ZIc),1);) while (labdecs != (Labdec *)0 ) { if (!labdecs->declared) { MSG_label_not_declared(labdecs->idname.id); } labdecs = labdecs->next; } localdecs = (ZIf); labdecs = (ZIg); #line 8865 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expproc5 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRlabelled__list (void) { if ((CURRENT_TERMINAL) == 130) { return; } { TDF ZIa; PTR_TDF ZIb; switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: llist1_dec */ { #line 1506 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIb) = current_TDF; INIT_TDF(&(ZIa)); current_TDF = &g_lablist; #line 8905 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: llist1_dec */ read_label (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: llist2 */ { #line 1512 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" if (g_labdec != (Labdec*)0) { if (g_labdec->declared) { MSG_label_set_twice(g_labdec->idname.id); } g_labdec->declared = 1; } current_TDF = &(ZIa); #line 8924 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: llist2 */ switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto ZL1; } ADVANCE_LEXER; ZRexp__sequence (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: llist5 */ { #line 1530 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); append_TDF(&(ZIa), 1); #line 8945 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: llist5 */ ZR668 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; SAVE_LEXER (130); return; } static void ZRoffset__exp__list (void) { if ((CURRENT_TERMINAL) == 130) { return; } { read_exp (); switch (CURRENT_TERMINAL) { case lex_colon: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; read_exp (); ZR663 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; SAVE_LEXER (130); return; } static void ZRbitfield__sign (void) { switch (CURRENT_TERMINAL) { case lex_bool__cons: case lex_bool__sort: case lex_bool__tok: { read_bool (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; default: { ZRvariety__sign (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: bvariety2 */ { #line 409 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" if (issigned) { o_true; } else { o_false; } #line 9017 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: bvariety2 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRtok__dec (void) { if ((CURRENT_TERMINAL) == 130) { return; } { TDF ZIa; PTR_TDF ZIb; PTR_Tokdec ZIc; switch (CURRENT_TERMINAL) { case lex_tokdec: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: tok_dec1_dec */ { #line 2277 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" char *n = lex_v.val.name; (ZIc) = find_tok(n); if ((ZIc) != (Tokdec *)0) MSG_token_declared_twice(n); SELECT_UNIT(tokdec_unit); (ZIc) = xalloc(sizeof(*(ZIc))); NEW_IDNAME((ZIc)->idname, n, tok_ent); SET_TDF((ZIb), &(ZIa)); #line 9060 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tok_dec1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; ZRsignature__opt (); switch (CURRENT_TERMINAL) { case lex_colon: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_osq: break; default: goto ZL1; } ADVANCE_LEXER; ZRsortname__list__opt (); switch (CURRENT_TERMINAL) { case lex_csq: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; ZRfull__sortname (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tok_dec2 */ { #line 2287 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); (ZIc)->sort.ressort = g_sname; (ZIc)->sort.pars = g_tokpars; (ZIc)->next = tokdecs; (ZIc)->isdeffed = 0; (ZIc)->isused = 0; (ZIc)->iskept=0; (ZIc)->isparam=0; tokdecs = (ZIc); o_make_tokdec(out_tdfint32(LOCNAME((ZIc)->idname)), if ((ZIa).no != 0) { OPTION(append_TDF(&(ZIa), 1)); }, out_toksort(&(ZIc)->sort)); INC_LIST; #line 9118 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tok_dec2 */ } return; ZL1:; SAVE_LEXER (130); return; } static void ZRexp__comma__list (void) { if ((CURRENT_TERMINAL) == 130) { return; } ZL2_exp__comma__list:; { read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expl2 */ { #line 814 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no++; #line 9146 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expl2 */ /* BEGINNING OF INLINE: 624 */ { switch (CURRENT_TERMINAL) { case lex_comma: { ADVANCE_LEXER; /* BEGINNING OF INLINE: exp_comma_list */ goto ZL2_exp__comma__list; /* END OF INLINE: exp_comma_list */ } /*UNREACHED*/ default: break; } } /* END OF INLINE: 624 */ } return; ZL1:; SAVE_LEXER (130); return; } static void ZRexp__body (void) { if ((CURRENT_TERMINAL) == 130) { return; } { ZRunary__exp (); ZR632 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; SAVE_LEXER (130); return; } static void ZRtok__def (void) { if ((CURRENT_TERMINAL) == 130) { return; } { TDF ZIa; TDF ZIb; PTR_TDF ZIc; PTR_Tokdec ZId; int ZIe; /* BEGINNING OF ACTION: tok_def0 */ { #line 2300 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" search_for_toks = 0; #line 9210 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tok_def0 */ switch (CURRENT_TERMINAL) { case lex_tokdef: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: tok_def1_dec */ { #line 2304 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" char *n = lex_v.val.name; (ZId) = find_tok(n); (ZIa) = g_tok_defn; SELECT_UNIT(tokdef_unit); search_for_toks = 1; if ((ZId) != (Tokdec *)0) { if ((ZId)->isdeffed) MSG_token_defined_twice(n); (ZIe) = 1; } else { (ZId) = xalloc(sizeof(*(ZId))); NEW_IDNAME((ZId)->idname, n, tok_ent); (ZIe) = 0; } SET_TDF((ZIc), &(ZIb)); #line 9238 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tok_def1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_equals: break; default: goto ZL1; } ADVANCE_LEXER; ZRtok__def__body (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tok_def2 */ { #line 2321 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); (ZId)->sort = g_toksort; (ZId)->isdeffed =1; (ZId)->iskept=0; (ZId)->isparam = 0; o_make_tokdef(out_tdfint32(UL(local_name(&(ZId)->idname.name,tok_ent))), if ((ZIb).no != 0) { OPTION(append_TDF(&(ZIb), 1)); }, append_TDF(&g_tok_defn, 1)); INC_LIST; if (!(ZIe)) { (ZId)->next = tokdecs; tokdecs = (ZId); (ZId)->isused=0; } g_tok_defn = (ZIa); #line 9273 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tok_def2 */ } return; ZL1:; SAVE_LEXER (130); return; } static void ZRunary__exp (void) { ZL2_unary__exp:; switch (CURRENT_TERMINAL) { case lex_case__term: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; ADVANCE_LEXER; /* BEGINNING OF ACTION: cseexp1_dec */ { #line 508 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ SET_TDF((ZIc), &(ZIa)); #line 9301 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: cseexp1_dec */ read_exp (); switch (CURRENT_TERMINAL) { case lex_ord: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: cseexp2 */ { #line 513 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); SET_TDF((ZIc), &(ZIb)); #line 9321 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: cseexp2 */ ZRrange__label__list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: cseexp3 */ { #line 518 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); o_case(o_false, append_TDF(&(ZIa),1), { append_TDF(&(ZIb),1); current_TDF->no = (ZIb).no; }); #line 9336 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: cseexp3 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_cons: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_osq: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: expcons1_dec */ { #line 754 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ SET_TDF((ZIc), &(ZIa)); #line 9368 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expcons1_dec */ read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expcons2 */ { #line 759 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); SET_TDF((ZIc), &(ZIb)); #line 9382 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expcons2 */ switch (CURRENT_TERMINAL) { case lex_csq: break; default: goto ZL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; ZRoffset__exp__list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expcons3 */ { #line 764 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); o_make_compound(append_TDF(&(ZIa),1), { append_TDF(&(ZIb),1); current_TDF->no = (ZIb).no; }); #line 9411 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expcons3 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_exp__sort: { ADVANCE_LEXER; /* BEGINNING OF INLINE: 639 */ { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; /* BEGINNING OF INLINE: unary_exp */ goto ZL2_unary__exp; /* END OF INLINE: unary_exp */ } /*UNREACHED*/ case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond1_dec */ { #line 1164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ SET_TDF((ZId), &(ZIa)); #line 9451 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond2 */ { #line 1169 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 9472 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond2 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond3 */ { #line 1174 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)); #line 9493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond3 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exp1 */ { #line 597 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_exp_cond(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1), append_TDF(&(ZIc),1)); #line 9515 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exp1 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: 639 */ } break; case lex_float__query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; int ZIe; ADVANCE_LEXER; /* BEGINNING OF ACTION: query_type2 */ { #line 1700 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" query_t = lex_float__query; #line 9548 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: query_type2 */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: exptst1_dec */ { #line 967 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ (ZIe) = query_t; SET_TDF((ZId),&(ZIa)); #line 9565 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst1_dec */ read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptst2 */ { #line 973 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId),&(ZIb)); #line 9579 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst2 */ read_ntest (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptst3 */ { #line 978 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)) #line 9593 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst3 */ read_exp (); ZRlabdest__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptst4 */ { #line 983 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); switch((ZIe)) { case lex_query: o_integer_test({}, append_TDF(&(ZIb),1), append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1)); break; case lex_float__query: o_floating_test({}, o_impossible, append_TDF(&(ZIb),1), append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1)); break; case lex_ptr__query: o_pointer_test( {}, append_TDF(&(ZIb),1),append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1)); break; case lex_proc__query: o_proc_test( {}, append_TDF(&(ZIb),1),append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1) ); break; case lex_offset__query: o_offset_test({}, append_TDF(&(ZIb),1), append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1) ); break; default: MSG_dont_understand_test(); } #line 9633 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst4 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_hash: { ADVANCE_LEXER; /* BEGINNING OF ACTION: expfail1 */ { #line 778 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_fail_installer(read_string()); #line 9653 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expfail1 */ } break; case lex_lab: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; PTR_Labdec ZIe; ADVANCE_LEXER; /* BEGINNING OF ACTION: explab1_dec */ { #line 818 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ (ZIe) = labdecs; (ZIc) = g_lablist; INIT_TDF(&g_lablist); SET_TDF((ZId), &(ZIa)); #line 9676 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: explab1_dec */ switch (CURRENT_TERMINAL) { case lex_ocurl: break; default: goto ZL1; } ADVANCE_LEXER; ZRexp__sequence (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: explab2 */ { #line 826 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 9697 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: explab2 */ switch (CURRENT_TERMINAL) { case lex_bar: break; default: goto ZL1; } ADVANCE_LEXER; ZRlabelled__list (); switch (CURRENT_TERMINAL) { case lex_ccurl: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: explab3 */ { #line 831 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_labelled( { append_TDF(&g_lablist,1); current_TDF->no = g_lablist.no;}, append_TDF(&(ZIa), 1), { append_TDF(&(ZIb),1); current_TDF->no = g_lablist.no;}); tidy_labels((ZIe)); g_lablist = (ZIc); #line 9730 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: explab3 */ } break; case lex_minus__term: { ADVANCE_LEXER; ZR645 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_ocurl: { ADVANCE_LEXER; ZRexp__sequence (); switch (CURRENT_TERMINAL) { case lex_ccurl: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_offset__query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; int ZIe; ADVANCE_LEXER; /* BEGINNING OF ACTION: query_type5 */ { #line 1712 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" query_t = lex_offset__query; #line 9775 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: query_type5 */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: exptst1_dec */ { #line 967 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ (ZIe) = query_t; SET_TDF((ZId),&(ZIa)); #line 9792 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst1_dec */ read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptst2 */ { #line 973 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId),&(ZIb)); #line 9806 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst2 */ read_ntest (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptst3 */ { #line 978 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)) #line 9820 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst3 */ read_exp (); ZRlabdest__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptst4 */ { #line 983 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); switch((ZIe)) { case lex_query: o_integer_test({}, append_TDF(&(ZIb),1), append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1)); break; case lex_float__query: o_floating_test({}, o_impossible, append_TDF(&(ZIb),1), append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1)); break; case lex_ptr__query: o_pointer_test( {}, append_TDF(&(ZIb),1),append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1)); break; case lex_proc__query: o_proc_test( {}, append_TDF(&(ZIb),1),append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1) ); break; case lex_offset__query: o_offset_test({}, append_TDF(&(ZIb),1), append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1) ); break; default: MSG_dont_understand_test(); } #line 9860 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst4 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_ord: { ADVANCE_LEXER; read_exp (); switch (CURRENT_TERMINAL) { case lex_crd: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; ZR646 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_osq: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; ADVANCE_LEXER; /* BEGINNING OF ACTION: chvar1_dec */ { #line 485 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ SET_TDF((ZIc), &(ZIa)); #line 9906 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: chvar1_dec */ read_variety (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: chvar2 */ { #line 490 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); SET_TDF((ZIc), &(ZIb)); #line 9920 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: chvar2 */ switch (CURRENT_TERMINAL) { case lex_csq: break; default: goto ZL1; } ADVANCE_LEXER; ZRunary__exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: chvar3 */ { #line 495 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); o_change_variety(o_wrap, append_TDF(&(ZIa),1), append_TDF(&(ZIb),1)); #line 9941 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: chvar3 */ } break; case lex_proc: { ADVANCE_LEXER; ZRproc__def__body (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_proc__query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; int ZIe; ADVANCE_LEXER; /* BEGINNING OF ACTION: query_type4 */ { #line 1708 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" query_t = lex_proc__query; #line 9970 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: query_type4 */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: exptst1_dec */ { #line 967 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ (ZIe) = query_t; SET_TDF((ZId),&(ZIa)); #line 9987 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst1_dec */ read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptst2 */ { #line 973 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId),&(ZIb)); #line 10001 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst2 */ read_ntest (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptst3 */ { #line 978 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)) #line 10015 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst3 */ read_exp (); ZRlabdest__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptst4 */ { #line 983 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); switch((ZIe)) { case lex_query: o_integer_test({}, append_TDF(&(ZIb),1), append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1)); break; case lex_float__query: o_floating_test({}, o_impossible, append_TDF(&(ZIb),1), append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1)); break; case lex_ptr__query: o_pointer_test( {}, append_TDF(&(ZIb),1),append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1)); break; case lex_proc__query: o_proc_test( {}, append_TDF(&(ZIb),1),append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1) ); break; case lex_offset__query: o_offset_test({}, append_TDF(&(ZIb),1), append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1) ); break; default: MSG_dont_understand_test(); } #line 10055 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst4 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_ptr__query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; int ZIe; ADVANCE_LEXER; /* BEGINNING OF ACTION: query_type3 */ { #line 1704 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" query_t = lex_ptr__query; #line 10081 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: query_type3 */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: exptst1_dec */ { #line 967 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ (ZIe) = query_t; SET_TDF((ZId),&(ZIa)); #line 10098 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst1_dec */ read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptst2 */ { #line 973 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId),&(ZIb)); #line 10112 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst2 */ read_ntest (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptst3 */ { #line 978 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)) #line 10126 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst3 */ read_exp (); ZRlabdest__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptst4 */ { #line 983 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); switch((ZIe)) { case lex_query: o_integer_test({}, append_TDF(&(ZIb),1), append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1)); break; case lex_float__query: o_floating_test({}, o_impossible, append_TDF(&(ZIb),1), append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1)); break; case lex_ptr__query: o_pointer_test( {}, append_TDF(&(ZIb),1),append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1)); break; case lex_proc__query: o_proc_test( {}, append_TDF(&(ZIb),1),append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1) ); break; case lex_offset__query: o_offset_test({}, append_TDF(&(ZIb),1), append_TDF(&optlab,1), append_TDF(&(ZIa), 1), append_TDF(&(ZIc),1) ); break; default: MSG_dont_understand_test(); } #line 10166 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptst4 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_query: { ADVANCE_LEXER; ZR648 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_rep: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; PTR_Labdec ZIe; int ZIf; ADVANCE_LEXER; /* BEGINNING OF ACTION: exprep1_dec */ { #line 891 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc), (ZIf) uninitialised */ (ZIe) = labdecs; SET_TDF((ZId), &(ZIa)); #line 10205 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exprep1_dec */ ZRrepeat__starter__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exprep2 */ { #line 897 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIf) = defaultlab; defaultlab = -1; #line 10219 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exprep2 */ switch (CURRENT_TERMINAL) { case lex_ocurl: break; default: goto ZL1; } ADVANCE_LEXER; ZRlabset__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exprep3 */ { #line 902 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIc) = optlab; RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 10241 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exprep3 */ ZRexp__sequence (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exprep4 */ { #line 908 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_repeat(append_TDF(&(ZIc),1), append_TDF(&(ZIa),1), append_TDF(&(ZIb),1)); tidy_labels((ZIe)); defaultlab = (ZIf); #line 10257 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exprep4 */ switch (CURRENT_TERMINAL) { case lex_ccurl: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_signed__nat__sort: { TDF ZIa; TDF ZIb; ADVANCE_LEXER; ZR633 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: mint1_dec */ { #line 1559 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ (ZIa) = *current_TDF; INIT_TDF(current_TDF); #line 10287 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: mint1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_variety (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: mint2 */ { #line 1565 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIb) = *current_TDF; INIT_TDF(current_TDF); o_make_int(append_TDF(&(ZIb),1), append_TDF(&(ZIa),1)); #line 10309 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: mint2 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_size__term: { TDF ZIa; PTR_TDF ZIb; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: szexp1_dec */ { #line 1983 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIb), &(ZIa)); #line 10339 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: szexp1_dec */ read_shape (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: sizeexp2 */ { #line 1900 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); o_offset_pad(o_alignment(append_TDF(&(ZIa), 0)), o_shape_offset(append_TDF(&(ZIa), 1))); #line 10354 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: sizeexp2 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_star: { ADVANCE_LEXER; ZR647 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_character: case lex_int__den: { TDF ZIa; TDF ZIb; ZRinteger (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: signed_nat2 */ { #line 1861 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_make_signed_nat(out_tdfbool(0), out_tdfint32(intvalue)); #line 10391 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: signed_nat2 */ /* BEGINNING OF ACTION: mint1_dec */ { #line 1559 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ (ZIa) = *current_TDF; INIT_TDF(current_TDF); #line 10401 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: mint1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_variety (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: mint2 */ { #line 1565 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIb) = *current_TDF; INIT_TDF(current_TDF); o_make_int(append_TDF(&(ZIb),1), append_TDF(&(ZIa),1)); #line 10423 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: mint2 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_ident: case lex_tag__cons: case lex_tag__sort: case lex_tag__tok: { read_tag (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exptag1 */ { #line 960 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" TDF tg; tg = *current_TDF; INIT_TDF(current_TDF); o_obtain_tag(append_TDF(&tg,1)); #line 10451 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exptag1 */ ZR646 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_let: case lex_var: { PTR_Tagdec ZIa; TDF ZIb; TDF ZIc; TDF ZId; PTR_TDF ZIe; Name ZIf; int ZIg; /* BEGINNING OF ACTION: expdec1_dec */ { #line 770 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = localdecs; #line 10476 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expdec1_dec */ ZRtag__intro (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: ibody1_dec */ { #line 1261 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIg) = localdecs->isvar; (ZIb) = intro_acc; (ZIc) = intro_init; (ZIf) = localdecs->idname.name; SET_TDF((ZIe), &(ZId)); #line 10493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: ibody1_dec */ ZRclosed__exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: introbody2 */ { #line 1334 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); if ((ZIg)) { o_variable( if((ZIb).no!=0) { OPTION(append_TDF(&(ZIb),1)); }, make_tag(&(ZIf)), append_TDF(&(ZIc),1), append_TDF(&(ZId),1)); } else { o_identify( if((ZIb).no!=0) { OPTION(append_TDF(&(ZIb),1)); }, make_tag(&(ZIf)), append_TDF(&(ZIc),1), append_TDF(&(ZId),1)); } #line 10515 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: introbody2 */ /* BEGINNING OF ACTION: expdec2 */ { #line 774 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" localdecs = (ZIa); #line 10523 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expdec2 */ } break; case lex_qstring: case lex_string__cons: case lex_string__sort: case lex_string__tok: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; /* BEGINNING OF ACTION: expstr1_dec */ { #line 945 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ SET_TDF((ZIc), &(ZIa)); #line 10541 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expstr1_dec */ read_string (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: expstr2 */ { #line 950 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); SET_TDF((ZIc), &(ZIb)); #line 10555 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expstr2 */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_variety (); switch (CURRENT_TERMINAL) { case lex_crd: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: expstring2 */ { #line 955 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); o_make_nof_int(append_TDF(&(ZIb), 1), append_TDF(&(ZIa), 1);); #line 10582 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expstring2 */ } break; case lex_float__den: { TDF ZIa; TDF ZIb; TDF ZIc; TDF ZId; PTR_TDF ZIe; int ZIf; unsigned_long ZIg; /* BEGINNING OF ACTION: fden1_dec */ { #line 1013 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIc), (ZId) uninitialised */ (ZIf) = 0; (ZIg) = UL(radix); SET_TDF((ZIe), &(ZIa)); out_tdfstring_bytes(fformat(lex_v.val.name,lnum), 8, UI(lnum)); RESET_TDF((ZIe)); SET_TDF((ZIe), &(ZIb)); #line 10608 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: fden1_dec */ ADVANCE_LEXER; ZRexponent__opt (); switch (CURRENT_TERMINAL) { case lex_ord: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: fden3 */ { #line 1033 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); SET_TDF((ZIe), &(ZIc)); #line 10629 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: fden3 */ read_floating_variety (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: fden4 */ { #line 1038 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); SET_TDF((ZIe), &(ZId)); #line 10643 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: fden4 */ ZRrounding__mode__opt (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: fden5 */ { #line 1043 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIe)); o_make_floating(append_TDF(&(ZIc),1), append_TDF(&(ZId),1), if ((ZIf)) { o_true; } else { o_false; }, o_make_string(append_TDF(&(ZIa), 1)), o_make_nat(out_tdfint32((ZIg))), append_TDF(&(ZIb), 1)); #line 10662 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: fden5 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_exp__cons: case lex_signed__nat__cons: { int ZI642; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZI642) = lex_v.val.v; #line 10683 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ZR643 (&ZI642); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_exp__tok: case lex_signed__nat__tok: { PTR_Tokdec ZI640; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZI640) = lex_v.val.tokname; (ZI640)->isused = 1; #line 10703 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ZR641 (&ZI640); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_line__term: { TDF ZIa; TDF ZIb; /* BEGINNING OF ACTION: signed_nat4 */ { #line 1869 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_make_signed_nat(out_tdfbool(0), out_tdfint32(cLINE)); #line 10723 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: signed_nat4 */ ADVANCE_LEXER; /* BEGINNING OF ACTION: mint1_dec */ { #line 1559 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ (ZIa) = *current_TDF; INIT_TDF(current_TDF); #line 10734 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: mint1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_variety (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: mint2 */ { #line 1565 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIb) = *current_TDF; INIT_TDF(current_TDF); o_make_int(append_TDF(&(ZIb),1), append_TDF(&(ZIa),1)); #line 10756 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: mint2 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_arithop: { TDF ZI637; PTR_TDF ZI638; TDF ZIa; TDF ZIb; /* BEGINNING OF ACTION: signed_nat7_dec */ { #line 1882 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZI638), &(ZI637)); if (strcmp(lex_v.val.name, "+")) MSG_only_plus_or_minus(); #line 10781 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: signed_nat7_dec */ ADVANCE_LEXER; ZRnat__not__int (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: signed_nat8 */ { #line 1887 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZI638)); o_snat_from_nat(o_false, append_TDF(&(ZI637),1)); #line 10796 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: signed_nat8 */ /* BEGINNING OF ACTION: mint1_dec */ { #line 1559 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ (ZIa) = *current_TDF; INIT_TDF(current_TDF); #line 10806 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: mint1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_variety (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: mint2 */ { #line 1565 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIb) = *current_TDF; INIT_TDF(current_TDF); o_make_int(append_TDF(&(ZIb),1), append_TDF(&(ZIa),1)); #line 10828 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: mint2 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRtagshacc__list (void) { if ((CURRENT_TERMINAL) == 130) { return; } ZL2_tagshacc__list:; { ZRtagshacc (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tagshacc_l2 */ { #line 2221 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no++; #line 10869 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tagshacc_l2 */ /* BEGINNING OF INLINE: 623 */ { switch (CURRENT_TERMINAL) { case lex_comma: { ADVANCE_LEXER; /* BEGINNING OF INLINE: tagshacc_list */ goto ZL2_tagshacc__list; /* END OF INLINE: tagshacc_list */ } /*UNREACHED*/ default: break; } } /* END OF INLINE: 623 */ } return; ZL1:; SAVE_LEXER (130); return; } static void ZRshapetok (void) { switch (CURRENT_TERMINAL) { case lex_double__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: shtokdb */ { #line 1843 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" * g_shtokname = *(tokfordoublesh()); #line 10907 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shtokdb */ } break; case lex_float__term: { ADVANCE_LEXER; /* BEGINNING OF ACTION: shtokflt */ { #line 1847 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" * g_shtokname = *(tokforfloatsh()); #line 10920 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shtokflt */ } break; case lex_char__term: case lex_int__term: case lex_long__term: case lex_short__term: case lex_signed__term: case lex_unsigned__term: { ZRvariety__sign (); ZR675 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_ptr: case lex_shape__cons: case lex_shape__sort: case lex_shape__tok: { PTR_TDF ZIa; TDF ZIb; PTR_TDF ZIc; int ZId; /* BEGINNING OF ACTION: shtok1_dec */ { #line 1835 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = current_TDF; (ZId) = current_Unit; select_tokdef_unit(); * g_shtokname = next_name(tok_ent); SET_TDF((ZIc), &(ZIb)); #line 10953 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shtok1_dec */ ZRnonst__shape (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: shapetok2 */ { #line 1810 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); o_make_tokdef(out_tdfint32(UL(g_shtokname->unit_name)), {}, o_token_def(o_shape, {}, append_TDF(&(ZIb), 1))); INC_LIST; current_Unit = (ZId); RESET_TDF((ZIa)); #line 10971 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: shapetok2 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRalignment__list (void) { if ((CURRENT_TERMINAL) == 130) { return; } { read_alignment (); ZR622 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; SAVE_LEXER (130); return; } void read_error_treatment (void) { ZL2_error__treatment:; switch (CURRENT_TERMINAL) { case lex_error__treatment__sort: { ADVANCE_LEXER; /* BEGINNING OF INLINE: 684 */ { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; /* BEGINNING OF INLINE: error_treatment */ goto ZL2_error__treatment; /* END OF INLINE: error_treatment */ } /*UNREACHED*/ case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; /* BEGINNING OF ACTION: gencond1_dec */ { #line 1164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ SET_TDF((ZId), &(ZIa)); #line 11039 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond1_dec */ ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); switch (CURRENT_TERMINAL) { case lex_comma: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond2 */ { #line 1169 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 11067 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond2 */ read_error_treatment (); switch (CURRENT_TERMINAL) { case lex_comma: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond3 */ { #line 1174 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)); #line 11087 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond3 */ read_error_treatment (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: errt1 */ { #line 577 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_errt_cond(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1), append_TDF(&(ZIc),1)); #line 11102 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: errt1 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: 684 */ } break; case lex_osq: { TDF ZIa; PTR_TDF ZIb; ADVANCE_LEXER; /* BEGINNING OF ACTION: errt2_dec */ { #line 583 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIb), &(ZIa)); #line 11132 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: errt2_dec */ read_error_code_list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: errt5 */ { #line 592 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); o_trap({append_TDF(&(ZIa),1); current_TDF->no = (ZIa).no; }); #line 11146 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: errt5 */ switch (CURRENT_TERMINAL) { case lex_csq: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_ident: case lex_label__sort: case lex_label__tok: { TDF ZIa; PTR_TDF ZIb; /* BEGINNING OF ACTION: errt2_dec */ { #line 583 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIb), &(ZIa)); #line 11168 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: errt2_dec */ read_label (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: errt3 */ { #line 587 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); o_error_jump(append_TDF(&(ZIa),1)); #line 11182 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: errt3 */ } break; case lex_error__treatment__cons: { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 11196 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 11205 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_error__treatment__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 11220 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 11229 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 11247 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZRcallee (void) { switch (CURRENT_TERMINAL) { case lex_dynamic: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; ADVANCE_LEXER; /* BEGINNING OF ACTION: callee3_dec */ { #line 458 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb) uninitialised */ SET_TDF((ZIc), &(ZIa)); #line 11270 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: callee3_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: callee4 */ { #line 463 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); SET_TDF((ZIc), &(ZIb)); #line 11291 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: callee4 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: callee5 */ { #line 468 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); o_make_dynamic_callees(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1)); #line 11312 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: callee5 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_same: { ADVANCE_LEXER; /* BEGINNING OF ACTION: callee6 */ { #line 473 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_same_callees; #line 11332 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: callee6 */ } break; default: { TDF ZIa; PTR_TDF ZIb; /* BEGINNING OF ACTION: callee1_dec */ { #line 449 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIb), &(ZIa)); #line 11347 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: callee1_dec */ read_exp_list (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: callee2 */ { #line 453 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); o_make_callee_list( { append_TDF(&(ZIa),1); current_TDF->no = (ZIa).no;} ); #line 11361 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: callee2 */ } break; case 130: return; } return; ZL1:; SAVE_LEXER (130); return; } void read_al_tag (void) { ZL2_al__tag:; switch (CURRENT_TERMINAL) { case lex_al__tag__sort: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF INLINE: al_tag */ goto ZL2_al__tag; /* END OF INLINE: al_tag */ } /*UNREACHED*/ case lex_ident: { /* BEGINNING OF ACTION: al_tag1 */ { #line 335 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" char * n =lex_v.val.name; Al_tagdec * x = find_al_tag(n); if (x==(Al_tagdec*)0) { x= xalloc(sizeof(*x)); x->isdeffed =0; x->iskept=0; NEW_IDNAME(x->idname, n, al_tag_ent); x->next = al_tagdecs; al_tagdecs = x; } x->isused =1; make_al_tag(&x->idname.name); #line 11412 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: al_tag1 */ ADVANCE_LEXER; } break; case lex_al__tag__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 11428 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 11437 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 11455 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } void read_exp_list (void) { if ((CURRENT_TERMINAL) == 130) { return; } { /* BEGINNING OF ACTION: expl1 */ { #line 810 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no=0; #line 11473 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: expl1 */ ZR656 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 11490 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZRelement (void) { switch (CURRENT_TERMINAL) { case lex_al__tagdef: { ZRal__tag__def (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_proc: { ZRproc__def (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_struct__term: { ZRstruct__def (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_commondec__term: case lex_iddec: case lex_vardec: { ZRtag__dec (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_common__term: case lex_let: case lex_string__term: case lex_var: { ZRtag__def (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_tokdec: { ZRtok__dec (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case lex_tokdef: { ZRtok__def (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR622 (void) { ZL2_622:; switch (CURRENT_TERMINAL) { case lex_comma: { TDF ZIa; PTR_TDF ZIb; /* BEGINNING OF ACTION: al_list1_dec */ { #line 317 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIb) = current_TDF; (ZIa) = *current_TDF; INIT_TDF(current_TDF); #line 11592 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: al_list1_dec */ ADVANCE_LEXER; read_alignment (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: al_list2 */ { #line 323 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" TDF second; second = *current_TDF; INIT_TDF((ZIb)); RESET_TDF((ZIb)); o_unite_alignments(append_TDF(&(ZIa),1), append_TDF(&second,1)); #line 11610 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: al_list2 */ /* BEGINNING OF INLINE: 622 */ goto ZL2_622; /* END OF INLINE: 622 */ } /*UNREACHED*/ case 130: return; default: break; } return; ZL1:; SAVE_LEXER (130); return; } static void ZRtok__def__body (void) { if ((CURRENT_TERMINAL) == 130) { return; } { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: tok_dn1_dec */ { #line 2333 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = g_tokformals; #line 11643 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tok_dn1_dec */ switch (CURRENT_TERMINAL) { case lex_osq: break; default: goto ZL1; } ADVANCE_LEXER; ZRtok__formal__list__opt (); switch (CURRENT_TERMINAL) { case lex_csq: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; ZRfull__sortname (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tok_dn2 */ { #line 2337 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" Tokdec * old_tokdecs = tokdecs; Tokdec * tokformals = g_tokformals; TDF * hold = current_TDF; Tokpar * tp = (Tokpar*)0; Sort sn; Tokdec * tfrev = (Tokdec*)0; while (g_tokformals != (Tokdec*)0) { /* the wrong way round!! */ Tokdec * x = xalloc(sizeof(*x)); *x = *g_tokformals; x->next = tfrev; tfrev = x; g_tokformals = g_tokformals->next; } sn = g_sname; current_TDF = &g_tok_defn; INIT_TDF(current_TDF); o_token_def( out_sort(&sn), { while(tfrev != (Tokdec*)0) { Tokdec * x = tfrev->next; LIST_ELEM( o_make_tokformals( out_sort(&tfrev->sort.ressort), out_tdfint32(LOCNAME(tfrev->idname)))); tfrev->isparam = 1; tfrev->next = tokdecs; tokdecs = tfrev; tfrev = x; } }, analyse_sort(sn.sort)); g_toksort.ressort = sn; while (tokformals != (Tokdec*)0) { Tokpar * p = xalloc(sizeof(*p)); p->par = tokformals->sort.ressort; p->next = tp; tokformals = tokformals->next; tp = p; } g_toksort.pars = tp; RESET_TDF(hold); tokdecs = old_tokdecs; g_tokformals = (ZIa); #line 11716 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tok_dn2 */ } return; ZL1:; SAVE_LEXER (130); return; } static void ZRinteger (void) { switch (CURRENT_TERMINAL) { case lex_int__den: { /* BEGINNING OF ACTION: integer1 */ { #line 1269 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" intvalue = UL(stoi(lex_v.val.name, lnum)); #line 11737 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: integer1 */ ADVANCE_LEXER; } break; case lex_character: { /* BEGINNING OF ACTION: integer2 */ { #line 1273 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" intvalue = UL(lex_v.val.v); #line 11750 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: integer2 */ ADVANCE_LEXER; } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } void read_transfer_mode (void) { ZL2_transfer__mode:; switch (CURRENT_TERMINAL) { case lex_transfer__mode__sort: { ADVANCE_LEXER; /* BEGINNING OF INLINE: 685 */ { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; /* BEGINNING OF INLINE: transfer_mode */ goto ZL2_transfer__mode; /* END OF INLINE: transfer_mode */ } /*UNREACHED*/ case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond1_dec */ { #line 1164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ SET_TDF((ZId), &(ZIa)); #line 11800 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond2 */ { #line 1169 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 11821 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond2 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; read_transfer_mode (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond3 */ { #line 1174 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)); #line 11842 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond3 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; read_transfer_mode (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tmode1 */ { #line 2252 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_transfer_mode_cond(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1), append_TDF(&(ZIc),1)); #line 11864 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tmode1 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: 685 */ } break; case lex_transfer__mode__cons: { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 11892 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 11901 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_transfer__mode__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 11916 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 11925 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 11943 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } void read_rounding_mode (void) { ZL2_rounding__mode:; switch (CURRENT_TERMINAL) { case lex_rounding__mode__sort: { ADVANCE_LEXER; /* BEGINNING OF INLINE: 659 */ { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; /* BEGINNING OF INLINE: rounding_mode */ goto ZL2_rounding__mode; /* END OF INLINE: rounding_mode */ } /*UNREACHED*/ case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond1_dec */ { #line 1164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ SET_TDF((ZId), &(ZIa)); #line 11982 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); switch (CURRENT_TERMINAL) { case lex_comma: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond2 */ { #line 1169 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 12009 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond2 */ read_rounding_mode (); switch (CURRENT_TERMINAL) { case lex_comma: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond3 */ { #line 1174 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)); #line 12029 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond3 */ read_rounding_mode (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: rmode1 */ { #line 1759 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_rounding_mode_cond(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1), append_TDF(&(ZIc),1)); #line 12044 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: rmode1 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: 659 */ } break; case lex_rounding__mode__cons: { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 12072 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 12081 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_rounding__mode__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 12096 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 12105 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 12123 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZR625 (void) { ZL2_625:; switch (CURRENT_TERMINAL) { case lex_comma: { ADVANCE_LEXER; read_error_code (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: errc2 */ { #line 573 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no ++; #line 12147 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: errc2 */ /* BEGINNING OF INLINE: 625 */ goto ZL2_625; /* END OF INLINE: 625 */ } /*UNREACHED*/ case 130: return; default: break; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR626 (void) { ZL2_626:; switch (CURRENT_TERMINAL) { case lex_comma: { /* BEGINNING OF ACTION: otagel2 */ { #line 1640 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" current_TDF->no++; #line 12178 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: otagel2 */ ADVANCE_LEXER; ZRotagexp (); /* BEGINNING OF INLINE: 626 */ if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } else { goto ZL2_626; } /* END OF INLINE: 626 */ } /*UNREACHED*/ case 130: return; default: break; } return; ZL1:; SAVE_LEXER (130); return; } void read_access (void) { ZL2_access:; switch (CURRENT_TERMINAL) { case lex_access__sort: { ADVANCE_LEXER; /* BEGINNING OF INLINE: 665 */ { switch (CURRENT_TERMINAL) { case lex_colon: { ADVANCE_LEXER; /* BEGINNING OF INLINE: access */ goto ZL2_access; /* END OF INLINE: access */ } /*UNREACHED*/ case lex_query: { TDF ZIa; TDF ZIb; TDF ZIc; PTR_TDF ZId; ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond1_dec */ { #line 1164 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" /* (ZIb), (ZIc) uninitialised */ SET_TDF((ZId), &(ZIa)); #line 12237 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond1_dec */ switch (CURRENT_TERMINAL) { case lex_ord: break; default: goto ZL1; } ADVANCE_LEXER; read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: gencond2 */ { #line 1169 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIb)); #line 12258 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond2 */ switch (CURRENT_TERMINAL) { case lex_comma: break; default: goto ZL1; } ADVANCE_LEXER; read_access (); switch (CURRENT_TERMINAL) { case lex_comma: break; case 130: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; /* BEGINNING OF ACTION: gencond3 */ { #line 1174 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); SET_TDF((ZId), &(ZIc)); #line 12285 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencond3 */ read_access (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: access1 */ { #line 307 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZId)); o_access_cond(append_TDF(&(ZIa),1), append_TDF(&(ZIb),1), append_TDF(&(ZIc),1)); #line 12300 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: access1 */ switch (CURRENT_TERMINAL) { case lex_crd: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: goto ZL1; } } /* END OF INLINE: 665 */ } break; case lex_access__cons: { int ZIa; /* BEGINNING OF ACTION: gencons1_dec */ { #line 1179 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.v; #line 12328 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: access2 */ { #line 313 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" if (strcmp(constructs[(ZIa)].name, "visible")==0) { g_has_vis = 1; } #line 12337 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: access2 */ /* BEGINNING OF ACTION: gencons2 */ { #line 1183 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (constructs[(ZIa)].f)(); #line 12345 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gencons2 */ } break; case lex_access__tok: { PTR_Tokdec ZIa; /* BEGINNING OF ACTION: gentok1_dec */ { #line 1202 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa) = lex_v.val.tokname; (ZIa)->isused = 1; #line 12360 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok1_dec */ ADVANCE_LEXER; /* BEGINNING OF ACTION: gentok2 */ { #line 1207 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" expand_tok((ZIa), &(ZIa)->sort); #line 12369 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: gentok2 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 12387 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZR627 (void) { ZL2_627:; switch (CURRENT_TERMINAL) { case lex_comma: { TDF ZIa; TDF ZIb; PTR_TDF ZIc; /* BEGINNING OF ACTION: acc_l2_dec */ { #line 293 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIc) = current_TDF; (ZIa) = *current_TDF; INIT_TDF(&(ZIb)); RESET_TDF(&(ZIb)); #line 12412 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: acc_l2_dec */ ADVANCE_LEXER; read_access (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: acc_l3 */ { #line 300 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" INIT_TDF((ZIc)); RESET_TDF((ZIc)); o_add_accesses(append_TDF(&(ZIa),1), append_TDF(&(ZIb), 1)); current_TDF->no = 1; #line 12429 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: acc_l3 */ /* BEGINNING OF INLINE: 627 */ goto ZL2_627; /* END OF INLINE: 627 */ } /*UNREACHED*/ case 130: return; default: break; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR628 (void) { ZL2_628:; switch (CURRENT_TERMINAL) { case lex_semi: { TDF ZIa; PTR_TDF ZIb; /* BEGINNING OF ACTION: exp_sls3_dec */ { #line 704 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIb), &(ZIa)); #line 12463 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exp_sls3_dec */ ADVANCE_LEXER; /* BEGINNING OF INLINE: 667 */ { switch (CURRENT_TERMINAL) { case lex_arithop: case lex_case__term: case lex_character: case lex_cons: case lex_exp__cons: case lex_exp__sort: case lex_exp__tok: case lex_float__den: case lex_float__query: case lex_hash: case lex_ident: case lex_int__den: case lex_lab: case lex_let: case lex_line__term: case lex_minus__term: case lex_ocurl: case lex_offset__query: case lex_ord: case lex_osq: case lex_proc: case lex_proc__query: case lex_ptr__query: case lex_qstring: case lex_query: case lex_rep: case lex_signed__nat__cons: case lex_signed__nat__sort: case lex_signed__nat__tok: case lex_size__term: case lex_star: case lex_string__cons: case lex_string__sort: case lex_string__tok: case lex_tag__cons: case lex_tag__sort: case lex_tag__tok: case lex_var: { read_exp (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: exp_sls4 */ { #line 708 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); if (lex_v.t == lex_semi) { current_TDF->no +=1; append_TDF(&(ZIa),1); } else { TDF stats; stats = *current_TDF; INIT_TDF(current_TDF); o_sequence( { append_TDF(&stats,1); current_TDF->no = stats.no; }, append_TDF(&(ZIa),1)); /* cheats LIST in o_sequence */ } #line 12506 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exp_sls4 */ /* BEGINNING OF INLINE: 628 */ goto ZL2_628; /* END OF INLINE: 628 */ } /*UNREACHED*/ default: { /* BEGINNING OF ACTION: exp_sls5 */ { #line 724 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_make_top; #line 12521 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exp_sls5 */ /* BEGINNING OF ACTION: exp_sls4 */ { #line 708 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); if (lex_v.t == lex_semi) { current_TDF->no +=1; append_TDF(&(ZIa),1); } else { TDF stats; stats = *current_TDF; INIT_TDF(current_TDF); o_sequence( { append_TDF(&stats,1); current_TDF->no = stats.no; }, append_TDF(&(ZIa),1)); /* cheats LIST in o_sequence */ } #line 12541 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: exp_sls4 */ /* BEGINNING OF INLINE: 628 */ goto ZL2_628; /* END OF INLINE: 628 */ } /*UNREACHED*/ } } /* END OF INLINE: 667 */ } /*UNREACHED*/ case 130: return; default: break; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR629 (void) { ZL2_629:; switch (CURRENT_TERMINAL) { case lex_comma: { PTR_Tokdec ZIa; ADVANCE_LEXER; /* BEGINNING OF ACTION: tok_fml1_dec */ { #line 2383 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" char * n = lex_v.val.name; (ZIa) = find_tok(n); if ((ZIa)!=(Tokdec*)0) MSG_token_parameter_name_unique(n); (ZIa) = xalloc(sizeof(*(ZIa))); NEW_IDNAME((ZIa)->idname, n, tok_ent); (ZIa)->isdeffed = 1; (ZIa)->isused = 0; (ZIa)->iskept=0; (ZIa)->next = (Tokdec*)0; #line 12585 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tok_fml1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto ZL1; } ADVANCE_LEXER; ZRfull__sortname (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: tok_fml3 */ { #line 2398 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" (ZIa)->sort.ressort = g_sname; (ZIa)->sort.pars = (Tokpar*)0; /* no pars in formal pars */ (ZIa)->next = g_tokformals; g_tokformals = (ZIa); #line 12615 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: tok_fml3 */ /* BEGINNING OF INLINE: 629 */ goto ZL2_629; /* END OF INLINE: 629 */ } /*UNREACHED*/ case 130: return; default: break; } return; ZL1:; SAVE_LEXER (130); return; } static void ZR630 (void) { switch (CURRENT_TERMINAL) { case lex_eof: { ADVANCE_LEXER; /* BEGINNING OF ACTION: keeps1 */ { #line 1366 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" int i; for(i=0; ino++; CONT_STREAM(&units[tld2_unit].tdf, out_tdfint32(UL(3))); } { Tokdec * k = tokdecs; while (k != (Tokdec*)0) { if (!k->isdeffed || k->iskept) { int capname = capsule_name(&k->idname.name, tok_ent); char * n = k->idname.id; current_TDF = lk_externs+tok_ent; o_make_linkextern(out_tdfint32(UL(capname)), o_string_extern({ out_tdfident_bytes(n); })); current_TDF->no++; CONT_STREAM(&units[tld2_unit].tdf, { int i = k->isused + 2 + 4*k->isdeffed; out_tdfint32(UL(i)); }); } k = k->next; } } { Tagdec * k = tagdecs; while (k != (Tagdec*)0) { if (!k->isdeffed || k->iskept) { int capname = capsule_name(&k->idname.name, tag_ent); char * n = k->idname.id; current_TDF = lk_externs+tag_ent; o_make_linkextern(out_tdfint32(UL(capname)), o_string_extern({ out_tdfident_bytes(n); })); current_TDF->no++; CONT_STREAM(&units[tld2_unit].tdf, { int i = k->isused + 2 + ((k->iscommon)?8:(4*k->isdeffed)); out_tdfint32(UL(i)); }); } k = k->next; } } { Al_tagdec * k = al_tagdecs; while (k != (Al_tagdec*)0) { if (!k->isdeffed || k->iskept) { int capname = capsule_name(&k->idname.name, al_tag_ent); char * n = k->idname.id; current_TDF = lk_externs+al_tag_ent; o_make_linkextern(out_tdfint32(UL(capname)), o_string_extern({ out_tdfident_bytes(n); })); current_TDF->no++; CONT_STREAM(&units[tld2_unit].tdf, { int i = k->isused + 2 + 4*k->isdeffed; out_tdfint32(UL(i)); }); } k = k->next; } } { int i; TDF caps; add_extra_toks(); INIT_TDF(&caps); RESET_TDF(&caps); if (do_pp) success(); if (HAS_MAGIC) { out_basic_int(UL('T'), UI(8)); out_basic_int(UL('D'), UI(8)); out_basic_int(UL('F'), UI(8)); out_basic_int(UL('C'), UI(8)); out_tdfint32(MAJOR_NO); out_tdfint32(MINOR_NO); byte_align(); } o_make_capsule( { for(i=0; ino = lks->no; }); ) } }, { for(i=0; ino++; CONT_STREAM(&units[tld2_unit].tdf, out_tdfint32(UL(3))); } { Tokdec * k = tokdecs; while (k != (Tokdec*)0) { if (!k->isdeffed || k->iskept) { int capname = capsule_name(&k->idname.name, tok_ent); char * n = k->idname.id; current_TDF = lk_externs+tok_ent; o_make_linkextern(out_tdfint32(UL(capname)), o_string_extern({ out_tdfident_bytes(n); })); current_TDF->no++; CONT_STREAM(&units[tld2_unit].tdf, { int i = k->isused + 2 + 4*k->isdeffed; out_tdfint32(UL(i)); }); } k = k->next; } } { Tagdec * k = tagdecs; while (k != (Tagdec*)0) { if (!k->isdeffed || k->iskept) { int capname = capsule_name(&k->idname.name, tag_ent); char * n = k->idname.id; current_TDF = lk_externs+tag_ent; o_make_linkextern(out_tdfint32(UL(capname)), o_string_extern({ out_tdfident_bytes(n); })); current_TDF->no++; CONT_STREAM(&units[tld2_unit].tdf, { int i = k->isused + 2 + ((k->iscommon)?8:(4*k->isdeffed)); out_tdfint32(UL(i)); }); } k = k->next; } } { Al_tagdec * k = al_tagdecs; while (k != (Al_tagdec*)0) { if (!k->isdeffed || k->iskept) { int capname = capsule_name(&k->idname.name, al_tag_ent); char * n = k->idname.id; current_TDF = lk_externs+al_tag_ent; o_make_linkextern(out_tdfint32(UL(capname)), o_string_extern({ out_tdfident_bytes(n); })); current_TDF->no++; CONT_STREAM(&units[tld2_unit].tdf, { int i = k->isused + 2 + 4*k->isdeffed; out_tdfint32(UL(i)); }); } k = k->next; } } { int i; TDF caps; add_extra_toks(); INIT_TDF(&caps); RESET_TDF(&caps); if (do_pp) success(); if (HAS_MAGIC) { out_basic_int(UL('T'), UI(8)); out_basic_int(UL('D'), UI(8)); out_basic_int(UL('F'), UI(8)); out_basic_int(UL('C'), UI(8)); out_tdfint32(MAJOR_NO); out_tdfint32(MINOR_NO); byte_align(); } o_make_capsule( { for(i=0; ino = lks->no; }); ) } }, { for(i=0; iisdeffed =0; (ZIa)->iskept=0; (ZIa)->isused=0; NEW_IDNAME((ZIa)->idname, n, al_tag_ent); (ZIa)->next = al_tagdecs; al_tagdecs = (ZIa); (ZId) = 0; } else (ZId) = 1; if ((ZIa)->isdeffed) { MSG_al_tag_defined_twice(n); } (ZIa)->isdeffed = 1; SET_TDF((ZIc), &(ZIb)); #line 13175 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: al_tgdf1_dec */ switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto ZL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_equals: break; default: goto ZL1; } ADVANCE_LEXER; read_alignment (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: al_tagdef2 */ { #line 349 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIc)); o_make_al_tagdef( if ((ZId)) { out_tdfint32(UL(non_local(&(ZIa)->idname.name,al_tag_ent))); } else { out_tdfint32(LOCNAME((ZIa)->idname)); }, append_TDF(&(ZIb), 1) ); INC_LIST; #line 13210 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: al_tagdef2 */ } return; ZL1:; SAVE_LEXER (130); return; } static void ZRotagexp (void) { if ((CURRENT_TERMINAL) == 130) { return; } { TDF ZIa; PTR_TDF ZIb; /* BEGINNING OF ACTION: otagexp1_dec */ { #line 1648 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIb), &(ZIa)); #line 13235 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: otagexp1_dec */ read_exp (); ZR655 (&ZIa, &ZIb); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; SAVE_LEXER (130); return; } void read_program (void) { if ((CURRENT_TERMINAL) == 130) { return; } { ZRelement__list__opt (); ZR630 (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } } return; ZL1:; { /* BEGINNING OF ACTION: syntax_error */ { #line 2493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" MSG_syntax_error_noparam(); #line 13273 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: syntax_error */ } } static void ZR634 (void) { switch (CURRENT_TERMINAL) { case lex_character: case lex_int__den: { ZRinteger (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: signed_nat3 */ { #line 1865 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" o_make_signed_nat(out_tdfbool(1), out_tdfint32(intvalue)); #line 13295 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: signed_nat3 */ } break; case lex_nat__cons: case lex_nat__sort: case lex_nat__tok: { TDF ZIa; PTR_TDF ZIb; /* BEGINNING OF ACTION: signed_nat5_dec */ { #line 1873 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" SET_TDF((ZIb), &(ZIa)); #line 13310 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: signed_nat5_dec */ ZRnat__not__int (); if ((CURRENT_TERMINAL) == 130) { RESTORE_LEXER; goto ZL1; } /* BEGINNING OF ACTION: signed_nat6 */ { #line 1877 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" RESET_TDF((ZIb)); o_snat_from_nat(o_true, append_TDF(&(ZIa),1)); #line 13324 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" } /* END OF ACTION: signed_nat6 */ } break; case 130: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (130); return; } /* BEGINNING OF TRAILER */ #line 2497 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act" #line 13344 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c" /* END OF FILE */