/*
* Automatically generated from the files:
* /mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.sid
* and
* /mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act
* by:
* /mnt/gmirror/ports/lang/TenDRA/work/tendra/obj/utilities/sid/sid
*/
/* BEGINNING OF HEADER */
#line 30 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
/*
* Copyright (c) 2003, 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/lexi/syntax.act,v 1.6 2004/03/08 16:41:20 bp Exp $
*/
#include "config.h"
#include "char.h"
#include "cstring.h"
#include "lex.h"
#include "msgcat.h"
#include "syntax.h"
/*
PARSER TYPES
These types give the implementation of the types used in the syntax.
*/
typedef letter *SID_CHARS ;
typedef char *SID_STRING ;
/*
SID IDENTIFIER PREFIX
This string is added to the start of each sid identifier.
*/
char *sid_prefix = "lex_" ;
/*
CURRENT CONDITIONAL
This variable is used to record the current conditional.
*/
static char *crt_cond = NULL ;
#line 108 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
/* BEGINNING OF FUNCTION DECLARATIONS */
static void ZRstring_Hplus (SID_STRING *);
static void ZRchars (SID_CHARS *);
static void ZRargs (int *);
static void ZRtrigraph_Hdefn (void);
static void ZR60 (SID_STRING *, int *);
extern void read_lex (void);
static void ZR68 (void);
static void ZRcommand_Hlist (void);
static void ZRkeyword_Hdefn (void);
static void ZRif_Hcommand (void);
static void ZRcommand (void);
static void ZRtoken_Hdefn (void);
/* BEGINNING OF STATIC VARIABLES */
/* BEGINNING OF FUNCTION DEFINITIONS */
static void
ZRstring_Hplus (SID_STRING *ZOs)
{
SID_STRING ZIs;
if ((CURRENT_TERMINAL) == 23) {
return;
}
{
SID_STRING ZIa;
/* BEGINNING OF INLINE: 44 */
{
switch (CURRENT_TERMINAL) {
case lex_digit:
{
/* BEGINNING OF EXTRACT: digit */
{
#line 231 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
ZIa = "0123456789" ;
#line 150 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF EXTRACT: digit */
ADVANCE_LEXER;
}
break;
case lex_lower:
{
/* BEGINNING OF EXTRACT: lower */
{
#line 230 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
ZIa = "abcdefghijklmnopqrstuvwxyz" ;
#line 162 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF EXTRACT: lower */
ADVANCE_LEXER;
}
break;
case lex_string:
{
/* BEGINNING OF EXTRACT: string */
{
#line 218 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
ZIa = string_copy(token_buff) ;
#line 175 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF EXTRACT: string */
ADVANCE_LEXER;
}
break;
case lex_upper:
{
/* BEGINNING OF EXTRACT: upper */
{
#line 229 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
ZIa = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
#line 187 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF EXTRACT: upper */
ADVANCE_LEXER;
}
break;
default:
goto ZL1;
}
}
/* END OF INLINE: 44 */
/* BEGINNING OF INLINE: 46 */
{
switch (CURRENT_TERMINAL) {
case lex_plus:
{
SID_STRING ZIb;
ADVANCE_LEXER;
ZRstring_Hplus (&ZIb);
if ((CURRENT_TERMINAL) == 23) {
RESTORE_LEXER;
goto ZL1;
}
/* BEGINNING OF ACTION: string-concat */
{
#line 243 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
(ZIs) = string_concat((ZIa), (ZIb));
#line 216 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: string-concat */
}
break;
default:
{
ZIs = ZIa;
}
break;
}
}
/* END OF INLINE: 46 */
}
goto ZL0;
ZL1:;
SAVE_LEXER (23);
return;
ZL0:;
*ZOs = ZIs;
}
static void
ZRchars (SID_CHARS *ZOc)
{
SID_CHARS ZIc;
if ((CURRENT_TERMINAL) == 23) {
return;
}
{
SID_STRING ZIs;
ZRstring_Hplus (&ZIs);
if ((CURRENT_TERMINAL) == 23) {
RESTORE_LEXER;
goto ZL1;
}
/* BEGINNING OF ACTION: make-chars */
{
#line 255 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
(ZIc) = make_string ( (ZIs) ) ;
#line 259 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: make-chars */
}
goto ZL0;
ZL1:;
SAVE_LEXER (23);
return;
ZL0:;
*ZOc = ZIc;
}
static void
ZRargs (int *ZOa)
{
int ZIa;
switch (CURRENT_TERMINAL) {
case lex_open:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: true */
{
#line 392 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
(ZIa) = 1 ;
#line 291 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: true */
}
break;
default:
{
/* BEGINNING OF ACTION: false */
{
#line 393 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
(ZIa) = 0 ;
#line 302 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: false */
}
break;
case 23:
return;
}
goto ZL0;
ZL1:;
SAVE_LEXER (23);
return;
ZL0:;
*ZOa = ZIa;
}
static void
ZRtrigraph_Hdefn (void)
{
if ((CURRENT_TERMINAL) == 23) {
return;
}
{
SID_CHARS ZIs;
SID_STRING ZIt;
switch (CURRENT_TERMINAL) {
case lex_mapping:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRchars (&ZIs);
switch (CURRENT_TERMINAL) {
case lex_arrow:
break;
case 23:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRstring_Hplus (&ZIt);
if ((CURRENT_TERMINAL) == 23) {
RESTORE_LEXER;
goto ZL1;
}
/* BEGINNING OF ACTION: make-trigraph */
{
#line 293 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
char *data [3] ;
data [0] = (ZIt) ;
data [1] = NULL ;
data [2] = crt_cond ;
add_char ( pre_pass, (ZIs), data ) ;
#line 360 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: make-trigraph */
}
return;
ZL1:;
SAVE_LEXER (23);
return;
}
static void
ZR60 (SID_STRING *ZOi, int *ZOa)
{
SID_STRING ZIi;
int ZIa;
switch (CURRENT_TERMINAL) {
case lex_identifier:
{
/* BEGINNING OF EXTRACT: identifier */
{
#line 173 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
ZIi = string_copy(token_buff);
#line 384 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF EXTRACT: identifier */
ADVANCE_LEXER;
ZRargs (&ZIa);
if ((CURRENT_TERMINAL) == 23) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
case lex_sid_Hidentifier:
{
/* BEGINNING OF EXTRACT: sid-identifier */
{
#line 185 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
int n ;
char *s ;
char buff [1000] ;
strcpy(buff, sid_prefix);
n = ( int ) strlen ( buff ) ;
for ( s = token_buff ; *s ; s++ ) {
if ( *s == '-' ) {
buff [ n++ ] = '_' ;
buff [ n++ ] = 'H' ;
} else if ( *s == '_' ) {
buff [ n++ ] = '_' ;
buff [ n++ ] = '_' ;
} else {
buff [ n++ ] = *s ;
}
if ( n >= 900 ) {
MSG_id_too_long();
break ;
}
}
buff [n] = 0 ;
ZIi = string_copy(buff);
#line 423 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF EXTRACT: sid-identifier */
ADVANCE_LEXER;
/* BEGINNING OF ACTION: false */
{
#line 393 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
(ZIa) = 0 ;
#line 431 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: false */
}
break;
case 23:
return;
default:
goto ZL1;
}
goto ZL0;
ZL1:;
SAVE_LEXER (23);
return;
ZL0:;
*ZOi = ZIi;
*ZOa = ZIa;
}
void
read_lex (void)
{
if ((CURRENT_TERMINAL) == 23) {
return;
}
{
ZRcommand_Hlist ();
/* BEGINNING OF INLINE: 67 */
{
if ((CURRENT_TERMINAL) == 23) {
RESTORE_LEXER;
goto ZL1;
}
{
switch (CURRENT_TERMINAL) {
case lex_eof:
break;
default:
goto ZL3;
}
ADVANCE_LEXER;
}
goto ZL2;
ZL3:;
{
/* BEGINNING OF ACTION: syntax-error */
{
#line 402 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
MSG_syntax_error();
#line 481 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: syntax-error */
}
ZL2:;
}
/* END OF INLINE: 67 */
}
return;
ZL1:;
SAVE_LEXER (23);
return;
}
static void
ZR68 (void)
{
switch (CURRENT_TERMINAL) {
case lex_identifier:
{
SID_STRING ZIi;
SID_CHARS ZIs;
/* BEGINNING OF EXTRACT: identifier */
{
#line 173 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
ZIi = string_copy(token_buff);
#line 509 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF EXTRACT: identifier */
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_equal:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRchars (&ZIs);
if ((CURRENT_TERMINAL) == 23) {
RESTORE_LEXER;
goto ZL1;
}
/* BEGINNING OF ACTION: make-group */
{
#line 282 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
make_group ( (ZIi), (ZIs) ) ;
#line 530 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: make-group */
switch (CURRENT_TERMINAL) {
case lex_semicolon:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
}
break;
case lex_white:
{
SID_CHARS ZIs;
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_equal:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRchars (&ZIs);
if ((CURRENT_TERMINAL) == 23) {
RESTORE_LEXER;
goto ZL1;
}
/* BEGINNING OF ACTION: make-white */
{
#line 268 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
if ( white_space ) {
MSG_ws_grp_already_defined();
}
white_space = (ZIs) ;
#line 567 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: make-white */
switch (CURRENT_TERMINAL) {
case lex_semicolon:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
}
break;
case 23:
return;
default:
goto ZL1;
}
return;
ZL1:;
SAVE_LEXER (23);
return;
}
static void
ZRcommand_Hlist (void)
{
ZL2_command_Hlist:;
switch (CURRENT_TERMINAL) {
case lex_group: case lex_keyword: case lex_mapping:
case lex_token: case lex_if: case lex_open_Hbrace:
case lex_semicolon:
{
ZRcommand ();
/* BEGINNING OF INLINE: command-list */
if ((CURRENT_TERMINAL) == 23) {
RESTORE_LEXER;
goto ZL1;
} else {
goto ZL2_command_Hlist;
}
/* END OF INLINE: command-list */
}
/*UNREACHED*/
case 23:
return;
default:
break;
}
return;
ZL1:;
{
/* BEGINNING OF ACTION: syntax-error */
{
#line 402 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
MSG_syntax_error();
#line 623 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: syntax-error */
}
}
static void
ZRkeyword_Hdefn (void)
{
if ((CURRENT_TERMINAL) == 23) {
return;
}
{
SID_STRING ZIs;
SID_STRING ZIi;
int ZIa;
switch (CURRENT_TERMINAL) {
case lex_keyword:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_string:
/* BEGINNING OF EXTRACT: string */
{
#line 218 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
ZIs = string_copy(token_buff) ;
#line 654 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF EXTRACT: string */
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_arrow:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZR60 (&ZIi, &ZIa);
if ((CURRENT_TERMINAL) == 23) {
RESTORE_LEXER;
goto ZL1;
}
/* BEGINNING OF ACTION: make-keyword */
{
#line 323 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
char *data [3] ;
data [0] = (ZIi) ;
data [1] = ( (ZIa) ? "()" : NULL ) ;
data [2] = crt_cond ;
add_keyword ( (ZIs), data ) ;
#line 683 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: make-keyword */
}
return;
ZL1:;
SAVE_LEXER (23);
return;
}
static void
ZRif_Hcommand (void)
{
if ((CURRENT_TERMINAL) == 23) {
return;
}
{
SID_STRING ZIi;
SID_STRING ZIj;
switch (CURRENT_TERMINAL) {
case lex_if:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_open:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_identifier:
/* BEGINNING OF EXTRACT: identifier */
{
#line 173 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
ZIi = string_copy(token_buff);
#line 724 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF EXTRACT: identifier */
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_close:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: get-condition */
{
#line 370 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
(ZIj) = crt_cond ;
#line 744 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: get-condition */
/* BEGINNING OF ACTION: add-condition */
{
#line 338 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
if ( crt_cond ) {
crt_cond = string_concat(crt_cond, string_concat(" && ", (ZIi)));
} else {
crt_cond = (ZIi) ;
}
#line 756 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: add-condition */
ZRcommand ();
/* BEGINNING OF INLINE: 65 */
{
if ((CURRENT_TERMINAL) == 23) {
RESTORE_LEXER;
goto ZL1;
}
{
switch (CURRENT_TERMINAL) {
case lex_else:
break;
default:
goto ZL3;
}
ADVANCE_LEXER;
/* BEGINNING OF ACTION: compl-condition */
{
#line 353 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
if ( crt_cond ) {
if ( strchr ( crt_cond, '&' ) ) {
crt_cond = string_concat(string_concat("!( ", crt_cond ), " )");
} else {
crt_cond = string_concat("!", crt_cond);
}
}
#line 785 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: compl-condition */
ZRcommand ();
if ((CURRENT_TERMINAL) == 23) {
RESTORE_LEXER;
goto ZL3;
}
/* BEGINNING OF ACTION: set-condition */
{
#line 381 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
crt_cond = (ZIj) ;
#line 798 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: set-condition */
}
goto ZL2;
ZL3:;
{
/* BEGINNING OF ACTION: set-condition */
{
#line 381 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
crt_cond = (ZIj) ;
#line 810 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: set-condition */
}
ZL2:;
}
/* END OF INLINE: 65 */
}
return;
ZL1:;
SAVE_LEXER (23);
return;
}
static void
ZRcommand (void)
{
switch (CURRENT_TERMINAL) {
case lex_group:
{
ADVANCE_LEXER;
ZR68 ();
if ((CURRENT_TERMINAL) == 23) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
case lex_open_Hbrace:
{
ADVANCE_LEXER;
ZRcommand_Hlist ();
switch (CURRENT_TERMINAL) {
case lex_close_Hbrace:
break;
case 23:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
}
break;
case lex_semicolon:
{
ADVANCE_LEXER;
}
break;
case lex_if:
{
ZRif_Hcommand ();
if ((CURRENT_TERMINAL) == 23) {
RESTORE_LEXER;
goto ZL1;
}
}
break;
case lex_keyword:
{
ZRkeyword_Hdefn ();
switch (CURRENT_TERMINAL) {
case lex_semicolon:
break;
case 23:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
}
break;
case lex_token:
{
ZRtoken_Hdefn ();
switch (CURRENT_TERMINAL) {
case lex_semicolon:
break;
case 23:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
}
break;
case lex_mapping:
{
ZRtrigraph_Hdefn ();
switch (CURRENT_TERMINAL) {
case lex_semicolon:
break;
case 23:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
}
break;
case 23:
return;
default:
goto ZL1;
}
return;
ZL1:;
SAVE_LEXER (23);
return;
}
static void
ZRtoken_Hdefn (void)
{
if ((CURRENT_TERMINAL) == 23) {
return;
}
{
SID_CHARS ZIs;
SID_STRING ZIi;
int ZIa;
switch (CURRENT_TERMINAL) {
case lex_token:
break;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZRchars (&ZIs);
switch (CURRENT_TERMINAL) {
case lex_arrow:
break;
case 23:
RESTORE_LEXER;
goto ZL1;
default:
goto ZL1;
}
ADVANCE_LEXER;
ZR60 (&ZIi, &ZIa);
if ((CURRENT_TERMINAL) == 23) {
RESTORE_LEXER;
goto ZL1;
}
/* BEGINNING OF ACTION: make-token */
{
#line 308 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
char *data [3] ;
data [0] = (ZIi) ;
data [1] = ( (ZIa) ? "()" : NULL ) ;
data [2] = crt_cond ;
add_char ( main_pass, (ZIs), data ) ;
#line 967 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
}
/* END OF ACTION: make-token */
}
return;
ZL1:;
SAVE_LEXER (23);
return;
}
/* BEGINNING OF TRAILER */
#line 407 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/src/utilities/lexi/syntax.act"
#line 981 "/mnt/gmirror/ports/lang/TenDRA/work/tendra/obj//utilities/lexi/syntax.c"
/* END OF FILE */
syntax highlighted by Code2HTML, v. 0.9.1