/*
* 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 <http://www.ten15.org/>
* 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; i<NO_OF_ENTITIES; i++) {
INIT_TDF(lk_externs+i);
}
#line 12649 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c"
}
/* END OF ACTION: keeps1 */
/* BEGINNING OF ACTION: keeps2 */
{
#line 1373 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act"
CONT_STREAM(&units[tld2_unit].tdf, out_tdfint32(UL(1)));
if(line_no_tok != -1) {
current_TDF = lk_externs+tok_ent;
o_make_linkextern(
out_tdfint32(UL(line_no_tok)),
o_string_extern(
{ out_tdfident_bytes("~exp_to_source"); }));
current_TDF->no++;
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; i<NO_OF_UNITS; i++) {
if(units[i].present) {
char* n;
n = unit_names[i];
LIST_ELEM({ out_tdfident_bytes(n); });
}
}
},
{
for(i=0; i<NO_OF_ENTITIES; i++) {
char* n;
n = ent_names[i];
LIST_ELEM(
o_make_capsule_link(
{ out_tdfident_bytes(n);},
out_tdfint32(UL(capsule_names[i]))))
}
},
{
for(i=0; i<NO_OF_ENTITIES; i++) {
TDF * lks = lk_externs+i;
LIST_ELEM(
o_make_extern_link(
{ append_TDF(lks,1); current_TDF->no = lks->no; });
)
}
},
{
for(i=0; i<NO_OF_UNITS; i++) {
if(units[i].present) {
LIST_ELEM(
o_make_group(LIST_ELEM(make_unit(i))););
}
}
}
);
make_tdf_file(&caps, out_file);
}
#line 12773 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c"
}
/* END OF ACTION: keeps2 */
}
break;
case lex_keep:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_ord:
break;
default:
goto ZL1;
}
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; i<NO_OF_ENTITIES; i++) {
INIT_TDF(lk_externs+i);
}
#line 12796 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c"
}
/* END OF ACTION: keeps1 */
ZRkeep__list__opt ();
switch (CURRENT_TERMINAL) {
case lex_crd:
break;
case 130:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_eof:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: keeps2 */
{
#line 1373 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act"
CONT_STREAM(&units[tld2_unit].tdf, out_tdfint32(UL(1)));
if(line_no_tok != -1) {
current_TDF = lk_externs+tok_ent;
o_make_linkextern(
out_tdfint32(UL(line_no_tok)),
o_string_extern(
{ out_tdfident_bytes("~exp_to_source"); }));
current_TDF->no++;
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; i<NO_OF_UNITS; i++) {
if(units[i].present) {
char* n;
n = unit_names[i];
LIST_ELEM({ out_tdfident_bytes(n); });
}
}
},
{
for(i=0; i<NO_OF_ENTITIES; i++) {
char* n;
n = ent_names[i];
LIST_ELEM(
o_make_capsule_link(
{ out_tdfident_bytes(n);},
out_tdfint32(UL(capsule_names[i]))))
}
},
{
for(i=0; i<NO_OF_ENTITIES; i++) {
TDF * lks = lk_externs+i;
LIST_ELEM(
o_make_extern_link(
{ append_TDF(lks,1); current_TDF->no = lks->no; });
)
}
},
{
for(i=0; i<NO_OF_UNITS; i++) {
if(units[i].present) {
LIST_ELEM(
o_make_group(LIST_ELEM(make_unit(i))););
}
}
}
);
make_tdf_file(&caps, out_file);
}
#line 12938 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c"
}
/* END OF ACTION: keeps2 */
}
break;
case 130:
return;
default:
goto ZL1;
}
return;
ZL1:;
SAVE_LEXER (130);
return;
}
static void
ZR632 (void)
{
switch (CURRENT_TERMINAL) {
case lex_addrop: case lex_arithop: case lex_equals:
case lex_logop: case lex_minus__term: case lex_star:
{
TDF ZIa;
TDF ZIb;
PTR_TDF ZIc;
PTR_char ZId;
/* BEGINNING OF ACTION: exp1_dec */
{
#line 603 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act"
(ZId) = lex_v.val.name;
(ZIa) = *current_TDF;
SET_TDF((ZIc), &(ZIb));
#line 12973 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//tools/pl/syntax.c"
}
/* END OF ACTION: exp1_dec */
ZR672 (&ZIa, &ZIb, &ZIc, &ZId);
if ((CURRENT_TERMINAL) == 130) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
case 130:
return;
default:
break;
}
return;
ZL1:;
SAVE_LEXER (130);
return;
}
static void
ZRkeep__list__opt (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_ident:
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:
{
ZRkeep__list ();
if ((CURRENT_TERMINAL) == 130) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
case 130:
return;
default:
break;
}
return;
ZL1:;
SAVE_LEXER (130);
return;
}
static void
ZR633 (void)
{
ZL2_633:;
switch (CURRENT_TERMINAL) {
case lex_colon:
{
ADVANCE_LEXER;
ZRsigned__nat__body ();
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 13052 "/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 13073 "/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 13094 "/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 13116 "/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;
case 130:
return;
default:
goto ZL1;
}
return;
ZL1:;
SAVE_LEXER (130);
return;
}
static void
ZRal__tag__def (void)
{
if ((CURRENT_TERMINAL) == 130) {
return;
}
{
PTR_Al_tagdec ZIa;
TDF ZIb;
PTR_TDF ZIc;
int ZId;
switch (CURRENT_TERMINAL) {
case lex_al__tagdef:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: al_tgdf1_dec */
{
#line 361 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/tools/pl/syntax.act"
char * n =lex_v.val.name;
(ZIa) = find_al_tag(n);
SELECT_UNIT(al_tagdef_unit);
if ((ZIa)==(Al_tagdec*)0) {
(ZIa)= xalloc(sizeof(*(ZIa))); (ZIa)->isdeffed =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 */
syntax highlighted by Code2HTML, v. 0.9.1