/*
* Automatically generated from the files:
* /mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.sid
* and
* /mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act
* by:
* /mnt/gmirror/ports/lang/TenDRA/work/tendra/obj/utilities/sid/sid
*/
/* BEGINNING OF HEADER */
#line 37 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
/*
* Copyright (c) 2002-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/utilities/make_tdf/syntax.act,v 1.3 2004/03/14 14:52:14 bp Exp $
*/
#include "config.h"
#include "tdf.h"
#include "cmd_ops.h"
#include "cons_ops.h"
#include "cstring.h"
#include "info_ops.h"
#include "link_ops.h"
#include "par_ops.h"
#include "sort_ops.h"
#include "spec_ops.h"
#include "input.h"
#include "lex.h"
#include "msgcat.h"
#include "syntax.h"
/*
* LOCAL TYPE ALIASES
*
* These definitions give the aliases used for compound types within the
* grammar.
*/
typedef LIST (CONSTRUCT) SID_CONS_LIST;
typedef LIST (LINKAGE) SID_LINK_LIST;
typedef LIST (PARAMETER) SID_PARAM_LIST;
/*
* COMPILATION MODE
*
* We allow unreached code and switch off the variable analysis in the
* automatically generated sections.
*/
#if FS_TENDRA
#pragma TenDRA begin
#pragma TenDRA variable analysis off
#ifndef OLD_PRODUCER
#pragma TenDRA unreachable code allow
#endif
#endif
#line 116 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
/* BEGINNING OF FUNCTION DECLARATIONS */
static void ZRlink_Hpack (SID_LINK_LIST *);
static void ZRparam_Hlist (SID_PARAM_LIST *);
static void ZRclist_Hitem (void);
static void ZRslist_Hpack (void);
static void ZRedge_Hlist (void);
static void ZRkind_Hitem (LINKAGE *);
static void ZRoption_Hlist (void);
static void ZR139 (CONSTRUCT *);
static void ZRold_Hsort_Hname (SORT *);
static void ZR140 (CONSTRUCT *);
static void ZR141 (CONSTRUCT *);
static void ZRclist_Hlist (void);
static void ZRlink_Hitem (LINKAGE *);
static void ZRslist_Hitem (void);
static void ZRkind_Hlist (SID_LINK_LIST *);
static void ZRnew_Hsort_Hname (SORT *);
static void ZRsort_Hpack (void);
static void ZRany_Hname (string *);
static void ZRlink_Hlist (SID_LINK_LIST *);
static void ZRslist_Hlist (void);
static void ZRsort_Hitem (void);
static void ZRsort_Hlist (void);
static void ZRconstruct_Hpack (SORT, SID_CONS_LIST *);
static void ZRconstruct_Hextra (CONSTRUCT);
static void ZRboundary_Hitem (CONSTRUCT);
static void ZRconstruct_Hitem (SORT, CONSTRUCT *);
static void ZRconstruct_Hlist (SORT, SID_CONS_LIST *);
static void ZRparam_Hpack (SID_PARAM_LIST *);
static void ZRedge_Hpack (void);
extern void read_spec (SPECIFICATION *);
static void ZRoption_Hpack (void);
static void ZRclist_Hpack (void);
static void ZRparam_Hitem (PARAMETER *);
static void ZRedge_Hitem (void);
static void ZRkind_Hpack (SID_LINK_LIST *);
static void ZRnumber_Hlist (CONSTRUCT);
static void ZRoption_Hitem (void);
/* BEGINNING OF STATIC VARIABLES */
/* BEGINNING OF FUNCTION DEFINITIONS */
static void
ZRlink_Hpack (SID_LINK_LIST *ZOp)
{
SID_LINK_LIST ZIp;
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
SID_LINK_LIST ZIq;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF INLINE: 116 */
{
switch (CURRENT_TERMINAL) {
case lex_open:
{
ZRlink_Hlist (&ZIq);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
default:
{
/* BEGINNING OF ACTION: null_link */
{
#line 347 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
(ZIq) = NULL_list (LINKAGE);
#line 200 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: null_link */
}
break;
}
}
/* END OF INLINE: 116 */
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZIp = ZIq;
}
goto ZL0;
ZL1:;
SAVE_LEXER (32);
return;
ZL0:;
*ZOp = ZIp;
}
static void
ZRparam_Hlist (SID_PARAM_LIST *ZOp)
{
SID_PARAM_LIST ZIp;
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
PARAMETER ZIa;
SID_PARAM_LIST ZIq;
ZRparam_Hitem (&ZIa);
/* BEGINNING OF INLINE: 59 */
{
switch (CURRENT_TERMINAL) {
case lex_comma:
{
ADVANCE_LEXER;
ZRparam_Hlist (&ZIq);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
default:
{
/* BEGINNING OF ACTION: null_param */
{
#line 254 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
(ZIq) = NULL_list (PARAMETER);
#line 258 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: null_param */
}
break;
case 32:
RESTORE_LEXER;
goto ZL1;
}
}
/* END OF INLINE: 59 */
/* BEGINNING OF ACTION: cons_param */
{
#line 258 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
CONS_par ((ZIa), (ZIq), (ZIp));
#line 274 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: cons_param */
}
goto ZL0;
ZL1:;
SAVE_LEXER (32);
return;
ZL0:;
*ZOp = ZIp;
}
static void
ZRclist_Hitem (void)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
SORT ZIs;
ZRnew_Hsort_Hname (&ZIs);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
/* BEGINNING OF ACTION: make_clist */
{
#line 313 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
compound_sort ((ZIs), "_list", info_clist_tag, '*');
#line 305 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: make_clist */
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRslist_Hpack (void)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF INLINE: 101 */
{
switch (CURRENT_TERMINAL) {
case lex_name:
{
ZRslist_Hlist ();
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
default:
break;
}
}
/* END OF INLINE: 101 */
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRedge_Hlist (void)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
ZL2_edge_Hlist:;
{
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRedge_Hitem ();
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF INLINE: 127 */
{
switch (CURRENT_TERMINAL) {
case lex_comma:
{
ADVANCE_LEXER;
/* BEGINNING OF INLINE: edge-list */
goto ZL2_edge_Hlist;
/* END OF INLINE: edge-list */
}
/*UNREACHED*/
default:
break;
}
}
/* END OF INLINE: 127 */
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRkind_Hitem (LINKAGE *ZOa)
{
LINKAGE ZIa;
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
SORT ZIs;
string ZIe;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_unit_Helements:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRold_Hsort_Hname (&ZIs);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_unit_Hidentifier:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRany_Hname (&ZIe);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: make_unit_link */
{
#line 342 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
MAKE_link_basic ((ZIe), (ZIs), (ZIa));
COPY_string (sort_unit ((ZIs)), (ZIe));
#line 498 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: make_unit_link */
}
goto ZL0;
ZL1:;
SAVE_LEXER (32);
return;
ZL0:;
*ZOa = ZIa;
}
static void
ZRoption_Hlist (void)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
ZL2_option_Hlist:;
{
ZRoption_Hitem ();
/* BEGINNING OF INLINE: 105 */
{
switch (CURRENT_TERMINAL) {
case lex_comma:
{
ADVANCE_LEXER;
/* BEGINNING OF INLINE: option-list */
goto ZL2_option_Hlist;
/* END OF INLINE: option-list */
}
/*UNREACHED*/
case 32:
RESTORE_LEXER;
goto ZL1;
default:
break;
}
}
/* END OF INLINE: 105 */
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZR139 (CONSTRUCT *ZIc)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZR140 (ZIc);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRold_Hsort_Hname (SORT *ZOs)
{
SORT ZIs;
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
string ZIa;
switch (CURRENT_TERMINAL) {
case lex_name:
/* BEGINNING OF EXTRACT: name */
{
#line 210 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
ZIa = string_copy (token_buff);
#line 589 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF EXTRACT: name */
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: find_old_sort */
{
#line 305 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
(ZIs) = find_sort ((ZIa), 0);
#line 602 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: find_old_sort */
}
goto ZL0;
ZL1:;
SAVE_LEXER (32);
return;
ZL0:;
*ZOs = ZIs;
}
static void
ZR140 (CONSTRUCT *ZIc)
{
switch (CURRENT_TERMINAL) {
case lex_boundaries:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRnumber_Hlist (*ZIc);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
}
break;
case lex_break:
{
unsigned ZIa;
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_number:
/* BEGINNING OF EXTRACT: number */
{
#line 222 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
ZIa = token_value;
#line 674 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF EXTRACT: number */
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: set_break */
{
#line 262 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
PARAMETER p = find_param ((*ZIc), (ZIa));
if (!IS_NULL_par (p)) COPY_int (par_brk (p), 1);
#line 695 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: set_break */
ZR141 (ZIc);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
case 32:
return;
default:
goto ZL1;
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZR141 (CONSTRUCT *ZIc)
{
switch (CURRENT_TERMINAL) {
case lex_comma:
{
ADVANCE_LEXER;
ZRboundary_Hitem (*ZIc);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
case 32:
return;
default:
break;
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRclist_Hlist (void)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
ZL2_clist_Hlist:;
{
ZRclist_Hitem ();
/* BEGINNING OF INLINE: 93 */
{
switch (CURRENT_TERMINAL) {
case lex_comma:
{
ADVANCE_LEXER;
/* BEGINNING OF INLINE: clist-list */
goto ZL2_clist_Hlist;
/* END OF INLINE: clist-list */
}
/*UNREACHED*/
case 32:
RESTORE_LEXER;
goto ZL1;
default:
break;
}
}
/* END OF INLINE: 93 */
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRlink_Hitem (LINKAGE *ZOa)
{
LINKAGE ZIa;
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
SORT ZIs;
string ZIe;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_entity_Hsort:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRold_Hsort_Hname (&ZIs);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_entity_Hidentifier:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRany_Hname (&ZIe);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: make_edge_link */
{
#line 337 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
MAKE_link_basic ((ZIe), (ZIs), (ZIa));
COPY_string (sort_link ((ZIs)), (ZIe));
#line 865 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: make_edge_link */
}
goto ZL0;
ZL1:;
SAVE_LEXER (32);
return;
ZL0:;
*ZOa = ZIa;
}
static void
ZRslist_Hitem (void)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
SORT ZIs;
ZRnew_Hsort_Hname (&ZIs);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
/* BEGINNING OF ACTION: make_slist */
{
#line 317 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
compound_sort ((ZIs), "_list", info_slist_tag, '%');
#line 896 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: make_slist */
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRkind_Hlist (SID_LINK_LIST *ZOp)
{
SID_LINK_LIST ZIp;
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
LINKAGE ZIa;
SID_LINK_LIST ZIq;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRkind_Hitem (&ZIa);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF INLINE: 120 */
{
switch (CURRENT_TERMINAL) {
case lex_comma:
{
ADVANCE_LEXER;
ZRkind_Hlist (&ZIq);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
default:
{
/* BEGINNING OF ACTION: null_link */
{
#line 347 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
(ZIq) = NULL_list (LINKAGE);
#line 956 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: null_link */
}
break;
}
}
/* END OF INLINE: 120 */
/* BEGINNING OF ACTION: cons_link */
{
#line 351 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
CONS_link ((ZIa), (ZIq), (ZIp));
#line 969 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: cons_link */
}
goto ZL0;
ZL1:;
SAVE_LEXER (32);
return;
ZL0:;
*ZOp = ZIp;
}
static void
ZRnew_Hsort_Hname (SORT *ZOs)
{
SORT ZIs;
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
string ZIa;
switch (CURRENT_TERMINAL) {
case lex_name:
/* BEGINNING OF EXTRACT: name */
{
#line 210 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
ZIa = string_copy (token_buff);
#line 999 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF EXTRACT: name */
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: find_new_sort */
{
#line 301 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
(ZIs) = find_sort ((ZIa), 1);
#line 1012 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: find_new_sort */
}
goto ZL0;
ZL1:;
SAVE_LEXER (32);
return;
ZL0:;
*ZOs = ZIs;
}
static void
ZRsort_Hpack (void)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF INLINE: 89 */
{
switch (CURRENT_TERMINAL) {
case lex_open:
{
ZRsort_Hlist ();
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
default:
break;
}
}
/* END OF INLINE: 89 */
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRany_Hname (string *ZOn)
{
string ZIn;
switch (CURRENT_TERMINAL) {
case lex_name:
{
/* BEGINNING OF EXTRACT: name */
{
#line 210 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
ZIn = string_copy (token_buff);
#line 1082 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF EXTRACT: name */
ADVANCE_LEXER;
}
break;
case lex_break: case lex_boundaries: case lex_constructs:
case lex_construct_Hname: case lex_edge_Hconstructor: case lex_edge_Hsort:
case lex_encoding: case lex_encoding_Hbits: case lex_entity_Hidentifier:
case lex_entity_Hsort: case lex_graph_Hedges: case lex_has_Hextension:
case lex_kinds_Hof_Hunit: case lex_linkable_Hentities: case lex_lists:
case lex_major_Hversion: case lex_minor_Hversion: case lex_options:
case lex_parameter_Hsorts: case lex_result_Hsort: case lex_slists:
case lex_sortid: case lex_sorts: case lex_unit_Helements:
case lex_unit_Hidentifier:
{
/* BEGINNING OF ACTION: keyword_name */
{
#line 237 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
(ZIn) = string_copy (token_buff);
#line 1103 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: keyword_name */
/* BEGINNING OF INLINE: 46 */
{
switch (CURRENT_TERMINAL) {
case lex_boundaries:
{
ADVANCE_LEXER;
}
break;
case lex_break:
{
ADVANCE_LEXER;
}
break;
case lex_construct_Hname:
{
ADVANCE_LEXER;
}
break;
case lex_constructs:
{
ADVANCE_LEXER;
}
break;
case lex_edge_Hconstructor:
{
ADVANCE_LEXER;
}
break;
case lex_edge_Hsort:
{
ADVANCE_LEXER;
}
break;
case lex_encoding:
{
ADVANCE_LEXER;
}
break;
case lex_encoding_Hbits:
{
ADVANCE_LEXER;
}
break;
case lex_entity_Hidentifier:
{
ADVANCE_LEXER;
}
break;
case lex_entity_Hsort:
{
ADVANCE_LEXER;
}
break;
case lex_graph_Hedges:
{
ADVANCE_LEXER;
}
break;
case lex_has_Hextension:
{
ADVANCE_LEXER;
}
break;
case lex_kinds_Hof_Hunit:
{
ADVANCE_LEXER;
}
break;
case lex_linkable_Hentities:
{
ADVANCE_LEXER;
}
break;
case lex_lists:
{
ADVANCE_LEXER;
}
break;
case lex_major_Hversion:
{
ADVANCE_LEXER;
}
break;
case lex_minor_Hversion:
{
ADVANCE_LEXER;
}
break;
case lex_options:
{
ADVANCE_LEXER;
}
break;
case lex_parameter_Hsorts:
{
ADVANCE_LEXER;
}
break;
case lex_result_Hsort:
{
ADVANCE_LEXER;
}
break;
case lex_slists:
{
ADVANCE_LEXER;
}
break;
case lex_sortid:
{
ADVANCE_LEXER;
}
break;
case lex_sorts:
{
ADVANCE_LEXER;
}
break;
case lex_unit_Helements:
{
ADVANCE_LEXER;
}
break;
case lex_unit_Hidentifier:
{
ADVANCE_LEXER;
}
break;
default:
goto ZL1;
}
}
/* END OF INLINE: 46 */
}
break;
case 32:
return;
default:
goto ZL1;
}
goto ZL0;
ZL1:;
SAVE_LEXER (32);
return;
ZL0:;
*ZOn = ZIn;
}
static void
ZRlink_Hlist (SID_LINK_LIST *ZOp)
{
SID_LINK_LIST ZIp;
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
LINKAGE ZIa;
SID_LINK_LIST ZIq;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRlink_Hitem (&ZIa);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF INLINE: 114 */
{
switch (CURRENT_TERMINAL) {
case lex_comma:
{
ADVANCE_LEXER;
ZRlink_Hlist (&ZIq);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
default:
{
/* BEGINNING OF ACTION: null_link */
{
#line 347 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
(ZIq) = NULL_list (LINKAGE);
#line 1304 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: null_link */
}
break;
}
}
/* END OF INLINE: 114 */
/* BEGINNING OF ACTION: cons_link */
{
#line 351 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
CONS_link ((ZIa), (ZIq), (ZIp));
#line 1317 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: cons_link */
}
goto ZL0;
ZL1:;
SAVE_LEXER (32);
return;
ZL0:;
*ZOp = ZIp;
}
static void
ZRslist_Hlist (void)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
ZL2_slist_Hlist:;
{
ZRslist_Hitem ();
/* BEGINNING OF INLINE: 99 */
{
switch (CURRENT_TERMINAL) {
case lex_comma:
{
ADVANCE_LEXER;
/* BEGINNING OF INLINE: slist-list */
goto ZL2_slist_Hlist;
/* END OF INLINE: slist-list */
}
/*UNREACHED*/
case 32:
RESTORE_LEXER;
goto ZL1;
default:
break;
}
}
/* END OF INLINE: 99 */
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRsort_Hitem (void)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
SORT ZIs;
unsigned ZIb;
unsigned ZIe;
SID_CONS_LIST ZIp;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_sortid:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRnew_Hsort_Hname (&ZIs);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_encoding_Hbits:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_number:
/* BEGINNING OF EXTRACT: number */
{
#line 222 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
ZIb = token_value;
#line 1443 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF EXTRACT: number */
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_has_Hextension:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_number:
/* BEGINNING OF EXTRACT: number */
{
#line 222 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
ZIe = token_value;
#line 1493 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF EXTRACT: number */
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_constructs:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRconstruct_Hpack (ZIs, &ZIp);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: make_sort */
{
#line 309 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
basic_sort ((ZIs), (ZIb), (ZIe), (ZIp));
#line 1552 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: make_sort */
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRsort_Hlist (void)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
ZL2_sort_Hlist:;
{
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRsort_Hitem ();
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF INLINE: 87 */
{
switch (CURRENT_TERMINAL) {
case lex_comma:
{
ADVANCE_LEXER;
/* BEGINNING OF INLINE: sort-list */
goto ZL2_sort_Hlist;
/* END OF INLINE: sort-list */
}
/*UNREACHED*/
default:
break;
}
}
/* END OF INLINE: 87 */
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRconstruct_Hpack (SORT ZIs, SID_CONS_LIST *ZOp)
{
SID_CONS_LIST ZIp;
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
SID_CONS_LIST ZIq;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF INLINE: 81 */
{
switch (CURRENT_TERMINAL) {
case lex_open:
{
ZRconstruct_Hlist (ZIs, &ZIq);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
default:
{
/* BEGINNING OF ACTION: null_cons */
{
#line 286 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
(ZIq) = NULL_list (CONSTRUCT);
#line 1648 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: null_cons */
}
break;
}
}
/* END OF INLINE: 81 */
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZIp = ZIq;
}
goto ZL0;
ZL1:;
SAVE_LEXER (32);
return;
ZL0:;
*ZOp = ZIp;
}
static void
ZRconstruct_Hextra (CONSTRUCT ZIc)
{
switch (CURRENT_TERMINAL) {
case lex_comma:
{
ADVANCE_LEXER;
ZR139 (&ZIc);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
case 32:
return;
default:
break;
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRboundary_Hitem (CONSTRUCT ZIc)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_boundaries:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRnumber_Hlist (ZIc);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRconstruct_Hitem (SORT ZIs, CONSTRUCT *ZOc)
{
CONSTRUCT ZIc;
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
string ZIn;
unsigned ZIe;
SORT ZIr;
SID_PARAM_LIST ZIp;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_construct_Hname:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_name:
/* BEGINNING OF EXTRACT: name */
{
#line 210 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
ZIn = string_copy (token_buff);
#line 1800 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF EXTRACT: name */
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_encoding:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_number:
/* BEGINNING OF EXTRACT: number */
{
#line 222 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
ZIe = token_value;
#line 1850 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF EXTRACT: number */
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_result_Hsort:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRnew_Hsort_Hname (&ZIr);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_parameter_Hsorts:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRparam_Hpack (&ZIp);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: make_cons */
{
#line 279 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
if (!EQ_sort ((ZIr), (ZIs))) {
MSG_wrong_result_sort ((ZIn));
}
(ZIc) = make_construct ((ZIn), (ZIe), (ZIs), (ZIp));
#line 1951 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: make_cons */
ZRconstruct_Hextra (ZIc);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
goto ZL0;
ZL1:;
SAVE_LEXER (32);
return;
ZL0:;
*ZOc = ZIc;
}
static void
ZRconstruct_Hlist (SORT ZIs, SID_CONS_LIST *ZOp)
{
SID_CONS_LIST ZIp;
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
CONSTRUCT ZIc;
SID_CONS_LIST ZIq;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRconstruct_Hitem (ZIs, &ZIc);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF INLINE: 79 */
{
switch (CURRENT_TERMINAL) {
case lex_comma:
{
ADVANCE_LEXER;
ZRconstruct_Hlist (ZIs, &ZIq);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
default:
{
/* BEGINNING OF ACTION: null_cons */
{
#line 286 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
(ZIq) = NULL_list (CONSTRUCT);
#line 2018 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: null_cons */
}
break;
}
}
/* END OF INLINE: 79 */
/* BEGINNING OF ACTION: cons_cons */
{
#line 290 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
CONS_cons ((ZIc), (ZIq), (ZIp));
#line 2031 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: cons_cons */
}
goto ZL0;
ZL1:;
SAVE_LEXER (32);
return;
ZL0:;
*ZOp = ZIp;
}
static void
ZRparam_Hpack (SID_PARAM_LIST *ZOp)
{
SID_PARAM_LIST ZIp;
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
SID_PARAM_LIST ZIq;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF INLINE: 62 */
{
switch (CURRENT_TERMINAL) {
case lex_open:
{
ZRparam_Hlist (&ZIq);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
default:
{
/* BEGINNING OF ACTION: null_param */
{
#line 254 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
(ZIq) = NULL_list (PARAMETER);
#line 2080 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: null_param */
}
break;
}
}
/* END OF INLINE: 62 */
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZIp = ZIq;
}
goto ZL0;
ZL1:;
SAVE_LEXER (32);
return;
ZL0:;
*ZOp = ZIp;
}
static void
ZRedge_Hpack (void)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF INLINE: 129 */
{
switch (CURRENT_TERMINAL) {
case lex_open:
{
ZRedge_Hlist ();
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
default:
break;
}
}
/* END OF INLINE: 129 */
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
void
read_spec (SPECIFICATION *ZOspec)
{
SPECIFICATION ZIspec;
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
SID_LINK_LIST ZIp;
SID_LINK_LIST ZIq;
unsigned ZIv1;
unsigned ZIv2;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_sorts:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRsort_Hpack ();
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_lists:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRclist_Hpack ();
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_slists:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRslist_Hpack ();
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_options:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRoption_Hpack ();
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_linkable_Hentities:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRlink_Hpack (&ZIp);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_kinds_Hof_Hunit:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRkind_Hpack (&ZIq);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_graph_Hedges:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRedge_Hpack ();
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_major_Hversion:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_number:
/* BEGINNING OF EXTRACT: number */
{
#line 222 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
ZIv1 = token_value;
#line 2472 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF EXTRACT: number */
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_minor_Hversion:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_number:
/* BEGINNING OF EXTRACT: number */
{
#line 222 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
ZIv2 = token_value;
#line 2522 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF EXTRACT: number */
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_eof:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: make_spec */
{
#line 362 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
LIST (SORT) p = check_sorts ();
LIST (LINKAGE) q = foreign_sorts ();
MAKE_spec_basic ((ZIv1), (ZIv2), p, (ZIp), (ZIq), q, (ZIspec));
#line 2558 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: make_spec */
}
goto ZL0;
ZL1:;
{
/* BEGINNING OF ACTION: syntax_error */
{
#line 379 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
MSG_syntax_error ();
#line 2570 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: syntax_error */
/* BEGINNING OF ACTION: null_spec */
{
#line 368 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
(ZIspec) = NULL_spec;
#line 2578 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: null_spec */
}
ZL0:;
*ZOspec = ZIspec;
}
static void
ZRoption_Hpack (void)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF INLINE: 107 */
{
switch (CURRENT_TERMINAL) {
case lex_name:
{
ZRoption_Hlist ();
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
default:
break;
}
}
/* END OF INLINE: 107 */
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRclist_Hpack (void)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF INLINE: 95 */
{
switch (CURRENT_TERMINAL) {
case lex_name:
{
ZRclist_Hlist ();
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
default:
break;
}
}
/* END OF INLINE: 95 */
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRparam_Hitem (PARAMETER *ZOa)
{
PARAMETER ZIa;
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
string ZIn;
SORT ZIs;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRany_Hname (&ZIn);
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRnew_Hsort_Hname (&ZIs);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: make_param */
{
#line 248 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
int intro = 0;
if (ends_in ((ZIn), "_intro")) intro = 1;
MAKE_par_basic ((ZIn), (ZIs), 0, 0, intro, (ZIa));
#line 2724 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: make_param */
}
goto ZL0;
ZL1:;
SAVE_LEXER (32);
return;
ZL0:;
*ZOa = ZIa;
}
static void
ZRedge_Hitem (void)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
SORT ZIs;
string ZIc;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_edge_Hsort:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRold_Hsort_Hname (&ZIs);
switch (CURRENT_TERMINAL) {
case lex_close:
break;
case 32:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_edge_Hconstructor:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_comma:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_name:
/* BEGINNING OF EXTRACT: name */
{
#line 210 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
ZIc = string_copy (token_buff);
#line 2813 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF EXTRACT: name */
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: set_edge */
{
#line 325 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
set_special ((ZIs), (ZIc), KIND_edge);
COPY_int (sort_edge ((ZIs)), 1);
#line 2834 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: set_edge */
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRkind_Hpack (SID_LINK_LIST *ZOp)
{
SID_LINK_LIST ZIp;
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
SID_LINK_LIST ZIq;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF INLINE: 122 */
{
switch (CURRENT_TERMINAL) {
case lex_open:
{
ZRkind_Hlist (&ZIq);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
default:
{
/* BEGINNING OF ACTION: null_link */
{
#line 347 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
(ZIq) = NULL_list (LINKAGE);
#line 2881 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: null_link */
}
break;
}
}
/* END OF INLINE: 122 */
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZIp = ZIq;
}
goto ZL0;
ZL1:;
SAVE_LEXER (32);
return;
ZL0:;
*ZOp = ZIp;
}
static void
ZRnumber_Hlist (CONSTRUCT ZIc)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
ZL2_number_Hlist:;
{
unsigned ZIa;
switch (CURRENT_TERMINAL) {
case lex_number:
/* BEGINNING OF EXTRACT: number */
{
#line 222 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
ZIa = token_value;
#line 2923 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF EXTRACT: number */
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: set_boundary */
{
#line 267 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
PARAMETER p = find_param ((ZIc), (ZIa));
if (!IS_NULL_par (p)) COPY_int (par_align (p), 1);
#line 2937 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: set_boundary */
/* BEGINNING OF INLINE: 69 */
{
switch (CURRENT_TERMINAL) {
case lex_comma:
{
ADVANCE_LEXER;
/* BEGINNING OF INLINE: number-list */
goto ZL2_number_Hlist;
/* END OF INLINE: number-list */
}
/*UNREACHED*/
default:
break;
}
}
/* END OF INLINE: 69 */
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
static void
ZRoption_Hitem (void)
{
if ((CURRENT_TERMINAL) == 32) {
return;
}
{
SORT ZIs;
ZRnew_Hsort_Hname (&ZIs);
if ((CURRENT_TERMINAL) == 32) {
RESTORE_LEXER;
goto ZL1;
}
/* BEGINNING OF ACTION: make_option */
{
#line 321 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
compound_sort ((ZIs), "_option", info_option_tag, '?');
#line 2982 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
}
/* END OF ACTION: make_option */
}
return;
ZL1:;
SAVE_LEXER (32);
return;
}
/* BEGINNING OF TRAILER */
#line 384 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/make_tdf/syntax.act"
#line 2996 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/make_tdf/syntax.c"
/* END OF FILE */
syntax highlighted by Code2HTML, v. 0.9.1