#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#ifdef MEMDEBUG
#include <mnemosyn.h>
#endif
#define  TRUE (0==0)
#define  FALSE (0!=0)
#include "regexp.h"
#include "algolps9.h"
#ifdef NO_MAIN

extern char **argv;
extern int argc;


extern FILE *yyin;
#else

char **argv = (char **) NULL;
int argc = 0;


FILE *yyin = NULL;
#endif /* MAIN */
#include "taccutil.h"


/* Main cheats - it invokes the parsing routines explicitly,
   in order to reduce the size of the parse tree for a whole
   file.  Also allows recovery of errors at useful boundaries */



int
main_1 (YYTYPE * __arg)
{
  int __debug = SEEN_main_1 =
    debug_execute_enter ("Executing procedure main_1 -- arg at %p", __arg);

  YYTYPE *subroot;
  void *stacktop;
  int i;

  if (strcmp (argv[argc - 1], "-v") == 0)
    {
      argc -= 1;
      verbose = TRUE;
    }
  if (strcmp (argv[argc - 1], "-d") == 0)
    {
      argc -= 1;
      _debug = TRUE;
    }
  if (strcmp (argv[argc - 1], "-vd") == 0)
    {
      argc -= 1;
      _debug = TRUE;
      verbose = TRUE;
    }


  if (argc == 1)
    {
      yyin = fopen ("test.ii", "r");
    }
  else if (argc != 2)
    {
      fprintf (stderr, "syntax: algolps9 infile.ii\n");
      /* Let's just resume for now... */
      yyin = fopen (argv[1], "r");
    }
  else
    {
      yyin = fopen (argv[1], "r");
    }
  if (yyin == NULL)
    {
      fprintf (stderr, "algolps9: cannot open input\n");
      exit (EXIT_FAILURE);
    }

  fprintf (stderr, "%s: processing %s\n", argv[0],
	   argv[1] == NULL ? "test.ii" : argv[1]);

  if (verbose)
    fprintf (stderr, "Starting\n");
  fprintf (stdout, "<HTML><HEAD></HEAD><BODY><PRE>");
  for (;;)
    {
      stacktop = stackmark ();
      if (SS_parse (&subroot))
	{
	  execute_parsetree (subroot);
	}
      else
	{
	  fprintf (stdout, "</PRE></BODY>\n");
	  return (FALSE);
	}
      stackrelease (stacktop);
      if (exit_flag)
	{
	  return (TRUE);
	}
      printf ("\n");
      ilev += delayed_ilev;
      delayed_ilev = 0;
    }

  if (!_optimise)
    debug_execute_exit ("main_1");
  return (TRUE);
}



int
DECLIST_1 (YYTYPE * __arg)
{
  int __debug = SEEN_DECLIST_1 =
    debug_execute_enter ("Executing procedure DECLIST_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("DECLIST_1");
  return (TRUE);
}


int
RESTOFDECLIST_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFDECLIST_1 =
    debug_execute_enter ("Executing procedure RESTOFDECLIST_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf (", %s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFDECLIST_1");
  return (TRUE);
}

int
RESTOFDECLIST_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFDECLIST_2 =
    debug_execute_enter ("Executing procedure RESTOFDECLIST_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("RESTOFDECLIST_2");
  return (TRUE);
}


int
OPERAND_1 (YYTYPE * __arg)
{
  int __debug = SEEN_OPERAND_1 =
    debug_execute_enter ("Executing procedure OPERAND_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("OPERAND_1");
  return (TRUE);
}

int
OPERAND_2 (YYTYPE * __arg)
{
  int __debug = SEEN_OPERAND_2 =
    debug_execute_enter ("Executing procedure OPERAND_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("OPERAND_2");
  return (TRUE);
}

int
OPERAND_3 (YYTYPE * __arg)
{
  int __debug = SEEN_OPERAND_3 =
    debug_execute_enter ("Executing procedure OPERAND_3 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("(%s)",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("OPERAND_3");
  return (TRUE);
}



int
EXPR_1 (YYTYPE * __arg)
{
  int __debug = SEEN_EXPR_1 =
    debug_execute_enter ("Executing procedure EXPR_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf
    ("<u><b>if</b></u> %s <u><b>then</b></u> %s%s%s <u><b>else</b></u> %s",
     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)),
     ((USERTYPE *) (__arg->execute.arg[6]->execute.user_value)),
     ((USERTYPE *) (__arg->execute.arg[8]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("EXPR_1");
  return (TRUE);
}

int
EXPR_2 (YYTYPE * __arg)
{
  int __debug = SEEN_EXPR_2 =
    debug_execute_enter ("Executing procedure EXPR_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("EXPR_2");
  return (TRUE);
}


int
RESTOFEXPR_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFEXPR_1 =
    debug_execute_enter ("Executing procedure RESTOFEXPR_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf (" %s %s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFEXPR_1");
  return (TRUE);
}

int
RESTOFEXPR_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFEXPR_2 =
    debug_execute_enter ("Executing procedure RESTOFEXPR_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("RESTOFEXPR_2");
  return (TRUE);
}


int
APP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_APP_1 =
    debug_execute_enter ("Executing procedure APP_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s[%s%s]",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("APP_1");
  return (TRUE);
}

int
APP_2 (YYTYPE * __arg)
{
  int __debug = SEEN_APP_2 =
    debug_execute_enter ("Executing procedure APP_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("(%s%s)",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("APP_2");
  return (TRUE);
}

int
APP_3 (YYTYPE * __arg)
{
  int __debug = SEEN_APP_3 =
    debug_execute_enter ("Executing procedure APP_3 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("APP_3");
  return (TRUE);
}


int
RESTOFAPP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFAPP_1 =
    debug_execute_enter ("Executing procedure RESTOFAPP_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf (", %s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFAPP_1");
  return (TRUE);
}

int
RESTOFAPP_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFAPP_2 =
    debug_execute_enter ("Executing procedure RESTOFAPP_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("RESTOFAPP_2");
  return (TRUE);
}


int
LABAPP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_LABAPP_1 =
    debug_execute_enter ("Executing procedure LABAPP_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("[%s%s]",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("LABAPP_1");
  return (TRUE);
}

int
LABAPP_2 (YYTYPE * __arg)
{
  int __debug = SEEN_LABAPP_2 =
    debug_execute_enter ("Executing procedure LABAPP_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("(%s%s)",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("LABAPP_2");
  return (TRUE);
}

int
LABAPP_3 (YYTYPE * __arg)
{
  int __debug = SEEN_LABAPP_3 =
    debug_execute_enter ("Executing procedure LABAPP_3 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("LABAPP_3");
  return (TRUE);
}


int
BCONST_1 (YYTYPE * __arg)
{
  int __debug = SEEN_BCONST_1 =
    debug_execute_enter ("Executing procedure BCONST_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("<u><b>true</b></u>");

  if (!_optimise)
    debug_execute_exit ("BCONST_1");
  return (TRUE);
}

int
BCONST_2 (YYTYPE * __arg)
{
  int __debug = SEEN_BCONST_2 =
    debug_execute_enter ("Executing procedure BCONST_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("<u><b>false</b></u>");

  if (!_optimise)
    debug_execute_exit ("BCONST_2");
  return (TRUE);
}


int
BOP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_BOP_1 =
    debug_execute_enter ("Executing procedure BOP_1 -- arg at %p", __arg);

  /* NEW OPTION: https://www.toptal.com/designers/htmlarrows/math/logical-and/ */
  /* $0 = formatf(" %ss ", (TRUE?"<IMG SRC=\"and.gif\" WIDTH=8 HEIGHT=9 ALT=\"AND\">":"<u><b>and</b></u>")); */
  __arg->execute.arg[0]->execute.user_value = formatf (" &and; ");

  if (!_optimise)
    debug_execute_exit ("BOP_1");
  return (TRUE);
}

int
BOP_2 (YYTYPE * __arg)
{
  int __debug = SEEN_BOP_2 =
    debug_execute_enter ("Executing procedure BOP_2 -- arg at %p", __arg);

  /* NEW OPTION: https://www.toptal.com/designers/htmlarrows/math/logical-and/ */
  /* $0 = formatf(" %ss ", (TRUE?"<IMG SRC=\"and.gif\" WIDTH=8 HEIGHT=9 ALT=\"AND\">":"&amp;")); */
  __arg->execute.arg[0]->execute.user_value = formatf (" &and; ");

  if (!_optimise)
    debug_execute_exit ("BOP_2");
  return (TRUE);
}

int
BOP_3 (YYTYPE * __arg)
{
  int __debug = SEEN_BOP_3 =
    debug_execute_enter ("Executing procedure BOP_3 -- arg at %p", __arg);

  /* NEW OPTION: https://www.toptal.com/designers/htmlarrows/math/logical-or/ */
  /* $0 = formatf(" %ss ", (TRUE?"<IMG SRC=\"or.gif\" WIDTH=8 HEIGHT=9 ALT=\"OR\">":"<u><b>or</b></u>")); */
  __arg->execute.arg[0]->execute.user_value = formatf (" &or; ");

  if (!_optimise)
    debug_execute_exit ("BOP_3");
  return (TRUE);
}

int
BOP_4 (YYTYPE * __arg)
{
  int __debug = SEEN_BOP_4 =
    debug_execute_enter ("Executing procedure BOP_4 -- arg at %p", __arg);
  /* Are we sure this is 'or' and not 'not equals' ??? */
  /* NEW OPTION: https://www.toptal.com/designers/htmlarrows/math/logical-or/ */
  /* $0 = formatf(" %ss ", (TRUE?"<IMG SRC=\"or.gif\" WIDTH=8 HEIGHT=9 ALT=\"OR\">":"<u><b>or</b></u>")); */
  __arg->execute.arg[0]->execute.user_value = formatf (" &or; ");

  if (!_optimise)
    debug_execute_exit ("BOP_4");
  return (TRUE);
}

int
BOP_5 (YYTYPE * __arg)
{
  int __debug = SEEN_BOP_5 =
    debug_execute_enter ("Executing procedure BOP_5 -- arg at %p", __arg);

  /* NEW OPTION: https://www.toptal.com/designers/htmlarrows/math/superset-of/ */
  /* $0 = formatf(" %ss ", (TRUE?"<IMG SRC=\"impl.gif\" WIDTH=8 HEIGHT=9 ALT=\"IMPL\">":"<u><b>impl</b></u>")); */
  __arg->execute.arg[0]->execute.user_value = formatf (" &sup; ");

  if (!_optimise)
    debug_execute_exit ("BOP_5");
  return (TRUE);
}

int
BOP_6 (YYTYPE * __arg)
{
  int __debug = SEEN_BOP_6 =
    debug_execute_enter ("Executing procedure BOP_6 -- arg at %p", __arg);

  /* NEW OPTION: https://www.toptal.com/designers/htmlarrows/math/identical-to/ */
  /* $0 = formatf(" %ss ", (TRUE?"<IMG SRC=\"equiv.gif\" WIDTH=8 HEIGHT=9 ALT=\"EQUIV\">":"<u><b>eqv</b></u>")); */
  __arg->execute.arg[0]->execute.user_value = formatf (" &equiv; ");

  if (!_optimise)
    debug_execute_exit ("BOP_6");
  return (TRUE);
}

int
BOP_7 (YYTYPE * __arg)
{
  int __debug = SEEN_BOP_7 =
    debug_execute_enter ("Executing procedure BOP_7 -- arg at %p", __arg);

  /* NEW OPTION: https://www.toptal.com/designers/htmlarrows/math/identical-to/ */
  /* $0 = formatf(" %ss ", (TRUE?"<IMG SRC=\"equiv.gif\" WIDTH=8 HEIGHT=9 ALT=\"EQUIV\">":"<u><b>eqv</b></u>")); */
  __arg->execute.arg[0]->execute.user_value = formatf (" &equiv; ");

  if (!_optimise)
    debug_execute_exit ("BOP_7");
  return (TRUE);
}


int
BTERM_1 (YYTYPE * __arg)
{
  int __debug = SEEN_BTERM_1 =
    debug_execute_enter ("Executing procedure BTERM_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s", (TRUE ? "&not;" : "<u><b>not</b></u> "),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("BTERM_1");
  return (TRUE);
}

int
BTERM_2 (YYTYPE * __arg)
{
  int __debug = SEEN_BTERM_2 =
    debug_execute_enter ("Executing procedure BTERM_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s", (TRUE ? "&not;" : "<u><b>not</b></u> "),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("BTERM_2");
  return (TRUE);
}

int
BTERM_3 (YYTYPE * __arg)
{
  int __debug = SEEN_BTERM_3 =
    debug_execute_enter ("Executing procedure BTERM_3 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("BTERM_3");
  return (TRUE);
}


int
SBEXPR_1 (YYTYPE * __arg)
{
  int __debug = SEEN_SBEXPR_1 =
    debug_execute_enter ("Executing procedure SBEXPR_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("SBEXPR_1");
  return (TRUE);
}


int
RESTOFSBEXPR_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFSBEXPR_1 =
    debug_execute_enter ("Executing procedure RESTOFSBEXPR_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFSBEXPR_1");
  return (TRUE);
}

int
RESTOFSBEXPR_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFSBEXPR_2 =
    debug_execute_enter ("Executing procedure RESTOFSBEXPR_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("RESTOFSBEXPR_2");
  return (TRUE);
}


int
BEXPR_1 (YYTYPE * __arg)
{
  int __debug = SEEN_BEXPR_1 =
    debug_execute_enter ("Executing procedure BEXPR_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf
    ("<u><b>if</b></u> %s <u><b>then</b></u> %s <u><b>else</b></u> %s",
     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
     ((USERTYPE *) (__arg->execute.arg[6]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("BEXPR_1");
  return (TRUE);
}

int
BEXPR_2 (YYTYPE * __arg)
{
  int __debug = SEEN_BEXPR_2 =
    debug_execute_enter ("Executing procedure BEXPR_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("BEXPR_2");
  return (TRUE);
}


int
BOPERAND_1 (YYTYPE * __arg)
{
  int __debug = SEEN_BOPERAND_1 =
    debug_execute_enter ("Executing procedure BOPERAND_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s %s %s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("BOPERAND_1");
  return (TRUE);
}

int
BOPERAND_2 (YYTYPE * __arg)
{
  int __debug = SEEN_BOPERAND_2 =
    debug_execute_enter ("Executing procedure BOPERAND_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("BOPERAND_2");
  return (TRUE);
}

int
BOPERAND_3 (YYTYPE * __arg)
{
  int __debug = SEEN_BOPERAND_3 =
    debug_execute_enter ("Executing procedure BOPERAND_3 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("BOPERAND_3");
  return (TRUE);
}

int
BOPERAND_4 (YYTYPE * __arg)
{
  int __debug = SEEN_BOPERAND_4 =
    debug_execute_enter ("Executing procedure BOPERAND_4 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("(%s)",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("BOPERAND_4");
  return (TRUE);
}



int
TYPEopt_1 (YYTYPE * __arg)
{
  int __debug = SEEN_TYPEopt_1 =
    debug_execute_enter ("Executing procedure TYPEopt_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>integer</b></u> ");

  if (!_optimise)
    debug_execute_exit ("TYPEopt_1");
  return (TRUE);
}

int
TYPEopt_2 (YYTYPE * __arg)
{
  int __debug = SEEN_TYPEopt_2 =
    debug_execute_enter ("Executing procedure TYPEopt_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("<u><b>real</b></u> ");

  if (!_optimise)
    debug_execute_exit ("TYPEopt_2");
  return (TRUE);
}

int
TYPEopt_3 (YYTYPE * __arg)
{
  int __debug = SEEN_TYPEopt_3 =
    debug_execute_enter ("Executing procedure TYPEopt_3 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>Boolean</b></u> ");

  if (!_optimise)
    debug_execute_exit ("TYPEopt_3");
  return (TRUE);
}

int
TYPEopt_4 (YYTYPE * __arg)
{
  int __debug = SEEN_TYPEopt_4 =
    debug_execute_enter ("Executing procedure TYPEopt_4 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("TYPEopt_4");
  return (TRUE);
}


int
VALUEq_1 (YYTYPE * __arg)
{
  int __debug = SEEN_VALUEq_1 =
    debug_execute_enter ("Executing procedure VALUEq_1 -- arg at %p", __arg);
  /* was * missing in grammar? */
  __arg->execute.arg[0]->execute.user_value =
    formatf ("; %s\n  <u><b>value</b></u> %s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("VALUEq_1");
  return (TRUE);
}

int
VALUEq_2 (YYTYPE * __arg)
{
  int __debug = SEEN_VALUEq_2 =
    debug_execute_enter ("Executing procedure VALUEq_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("VALUEq_2");
  return (TRUE);
}


int
FPDEL_1 (YYTYPE * __arg)
{
  int __debug = SEEN_FPDEL_1 =
    debug_execute_enter ("Executing procedure FPDEL_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>label</b></u> %s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("FPDEL_1");
  return (TRUE);
}

int
FPDEL_2 (YYTYPE * __arg)
{
  int __debug = SEEN_FPDEL_2 =
    debug_execute_enter ("Executing procedure FPDEL_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>switch</b></u> %s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("FPDEL_2");
  return (TRUE);
}

int
FPDEL_3 (YYTYPE * __arg)
{
  int __debug = SEEN_FPDEL_3 =
    debug_execute_enter ("Executing procedure FPDEL_3 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>string</b></u> %s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("FPDEL_3");
  return (TRUE);
}

int
FPDEL_4 (YYTYPE * __arg)
{
  int __debug = SEEN_FPDEL_4 =
    debug_execute_enter ("Executing procedure FPDEL_4 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("FPDEL_4");
  return (TRUE);
}


int
PDECLN_1 (YYTYPE * __arg)
{
  int __debug = SEEN_PDECLN_1 =
    debug_execute_enter ("Executing procedure PDECLN_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>array</b></u> %s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("PDECLN_1");
  return (TRUE);
}

int
PDECLN_2 (YYTYPE * __arg)
{
  int __debug = SEEN_PDECLN_2 =
    debug_execute_enter ("Executing procedure PDECLN_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>procedure</b></u> %s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("PDECLN_2");
  return (TRUE);
}

int
PDECLN_3 (YYTYPE * __arg)
{
  int __debug = SEEN_PDECLN_3 =
    debug_execute_enter ("Executing procedure PDECLN_3 -- arg at %p", __arg);
  /* Added by GT to disambiguate I := I+1; from typless "I" decln. */
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("PDECLN_3");
  return (TRUE);
}


int
FPP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_FPP_1 =
    debug_execute_enter ("Executing procedure FPP_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("(%s%s)",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("FPP_1");
  return (TRUE);
}

int
FPP_2 (YYTYPE * __arg)
{
  int __debug = SEEN_FPP_2 =
    debug_execute_enter ("Executing procedure FPP_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("FPP_2");
  return (TRUE);
}


int
RESTOFFPLIST_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFFPLIST_1 =
    debug_execute_enter ("Executing procedure RESTOFFPLIST_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFFPLIST_1");
  return (TRUE);
}

int
RESTOFFPLIST_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFFPLIST_2 =
    debug_execute_enter ("Executing procedure RESTOFFPLIST_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("RESTOFFPLIST_2");
  return (TRUE);
}


int
FPSEP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_FPSEP_1 =
    debug_execute_enter ("Executing procedure FPSEP_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf (", ");

  if (!_optimise)
    debug_execute_exit ("FPSEP_1");
  return (TRUE);
}

int
FPSEP_2 (YYTYPE * __arg)
{
  int __debug = SEEN_FPSEP_2 =
    debug_execute_enter ("Executing procedure FPSEP_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf (", ");	/* SIMPLIFY FOR NOW */

  if (!_optimise)
    debug_execute_exit ("FPSEP_2");
  return (TRUE);
}


int
OPTCOM_1 (YYTYPE * __arg)
{
  int __debug = SEEN_OPTCOM_1 =
    debug_execute_enter ("Executing procedure OPTCOM_1 -- arg at %p", __arg);
  // Not sure about the * here...
  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>comment</b></u> %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("OPTCOM_1");
  return (TRUE);
}

int
OPTCOM_2 (YYTYPE * __arg)
{
  int __debug = SEEN_OPTCOM_2 =
    debug_execute_enter ("Executing procedure OPTCOM_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("OPTCOM_2");
  return (TRUE);
}


int
FPSPEC_1 (YYTYPE * __arg)
{
  int __debug = SEEN_FPSPEC_1 =
    debug_execute_enter ("Executing procedure FPSPEC_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf (";\n  %s%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("FPSPEC_1");
  return (TRUE);
}

int
FPSPEC_2 (YYTYPE * __arg)
{
  int __debug = SEEN_FPSPEC_2 =
    debug_execute_enter ("Executing procedure FPSPEC_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("FPSPEC_2");
  return (TRUE);
}



int
PARCOM_1 (YYTYPE * __arg)
{
  int __debug = SEEN_PARCOM_1 =
    debug_execute_enter ("Executing procedure PARCOM_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf (";\n  <u><b>comment</b></u> (%s%s)%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[7]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[8]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[9]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("PARCOM_1");
  return (TRUE);
}

int
PARCOM_2 (YYTYPE * __arg)
{
  int __debug = SEEN_PARCOM_2 =
    debug_execute_enter ("Executing procedure PARCOM_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("PARCOM_2");
  return (TRUE);
}


int
COLONq_1 (YYTYPE * __arg)
{
  int __debug = SEEN_COLONq_1 =
    debug_execute_enter ("Executing procedure COLONq_1 -- arg at %p", __arg);
  /* One orthography allows ".." for ":"  */
  /* (also ".=" for ":=" and ".," for ";" */
  /*  - the latter causing problems in comments) */
  __arg->execute.arg[0]->execute.user_value = formatf (": ");

  if (!_optimise)
    debug_execute_exit ("COLONq_1");
  return (TRUE);
}

int
COLONq_2 (YYTYPE * __arg)
{
  int __debug = SEEN_COLONq_2 =
    debug_execute_enter ("Executing procedure COLONq_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("COLONq_2");
  return (TRUE);
}


int
COMVAL_1 (YYTYPE * __arg)
{
  int __debug = SEEN_COMVAL_1 =
    debug_execute_enter ("Executing procedure COMVAL_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("%s<u><b>value</b></u> %s%s", ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)), ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)));	/* Is <NOTELINE> a dummy? */

  if (!_optimise)
    debug_execute_exit ("COMVAL_1");
  return (TRUE);
}

int
COMVAL_2 (YYTYPE * __arg)
{
  int __debug = SEEN_COMVAL_2 =
    debug_execute_enter ("Executing procedure COMVAL_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("COMVAL_2");
  return (TRUE);
}


int
COMFP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_COMFP_1 =
    debug_execute_enter ("Executing procedure COMFP_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("%s%s%s%s", ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)), ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)), ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)), ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)));	/* Is <NOTELINE> a dummy? */

  if (!_optimise)
    debug_execute_exit ("COMFP_1");
  return (TRUE);
}

int
COMFP_2 (YYTYPE * __arg)
{
  int __debug = SEEN_COMFP_2 =
    debug_execute_enter ("Executing procedure COMFP_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("COMFP_2");
  return (TRUE);
}


int
COMDEL_1 (YYTYPE * __arg)
{
  int __debug = SEEN_COMDEL_1 =
    debug_execute_enter ("Executing procedure COMDEL_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>label</b></u> %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("COMDEL_1");
  return (TRUE);
}

int
COMDEL_2 (YYTYPE * __arg)
{
  int __debug = SEEN_COMDEL_2 =
    debug_execute_enter ("Executing procedure COMDEL_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>switch</b></u> %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("COMDEL_2");
  return (TRUE);
}

int
COMDEL_3 (YYTYPE * __arg)
{
  int __debug = SEEN_COMDEL_3 =
    debug_execute_enter ("Executing procedure COMDEL_3 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>string</b></u> %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("COMDEL_3");
  return (TRUE);
}

int
COMDEL_4 (YYTYPE * __arg)
{
  int __debug = SEEN_COMDEL_4 =
    debug_execute_enter ("Executing procedure COMDEL_4 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("COMDEL_4");
  return (TRUE);
}


int
COMDECLN_1 (YYTYPE * __arg)
{
  int __debug = SEEN_COMDECLN_1 =
    debug_execute_enter ("Executing procedure COMDECLN_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>array</b></u> %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("COMDECLN_1");
  return (TRUE);
}

int
COMDECLN_2 (YYTYPE * __arg)
{
  int __debug = SEEN_COMDECLN_2 =
    debug_execute_enter ("Executing procedure COMDECLN_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>procedure</b></u> %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("COMDECLN_2");
  return (TRUE);
}

int
COMDECLN_3 (YYTYPE * __arg)
{
  int __debug = SEEN_COMDECLN_3 =
    debug_execute_enter ("Executing procedure COMDECLN_3 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("COMDECLN_3");
  return (TRUE);
}


int
CNLIST_1 (YYTYPE * __arg)
{
  int __debug = SEEN_CNLIST_1 =
    debug_execute_enter ("Executing procedure CNLIST_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("CNLIST_1");
  return (TRUE);
}


int
RESTOFCNLIST_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFCNLIST_1 =
    debug_execute_enter ("Executing procedure RESTOFCNLIST_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf (", %s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFCNLIST_1");
  return (TRUE);
}

int
RESTOFCNLIST_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFCNLIST_2 =
    debug_execute_enter ("Executing procedure RESTOFCNLIST_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("RESTOFCNLIST_2");
  return (TRUE);
}


int
GENSDE_1 (YYTYPE * __arg)
{
  int __debug = SEEN_GENSDE_1 =
    debug_execute_enter ("Executing procedure GENSDE_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("GENSDE_1");
  return (TRUE);
}

int
GENSDE_2 (YYTYPE * __arg)
{
  int __debug = SEEN_GENSDE_2 =
    debug_execute_enter ("Executing procedure GENSDE_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("(%s)",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("GENSDE_2");
  return (TRUE);
}


int
GENDE_1 (YYTYPE * __arg)
{
  int __debug = SEEN_GENDE_1 =
    debug_execute_enter ("Executing procedure GENDE_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf
    ("<u><b>if</b></u> %s <u><b>then</b></u> %s <u><b>else</b></u> %s",
     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
     ((USERTYPE *) (__arg->execute.arg[6]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("GENDE_1");
  return (TRUE);
}

int
GENDE_2 (YYTYPE * __arg)
{
  int __debug = SEEN_GENDE_2 =
    debug_execute_enter ("Executing procedure GENDE_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("GENDE_2");
  return (TRUE);
}


int
SDE_1 (YYTYPE * __arg)
{
  int __debug = SEEN_SDE_1 =
    debug_execute_enter ("Executing procedure SDE_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("SDE_1");
  return (TRUE);
}

int
SDE_2 (YYTYPE * __arg)
{
  int __debug = SEEN_SDE_2 =
    debug_execute_enter ("Executing procedure SDE_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("(%s)",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("SDE_2");
  return (TRUE);
}


int
DE_1 (YYTYPE * __arg)
{
  int __debug = SEEN_DE_1 =
    debug_execute_enter ("Executing procedure DE_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf
    ("<u><b>if</b></u> %s <u><b>then</b></u> %s <u><b>else</b></u> %s",
     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
     ((USERTYPE *) (__arg->execute.arg[6]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("DE_1");
  return (TRUE);
}

int
DE_2 (YYTYPE * __arg)
{
  int __debug = SEEN_DE_2 =
    debug_execute_enter ("Executing procedure DE_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("DE_2");
  return (TRUE);
}


int
RESTOFGENDELIST_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFGENDELIST_1 =
    debug_execute_enter ("Executing procedure RESTOFGENDELIST_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf (", %s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFGENDELIST_1");
  return (TRUE);
}

int
RESTOFGENDELIST_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFGENDELIST_2 =
    debug_execute_enter ("Executing procedure RESTOFGENDELIST_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("RESTOFGENDELIST_2");
  return (TRUE);
}


int
RTP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RTP_1 =
    debug_execute_enter ("Executing procedure RTP_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("RTP_1");
  return (TRUE);
}

int
RTP_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RTP_2 =
    debug_execute_enter ("Executing procedure RTP_2 -- arg at %p", __arg);
  /* Nomore is true if next char is , or ) */
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RTP_2");
  return (TRUE);
}

int
RTP_3 (YYTYPE * __arg)
{
  int __debug = SEEN_RTP_3 =
    debug_execute_enter ("Executing procedure RTP_3 -- arg at %p", __arg);
/* <NOMORE> */
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RTP_3");
  return (TRUE);
}

int
RTP_4 (YYTYPE * __arg)
{
  int __debug = SEEN_RTP_4 =
    debug_execute_enter ("Executing procedure RTP_4 -- arg at %p", __arg);
/* <NOMORE> */
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RTP_4");
  return (TRUE);
}

int
RTP_5 (YYTYPE * __arg)
{
  int __debug = SEEN_RTP_5 =
    debug_execute_enter ("Executing procedure RTP_5 -- arg at %p", __arg);
/* <NOMORE> */
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RTP_5");
  return (TRUE);
}


int
RESTOFRTPLIST_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFRTPLIST_1 =
    debug_execute_enter ("Executing procedure RESTOFRTPLIST_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFRTPLIST_1");
  return (TRUE);
}

int
RESTOFRTPLIST_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFRTPLIST_2 =
    debug_execute_enter ("Executing procedure RESTOFRTPLIST_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("RESTOFRTPLIST_2");
  return (TRUE);
}


int
RESTOFASS_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFASS_1 =
    debug_execute_enter ("Executing procedure RESTOFASS_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s := %s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFASS_1");
  return (TRUE);
}


int
abEXPR_1 (YYTYPE * __arg)
{
  int __debug = SEEN_abEXPR_1 =
    debug_execute_enter ("Executing procedure abEXPR_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("abEXPR_1");
  return (TRUE);
}

int
abEXPR_2 (YYTYPE * __arg)
{
  int __debug = SEEN_abEXPR_2 =
    debug_execute_enter ("Executing procedure abEXPR_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("abEXPR_2");
  return (TRUE);
}


int
RESTOFABLP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFABLP_1 =
    debug_execute_enter ("Executing procedure RESTOFABLP_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s := %s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFABLP_1");
  return (TRUE);
}

int
RESTOFABLP_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFABLP_2 =
    debug_execute_enter ("Executing procedure RESTOFABLP_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("RESTOFABLP_2");
  return (TRUE);
}



int
oldRESTOFASS_1 (YYTYPE * __arg)
{
  int __debug = SEEN_oldRESTOFASS_1 =
    debug_execute_enter ("Executing procedure oldRESTOFASS_1 -- arg at %p",
			 __arg);


/* problem with the parsing algorithm: if we get a successful parse
   here, e.g I := I, then this returns TRUE and does not try the
   second alternative of I := I+1 because the PARENT of this
   phrase moves on to *his* second alternative.  The semantic
   guard here from the original parser would have avoided that
   trap, but at this stage I do not know if my variable is a Boolean
   or not because I have not been building a symbol table.  In
   order to do it properly I either need a symbol table, *or*
   a major revamp of the parser to retry from the last successful
   option rather than the last failed one. :-/
   In the mean time, parsing the Arithmetic assignment first seems
   to succeed more often than parsing the Boolean one, so I
   have swapped the order of the two phrases below.  Originally
   it was Boolean then Arithmetic.
 */

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s := %s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("oldRESTOFASS_1");
  return (TRUE);
}

int
oldRESTOFASS_2 (YYTYPE * __arg)
{
  int __debug = SEEN_oldRESTOFASS_2 =
    debug_execute_enter ("Executing procedure oldRESTOFASS_2 -- arg at %p",
			 __arg);
  /* ORDER SWAPPED TO TEST A HYPOTHESIS */
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s := %s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("oldRESTOFASS_2");
  return (TRUE);
}


int
oldRESTOFBLP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_oldRESTOFBLP_1 =
    debug_execute_enter ("Executing procedure oldRESTOFBLP_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s%s := %s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[6]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("oldRESTOFBLP_1");
  return (TRUE);
}

int
oldRESTOFBLP_2 (YYTYPE * __arg)
{
  int __debug = SEEN_oldRESTOFBLP_2 =
    debug_execute_enter ("Executing procedure oldRESTOFBLP_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("oldRESTOFBLP_2");
  return (TRUE);
}


int
oldRESTOFALP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_oldRESTOFALP_1 =
    debug_execute_enter ("Executing procedure oldRESTOFALP_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s%s := %s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[6]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("oldRESTOFALP_1");
  return (TRUE);
}

int
oldRESTOFALP_2 (YYTYPE * __arg)
{
  int __debug = SEEN_oldRESTOFALP_2 =
    debug_execute_enter ("Executing procedure oldRESTOFALP_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("oldRESTOFALP_2");
  return (TRUE);
}


int
RESTOFFLE_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFFLE_1 =
    debug_execute_enter ("Executing procedure RESTOFFLE_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf (" <u><b>step</b></u> %s <u><b>until</b></u> %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFFLE_1");
  return (TRUE);
}

int
RESTOFFLE_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFFLE_2 =
    debug_execute_enter ("Executing procedure RESTOFFLE_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf (" <u><b>while</b></u> %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFFLE_2");
  return (TRUE);
}

int
RESTOFFLE_3 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFFLE_3 =
    debug_execute_enter ("Executing procedure RESTOFFLE_3 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("RESTOFFLE_3");
  return (TRUE);
}


int
RESTOFFORLIST_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFFORLIST_1 =
    debug_execute_enter ("Executing procedure RESTOFFORLIST_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf (",\n         %s%s%s", ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)), ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)), ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)));	/* 3 spaces added */

  if (!_optimise)
    debug_execute_exit ("RESTOFFORLIST_1");
  return (TRUE);
}

int
RESTOFFORLIST_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFFORLIST_2 =
    debug_execute_enter ("Executing procedure RESTOFFORLIST_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("RESTOFFORLIST_2");
  return (TRUE);
}


int
RESTOFBPLIST_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFBPLIST_1 =
    debug_execute_enter ("Executing procedure RESTOFBPLIST_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf (", %s : %s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFBPLIST_1");
  return (TRUE);
}

int
RESTOFBPLIST_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFBPLIST_2 =
    debug_execute_enter ("Executing procedure RESTOFBPLIST_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("RESTOFBPLIST_2");
  return (TRUE);
}


int
DECLN_1 (YYTYPE * __arg)
{
  int __debug = SEEN_DECLN_1 =
    debug_execute_enter ("Executing procedure DECLN_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("DECLN_1");
  return (TRUE);
}

int
DECLN_2 (YYTYPE * __arg)
{
  int __debug = SEEN_DECLN_2 =
    debug_execute_enter ("Executing procedure DECLN_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>array</b></u> %s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("DECLN_2");
  return (TRUE);
}


int
ADECLN_1 (YYTYPE * __arg)
{
  int __debug = SEEN_ADECLN_1 =
    debug_execute_enter ("Executing procedure ADECLN_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("ADECLN_1");
  return (TRUE);
}


int
RESTOFARRAYLIST_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFARRAYLIST_1 =
    debug_execute_enter ("Executing procedure RESTOFARRAYLIST_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf (", %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFARRAYLIST_1");
  return (TRUE);
}

int
RESTOFARRAYLIST_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFARRAYLIST_2 =
    debug_execute_enter ("Executing procedure RESTOFARRAYLIST_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("RESTOFARRAYLIST_2");
  return (TRUE);
}


int
BPAIR_1 (YYTYPE * __arg)
{
  int __debug = SEEN_BPAIR_1 =
    debug_execute_enter ("Executing procedure BPAIR_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("BPAIR_1");
  return (TRUE);
}

int
BPAIR_2 (YYTYPE * __arg)
{
  int __debug = SEEN_BPAIR_2 =
    debug_execute_enter ("Executing procedure BPAIR_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("[%s : %s%s]",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("BPAIR_2");
  return (TRUE);
}



int
CBPAIR_1 (YYTYPE * __arg)
{
  int __debug = SEEN_CBPAIR_1 =
    debug_execute_enter ("Executing procedure CBPAIR_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("[%s%s : %s%s%s]",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[6]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[7]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("CBPAIR_1");
  return (TRUE);
}


int
RESTOFCBP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFCBP_1 =
    debug_execute_enter ("Executing procedure RESTOFCBP_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf (", %s%s : %s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[6]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[7]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFCBP_1");
  return (TRUE);
}

int
RESTOFCBP_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFCBP_2 =
    debug_execute_enter ("Executing procedure RESTOFCBP_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("RESTOFCBP_2");
  return (TRUE);
}


int
OADECLN_1 (YYTYPE * __arg)
{
  int __debug = SEEN_OADECLN_1 =
    debug_execute_enter ("Executing procedure OADECLN_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("OADECLN_1");
  return (TRUE);
}


int
RESTOFOADEC_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFOADEC_1 =
    debug_execute_enter ("Executing procedure RESTOFOADEC_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf (", %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RESTOFOADEC_1");
  return (TRUE);
}

int
RESTOFOADEC_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFOADEC_2 =
    debug_execute_enter ("Executing procedure RESTOFOADEC_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("RESTOFOADEC_2");
  return (TRUE);
}


int
VDECLNa_1 (YYTYPE * __arg)
{
  int __debug = SEEN_VDECLNa_1 =
    debug_execute_enter ("Executing procedure VDECLNa_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("<u><b>procedure</b></u> %s%s%s%s%s%s", ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)), ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)), ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)), ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)), ((USERTYPE *) (__arg->execute.arg[6]->execute.user_value)), ((USERTYPE *) (__arg->execute.arg[7]->execute.user_value)));	/* NOTENAME and DOWN are dummies? */

  if (!_optimise)
    debug_execute_exit ("VDECLNa_1");
  return (TRUE);
}


int
VDECLNb_1 (YYTYPE * __arg)
{
  int __debug = SEEN_VDECLNb_1 =
    debug_execute_enter ("Executing procedure VDECLNb_1 -- arg at %p", __arg);
  /* params, then procedure body */
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s;\n%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[6]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("VDECLNb_1");
  return (TRUE);
}



int
VDECLN_1 (YYTYPE * __arg)
{
  int __debug = SEEN_VDECLN_1 =
    debug_execute_enter ("Executing procedure VDECLN_1 -- arg at %p", __arg);
  /* tacc limitation of $0-$9 */
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("VDECLN_1");
  return (TRUE);
}

int
VDECLN_2 (YYTYPE * __arg)
{
  int __debug = SEEN_VDECLN_2 =
    debug_execute_enter ("Executing procedure VDECLN_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>array</b></u> %s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("VDECLN_2");
  return (TRUE);
}

int
VDECLN_3 (YYTYPE * __arg)
{
  int __debug = SEEN_VDECLN_3 =
    debug_execute_enter ("Executing procedure VDECLN_3 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("VDECLN_3");
  return (TRUE);
}


int
COMP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_1 =
    debug_execute_enter ("Executing procedure COMP_1 -- arg at %p", __arg);

  /* NEW OPTION: https://www.toptal.com/designers/htmlarrows/math/not-equal-to-sign/ */
  /* $0 = formatf((TRUE?"<IMG SRC=\"ne.gif\" WIDTH=9 HEIGHT=9 ALT=\"NOTEQUAL\">":"&lt;&gt;")); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&ne;");

  if (!_optimise)
    debug_execute_exit ("COMP_1");
  return (TRUE);
}

int
COMP_2 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_2 =
    debug_execute_enter ("Executing procedure COMP_2 -- arg at %p", __arg);

  /* NEW OPTION: https://www.toptal.com/designers/htmlarrows/math/less-than-or-equal-to/ */
  /* $0 = formatf((TRUE?"<IMG SRC=\"le.gif\" WIDTH=9 HEIGHT=9 ALT=\"NOTLESS\">":"&lt;=")); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&le;");

  if (!_optimise)
    debug_execute_exit ("COMP_2");
  return (TRUE);
}

int
COMP_3 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_3 =
    debug_execute_enter ("Executing procedure COMP_3 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("&lt;");

  if (!_optimise)
    debug_execute_exit ("COMP_3");
  return (TRUE);
}

int
COMP_4 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_4 =
    debug_execute_enter ("Executing procedure COMP_4 -- arg at %p", __arg);

  /* $0 = formatf("%ss", @1.text); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&equals;");

  if (!_optimise)
    debug_execute_exit ("COMP_4");
  return (TRUE);
}

int
COMP_5 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_5 =
    debug_execute_enter ("Executing procedure COMP_5 -- arg at %p", __arg);

  /* NEW OPTION: https://www.toptal.com/designers/htmlarrows/math/greater-than-or-equal-to/ */
  /* $0 = formatf((TRUE?"<IMG SRC=\"ge.gif\" WIDTH=9 HEIGHT=9 ALT=\"NOTLESS\">":"&gt;=")); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&ge;");

  if (!_optimise)
    debug_execute_exit ("COMP_5");
  return (TRUE);
}

int
COMP_6 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_6 =
    debug_execute_enter ("Executing procedure COMP_6 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("&gt;");

  if (!_optimise)
    debug_execute_exit ("COMP_6");
  return (TRUE);
}

int
COMP_7 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_7 =
    debug_execute_enter ("Executing procedure COMP_7 -- arg at %p", __arg);
  // does | have to be escaped?  Should we handle this in wfilter.c instead?  Along with |< and |>
  /* NEW OPTION: https://www.toptal.com/designers/htmlarrows/math/not-equal-to-sign/ */
  /* $0 = formatf((TRUE?"<IMG SRC=\"ne.gif\" WIDTH=9 HEIGHT=9 ALT=\"NOTEQUAL\">":@1.text)); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&ne;");

  if (!_optimise)
    debug_execute_exit ("COMP_7");
  return (TRUE);
}

int
COMP_8 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_8 =
    debug_execute_enter ("Executing procedure COMP_8 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("&lt;");

  if (!_optimise)
    debug_execute_exit ("COMP_8");
  return (TRUE);
}

int
COMP_9 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_9 =
    debug_execute_enter ("Executing procedure COMP_9 -- arg at %p", __arg);

  /* $0 = formatf((TRUE?"<IMG SRC=\"ne.gif\" WIDTH=9 HEIGHT=9 ALT=\"NOTEQUAL\">":"#")); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&ne;");

  if (!_optimise)
    debug_execute_exit ("COMP_9");
  return (TRUE);
}

int
COMP_10 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_10 =
    debug_execute_enter ("Executing procedure COMP_10 -- arg at %p", __arg);

  /* $0 = formatf((TRUE?"=":"<u><b>equal</b></u>")); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&equals;");

  if (!_optimise)
    debug_execute_exit ("COMP_10");
  return (TRUE);
}

int
COMP_11 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_11 =
    debug_execute_enter ("Executing procedure COMP_11 -- arg at %p", __arg);

  /* $0 = formatf((TRUE?"=":"<u><b>eq</b></u>")); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&equals;");

  if (!_optimise)
    debug_execute_exit ("COMP_11");
  return (TRUE);
}

int
COMP_12 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_12 =
    debug_execute_enter ("Executing procedure COMP_12 -- arg at %p", __arg);

  /* $0 = formatf((TRUE?"<IMG SRC=\"ge.gif\" WIDTH=9 HEIGHT=9 ALT=\"NOTLESS\">":"<u><b>ge</b></u>")); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&ge;");

  if (!_optimise)
    debug_execute_exit ("COMP_12");
  return (TRUE);
}

int
COMP_13 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_13 =
    debug_execute_enter ("Executing procedure COMP_13 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ((TRUE ? "&gt;" : "<u><b>gt/em>"));

  if (!_optimise)
    debug_execute_exit ("COMP_13");
  return (TRUE);
}

int
COMP_14 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_14 =
    debug_execute_enter ("Executing procedure COMP_14 -- arg at %p", __arg);

  /* $0 = formatf((TRUE?"<IMG SRC=\"ne.gif\" WIDTH=9 HEIGHT=9 ALT=\"NOTEQUAL\">":"<u><b>ne</b></u>")); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&ne;");

  if (!_optimise)
    debug_execute_exit ("COMP_14");
  return (TRUE);
}

int
COMP_15 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_15 =
    debug_execute_enter ("Executing procedure COMP_15 -- arg at %p", __arg);

  /* $0 = formatf((TRUE?"<IMG SRC=\"ne.gif\" WIDTH=9 HEIGHT=9 ALT=\"NOTEQUAL\">":"<u><b>notequal</b></u>")); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&ne;");

  if (!_optimise)
    debug_execute_exit ("COMP_15");
  return (TRUE);
}

int
COMP_16 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_16 =
    debug_execute_enter ("Executing procedure COMP_16 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ((TRUE ? "&lt;" : "<u><b>lt</b></u>" /* alternative orthography */
	      ));

  if (!_optimise)
    debug_execute_exit ("COMP_16");
  return (TRUE);
}

int
COMP_17 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_17 =
    debug_execute_enter ("Executing procedure COMP_17 -- arg at %p", __arg);

  /* $0 = formatf((TRUE?"<IMG SRC=\"le.gif\" WIDTH=9 HEIGHT=9 ALT=\"NOTLESS\">":"<u><b>le</b></u>")); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&le;");

  if (!_optimise)
    debug_execute_exit ("COMP_17");
  return (TRUE);
}

int
COMP_18 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_18 =
    debug_execute_enter ("Executing procedure COMP_18 -- arg at %p", __arg);

  /* $0 = formatf((TRUE?"<IMG SRC=\"le.gif\" WIDTH=9 HEIGHT=9 ALT=\"NOTLESS\">":"<u><b>notgreater</b></u>")); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&le;");

  if (!_optimise)
    debug_execute_exit ("COMP_18");
  return (TRUE);
}

int
COMP_19 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_19 =
    debug_execute_enter ("Executing procedure COMP_19 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ((TRUE ? "&lt;" : "<u><b>lt</b></u>"));

  if (!_optimise)
    debug_execute_exit ("COMP_19");
  return (TRUE);
}

int
COMP_20 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_20 =
    debug_execute_enter ("Executing procedure COMP_20 -- arg at %p", __arg);

  /* $0 = formatf((TRUE?"<IMG SRC=\"ne.gif\" WIDTH=9 HEIGHT=9 ALT=\"NOTEQUAL\">":@1.text)); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&ne;");

  if (!_optimise)
    debug_execute_exit ("COMP_20");
  return (TRUE);
}

int
COMP_21 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_21 =
    debug_execute_enter ("Executing procedure COMP_21 -- arg at %p", __arg);
  // hack for MATLAB but not working
  /* $0 = formatf((TRUE?"<IMG SRC=\"ne.gif\" WIDTH=9 HEIGHT=9 ALT=\"NOTEQUAL\">":@1.text)); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&ne;");

  if (!_optimise)
    debug_execute_exit ("COMP_21");
  return (TRUE);
}

int
COMP_22 (YYTYPE * __arg)
{
  int __debug = SEEN_COMP_22 =
    debug_execute_enter ("Executing procedure COMP_22 -- arg at %p", __arg);
  // escaped \
  /* $0 = formatf((TRUE?"<IMG SRC=\"ne.gif\" WIDTH=9 HEIGHT=9 ALT=\"NOTEQUAL\">":@1.text)); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&ne;");

  if (!_optimise)
    debug_execute_exit ("COMP_22");
  return (TRUE);
}


int
OLABEL_1 (YYTYPE * __arg)
{
  int __debug = SEEN_OLABEL_1 =
    debug_execute_enter ("Executing procedure OLABEL_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s: %s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[6]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("OLABEL_1");
  return (TRUE);
}

int
OLABEL_2 (YYTYPE * __arg)
{
  int __debug = SEEN_OLABEL_2 =
    debug_execute_enter ("Executing procedure OLABEL_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("OLABEL_2");
  return (TRUE);
}


int
NSTMT_1 (YYTYPE * __arg)
{
  int __debug = SEEN_NSTMT_1 =
    debug_execute_enter ("Executing procedure NSTMT_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("NSTMT_1");
  return (TRUE);
}

int
NSTMT_2 (YYTYPE * __arg)
{
  int __debug = SEEN_NSTMT_2 =
    debug_execute_enter ("Executing procedure NSTMT_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>for</b></u> %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("NSTMT_2");
  return (TRUE);
}

int
NSTMT_3 (YYTYPE * __arg)
{
  int __debug = SEEN_NSTMT_3 =
    debug_execute_enter ("Executing procedure NSTMT_3 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>if</b></u> %s <u><b>then</b></u> %s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("NSTMT_3");
  return (TRUE);
}

int
NSTMT_4 (YYTYPE * __arg)
{
  int __debug = SEEN_NSTMT_4 =
    debug_execute_enter ("Executing procedure NSTMT_4 -- arg at %p", __arg);
  /* Is this perhaps 'check semi'? replacable by <?semi>  ??? */
  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("NSTMT_4");
  return (TRUE);
}



int
FORSTMNT_1 (YYTYPE * __arg)
{
  int __debug = SEEN_FORSTMNT_1 =
    debug_execute_enter ("Executing procedure FORSTMNT_1 -- arg at %p",
			 __arg);

  if ((strlen (((USERTYPE *) (__arg->execute.arg[8]->execute.user_value))) +
       strlen (((USERTYPE *) (__arg->execute.arg[9]->execute.user_value)))) >
      10)
    {
      __arg->execute.arg[0]->execute.user_value =
	formatf ("%s%s := %s%s%s <u><b>do</b></u>\n  %s%s",
		 ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
		 ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
		 ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
		 ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)),
		 ((USERTYPE *) (__arg->execute.arg[6]->execute.user_value)),
		 ((USERTYPE *) (__arg->execute.arg[8]->execute.user_value)),
		 ((USERTYPE *) (__arg->execute.arg[9]->execute.user_value)));
    }
  else
    {
      __arg->execute.arg[0]->execute.user_value =
	formatf ("%s%s := %s%s%s <u><b>do</b></u>%s%s%s",
		 ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
		 ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
		 ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
		 ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)),
		 ((USERTYPE *) (__arg->execute.arg[6]->execute.user_value)),
		 ((((*
		     ((USERTYPE *) (__arg->execute.arg[8]->execute.
				    user_value))) == '\0')
		   &&
		   ((*
		     ((USERTYPE *) (__arg->execute.arg[9]->execute.
				    user_value))) == ';')) ? "" : " "),
		 ((USERTYPE *) (__arg->execute.arg[8]->execute.user_value)),
		 ((USERTYPE *) (__arg->execute.arg[9]->execute.user_value)));
    }

  if (!_optimise)
    debug_execute_exit ("FORSTMNT_1");
  return (TRUE);
}


int
STMT_1 (YYTYPE * __arg)
{
  int __debug = SEEN_STMT_1 =
    debug_execute_enter ("Executing procedure STMT_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("STMT_1");
  return (TRUE);
}

int
STMT_2 (YYTYPE * __arg)
{
  int __debug = SEEN_STMT_2 =
    debug_execute_enter ("Executing procedure STMT_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>for</b></u> %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("STMT_2");
  return (TRUE);
}

int
STMT_3 (YYTYPE * __arg)
{
  int __debug = SEEN_STMT_3 =
    debug_execute_enter ("Executing procedure STMT_3 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>if</b></u> %s <u><b>then</b></u> %s%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("STMT_3");
  return (TRUE);
}

int
STMT_4 (YYTYPE * __arg)
{
  int __debug = SEEN_STMT_4 =
    debug_execute_enter ("Executing procedure STMT_4 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("STMT_4");
  return (TRUE);
}


int
BLKORCS_1 (YYTYPE * __arg)
{
  int __debug = SEEN_BLKORCS_1 =
    debug_execute_enter ("Executing procedure BLKORCS_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("BLKORCS_1");
  return (TRUE);
}

int
BLKORCS_2 (YYTYPE * __arg)
{
  int __debug = SEEN_BLKORCS_2 =
    debug_execute_enter ("Executing procedure BLKORCS_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("BLKORCS_2");
  return (TRUE);
}


int
FSTMT_1 (YYTYPE * __arg)
{
  int __debug = SEEN_FSTMT_1 =
    debug_execute_enter ("Executing procedure FSTMT_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("<u><b>begin</b></u>");
  delayed_ilev += 1;

  if (!_optimise)
    debug_execute_exit ("FSTMT_1");
  return (TRUE);
}

int
FSTMT_2 (YYTYPE * __arg)
{
  int __debug = SEEN_FSTMT_2 =
    debug_execute_enter ("Executing procedure FSTMT_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("FSTMT_2");
  return (TRUE);
}


int
USTMT_1 (YYTYPE * __arg)
{
  int __debug = SEEN_USTMT_1 =
    debug_execute_enter ("Executing procedure USTMT_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("<u><b>begin</b></u>");
  delayed_ilev += 1;

  if (!_optimise)
    debug_execute_exit ("USTMT_1");
  return (TRUE);
}

int
USTMT_2 (YYTYPE * __arg)
{
  int __debug = SEEN_USTMT_2 =
    debug_execute_enter ("Executing procedure USTMT_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>for</b></u> %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("USTMT_2");
  return (TRUE);
}

int
USTMT_3 (YYTYPE * __arg)
{
  int __debug = SEEN_USTMT_3 =
    debug_execute_enter ("Executing procedure USTMT_3 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("USTMT_3");
  return (TRUE);
}

int
USTMT_4 (YYTYPE * __arg)
{
  int __debug = SEEN_USTMT_4 =
    debug_execute_enter ("Executing procedure USTMT_4 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("USTMT_4");
  return (TRUE);
}


int
EPNAME_1 (YYTYPE * __arg)
{
  int __debug = SEEN_EPNAME_1 =
    debug_execute_enter ("Executing procedure EPNAME_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("EPNAME_1");
  return (TRUE);
}

int
EPNAME_2 (YYTYPE * __arg)
{
  int __debug = SEEN_EPNAME_2 =
    debug_execute_enter ("Executing procedure EPNAME_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("EPNAME_2");
  return (TRUE);
}


int
PROCSTMT_1 (YYTYPE * __arg)
{
  int __debug = SEEN_PROCSTMT_1 =
    debug_execute_enter ("Executing procedure PROCSTMT_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>algol</b></u> %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("PROCSTMT_1");
  return (TRUE);
}

int
PROCSTMT_2 (YYTYPE * __arg)
{
  int __debug = SEEN_PROCSTMT_2 =
    debug_execute_enter ("Executing procedure PROCSTMT_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>external</b></u> %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("PROCSTMT_2");
  return (TRUE);
}

int
PROCSTMT_3 (YYTYPE * __arg)
{
  int __debug = SEEN_PROCSTMT_3 =
    debug_execute_enter ("Executing procedure PROCSTMT_3 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>fortran</b></u> %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("PROCSTMT_3");
  return (TRUE);
}

int
PROCSTMT_4 (YYTYPE * __arg)
{
  int __debug = SEEN_PROCSTMT_4 =
    debug_execute_enter ("Executing procedure PROCSTMT_4 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>code</b></u> %s", __arg->execute.arg[2]->execute.text);

  if (!_optimise)
    debug_execute_exit ("PROCSTMT_4");
  return (TRUE);
}

int
PROCSTMT_5 (YYTYPE * __arg)
{
  int __debug = SEEN_PROCSTMT_5 =
    debug_execute_enter ("Executing procedure PROCSTMT_5 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("<u><b>begin</b></u>");
  delayed_ilev += 1;

  if (!_optimise)
    debug_execute_exit ("PROCSTMT_5");
  return (TRUE);
}

int
PROCSTMT_6 (YYTYPE * __arg)
{
  int __debug = SEEN_PROCSTMT_6 =
    debug_execute_enter ("Executing procedure PROCSTMT_6 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("PROCSTMT_6");
  return (TRUE);
}


int
ELSEq_1 (YYTYPE * __arg)
{
  int __debug = SEEN_ELSEq_1 =
    debug_execute_enter ("Executing procedure ELSEq_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf (" <u><b>else</b></u> %s%s",
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("ELSEq_1");
  return (TRUE);
}

int
ELSEq_2 (YYTYPE * __arg)
{
  int __debug = SEEN_ELSEq_2 =
    debug_execute_enter ("Executing procedure ELSEq_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("ELSEq_2");
  return (TRUE);
}


int
ELSESTMNT_1 (YYTYPE * __arg)
{
  int __debug = SEEN_ELSESTMNT_1 =
    debug_execute_enter ("Executing procedure ELSESTMNT_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>begin</b></u>%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));
  delayed_ilev += 1;;

  if (!_optimise)
    debug_execute_exit ("ELSESTMNT_1");
  return (TRUE);
}

int
ELSESTMNT_2 (YYTYPE * __arg)
{
  int __debug = SEEN_ELSESTMNT_2 =
    debug_execute_enter ("Executing procedure ELSESTMNT_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));

  if (!_optimise)
    debug_execute_exit ("ELSESTMNT_2");
  return (TRUE);
}


int
UI_1 (YYTYPE * __arg)
{
  int __debug = SEEN_UI_1 =
    debug_execute_enter ("Executing procedure UI_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("UI_1");
  return (TRUE);
}

int
UI_2 (YYTYPE * __arg)
{
  int __debug = SEEN_UI_2 =
    debug_execute_enter ("Executing procedure UI_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("UI_2");
  return (TRUE);
}

int
UI_3 (YYTYPE * __arg)
{
  int __debug = SEEN_UI_3 =
    debug_execute_enter ("Executing procedure UI_3 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>goto</b></u> %s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("UI_3");
  return (TRUE);
}


int
SS_1 (YYTYPE * __arg)
{
  int __debug = SEEN_SS_1 =
    debug_execute_enter ("Executing procedure SS_1 -- arg at %p", __arg);
  exit_flag = TRUE;
  if (!_optimise)
    debug_execute_exit ("SS_1");
  return (TRUE);
}

int
SS_2 (YYTYPE * __arg)
{
  int __debug = SEEN_SS_2 =
    debug_execute_enter ("Executing procedure SS_2 -- arg at %p", __arg);

  int i, c;
  char *line = ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));
  i = ilev * 4;
  while (i-- > 0)
    fputc (' ', stdout);
  for (;;)
    {
      c = (*line++) & 255;
      if (c == '\0')
	break;
      if (c == '\n')
	{
	  i = ilev * 4;
	  fputc ('\n', stdout);
	  while (i-- > 0)
	    fputc (' ', stdout);
	}
      else
	fputc (c, stdout);
    }
  /* indent(ilev); */
  /* fprintf(stdout, "%ss", $1); fflush(stdout); */

  if (!_optimise)
    debug_execute_exit ("SS_2");
  return (TRUE);
}

int
SS_3 (YYTYPE * __arg)
{
  int __debug = SEEN_SS_3 =
    debug_execute_enter ("Executing procedure SS_3 -- arg at %p", __arg);

  fprintf (stdout, "\n* Syntax error at: %s<BR><BR>\n",
	   htmlescape (__arg->execute.arg[1]->execute.text));

  if (!_optimise)
    debug_execute_exit ("SS_3");
  return (TRUE);
}


int
STMNT_1 (YYTYPE * __arg)
{
  int __debug = SEEN_STMNT_1 =
    debug_execute_enter ("Executing procedure STMNT_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s;",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("STMNT_1");
  return (TRUE);
}

int
STMNT_2 (YYTYPE * __arg)
{
  int __debug = SEEN_STMNT_2 =
    debug_execute_enter ("Executing procedure STMNT_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s<u><b>procedure</b></u> %s%s; <u><b>code</b></u> %s;\n",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     __arg->execute.arg[7]->execute.text);

  if (!_optimise)
    debug_execute_exit ("STMNT_2");
  return (TRUE);
}

int
STMNT_3 (YYTYPE * __arg)
{
  int __debug = SEEN_STMNT_3 =
    debug_execute_enter ("Executing procedure STMNT_3 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>end</b></u>%s%s;",
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)));
  ilev -= 1;

  if (!_optimise)
    debug_execute_exit ("STMNT_3");
  return (TRUE);
}

int
STMNT_4 (YYTYPE * __arg)
{
  int __debug = SEEN_STMNT_4 =
    debug_execute_enter ("Executing procedure STMNT_4 -- arg at %p", __arg);
  /* final end of program */
  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>end</b></u>%s;",
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)));
  ilev -= 1;

  if (!_optimise)
    debug_execute_exit ("STMNT_4");
  return (TRUE);
}

int
STMNT_5 (YYTYPE * __arg)
{
  int __debug = SEEN_STMNT_5 =
    debug_execute_enter ("Executing procedure STMNT_5 -- arg at %p", __arg);

  /* HACK! */
  if (strncmp
      ((((USERTYPE *) (__arg->execute.arg[2]->execute.user_value))) + 1,
       "========", 8) == 0)
    {
      ilev = 0;
      delayed_ilev = 0;
    }
  /* END HACK! */
  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>comment</b></u> %s", /*removed ';' */ 
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.
			    user_value))
	     /* unconvert any 'KEYWORDS' in comment text? */ );

  if (!_optimise)
    debug_execute_exit ("STMNT_5");
  return (TRUE);
}

int
STMNT_6 (YYTYPE * __arg)
{
  int __debug = SEEN_STMNT_6 =
    debug_execute_enter ("Executing procedure STMNT_6 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s;",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("STMNT_6");
  return (TRUE);
}

int
STMNT_7 (YYTYPE * __arg)
{
  int __debug = SEEN_STMNT_7 =
    debug_execute_enter ("Executing procedure STMNT_7 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>begin</b></u>%s;",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));
  delayed_ilev += 1;

  if (!_optimise)
    debug_execute_exit ("STMNT_7");
  return (TRUE);
}


int
STMNT_8 (YYTYPE * __arg)
{
  int __debug = SEEN_STMNT_8 =
    debug_execute_enter ("Executing procedure STMNT_8 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>switch</b></u> %s%s%s%s := %s%s;",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[7]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[8]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("STMNT_8");
  return (TRUE);
}

int
STMNT_9 (YYTYPE * __arg)
{
  int __debug = SEEN_STMNT_9 =
    debug_execute_enter ("Executing procedure STMNT_9 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>own</b></u> %s %s;",
	     ((USERTYPE *) (__arg->execute.arg[3]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("STMNT_9");
  return (TRUE);
}

int
STMNT_10 (YYTYPE * __arg)
{
  int __debug = SEEN_STMNT_10 =
    debug_execute_enter ("Executing procedure STMNT_10 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s: %s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("STMNT_10");
  return (TRUE);
}

int
STMNT_11 (YYTYPE * __arg)
{
  int __debug = SEEN_STMNT_11 =
    debug_execute_enter ("Executing procedure STMNT_11 -- arg at %p", __arg);
  /* empty statement? - isn't this already caught in NSTMT/STMT/UI? */
  __arg->execute.arg[0]->execute.user_value = formatf (";");

  if (!_optimise)
    debug_execute_exit ("STMNT_11");
  return (TRUE);
}

int
STMNT_12 (YYTYPE * __arg)
{
  int __debug = SEEN_STMNT_12 =
    debug_execute_enter ("Executing procedure STMNT_12 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("'<u><b>codeon</b></u>;");

  if (!_optimise)
    debug_execute_exit ("STMNT_12");
  return (TRUE);
}

int
STMNT_13 (YYTYPE * __arg)
{
  int __debug = SEEN_STMNT_13 =
    debug_execute_enter ("Executing procedure STMNT_13 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>codeoff</b></u>;");

  if (!_optimise)
    debug_execute_exit ("STMNT_13");
  return (TRUE);
}

int
STMNT_14 (YYTYPE * __arg)
{
  int __debug = SEEN_STMNT_14 =
    debug_execute_enter ("Executing procedure STMNT_14 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("<u><b>program</b></u> %s;",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("STMNT_14");
  return (TRUE);
}

/* BIPS */


int
NOTENAME_1 (YYTYPE * __arg)
{
  int __debug = SEEN_NOTENAME_1 =
    debug_execute_enter ("Executing procedure NOTENAME_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("NOTENAME_1");
  return (TRUE);
}

int
S_1 (YYTYPE * __arg)
{
  int __debug = SEEN_S_1 =
    debug_execute_enter ("Executing procedure S_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf (";");
  if (!_optimise)
    debug_execute_exit ("S_1");
  return (TRUE);
}

int
S_2 (YYTYPE * __arg)
{
  int __debug = SEEN_S_2 =
    debug_execute_enter ("Executing procedure S_2 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("S_2");
  return (TRUE);
}

int
S_3 (YYTYPE * __arg)
{
  int __debug = SEEN_S_3 =
    debug_execute_enter ("Executing procedure S_3 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("S_3");
  return (TRUE);
}

int
UP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_UP_1 =
    debug_execute_enter ("Executing procedure UP_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("UP_1");
  return (TRUE);
}

int
DOWN_1 (YYTYPE * __arg)
{
  int __debug = SEEN_DOWN_1 =
    debug_execute_enter ("Executing procedure DOWN_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("DOWN_1");
  return (TRUE);
}

int
CHKLAB_1 (YYTYPE * __arg)
{
  int __debug = SEEN_CHKLAB_1 =
    debug_execute_enter ("Executing procedure CHKLAB_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("CHKLAB_1");
  return (TRUE);
}

int
ass_1 (YYTYPE * __arg)
{
  int __debug = SEEN_ass_1 =
    debug_execute_enter ("Executing procedure ass_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("ass_1");
  return (TRUE);
}

int
LINKOWNS_1 (YYTYPE * __arg)
{
  int __debug = SEEN_LINKOWNS_1 =
    debug_execute_enter ("Executing procedure LINKOWNS_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("LINKOWNS_1");
  return (TRUE);
}

int
ARRAYTYPE_1 (YYTYPE * __arg)
{
  int __debug = SEEN_ARRAYTYPE_1 =
    debug_execute_enter ("Executing procedure ARRAYTYPE_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("ARRAYTYPE_1");
  return (TRUE);
}

int
CHECKSC_1 (YYTYPE * __arg)
{
  int __debug = SEEN_CHECKSC_1 =
    debug_execute_enter ("Executing procedure CHECKSC_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");	/* GUESSING!!! */
  if (!_optimise)
    debug_execute_exit ("CHECKSC_1");
  return (TRUE);
}

int
CHKLPL_1 (YYTYPE * __arg)
{
  int __debug = SEEN_CHKLPL_1 =
    debug_execute_enter ("Executing procedure CHKLPL_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("CHKLPL_1");
  return (TRUE);
}

int
CMPND_1 (YYTYPE * __arg)
{
  int __debug = SEEN_CMPND_1 =
    debug_execute_enter ("Executing procedure CMPND_1 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");	/* Also need <!LevelLessthanOne> (BIP1036) */

  if (!_optimise)
    debug_execute_exit ("CMPND_1");
  return (TRUE);
}

int
CMPND_2 (YYTYPE * __arg)
{
  int __debug = SEEN_CMPND_2 =
    debug_execute_enter ("Executing procedure CMPND_2 -- arg at %p", __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");	/* Also need <!LevelLessthanOne> (BIP1036) */

  if (!_optimise)
    debug_execute_exit ("CMPND_2");
  return (TRUE);
}


int
COMTEXT_1 (YYTYPE * __arg)
{
  int __debug = SEEN_COMTEXT_1 =
    debug_execute_enter ("Executing procedure COMTEXT_1 -- arg at %p", __arg);
  /* BREAKS WHEN ".," USED AS SEMI! */
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s", __arg->execute.arg[1]->execute.text,
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));
  /* WARNING: <COMTEXT> may be multi-line - not yet handled in 'filter.c
     ... */
  /* Also... should we undo 'KEYWORD' translation in comments here? */

  if (!_optimise)
    debug_execute_exit ("COMTEXT_1");
  return (TRUE);
}


int
continuecom_1 (YYTYPE * __arg)
{
  int __debug = SEEN_continuecom_1 =
    debug_execute_enter ("Executing procedure continuecom_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("\n%s",
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("continuecom_1");
  return (TRUE);
}

int
continuecom_2 (YYTYPE * __arg)
{
  int __debug = SEEN_continuecom_2 =
    debug_execute_enter ("Executing procedure continuecom_2 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("continuecom_2");
  return (TRUE);
}


int
ENDTEXT_1 (YYTYPE * __arg)
{
  int __debug = SEEN_ENDTEXT_1 =
    debug_execute_enter ("Executing procedure ENDTEXT_1 -- arg at %p", __arg);

  if (*(((USERTYPE *) (__arg->execute.arg[1]->execute.user_value))) != '\0')
    __arg->execute.arg[0]->execute.user_value =
      formatf (" %s",
	       ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)));
  else
    __arg->execute.arg[0]->execute.user_value = formatf ("");

  if (!_optimise)
    debug_execute_exit ("ENDTEXT_1");
  return (TRUE);
}

int
RENDTEXT_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RENDTEXT_1 =
    debug_execute_enter ("Executing procedure RENDTEXT_1 -- arg at %p",
			 __arg);

  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[4]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[5]->execute.user_value)));

  if (!_optimise)
    debug_execute_exit ("RENDTEXT_1");
  return (TRUE);
}

int
RENDTEXT_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RENDTEXT_2 =
    debug_execute_enter ("Executing procedure RENDTEXT_2 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");	/* text up to ; or 'end' or 'else' */
  if (!_optimise)
    debug_execute_exit ("RENDTEXT_2");
  return (TRUE);
}

int
end_1 (YYTYPE * __arg)
{
  int __debug = SEEN_end_1 =
    debug_execute_enter ("Executing procedure end_1 -- arg at %p", __arg);

  if (!_optimise)
    debug_execute_exit ("end_1");
  return (TRUE);
}

int
then_1 (YYTYPE * __arg)
{
  int __debug = SEEN_then_1 =
    debug_execute_enter ("Executing procedure then_1 -- arg at %p", __arg);

  if (!_optimise)
    debug_execute_exit ("then_1");
  return (TRUE);
}

int
else_1 (YYTYPE * __arg)
{
  int __debug = SEEN_else_1 =
    debug_execute_enter ("Executing procedure else_1 -- arg at %p", __arg);

  if (!_optimise)
    debug_execute_exit ("else_1");
  return (TRUE);
}

int
semi_1 (YYTYPE * __arg)
{
  int __debug = SEEN_semi_1 =
    debug_execute_enter ("Executing procedure semi_1 -- arg at %p", __arg);

  if (!_optimise)
    debug_execute_exit ("semi_1");
  return (TRUE);
}

int
semi_2 (YYTYPE * __arg)
{
  int __debug = SEEN_semi_2 =
    debug_execute_enter ("Executing procedure semi_2 -- arg at %p", __arg);
  /* alternative orthography */
  if (!_optimise)
    debug_execute_exit ("semi_2");
  return (TRUE);
}

int
ch_1 (YYTYPE * __arg)
{
  int __debug = SEEN_ch_1 =
    debug_execute_enter ("Executing procedure ch_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s", __arg->execute.arg[1]->execute.text);
  if (!_optimise)
    debug_execute_exit ("ch_1");
  return (TRUE);
}

int
closer_1 (YYTYPE * __arg)
{
  int __debug = SEEN_closer_1 =
    debug_execute_enter ("Executing procedure closer_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));
  if (!_optimise)
    debug_execute_exit ("closer_1");
  return (TRUE);
}

int
closer_2 (YYTYPE * __arg)
{
  int __debug = SEEN_closer_2 =
    debug_execute_enter ("Executing procedure closer_2 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));
  if (!_optimise)
    debug_execute_exit ("closer_2");
  return (TRUE);
}

int
closer_3 (YYTYPE * __arg)
{
  int __debug = SEEN_closer_3 =
    debug_execute_enter ("Executing procedure closer_3 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));
  if (!_optimise)
    debug_execute_exit ("closer_3");
  return (TRUE);
}

int
closer_4 (YYTYPE * __arg)
{
  int __debug = SEEN_closer_4 =
    debug_execute_enter ("Executing procedure closer_4 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));
  if (!_optimise)
    debug_execute_exit ("closer_4");
  return (TRUE);
}

int
closer_5 (YYTYPE * __arg)
{
  int __debug = SEEN_closer_5 =
    debug_execute_enter ("Executing procedure closer_5 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));
  if (!_optimise)
    debug_execute_exit ("closer_5");
  return (TRUE);
}


int
ICONST_1 (YYTYPE * __arg)
{
  int __debug = SEEN_ICONST_1 =
    debug_execute_enter ("Executing procedure ICONST_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     __arg->execute.arg[2]->execute.text);
  if (!_optimise)
    debug_execute_exit ("ICONST_1");
  return (TRUE);
}


int
decfract_1 (YYTYPE * __arg)
{
  int __debug = SEEN_decfract_1 =
    debug_execute_enter ("Executing procedure decfract_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s", __arg->execute.arg[1]->execute.text);
  if (!_optimise)
    debug_execute_exit ("decfract_1");
  return (TRUE);
}

int
expart_1 (YYTYPE * __arg)
{
  int __debug = SEEN_expart_1 =
    debug_execute_enter ("Executing procedure expart_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));
  if (!_optimise)
    debug_execute_exit ("expart_1");
  return (TRUE);
}

int
decnum_1 (YYTYPE * __arg)
{
  int __debug = SEEN_decnum_1 =
    debug_execute_enter ("Executing procedure decnum_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s", __arg->execute.arg[1]->execute.text,
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));
  if (!_optimise)
    debug_execute_exit ("decnum_1");
  return (TRUE);
}

int
decnum_2 (YYTYPE * __arg)
{
  int __debug = SEEN_decnum_2 =
    debug_execute_enter ("Executing procedure decnum_2 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));
  if (!_optimise)
    debug_execute_exit ("decnum_2");
  return (TRUE);
}

int
decnum_3 (YYTYPE * __arg)
{
  int __debug = SEEN_decnum_3 =
    debug_execute_enter ("Executing procedure decnum_3 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s", __arg->execute.arg[1]->execute.text);
  if (!_optimise)
    debug_execute_exit ("decnum_3");
  return (TRUE);
}

int
unsigned_1 (YYTYPE * __arg)
{
  int __debug = SEEN_unsigned_1 =
    debug_execute_enter ("Executing procedure unsigned_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));
  if (!_optimise)
    debug_execute_exit ("unsigned_1");
  return (TRUE);
}

int
unsigned_2 (YYTYPE * __arg)
{
  int __debug = SEEN_unsigned_2 =
    debug_execute_enter ("Executing procedure unsigned_2 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));
  if (!_optimise)
    debug_execute_exit ("unsigned_2");
  return (TRUE);
}

int
unsigned_3 (YYTYPE * __arg)
{
  int __debug = SEEN_unsigned_3 =
    debug_execute_enter ("Executing procedure unsigned_3 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value =
    ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value));
  if (!_optimise)
    debug_execute_exit ("unsigned_3");
  return (TRUE);
}

int
CONST_1 (YYTYPE * __arg)
{
  int __debug = SEEN_CONST_1 =
    debug_execute_enter ("Executing procedure CONST_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));
  if (!_optimise)
    debug_execute_exit ("CONST_1");
  return (TRUE);
}

int
subten_1 (YYTYPE * __arg)
{
  int __debug = SEEN_subten_1 =
    debug_execute_enter ("Executing procedure subten_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s",
	     (TRUE ? "<sub>10</sub>" : __arg->execute.arg[1]->execute.text));
  if (!_optimise)
    debug_execute_exit ("subten_1");
  return (TRUE);
}

int
subten_2 (YYTYPE * __arg)
{
  int __debug = SEEN_subten_2 =
    debug_execute_enter ("Executing procedure subten_2 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s",
	     (TRUE ? "<sub>10</sub>" : __arg->execute.arg[1]->execute.text));
  if (!_optimise)
    debug_execute_exit ("subten_2");
  return (TRUE);
}

int
LABTYPE_1 (YYTYPE * __arg)
{
  int __debug = SEEN_LABTYPE_1 =
    debug_execute_enter ("Executing procedure LABTYPE_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("LABTYPE_1");
  return (TRUE);
}

int
LETTERSTRING_1 (YYTYPE * __arg)
{
  int __debug = SEEN_LETTERSTRING_1 =
    debug_execute_enter ("Executing procedure LETTERSTRING_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s", __arg->execute.arg[1]->execute.text);
  if (!_optimise)
    debug_execute_exit ("LETTERSTRING_1");
  return (TRUE);
}

int
LHSQBR_1 (YYTYPE * __arg)
{
  int __debug = SEEN_LHSQBR_1 =
    debug_execute_enter ("Executing procedure LHSQBR_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("[");	/* escaped [ */
  if (!_optimise)
    debug_execute_exit ("LHSQBR_1");
  return (TRUE);
}

int
LHSQBR_2 (YYTYPE * __arg)
{
  int __debug = SEEN_LHSQBR_2 =
    debug_execute_enter ("Executing procedure LHSQBR_2 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("[");
  if (!_optimise)
    debug_execute_exit ("LHSQBR_2");
  return (TRUE);
}

int
RHSQBR_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RHSQBR_1 =
    debug_execute_enter ("Executing procedure RHSQBR_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("]");	/* escaped ] */
  if (!_optimise)
    debug_execute_exit ("RHSQBR_1");
  return (TRUE);
}

int
RHSQBR_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RHSQBR_2 =
    debug_execute_enter ("Executing procedure RHSQBR_2 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("]");
  if (!_optimise)
    debug_execute_exit ("RHSQBR_2");
  return (TRUE);
}

int
LINKARR_1 (YYTYPE * __arg)
{
  int __debug = SEEN_LINKARR_1 =
    debug_execute_enter ("Executing procedure LINKARR_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("LINKARR_1");
  return (TRUE);
}

int
LINKLAB_1 (YYTYPE * __arg)
{
  int __debug = SEEN_LINKLAB_1 =
    debug_execute_enter ("Executing procedure LINKLAB_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("LINKLAB_1");
  return (TRUE);
}

int
LINKPROC_1 (YYTYPE * __arg)
{
  int __debug = SEEN_LINKPROC_1 =
    debug_execute_enter ("Executing procedure LINKPROC_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("LINKPROC_1");
  return (TRUE);
}

int
LINKSCAL_1 (YYTYPE * __arg)
{
  int __debug = SEEN_LINKSCAL_1 =
    debug_execute_enter ("Executing procedure LINKSCAL_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("LINKSCAL_1");
  return (TRUE);
}

int
LINKSW_1 (YYTYPE * __arg)
{
  int __debug = SEEN_LINKSW_1 =
    debug_execute_enter ("Executing procedure LINKSW_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("LINKSW_1");
  return (TRUE);
}

int
NAME_1 (YYTYPE * __arg)
{
  int __debug = SEEN_NAME_1 =
    debug_execute_enter ("Executing procedure NAME_1 -- arg at %p", __arg);

  char *s = __arg->execute.arg[1]->execute.text;
  while (*s != '\0')
    {
      if (*s == '_')
	*s = ' ';
      s += 1;
    }
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s", __arg->execute.arg[1]->execute.text);

  if (!_optimise)
    debug_execute_exit ("NAME_1");
  return (TRUE);
}


int
NOMORE_1 (YYTYPE * __arg)
{
  int __debug = SEEN_NOMORE_1 =
    debug_execute_enter ("Executing procedure NOMORE_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("NOMORE_1");
  return (TRUE);
}

int
NOMORE_2 (YYTYPE * __arg)
{
  int __debug = SEEN_NOMORE_2 =
    debug_execute_enter ("Executing procedure NOMORE_2 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");	/* true if next char is "," or ")" */
  if (!_optimise)
    debug_execute_exit ("NOMORE_2");
  return (TRUE);
}

int
comma_1 (YYTYPE * __arg)
{
  int __debug = SEEN_comma_1 =
    debug_execute_enter ("Executing procedure comma_1 -- arg at %p", __arg);

  if (!_optimise)
    debug_execute_exit ("comma_1");
  return (TRUE);
}

int
crb_1 (YYTYPE * __arg)
{
  int __debug = SEEN_crb_1 =
    debug_execute_enter ("Executing procedure crb_1 -- arg at %p", __arg);

  if (!_optimise)
    debug_execute_exit ("crb_1");
  return (TRUE);
}


int
NOTELINE_1 (YYTYPE * __arg)
{
  int __debug = SEEN_NOTELINE_1 =
    debug_execute_enter ("Executing procedure NOTELINE_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("NOTELINE_1");
  return (TRUE);
}

int
ONAME_1 (YYTYPE * __arg)
{
  int __debug = SEEN_ONAME_1 =
    debug_execute_enter ("Executing procedure ONAME_1 -- arg at %p", __arg);

  char *s = __arg->execute.arg[1]->execute.text;
  while (*s != '\0')
    {
      if (*s == '_')
	*s = ' ';
      s += 1;
    }
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s", __arg->execute.arg[1]->execute.text);

  if (!_optimise)
    debug_execute_exit ("ONAME_1");
  return (TRUE);
}

int
ONAMELIST_1 (YYTYPE * __arg)
{
  int __debug = SEEN_ONAMELIST_1 =
    debug_execute_enter ("Executing procedure ONAMELIST_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s%s",
	     ((USERTYPE *) (__arg->execute.arg[1]->execute.user_value)),
	     ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));
  if (!_optimise)
    debug_execute_exit ("ONAMELIST_1");
  return (TRUE);
}

int
RESTOFONAMELIST_1 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFONAMELIST_1 =
    debug_execute_enter ("Executing procedure RESTOFONAMELIST_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value = formatf (", %s", ((USERTYPE *) (__arg->execute.arg[2]->execute.user_value)));	/* I'm guessing ... */
  if (!_optimise)
    debug_execute_exit ("RESTOFONAMELIST_1");
  return (TRUE);
}

int
RESTOFONAMELIST_2 (YYTYPE * __arg)
{
  int __debug = SEEN_RESTOFONAMELIST_2 =
    debug_execute_enter ("Executing procedure RESTOFONAMELIST_2 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("RESTOFONAMELIST_2");
  return (TRUE);
}


int
OP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_OP_1 =
    debug_execute_enter ("Executing procedure OP_1 -- arg at %p", __arg);

  /* $0 = formatf((TRUE?"<IMG SRC=\"power.gif\" WIDTH=7 HEIGHT=9 ALT=\"POWER\">":"^")); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&uarr;");

  if (!_optimise)
    debug_execute_exit ("OP_1");
  return (TRUE);
}

int
OP_2 (YYTYPE * __arg)
{
  int __debug = SEEN_OP_2 =
    debug_execute_enter ("Executing procedure OP_2 -- arg at %p", __arg);

  /* $0 = formatf((TRUE?"<IMG SRC=\"power.gif\" WIDTH=7 HEIGHT=9 ALT=\"POWER\">":"**")); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&uarr;");

  if (!_optimise)
    debug_execute_exit ("OP_2");
  return (TRUE);
}

int
OP_3 (YYTYPE * __arg)
{
  int __debug = SEEN_OP_3 =
    debug_execute_enter ("Executing procedure OP_3 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("+");
  if (!_optimise)
    debug_execute_exit ("OP_3");
  return (TRUE);
}

int
OP_4 (YYTYPE * __arg)
{
  int __debug = SEEN_OP_4 =
    debug_execute_enter ("Executing procedure OP_4 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("-");
  if (!_optimise)
    debug_execute_exit ("OP_4");
  return (TRUE);
}

int
OP_5 (YYTYPE * __arg)
{
  int __debug = SEEN_OP_5 =
    debug_execute_enter ("Executing procedure OP_5 -- arg at %p", __arg);

  /* $0 = formatf((TRUE?"<IMG SRC=\"times.gif\" WIDTH=7 HEIGHT=9 ALT=\"TIMES\" HSPACE=\"1\">":"*")); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&times;");

  if (!_optimise)
    debug_execute_exit ("OP_5");
  return (TRUE);
}

int
OP_6 (YYTYPE * __arg)
{
  int __debug = SEEN_OP_6 =
    debug_execute_enter ("Executing procedure OP_6 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("//");
  if (!_optimise)
    debug_execute_exit ("OP_6");
  return (TRUE);
}

int
OP_7 (YYTYPE * __arg)
{
  int __debug = SEEN_OP_7 =
    debug_execute_enter ("Executing procedure OP_7 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ((TRUE ? "&divide;" : "/"));
  if (!_optimise)
    debug_execute_exit ("OP_7");
  return (TRUE);
}

int
OP_8 (YYTYPE * __arg)
{
  int __debug = SEEN_OP_8 =
    debug_execute_enter ("Executing procedure OP_8 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ((TRUE ? "&divide;" : "<u><b>div</b></u>"));
  if (!_optimise)
    debug_execute_exit ("OP_8");
  return (TRUE);
}

int
OP_9 (YYTYPE * __arg)
{
  int __debug = SEEN_OP_9 =
    debug_execute_enter ("Executing procedure OP_9 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ((FALSE ? "%" : "<u><b>mod</b></u>"));
  if (!_optimise)
    debug_execute_exit ("OP_9");
  return (TRUE);
}

int
OP_10 (YYTYPE * __arg)
{
  int __debug = SEEN_OP_10 =
    debug_execute_enter ("Executing procedure OP_10 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ((FALSE ? "%" : "<u><b>mod</b></u>"));
  /* BOGUS operator as far as I can see.  Used in the example
     for jensen's device (jensen3.a60) found at everything2.com */

  if (!_optimise)
    debug_execute_exit ("OP_10");
  return (TRUE);
}

int
OP_11 (YYTYPE * __arg)
{
  int __debug = SEEN_OP_11 =
    debug_execute_enter ("Executing procedure OP_11 -- arg at %p", __arg);

  /* $0 = formatf((TRUE?"<IMG SRC=\"power.gif\" WIDTH=7 HEIGHT=9 ALT=\"POWER\">":"<u><b>power</b></u>")); */
  __arg->execute.arg[0]->execute.user_value = formatf ("&times;");

  if (!_optimise)
    debug_execute_exit ("OP_11");
  return (TRUE);
}


int
PLUSopt_1 (YYTYPE * __arg)
{
  int __debug = SEEN_PLUSopt_1 =
    debug_execute_enter ("Executing procedure PLUSopt_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("+");	/* Unary ops */
  if (!_optimise)
    debug_execute_exit ("PLUSopt_1");
  return (TRUE);
}

int
PLUSopt_2 (YYTYPE * __arg)
{
  int __debug = SEEN_PLUSopt_2 =
    debug_execute_enter ("Executing procedure PLUSopt_2 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("-");
  if (!_optimise)
    debug_execute_exit ("PLUSopt_2");
  return (TRUE);
}

int
PLUSopt_3 (YYTYPE * __arg)
{
  int __debug = SEEN_PLUSopt_3 =
    debug_execute_enter ("Executing procedure PLUSopt_3 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("PLUSopt_3");
  return (TRUE);
}

int
PROCTYPE_1 (YYTYPE * __arg)
{
  int __debug = SEEN_PROCTYPE_1 =
    debug_execute_enter ("Executing procedure PROCTYPE_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("PROCTYPE_1");
  return (TRUE);
}

int
SCALARTYPE_1 (YYTYPE * __arg)
{
  int __debug = SEEN_SCALARTYPE_1 =
    debug_execute_enter ("Executing procedure SCALARTYPE_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("SCALARTYPE_1");
  return (TRUE);
}

int
STRTYPE_1 (YYTYPE * __arg)
{
  int __debug = SEEN_STRTYPE_1 =
    debug_execute_enter ("Executing procedure STRTYPE_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("STRTYPE_1");
  return (TRUE);
}

int
SWBYNAME_1 (YYTYPE * __arg)
{
  int __debug = SEEN_SWBYNAME_1 =
    debug_execute_enter ("Executing procedure SWBYNAME_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("SWBYNAME_1");
  return (TRUE);
}

int
SWTYPE_1 (YYTYPE * __arg)
{
  int __debug = SEEN_SWTYPE_1 =
    debug_execute_enter ("Executing procedure SWTYPE_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("SWTYPE_1");
  return (TRUE);
}


int
TEXTTEXT_1 (YYTYPE * __arg)
{
  int __debug = SEEN_TEXTTEXT_1 =
    debug_execute_enter ("Executing procedure TEXTTEXT_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s", __arg->execute.arg[1]->execute.text);
  if (!_optimise)
    debug_execute_exit ("TEXTTEXT_1");
  return (TRUE);
}

int
TEXTTEXT_2 (YYTYPE * __arg)
{
  int __debug = SEEN_TEXTTEXT_2 =
    debug_execute_enter ("Executing procedure TEXTTEXT_2 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value =
    formatf ("%s", __arg->execute.arg[1]->execute.text);
  if (!_optimise)
    debug_execute_exit ("TEXTTEXT_2");
  return (TRUE);
}



int
TYPEeqA_1 (YYTYPE * __arg)
{
  int __debug = SEEN_TYPEeqA_1 =
    debug_execute_enter ("Executing procedure TYPEeqA_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");	/* Arithmetic */
  if (!_optimise)
    debug_execute_exit ("TYPEeqA_1");
  return (TRUE);
}

int
TYPEeqARR_1 (YYTYPE * __arg)
{
  int __debug = SEEN_TYPEeqARR_1 =
    debug_execute_enter ("Executing procedure TYPEeqARR_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");	/* Array? */
  if (!_optimise)
    debug_execute_exit ("TYPEeqARR_1");
  return (TRUE);
}

int
TYPEeqB_1 (YYTYPE * __arg)
{
  int __debug = SEEN_TYPEeqB_1 =
    debug_execute_enter ("Executing procedure TYPEeqB_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");	/* Boolean */
  if (!_optimise)
    debug_execute_exit ("TYPEeqB_1");
  return (TRUE);
}

int
TYPENOTARITH_1 (YYTYPE * __arg)
{
  int __debug = SEEN_TYPENOTARITH_1 =
    debug_execute_enter ("Executing procedure TYPENOTARITH_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("TYPENOTARITH_1");
  return (TRUE);
}

int
TYPENOTBOOLEAN_1 (YYTYPE * __arg)
{
  int __debug = SEEN_TYPENOTBOOLEAN_1 =
    debug_execute_enter ("Executing procedure TYPENOTBOOLEAN_1 -- arg at %p",
			 __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("TYPENOTBOOLEAN_1");
  return (TRUE);
}

int
UPATSEP_1 (YYTYPE * __arg)
{
  int __debug = SEEN_UPATSEP_1 =
    debug_execute_enter ("Executing procedure UPATSEP_1 -- arg at %p", __arg);
  __arg->execute.arg[0]->execute.user_value = formatf ("");
  if (!_optimise)
    debug_execute_exit ("UPATSEP_1");
  return (TRUE);
}





int
main_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("main_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 0, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("main_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, main_1, 1, "main", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("main_parse failed");
  return (FALSE);
}

int
DECLIST_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("DECLIST_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && NAME_parse (&__temp.execute.arg[1])
      && NOTENAME_parse (&__temp.execute.arg[2])
      && RESTOFDECLIST_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit
	  ("DECLIST_parse found option 1 -- <NAME> <NOTENAME> <RESTOFDECLIST> ");
      *__arg = makeparsetree (__temp, DECLIST_1, 3, "DECLIST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("DECLIST_parse failed");
  return (FALSE);
}

int
RESTOFDECLIST_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFDECLIST_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 1, &__temp.execute.arg[1])
      && NAME_parse (&__temp.execute.arg[2])
      && NOTENAME_parse (&__temp.execute.arg[3])
      && RESTOFDECLIST_parse (&__temp.execute.arg[4]))
    {
      if (!_optimise)
	debug_exit ("RESTOFDECLIST_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, RESTOFDECLIST_1, 4, "RESTOFDECLIST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFDECLIST_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 2, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFDECLIST_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, RESTOFDECLIST_2, 1, "RESTOFDECLIST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFDECLIST_parse failed");
  return (FALSE);
}

int
OPERAND_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("OPERAND_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && NAME_parse (&__temp.execute.arg[1])
      && TYPENOTBOOLEAN_parse (&__temp.execute.arg[2])
      && APP_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("OPERAND_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, OPERAND_1, 3, "OPERAND", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("OPERAND_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos) && CONST_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("OPERAND_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, OPERAND_2, 1, "OPERAND", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("OPERAND_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 3, &__temp.execute.arg[1])
      && EXPR_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 4, &__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit
	  ("OPERAND_parse found option 3 -- \"\\(\" <EXPR> \"\\)\" ");
      *__arg = makeparsetree (__temp, OPERAND_3, 3, "OPERAND", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("OPERAND_parse failed");
  return (FALSE);
}

int
EXPR_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("EXPR_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 5, &__temp.execute.arg[1])
      && BEXPR_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 6, &__temp.execute.arg[3])
      && PLUSopt_parse (&__temp.execute.arg[4])
      && OPERAND_parse (&__temp.execute.arg[5])
      && RESTOFEXPR_parse (&__temp.execute.arg[6])
      && _regexp_parse (savepat, 7, &__temp.execute.arg[7])
      && EXPR_parse (&__temp.execute.arg[8]))
    {
      if (!_optimise)
	debug_exit ("EXPR_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, EXPR_1, 8, "EXPR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("EXPR_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && PLUSopt_parse (&__temp.execute.arg[1])
      && OPERAND_parse (&__temp.execute.arg[2])
      && RESTOFEXPR_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit
	  ("EXPR_parse found option 2 -- <PLUSopt> <OPERAND> <RESTOFEXPR> ");
      *__arg = makeparsetree (__temp, EXPR_2, 3, "EXPR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("EXPR_parse failed");
  return (FALSE);
}

int
RESTOFEXPR_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFEXPR_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && OP_parse (&__temp.execute.arg[1])
      && OPERAND_parse (&__temp.execute.arg[2])
      && RESTOFEXPR_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("RESTOFEXPR_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, RESTOFEXPR_1, 3, "RESTOFEXPR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFEXPR_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 8, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFEXPR_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, RESTOFEXPR_2, 1, "RESTOFEXPR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFEXPR_parse failed");
  return (FALSE);
}

int
APP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("APP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && TYPEeqARR_parse (&__temp.execute.arg[1])
      && LHSQBR_parse (&__temp.execute.arg[2])
      && EXPR_parse (&__temp.execute.arg[3])
      && RESTOFAPP_parse (&__temp.execute.arg[4])
      && RHSQBR_parse (&__temp.execute.arg[5]))
    {
      if (!_optimise)
	debug_exit ("APP_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, APP_1, 5, "APP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("APP_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 9, &__temp.execute.arg[1])
      && RTP_parse (&__temp.execute.arg[2])
      && RESTOFRTPLIST_parse (&__temp.execute.arg[3])
      && _regexp_parse (savepat, 10, &__temp.execute.arg[4]))
    {
      if (!_optimise)
	debug_exit ("APP_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, APP_2, 4, "APP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("APP_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 11, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("APP_parse found option 3 -- \"\" ");
      *__arg = makeparsetree (__temp, APP_3, 1, "APP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("APP_parse failed");
  return (FALSE);
}

int
RESTOFAPP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFAPP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 12, &__temp.execute.arg[1])
      && EXPR_parse (&__temp.execute.arg[2])
      && RESTOFAPP_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("RESTOFAPP_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, RESTOFAPP_1, 3, "RESTOFAPP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFAPP_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 13, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFAPP_parse found option 2 -- \"\" ");
      *__arg = makeparsetree (__temp, RESTOFAPP_2, 1, "RESTOFAPP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFAPP_parse failed");
  return (FALSE);
}

int
LABAPP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("LABAPP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && LHSQBR_parse (&__temp.execute.arg[1])
      && EXPR_parse (&__temp.execute.arg[2])
      && RESTOFAPP_parse (&__temp.execute.arg[3])
      && RHSQBR_parse (&__temp.execute.arg[4]))
    {
      if (!_optimise)
	debug_exit ("LABAPP_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, LABAPP_1, 4, "LABAPP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("LABAPP_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 14, &__temp.execute.arg[1])
      && RTP_parse (&__temp.execute.arg[2])
      && RESTOFRTPLIST_parse (&__temp.execute.arg[3])
      && _regexp_parse (savepat, 15, &__temp.execute.arg[4]))
    {
      if (!_optimise)
	debug_exit ("LABAPP_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, LABAPP_2, 4, "LABAPP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("LABAPP_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 16, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("LABAPP_parse found option 3 -- \"\" ");
      *__arg = makeparsetree (__temp, LABAPP_3, 1, "LABAPP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("LABAPP_parse failed");
  return (FALSE);
}

int
BCONST_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("BCONST_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 17, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("BCONST_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, BCONST_1, 1, "BCONST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("BCONST_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 18, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("BCONST_parse found option 2 -- \"false\" ");
      *__arg = makeparsetree (__temp, BCONST_2, 1, "BCONST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("BCONST_parse failed");
  return (FALSE);
}

int
BOP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("BOP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 19, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("BOP_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, BOP_1, 1, "BOP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("BOP_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 20, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("BOP_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, BOP_2, 1, "BOP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("BOP_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 21, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("BOP_parse found option 3 -- ");
      *__arg = makeparsetree (__temp, BOP_3, 1, "BOP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("BOP_parse - trying option 4");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 22, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("BOP_parse found option 4 -- ");
      *__arg = makeparsetree (__temp, BOP_4, 1, "BOP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("BOP_parse - trying option 5");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 23, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("BOP_parse found option 5 -- ");
      *__arg = makeparsetree (__temp, BOP_5, 1, "BOP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("BOP_parse - trying option 6");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 24, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("BOP_parse found option 6 -- ");
      *__arg = makeparsetree (__temp, BOP_6, 1, "BOP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("BOP_parse - trying option 7");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 25, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("BOP_parse found option 7 -- \"eqv\" ");
      *__arg = makeparsetree (__temp, BOP_7, 1, "BOP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("BOP_parse failed");
  return (FALSE);
}

int
BTERM_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("BTERM_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 26, &__temp.execute.arg[1])
      && BOPERAND_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("BTERM_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, BTERM_1, 2, "BTERM", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("BTERM_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 27, &__temp.execute.arg[1])
      && BOPERAND_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("BTERM_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, BTERM_2, 2, "BTERM", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("BTERM_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos) && BOPERAND_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("BTERM_parse found option 3 -- <BOPERAND> ");
      *__arg = makeparsetree (__temp, BTERM_3, 1, "BTERM", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("BTERM_parse failed");
  return (FALSE);
}

int
SBEXPR_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("SBEXPR_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && BTERM_parse (&__temp.execute.arg[1])
      && RESTOFSBEXPR_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("SBEXPR_parse found option 1 -- <BTERM> <RESTOFSBEXPR> ");
      *__arg = makeparsetree (__temp, SBEXPR_1, 2, "SBEXPR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("SBEXPR_parse failed");
  return (FALSE);
}

int
RESTOFSBEXPR_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFSBEXPR_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && BOP_parse (&__temp.execute.arg[1])
      && BTERM_parse (&__temp.execute.arg[2])
      && RESTOFSBEXPR_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("RESTOFSBEXPR_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, RESTOFSBEXPR_1, 3, "RESTOFSBEXPR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFSBEXPR_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 28, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFSBEXPR_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, RESTOFSBEXPR_2, 1, "RESTOFSBEXPR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFSBEXPR_parse failed");
  return (FALSE);
}

int
BEXPR_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("BEXPR_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 29, &__temp.execute.arg[1])
      && BEXPR_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 30, &__temp.execute.arg[3])
      && SBEXPR_parse (&__temp.execute.arg[4])
      && _regexp_parse (savepat, 31, &__temp.execute.arg[5])
      && BEXPR_parse (&__temp.execute.arg[6]))
    {
      if (!_optimise)
	debug_exit ("BEXPR_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, BEXPR_1, 6, "BEXPR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("BEXPR_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos) && SBEXPR_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("BEXPR_parse found option 2 -- <SBEXPR> ");
      *__arg = makeparsetree (__temp, BEXPR_2, 1, "BEXPR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("BEXPR_parse failed");
  return (FALSE);
}

int
BOPERAND_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("BOPERAND_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && EXPR_parse (&__temp.execute.arg[1])
      && COMP_parse (&__temp.execute.arg[2])
      && EXPR_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("BOPERAND_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, BOPERAND_1, 3, "BOPERAND", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("BOPERAND_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && NAME_parse (&__temp.execute.arg[1])
      && TYPENOTARITH_parse (&__temp.execute.arg[2])
      && APP_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("BOPERAND_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, BOPERAND_2, 3, "BOPERAND", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("BOPERAND_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos) && BCONST_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("BOPERAND_parse found option 3 -- ");
      *__arg = makeparsetree (__temp, BOPERAND_3, 1, "BOPERAND", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("BOPERAND_parse - trying option 4");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 32, &__temp.execute.arg[1])
      && BEXPR_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 33, &__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit
	  ("BOPERAND_parse found option 4 -- \"\\(\" <BEXPR> \"\\)\" ");
      *__arg = makeparsetree (__temp, BOPERAND_4, 3, "BOPERAND", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("BOPERAND_parse failed");
  return (FALSE);
}

int
TYPEopt_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("TYPEopt_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 34, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("TYPEopt_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, TYPEopt_1, 1, "TYPEopt", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("TYPEopt_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 35, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("TYPEopt_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, TYPEopt_2, 1, "TYPEopt", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("TYPEopt_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 36, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("TYPEopt_parse found option 3 -- ");
      *__arg = makeparsetree (__temp, TYPEopt_3, 1, "TYPEopt", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("TYPEopt_parse - trying option 4");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 37, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("TYPEopt_parse found option 4 -- \"\" ");
      *__arg = makeparsetree (__temp, TYPEopt_4, 1, "TYPEopt", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("TYPEopt_parse failed");
  return (FALSE);
}

int
VALUEq_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("VALUEq_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && semi_parse (&__temp.execute.arg[1])
      && OPTCOM_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 38, &__temp.execute.arg[3])
      && NOTELINE_parse (&__temp.execute.arg[4])
      && ONAMELIST_parse (&__temp.execute.arg[5])
      && VALUEq_parse (&__temp.execute.arg[6]))
    {
      if (!_optimise)
	debug_exit ("VALUEq_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, VALUEq_1, 6, "VALUEq", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("VALUEq_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 39, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("VALUEq_parse found option 2 -- \"\" ");
      *__arg = makeparsetree (__temp, VALUEq_2, 1, "VALUEq", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("VALUEq_parse failed");
  return (FALSE);
}

int
FPDEL_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("FPDEL_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 40, &__temp.execute.arg[1])
      && LABTYPE_parse (&__temp.execute.arg[2])
      && DECLIST_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("FPDEL_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, FPDEL_1, 3, "FPDEL", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("FPDEL_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 41, &__temp.execute.arg[1])
      && SWBYNAME_parse (&__temp.execute.arg[2])
      && DECLIST_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("FPDEL_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, FPDEL_2, 3, "FPDEL", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("FPDEL_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 42, &__temp.execute.arg[1])
      && STRTYPE_parse (&__temp.execute.arg[2])
      && DECLIST_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("FPDEL_parse found option 3 -- ");
      *__arg = makeparsetree (__temp, FPDEL_3, 3, "FPDEL", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("FPDEL_parse - trying option 4");
  lev += 1;

  if (note_backtrack (&__pos)
      && TYPEopt_parse (&__temp.execute.arg[1])
      && PDECLN_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("FPDEL_parse found option 4 -- <TYPEopt> <PDECLN> ");
      *__arg = makeparsetree (__temp, FPDEL_4, 2, "FPDEL", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("FPDEL_parse failed");
  return (FALSE);
}

int
PDECLN_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("PDECLN_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 43, &__temp.execute.arg[1])
      && ARRAYTYPE_parse (&__temp.execute.arg[2])
      && DECLIST_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("PDECLN_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, PDECLN_1, 3, "PDECLN", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("PDECLN_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 44, &__temp.execute.arg[1])
      && PROCTYPE_parse (&__temp.execute.arg[2])
      && DECLIST_parse (&__temp.execute.arg[3])
      && PARCOM_parse (&__temp.execute.arg[4]))
    {
      if (!_optimise)
	debug_exit ("PDECLN_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, PDECLN_2, 4, "PDECLN", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("PDECLN_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos) && SCALARTYPE_parse (&__temp.execute.arg[1]) && DECLIST_parse (&__temp.execute.arg[2]) && is (semi_parse, &__temp.execute.arg[3])	/* Lazy eval */
    )
    {
      if (!_optimise)
	debug_exit
	  ("PDECLN_parse found option 3 -- <SCALARTYPE> <DECLIST> <?semi> ");
      *__arg = makeparsetree (__temp, PDECLN_3, 3, "PDECLN", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("PDECLN_parse failed");
  return (FALSE);
}

int
FPP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("FPP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 45, &__temp.execute.arg[1])
      && NAME_parse (&__temp.execute.arg[2])
      && RESTOFFPLIST_parse (&__temp.execute.arg[3])
      && _regexp_parse (savepat, 46, &__temp.execute.arg[4]))
    {
      if (!_optimise)
	debug_exit ("FPP_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, FPP_1, 4, "FPP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("FPP_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 47, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("FPP_parse found option 2 -- \"\" ");
      *__arg = makeparsetree (__temp, FPP_2, 1, "FPP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("FPP_parse failed");
  return (FALSE);
}

int
RESTOFFPLIST_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFFPLIST_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && FPSEP_parse (&__temp.execute.arg[1])
      && NAME_parse (&__temp.execute.arg[2])
      && RESTOFFPLIST_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("RESTOFFPLIST_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, RESTOFFPLIST_1, 3, "RESTOFFPLIST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFFPLIST_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 48, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFFPLIST_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, RESTOFFPLIST_2, 1, "RESTOFFPLIST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFFPLIST_parse failed");
  return (FALSE);
}

int
FPSEP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("FPSEP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 49, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("FPSEP_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, FPSEP_1, 1, "FPSEP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("FPSEP_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 50, &__temp.execute.arg[1])
      && LETTERSTRING_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 51, &__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit
	  ("FPSEP_parse found option 2 -- \"\\)\" <LETTERSTRING> \":\\(\" ");
      *__arg = makeparsetree (__temp, FPSEP_2, 3, "FPSEP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("FPSEP_parse failed");
  return (FALSE);
}

int
OPTCOM_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("OPTCOM_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 52, &__temp.execute.arg[1])
      && COMTEXT_parse (&__temp.execute.arg[2])
      && OPTCOM_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("OPTCOM_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, OPTCOM_1, 3, "OPTCOM", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("OPTCOM_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 53, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("OPTCOM_parse found option 2 -- \"\" ");
      *__arg = makeparsetree (__temp, OPTCOM_2, 1, "OPTCOM", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("OPTCOM_parse failed");
  return (FALSE);
}

int
FPSPEC_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("FPSPEC_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && semi_parse (&__temp.execute.arg[1])
      && OPTCOM_parse (&__temp.execute.arg[2])
      && NOTELINE_parse (&__temp.execute.arg[3])
      && FPDEL_parse (&__temp.execute.arg[4])
      && FPSPEC_parse (&__temp.execute.arg[5]))
    {
      if (!_optimise)
	debug_exit ("FPSPEC_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, FPSPEC_1, 5, "FPSPEC", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("FPSPEC_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 54, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("FPSPEC_parse found option 2 -- \"\" ");
      *__arg = makeparsetree (__temp, FPSPEC_2, 1, "FPSPEC", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("FPSPEC_parse failed");
  return (FALSE);
}

int
PARCOM_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("PARCOM_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && semi_parse (&__temp.execute.arg[1])
      && _regexp_parse (savepat, 55, &__temp.execute.arg[2])
      && _regexp_parse (savepat, 56, &__temp.execute.arg[3])
      && NAME_parse (&__temp.execute.arg[4])
      && RESTOFFPLIST_parse (&__temp.execute.arg[5])
      && _regexp_parse (savepat, 57, &__temp.execute.arg[6])
      && COMVAL_parse (&__temp.execute.arg[7])
      && COMFP_parse (&__temp.execute.arg[8])
      && CHECKSC_parse (&__temp.execute.arg[9]))
    {
      if (!_optimise)
	debug_exit ("PARCOM_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, PARCOM_1, 9, "PARCOM", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("PARCOM_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 58, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("PARCOM_parse found option 2 -- \"\" ");
      *__arg = makeparsetree (__temp, PARCOM_2, 1, "PARCOM", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("PARCOM_parse failed");
  return (FALSE);
}

int
COLONq_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("COLONq_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 59, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COLONq_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, COLONq_1, 1, "COLONq", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COLONq_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 60, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COLONq_parse found option 2 -- \"\" ");
      *__arg = makeparsetree (__temp, COLONq_2, 1, "COLONq", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("COLONq_parse failed");
  return (FALSE);
}

int
COMVAL_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("COMVAL_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && COLONq_parse (&__temp.execute.arg[1])
      && _regexp_parse (savepat, 61, &__temp.execute.arg[2])
      && NOTELINE_parse (&__temp.execute.arg[3])
      && ONAMELIST_parse (&__temp.execute.arg[4]))
    {
      if (!_optimise)
	debug_exit ("COMVAL_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, COMVAL_1, 4, "COMVAL", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMVAL_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 62, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMVAL_parse found option 2 -- \"\" ");
      *__arg = makeparsetree (__temp, COMVAL_2, 1, "COMVAL", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("COMVAL_parse failed");
  return (FALSE);
}

int
COMFP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("COMFP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && COLONq_parse (&__temp.execute.arg[1])
      && NOTELINE_parse (&__temp.execute.arg[2])
      && COMDEL_parse (&__temp.execute.arg[3])
      && COMFP_parse (&__temp.execute.arg[4]))
    {
      if (!_optimise)
	debug_exit ("COMFP_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, COMFP_1, 4, "COMFP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMFP_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 63, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMFP_parse found option 2 -- \"\" ");
      *__arg = makeparsetree (__temp, COMFP_2, 1, "COMFP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("COMFP_parse failed");
  return (FALSE);
}

int
COMDEL_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("COMDEL_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 64, &__temp.execute.arg[1])
      && CNLIST_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("COMDEL_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, COMDEL_1, 2, "COMDEL", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMDEL_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 65, &__temp.execute.arg[1])
      && CNLIST_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("COMDEL_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, COMDEL_2, 2, "COMDEL", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMDEL_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 66, &__temp.execute.arg[1])
      && CNLIST_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("COMDEL_parse found option 3 -- ");
      *__arg = makeparsetree (__temp, COMDEL_3, 2, "COMDEL", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMDEL_parse - trying option 4");
  lev += 1;

  if (note_backtrack (&__pos)
      && TYPEopt_parse (&__temp.execute.arg[1])
      && COMDECLN_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("COMDEL_parse found option 4 -- <TYPEopt> <COMDECLN> ");
      *__arg = makeparsetree (__temp, COMDEL_4, 2, "COMDEL", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("COMDEL_parse failed");
  return (FALSE);
}

int
COMDECLN_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("COMDECLN_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 67, &__temp.execute.arg[1])
      && CNLIST_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("COMDECLN_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, COMDECLN_1, 2, "COMDECLN", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMDECLN_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 68, &__temp.execute.arg[1])
      && CNLIST_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("COMDECLN_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, COMDECLN_2, 2, "COMDECLN", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMDECLN_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && SCALARTYPE_parse (&__temp.execute.arg[1])
      && CNLIST_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit
	  ("COMDECLN_parse found option 3 -- <SCALARTYPE> <CNLIST> ");
      *__arg = makeparsetree (__temp, COMDECLN_3, 2, "COMDECLN", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("COMDECLN_parse failed");
  return (FALSE);
}

int
CNLIST_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("CNLIST_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && NAME_parse (&__temp.execute.arg[1])
      && RESTOFCNLIST_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("CNLIST_parse found option 1 -- <NAME> <RESTOFCNLIST> ");
      *__arg = makeparsetree (__temp, CNLIST_1, 2, "CNLIST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("CNLIST_parse failed");
  return (FALSE);
}

int
RESTOFCNLIST_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFCNLIST_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 69, &__temp.execute.arg[1])
      && NAME_parse (&__temp.execute.arg[2])
      && RESTOFCNLIST_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("RESTOFCNLIST_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, RESTOFCNLIST_1, 3, "RESTOFCNLIST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFCNLIST_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 70, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFCNLIST_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, RESTOFCNLIST_2, 1, "RESTOFCNLIST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFCNLIST_parse failed");
  return (FALSE);
}

int
GENSDE_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("GENSDE_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && NAME_parse (&__temp.execute.arg[1])
      && LABAPP_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("GENSDE_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, GENSDE_1, 2, "GENSDE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("GENSDE_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 71, &__temp.execute.arg[1])
      && GENDE_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 72, &__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit
	  ("GENSDE_parse found option 2 -- \"\\(\" <GENDE> \"\\)\" ");
      *__arg = makeparsetree (__temp, GENSDE_2, 3, "GENSDE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("GENSDE_parse failed");
  return (FALSE);
}

int
GENDE_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("GENDE_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 73, &__temp.execute.arg[1])
      && BEXPR_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 74, &__temp.execute.arg[3])
      && GENSDE_parse (&__temp.execute.arg[4])
      && _regexp_parse (savepat, 75, &__temp.execute.arg[5])
      && GENDE_parse (&__temp.execute.arg[6]))
    {
      if (!_optimise)
	debug_exit ("GENDE_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, GENDE_1, 6, "GENDE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("GENDE_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos) && GENSDE_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("GENDE_parse found option 2 -- <GENSDE> ");
      *__arg = makeparsetree (__temp, GENDE_2, 1, "GENDE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("GENDE_parse failed");
  return (FALSE);
}

int
SDE_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("SDE_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && NAME_parse (&__temp.execute.arg[1])
      && APP_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("SDE_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, SDE_1, 2, "SDE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("SDE_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 76, &__temp.execute.arg[1])
      && DE_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 77, &__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("SDE_parse found option 2 -- \"\\(\" <DE> \"\\)\" ");
      *__arg = makeparsetree (__temp, SDE_2, 3, "SDE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("SDE_parse failed");
  return (FALSE);
}

int
DE_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("DE_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 78, &__temp.execute.arg[1])
      && BEXPR_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 79, &__temp.execute.arg[3])
      && SDE_parse (&__temp.execute.arg[4])
      && _regexp_parse (savepat, 80, &__temp.execute.arg[5])
      && DE_parse (&__temp.execute.arg[6]))
    {
      if (!_optimise)
	debug_exit ("DE_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, DE_1, 6, "DE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("DE_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos) && SDE_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("DE_parse found option 2 -- <SDE> ");
      *__arg = makeparsetree (__temp, DE_2, 1, "DE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("DE_parse failed");
  return (FALSE);
}

int
RESTOFGENDELIST_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFGENDELIST_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 81, &__temp.execute.arg[1])
      && GENDE_parse (&__temp.execute.arg[2])
      && RESTOFGENDELIST_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("RESTOFGENDELIST_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, RESTOFGENDELIST_1, 3, "RESTOFGENDELIST",
		       __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFGENDELIST_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 82, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFGENDELIST_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, RESTOFGENDELIST_2, 1, "RESTOFGENDELIST",
		       __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFGENDELIST_parse failed");
  return (FALSE);
}

int
RTP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RTP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos) && TEXTTEXT_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RTP_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, RTP_1, 1, "RTP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RTP_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && NAME_parse (&__temp.execute.arg[1])
      && APP_parse (&__temp.execute.arg[2])
      && NOMORE_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("RTP_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, RTP_2, 3, "RTP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RTP_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && EXPR_parse (&__temp.execute.arg[1])
      && NOMORE_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("RTP_parse found option 3 -- ");
      *__arg = makeparsetree (__temp, RTP_3, 2, "RTP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RTP_parse - trying option 4");
  lev += 1;

  if (note_backtrack (&__pos)
      && BEXPR_parse (&__temp.execute.arg[1])
      && NOMORE_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("RTP_parse found option 4 -- ");
      *__arg = makeparsetree (__temp, RTP_4, 2, "RTP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RTP_parse - trying option 5");
  lev += 1;

  if (note_backtrack (&__pos)
      && DE_parse (&__temp.execute.arg[1])
      && NOMORE_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("RTP_parse found option 5 -- <DE> <NOMORE> ");
      *__arg = makeparsetree (__temp, RTP_5, 2, "RTP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RTP_parse failed");
  return (FALSE);
}

int
RESTOFRTPLIST_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFRTPLIST_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && FPSEP_parse (&__temp.execute.arg[1])
      && RTP_parse (&__temp.execute.arg[2])
      && RESTOFRTPLIST_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("RESTOFRTPLIST_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, RESTOFRTPLIST_1, 3, "RESTOFRTPLIST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFRTPLIST_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 83, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFRTPLIST_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, RESTOFRTPLIST_2, 1, "RESTOFRTPLIST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFRTPLIST_parse failed");
  return (FALSE);
}

int
RESTOFASS_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFASS_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && APP_parse (&__temp.execute.arg[1])
      && _regexp_parse (savepat, 84, &__temp.execute.arg[2])
      && RESTOFABLP_parse (&__temp.execute.arg[3])
      && abEXPR_parse (&__temp.execute.arg[4]))
    {
      if (!_optimise)
	debug_exit
	  ("RESTOFASS_parse found option 1 -- <APP> \":=\" <RESTOFABLP> <abEXPR> ");
      *__arg = makeparsetree (__temp, RESTOFASS_1, 4, "RESTOFASS", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFASS_parse failed");
  return (FALSE);
}

int
abEXPR_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("abEXPR_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos) && EXPR_parse (&__temp.execute.arg[1]) && is (closer_parse, &__temp.execute.arg[2])	/* Lazy eval */
    )
    {
      if (!_optimise)
	debug_exit ("abEXPR_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, abEXPR_1, 2, "abEXPR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("abEXPR_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos) && BEXPR_parse (&__temp.execute.arg[1]) && is (closer_parse, &__temp.execute.arg[2])	/* Lazy eval */
    )
    {
      if (!_optimise)
	debug_exit ("abEXPR_parse found option 2 -- <BEXPR> <?closer> ");
      *__arg = makeparsetree (__temp, abEXPR_2, 2, "abEXPR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("abEXPR_parse failed");
  return (FALSE);
}

int
RESTOFABLP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFABLP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && CHKLPL_parse (&__temp.execute.arg[1])
      && ONAME_parse (&__temp.execute.arg[2])
      && APP_parse (&__temp.execute.arg[3])
      && _regexp_parse (savepat, 85, &__temp.execute.arg[4])
      && RESTOFABLP_parse (&__temp.execute.arg[5]))
    {
      if (!_optimise)
	debug_exit ("RESTOFABLP_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, RESTOFABLP_1, 5, "RESTOFABLP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFABLP_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 86, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFABLP_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, RESTOFABLP_2, 1, "RESTOFABLP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFABLP_parse failed");
  return (FALSE);
}

int
oldRESTOFASS_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("oldRESTOFASS_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && TYPEeqA_parse (&__temp.execute.arg[1])
      && APP_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 87, &__temp.execute.arg[3])
      && oldRESTOFALP_parse (&__temp.execute.arg[4])
      && EXPR_parse (&__temp.execute.arg[5]))
    {
      if (!_optimise)
	debug_exit ("oldRESTOFASS_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, oldRESTOFASS_1, 5, "oldRESTOFASS", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("oldRESTOFASS_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && TYPEeqB_parse (&__temp.execute.arg[1])
      && APP_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 88, &__temp.execute.arg[3])
      && oldRESTOFBLP_parse (&__temp.execute.arg[4])
      && BEXPR_parse (&__temp.execute.arg[5]))
    {
      if (!_optimise)
	debug_exit
	  ("oldRESTOFASS_parse found option 2 -- <TYPEeqB> <APP> \":=\" <oldRESTOFBLP> <BEXPR> ");
      *__arg =
	makeparsetree (__temp, oldRESTOFASS_2, 5, "oldRESTOFASS", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("oldRESTOFASS_parse failed");
  return (FALSE);
}

int
oldRESTOFBLP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("oldRESTOFBLP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && CHKLPL_parse (&__temp.execute.arg[1])
      && ONAME_parse (&__temp.execute.arg[2])
      && TYPEeqB_parse (&__temp.execute.arg[3])
      && APP_parse (&__temp.execute.arg[4])
      && _regexp_parse (savepat, 89, &__temp.execute.arg[5])
      && oldRESTOFBLP_parse (&__temp.execute.arg[6]))
    {
      if (!_optimise)
	debug_exit ("oldRESTOFBLP_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, oldRESTOFBLP_1, 6, "oldRESTOFBLP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("oldRESTOFBLP_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 90, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("oldRESTOFBLP_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, oldRESTOFBLP_2, 1, "oldRESTOFBLP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("oldRESTOFBLP_parse failed");
  return (FALSE);
}

int
oldRESTOFALP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("oldRESTOFALP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && CHKLPL_parse (&__temp.execute.arg[1])
      && ONAME_parse (&__temp.execute.arg[2])
      && TYPEeqA_parse (&__temp.execute.arg[3])
      && APP_parse (&__temp.execute.arg[4])
      && _regexp_parse (savepat, 91, &__temp.execute.arg[5])
      && oldRESTOFALP_parse (&__temp.execute.arg[6]))
    {
      if (!_optimise)
	debug_exit ("oldRESTOFALP_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, oldRESTOFALP_1, 6, "oldRESTOFALP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("oldRESTOFALP_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 92, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("oldRESTOFALP_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, oldRESTOFALP_2, 1, "oldRESTOFALP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("oldRESTOFALP_parse failed");
  return (FALSE);
}

int
RESTOFFLE_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFFLE_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 93, &__temp.execute.arg[1])
      && EXPR_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 94, &__temp.execute.arg[3])
      && EXPR_parse (&__temp.execute.arg[4]))
    {
      if (!_optimise)
	debug_exit ("RESTOFFLE_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, RESTOFFLE_1, 4, "RESTOFFLE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFFLE_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 95, &__temp.execute.arg[1])
      && BEXPR_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("RESTOFFLE_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, RESTOFFLE_2, 2, "RESTOFFLE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFFLE_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 96, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFFLE_parse found option 3 -- \"\" ");
      *__arg = makeparsetree (__temp, RESTOFFLE_3, 1, "RESTOFFLE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFFLE_parse failed");
  return (FALSE);
}

int
RESTOFFORLIST_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFFORLIST_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 97, &__temp.execute.arg[1])
      && EXPR_parse (&__temp.execute.arg[2])
      && RESTOFFLE_parse (&__temp.execute.arg[3])
      && RESTOFFORLIST_parse (&__temp.execute.arg[4]))
    {
      if (!_optimise)
	debug_exit ("RESTOFFORLIST_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, RESTOFFORLIST_1, 4, "RESTOFFORLIST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFFORLIST_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 98, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFFORLIST_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, RESTOFFORLIST_2, 1, "RESTOFFORLIST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFFORLIST_parse failed");
  return (FALSE);
}

int
RESTOFBPLIST_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFBPLIST_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 99, &__temp.execute.arg[1])
      && EXPR_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 100, &__temp.execute.arg[3])
      && EXPR_parse (&__temp.execute.arg[4])
      && RESTOFBPLIST_parse (&__temp.execute.arg[5]))
    {
      if (!_optimise)
	debug_exit ("RESTOFBPLIST_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, RESTOFBPLIST_1, 5, "RESTOFBPLIST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFBPLIST_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 101, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFBPLIST_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, RESTOFBPLIST_2, 1, "RESTOFBPLIST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFBPLIST_parse failed");
  return (FALSE);
}

int
DECLN_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("DECLN_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && SCALARTYPE_parse (&__temp.execute.arg[1])
      && DECLIST_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("DECLN_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, DECLN_1, 2, "DECLN", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("DECLN_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 102, &__temp.execute.arg[1])
      && ARRAYTYPE_parse (&__temp.execute.arg[2])
      && OADECLN_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit
	  ("DECLN_parse found option 2 -- \"array\" <ARRAYTYPE> <OADECLN> ");
      *__arg = makeparsetree (__temp, DECLN_2, 3, "DECLN", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("DECLN_parse failed");
  return (FALSE);
}

int
ADECLN_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("ADECLN_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && DECLIST_parse (&__temp.execute.arg[1])
      && BPAIR_parse (&__temp.execute.arg[2])
      && RESTOFARRAYLIST_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit
	  ("ADECLN_parse found option 1 -- <DECLIST> <BPAIR> <RESTOFARRAYLIST> ");
      *__arg = makeparsetree (__temp, ADECLN_1, 3, "ADECLN", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("ADECLN_parse failed");
  return (FALSE);
}

int
RESTOFARRAYLIST_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFARRAYLIST_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 103, &__temp.execute.arg[1])
      && ADECLN_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("RESTOFARRAYLIST_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, RESTOFARRAYLIST_1, 2, "RESTOFARRAYLIST",
		       __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFARRAYLIST_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 104, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFARRAYLIST_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, RESTOFARRAYLIST_2, 1, "RESTOFARRAYLIST",
		       __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFARRAYLIST_parse failed");
  return (FALSE);
}

int
BPAIR_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("BPAIR_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos) && CBPAIR_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("BPAIR_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, BPAIR_1, 1, "BPAIR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("BPAIR_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && LHSQBR_parse (&__temp.execute.arg[1])
      && EXPR_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 105, &__temp.execute.arg[3])
      && EXPR_parse (&__temp.execute.arg[4])
      && RESTOFBPLIST_parse (&__temp.execute.arg[5])
      && RHSQBR_parse (&__temp.execute.arg[6]))
    {
      if (!_optimise)
	debug_exit
	  ("BPAIR_parse found option 2 -- <LHSQBR> <EXPR> \":\" <EXPR> <RESTOFBPLIST> <RHSQBR> ");
      *__arg = makeparsetree (__temp, BPAIR_2, 6, "BPAIR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("BPAIR_parse failed");
  return (FALSE);
}

int
CBPAIR_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("CBPAIR_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && LHSQBR_parse (&__temp.execute.arg[1])
      && PLUSopt_parse (&__temp.execute.arg[2])
      && ICONST_parse (&__temp.execute.arg[3])
      && _regexp_parse (savepat, 106, &__temp.execute.arg[4])
      && PLUSopt_parse (&__temp.execute.arg[5])
      && ICONST_parse (&__temp.execute.arg[6])
      && RESTOFCBP_parse (&__temp.execute.arg[7])
      && RHSQBR_parse (&__temp.execute.arg[8]))
    {
      if (!_optimise)
	debug_exit
	  ("CBPAIR_parse found option 1 -- <LHSQBR> <PLUSopt> <ICONST> \":\" <PLUSopt> <ICONST> <RESTOFCBP> <RHSQBR> ");
      *__arg = makeparsetree (__temp, CBPAIR_1, 8, "CBPAIR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("CBPAIR_parse failed");
  return (FALSE);
}

int
RESTOFCBP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFCBP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 107, &__temp.execute.arg[1])
      && PLUSopt_parse (&__temp.execute.arg[2])
      && ICONST_parse (&__temp.execute.arg[3])
      && _regexp_parse (savepat, 108, &__temp.execute.arg[4])
      && PLUSopt_parse (&__temp.execute.arg[5])
      && ICONST_parse (&__temp.execute.arg[6])
      && RESTOFCBP_parse (&__temp.execute.arg[7]))
    {
      if (!_optimise)
	debug_exit ("RESTOFCBP_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, RESTOFCBP_1, 7, "RESTOFCBP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFCBP_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 109, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFCBP_parse found option 2 -- \"\" ");
      *__arg = makeparsetree (__temp, RESTOFCBP_2, 1, "RESTOFCBP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFCBP_parse failed");
  return (FALSE);
}

int
OADECLN_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("OADECLN_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && DECLIST_parse (&__temp.execute.arg[1])
      && CBPAIR_parse (&__temp.execute.arg[2])
      && RESTOFOADEC_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit
	  ("OADECLN_parse found option 1 -- <DECLIST> <CBPAIR> <RESTOFOADEC> ");
      *__arg = makeparsetree (__temp, OADECLN_1, 3, "OADECLN", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("OADECLN_parse failed");
  return (FALSE);
}

int
RESTOFOADEC_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFOADEC_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 110, &__temp.execute.arg[1])
      && OADECLN_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("RESTOFOADEC_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, RESTOFOADEC_1, 2, "RESTOFOADEC", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFOADEC_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 111, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFOADEC_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, RESTOFOADEC_2, 1, "RESTOFOADEC", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFOADEC_parse failed");
  return (FALSE);
}

int
VDECLNa_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("VDECLNa_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 112, &__temp.execute.arg[1])
      && PROCTYPE_parse (&__temp.execute.arg[2])
      && LINKPROC_parse (&__temp.execute.arg[3])
      && NAME_parse (&__temp.execute.arg[4])
      && NOTENAME_parse (&__temp.execute.arg[5])
      && FPP_parse (&__temp.execute.arg[6])
      && DOWN_parse (&__temp.execute.arg[7]))
    {
      if (!_optimise)
	debug_exit
	  ("VDECLNa_parse found option 1 -- \"procedure\" <PROCTYPE> <LINKPROC> <NAME> <NOTENAME> <FPP> <DOWN> ");
      *__arg = makeparsetree (__temp, VDECLNa_1, 7, "VDECLNa", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("VDECLNa_parse failed");
  return (FALSE);
}

int
VDECLNb_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("VDECLNb_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && VALUEq_parse (&__temp.execute.arg[1])
      && FPSPEC_parse (&__temp.execute.arg[2])
      && semi_parse (&__temp.execute.arg[3])
      && OPTCOM_parse (&__temp.execute.arg[4])
      && OLABEL_parse (&__temp.execute.arg[5])
      && PROCSTMT_parse (&__temp.execute.arg[6]))
    {
      if (!_optimise)
	debug_exit
	  ("VDECLNb_parse found option 1 -- <VALUEq> <FPSPEC> <semi> <OPTCOM> <OLABEL> <PROCSTMT> ");
      *__arg = makeparsetree (__temp, VDECLNb_1, 6, "VDECLNb", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("VDECLNb_parse failed");
  return (FALSE);
}

int
VDECLN_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("VDECLN_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && VDECLNa_parse (&__temp.execute.arg[1])
      && VDECLNb_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("VDECLN_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, VDECLN_1, 2, "VDECLN", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("VDECLN_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 113, &__temp.execute.arg[1])
      && ARRAYTYPE_parse (&__temp.execute.arg[2])
      && LINKARR_parse (&__temp.execute.arg[3])
      && ADECLN_parse (&__temp.execute.arg[4]))
    {
      if (!_optimise)
	debug_exit ("VDECLN_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, VDECLN_2, 4, "VDECLN", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("VDECLN_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && SCALARTYPE_parse (&__temp.execute.arg[1])
      && LINKSCAL_parse (&__temp.execute.arg[2])
      && DECLIST_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit
	  ("VDECLN_parse found option 3 -- <SCALARTYPE> <LINKSCAL> <DECLIST> ");
      *__arg = makeparsetree (__temp, VDECLN_3, 3, "VDECLN", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("VDECLN_parse failed");
  return (FALSE);
}

int
COMP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("COMP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 114, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, COMP_1, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 115, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, COMP_2, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 116, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 3 -- ");
      *__arg = makeparsetree (__temp, COMP_3, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 4");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 117, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 4 -- ");
      *__arg = makeparsetree (__temp, COMP_4, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 5");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 118, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 5 -- ");
      *__arg = makeparsetree (__temp, COMP_5, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 6");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 119, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 6 -- ");
      *__arg = makeparsetree (__temp, COMP_6, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 7");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 120, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 7 -- ");
      *__arg = makeparsetree (__temp, COMP_7, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 8");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 121, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 8 -- ");
      *__arg = makeparsetree (__temp, COMP_8, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 9");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 122, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 9 -- ");
      *__arg = makeparsetree (__temp, COMP_9, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 10");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 123, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 10 -- ");
      *__arg = makeparsetree (__temp, COMP_10, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 11");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 124, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 11 -- ");
      *__arg = makeparsetree (__temp, COMP_11, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 12");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 125, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 12 -- ");
      *__arg = makeparsetree (__temp, COMP_12, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 13");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 126, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 13 -- ");
      *__arg = makeparsetree (__temp, COMP_13, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 14");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 127, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 14 -- ");
      *__arg = makeparsetree (__temp, COMP_14, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 15");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 128, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 15 -- ");
      *__arg = makeparsetree (__temp, COMP_15, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 16");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 129, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 16 -- ");
      *__arg = makeparsetree (__temp, COMP_16, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 17");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 130, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 17 -- ");
      *__arg = makeparsetree (__temp, COMP_17, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 18");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 131, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 18 -- ");
      *__arg = makeparsetree (__temp, COMP_18, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 19");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 132, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 19 -- ");
      *__arg = makeparsetree (__temp, COMP_19, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 20");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 133, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 20 -- ");
      *__arg = makeparsetree (__temp, COMP_20, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 21");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 134, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 21 -- ");
      *__arg = makeparsetree (__temp, COMP_21, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("COMP_parse - trying option 22");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 135, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("COMP_parse found option 22 -- \"\\\\=\" ");
      *__arg = makeparsetree (__temp, COMP_22, 1, "COMP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("COMP_parse failed");
  return (FALSE);
}

int
OLABEL_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("OLABEL_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos) && CHKLAB_parse (&__temp.execute.arg[1]) && NAME_parse (&__temp.execute.arg[2]) && not (ass_parse, &__temp.execute.arg[3])	/* Lazy eval */
      && _regexp_parse (savepat, 136, &__temp.execute.arg[4])
      && LINKLAB_parse (&__temp.execute.arg[5])
      && OLABEL_parse (&__temp.execute.arg[6]))
    {
      if (!_optimise)
	debug_exit ("OLABEL_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, OLABEL_1, 6, "OLABEL", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("OLABEL_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 137, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("OLABEL_parse found option 2 -- \"\" ");
      *__arg = makeparsetree (__temp, OLABEL_2, 1, "OLABEL", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("OLABEL_parse failed");
  return (FALSE);
}

int
NSTMT_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("NSTMT_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos) && UI_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("NSTMT_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, NSTMT_1, 1, "NSTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("NSTMT_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 138, &__temp.execute.arg[1])
      && FORSTMNT_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("NSTMT_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, NSTMT_2, 2, "NSTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("NSTMT_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 139, &__temp.execute.arg[1])
      && BEXPR_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 140, &__temp.execute.arg[3])
      && OLABEL_parse (&__temp.execute.arg[4])
      && USTMT_parse (&__temp.execute.arg[5]))
    {
      if (!_optimise)
	debug_exit ("NSTMT_parse found option 3 -- ");
      *__arg = makeparsetree (__temp, NSTMT_3, 5, "NSTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("NSTMT_parse - trying option 4");
  lev += 1;

  if (note_backtrack (&__pos) && CHECKSC_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("NSTMT_parse found option 4 -- <CHECKSC> ");
      *__arg = makeparsetree (__temp, NSTMT_4, 1, "NSTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("NSTMT_parse failed");
  return (FALSE);
}

int
FORSTMNT_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("FORSTMNT_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && ONAME_parse (&__temp.execute.arg[1])
      && APP_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 141, &__temp.execute.arg[3])
      && EXPR_parse (&__temp.execute.arg[4])
      && RESTOFFLE_parse (&__temp.execute.arg[5])
      && RESTOFFORLIST_parse (&__temp.execute.arg[6])
      && _regexp_parse (savepat, 142, &__temp.execute.arg[7])
      && OLABEL_parse (&__temp.execute.arg[8])
      && FSTMT_parse (&__temp.execute.arg[9]))
    {
      if (!_optimise)
	debug_exit
	  ("FORSTMNT_parse found option 1 -- <ONAME> <APP> \":=\" <EXPR> <RESTOFFLE> <RESTOFFORLIST> \"do\" <OLABEL> <FSTMT> ");
      *__arg = makeparsetree (__temp, FORSTMNT_1, 9, "FORSTMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("FORSTMNT_parse failed");
  return (FALSE);
}

int
STMT_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("STMT_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos) && UI_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("STMT_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, STMT_1, 1, "STMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMT_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 143, &__temp.execute.arg[1])
      && FORSTMNT_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("STMT_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, STMT_2, 2, "STMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMT_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 144, &__temp.execute.arg[1])
      && BEXPR_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 145, &__temp.execute.arg[3])
      && OLABEL_parse (&__temp.execute.arg[4])
      && USTMT_parse (&__temp.execute.arg[5]))
    {
      if (!_optimise)
	debug_exit ("STMT_parse found option 3 -- ");
      *__arg = makeparsetree (__temp, STMT_3, 5, "STMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMT_parse - trying option 4");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 146, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("STMT_parse found option 4 -- \"\" ");
      *__arg = makeparsetree (__temp, STMT_4, 1, "STMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("STMT_parse failed");
  return (FALSE);
}

int
BLKORCS_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("BLKORCS_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && OPTCOM_parse (&__temp.execute.arg[1])
      && OLABEL_parse (&__temp.execute.arg[2])
      && NSTMT_parse (&__temp.execute.arg[3])
      && CMPND_parse (&__temp.execute.arg[4]))
    {
      if (!_optimise)
	debug_exit ("BLKORCS_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, BLKORCS_1, 4, "BLKORCS", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("BLKORCS_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos) && DOWN_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("BLKORCS_parse found option 2 -- <DOWN> ");
      *__arg = makeparsetree (__temp, BLKORCS_2, 1, "BLKORCS", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("BLKORCS_parse failed");
  return (FALSE);
}

int
FSTMT_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("FSTMT_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 147, &__temp.execute.arg[1])
      && DOWN_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("FSTMT_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, FSTMT_1, 2, "FSTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("FSTMT_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos) && STMT_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("FSTMT_parse found option 2 -- <STMT> ");
      *__arg = makeparsetree (__temp, FSTMT_2, 1, "FSTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("FSTMT_parse failed");
  return (FALSE);
}

int
USTMT_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("USTMT_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 148, &__temp.execute.arg[1])
      && BLKORCS_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("USTMT_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, USTMT_1, 2, "USTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("USTMT_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 149, &__temp.execute.arg[1])
      && FORSTMNT_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("USTMT_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, USTMT_2, 2, "USTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("USTMT_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && UI_parse (&__temp.execute.arg[1])
      && ELSEq_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("USTMT_parse found option 3 -- ");
      *__arg = makeparsetree (__temp, USTMT_3, 2, "USTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("USTMT_parse - trying option 4");
  lev += 1;

  if (note_backtrack (&__pos) && ELSEq_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("USTMT_parse found option 4 -- <ELSEq> ");
      *__arg = makeparsetree (__temp, USTMT_4, 1, "USTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("USTMT_parse failed");
  return (FALSE);
}

int
EPNAME_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("EPNAME_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos) && NAME_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("EPNAME_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, EPNAME_1, 1, "EPNAME", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("EPNAME_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 150, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("EPNAME_parse found option 2 -- \"\" ");
      *__arg = makeparsetree (__temp, EPNAME_2, 1, "EPNAME", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("EPNAME_parse failed");
  return (FALSE);
}

int
PROCSTMT_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("PROCSTMT_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 151, &__temp.execute.arg[1])
      && EPNAME_parse (&__temp.execute.arg[2])
      && UP_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("PROCSTMT_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, PROCSTMT_1, 3, "PROCSTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("PROCSTMT_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 152, &__temp.execute.arg[1])
      && EPNAME_parse (&__temp.execute.arg[2])
      && UP_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("PROCSTMT_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, PROCSTMT_2, 3, "PROCSTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("PROCSTMT_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 153, &__temp.execute.arg[1])
      && EPNAME_parse (&__temp.execute.arg[2])
      && UP_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("PROCSTMT_parse found option 3 -- ");
      *__arg = makeparsetree (__temp, PROCSTMT_3, 3, "PROCSTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("PROCSTMT_parse - trying option 4");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 154, &__temp.execute.arg[1])
      && _regexp_parse (savepat, 155, &__temp.execute.arg[2])
      && UP_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("PROCSTMT_parse found option 4 -- ");
      *__arg = makeparsetree (__temp, PROCSTMT_4, 3, "PROCSTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("PROCSTMT_parse - trying option 5");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 156, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("PROCSTMT_parse found option 5 -- ");
      *__arg = makeparsetree (__temp, PROCSTMT_5, 1, "PROCSTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("PROCSTMT_parse - trying option 6");
  lev += 1;

  if (note_backtrack (&__pos)
      && UPATSEP_parse (&__temp.execute.arg[1])
      && NOTELINE_parse (&__temp.execute.arg[2])
      && STMT_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit
	  ("PROCSTMT_parse found option 6 -- <UPATSEP> <NOTELINE> <STMT> ");
      *__arg = makeparsetree (__temp, PROCSTMT_6, 3, "PROCSTMT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("PROCSTMT_parse failed");
  return (FALSE);
}

int
ELSEq_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("ELSEq_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 157, &__temp.execute.arg[1])
      && NOTELINE_parse (&__temp.execute.arg[2])
      && OLABEL_parse (&__temp.execute.arg[3])
      && ELSESTMNT_parse (&__temp.execute.arg[4]))
    {
      if (!_optimise)
	debug_exit ("ELSEq_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, ELSEq_1, 4, "ELSEq", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("ELSEq_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 158, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("ELSEq_parse found option 2 -- \"\" ");
      *__arg = makeparsetree (__temp, ELSEq_2, 1, "ELSEq", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("ELSEq_parse failed");
  return (FALSE);
}

int
ELSESTMNT_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("ELSESTMNT_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 159, &__temp.execute.arg[1])
      && BLKORCS_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("ELSESTMNT_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, ELSESTMNT_1, 2, "ELSESTMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("ELSESTMNT_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos) && STMT_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("ELSESTMNT_parse found option 2 -- <STMT> ");
      *__arg = makeparsetree (__temp, ELSESTMNT_2, 1, "ELSESTMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("ELSESTMNT_parse failed");
  return (FALSE);
}

int
UI_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("UI_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && CHKLPL_parse (&__temp.execute.arg[1])
      && ONAME_parse (&__temp.execute.arg[2])
      && RESTOFASS_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("UI_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, UI_1, 3, "UI", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("UI_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && NAME_parse (&__temp.execute.arg[1])
      && APP_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("UI_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, UI_2, 2, "UI", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("UI_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 160, &__temp.execute.arg[1])
      && DE_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("UI_parse found option 3 -- \"goto\" <DE> ");
      *__arg = makeparsetree (__temp, UI_3, 2, "UI", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("UI_parse failed");
  return (FALSE);
}

int
SS_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("SS_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos) && eof_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("SS_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, SS_1, 1, "SS", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("SS_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos) && STMNT_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("SS_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, SS_2, 1, "SS", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("SS_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 161, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("SS_parse found option 3 -- \"[^;]*;\" ");
      *__arg = makeparsetree (__temp, SS_3, 1, "SS", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("SS_parse failed");
  return (FALSE);
}

int
STMNT_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("STMNT_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && NSTMT_parse (&__temp.execute.arg[1])
      && S_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("STMNT_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, STMNT_1, 2, "STMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMNT_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && TYPEopt_parse (&__temp.execute.arg[1])
      && _regexp_parse (savepat, 162, &__temp.execute.arg[2])
      && NAME_parse (&__temp.execute.arg[3])
      && FPP_parse (&__temp.execute.arg[4])
      && S_parse (&__temp.execute.arg[5])
      && _regexp_parse (savepat, 163, &__temp.execute.arg[6])
      && _regexp_parse (savepat, 164, &__temp.execute.arg[7])
      && S_parse (&__temp.execute.arg[8]))
    {
      if (!_optimise)
	debug_exit ("STMNT_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, STMNT_2, 8, "STMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMNT_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 165, &__temp.execute.arg[1])
      && UP_parse (&__temp.execute.arg[2])
      && ENDTEXT_parse (&__temp.execute.arg[3])
      && ELSEq_parse (&__temp.execute.arg[4])
      && S_parse (&__temp.execute.arg[5]))
    {
      if (!_optimise)
	debug_exit ("STMNT_parse found option 3 -- ");
      *__arg = makeparsetree (__temp, STMNT_3, 5, "STMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMNT_parse - trying option 4");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 166, &__temp.execute.arg[1])
      && UP_parse (&__temp.execute.arg[2])
      && RENDTEXT_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("STMNT_parse found option 4 -- ");
      *__arg = makeparsetree (__temp, STMNT_4, 3, "STMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMNT_parse - trying option 5");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 167, &__temp.execute.arg[1])
      && COMTEXT_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("STMNT_parse found option 5 -- ");
      *__arg = makeparsetree (__temp, STMNT_5, 2, "STMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMNT_parse - trying option 6");
  lev += 1;

  if (note_backtrack (&__pos)
      && TYPEopt_parse (&__temp.execute.arg[1])
      && VDECLN_parse (&__temp.execute.arg[2])
      && S_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("STMNT_parse found option 6 -- ");
      *__arg = makeparsetree (__temp, STMNT_6, 3, "STMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMNT_parse - trying option 7");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 168, &__temp.execute.arg[1])
      && BLKORCS_parse (&__temp.execute.arg[2])
      && S_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("STMNT_parse found option 7 -- ");
      *__arg = makeparsetree (__temp, STMNT_7, 3, "STMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMNT_parse - trying option 8");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 169, &__temp.execute.arg[1])
      && SWTYPE_parse (&__temp.execute.arg[2])
      && NAME_parse (&__temp.execute.arg[3])
      && NOTENAME_parse (&__temp.execute.arg[4])
      && LINKSW_parse (&__temp.execute.arg[5])
      && _regexp_parse (savepat, 170, &__temp.execute.arg[6])
      && GENDE_parse (&__temp.execute.arg[7])
      && RESTOFGENDELIST_parse (&__temp.execute.arg[8])
      && S_parse (&__temp.execute.arg[9]))
    {
      if (!_optimise)
	debug_exit ("STMNT_parse found option 8 -- ");
      *__arg = makeparsetree (__temp, STMNT_8, 9, "STMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMNT_parse - trying option 9");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 171, &__temp.execute.arg[1])
      && LINKOWNS_parse (&__temp.execute.arg[2])
      && TYPEopt_parse (&__temp.execute.arg[3])
      && DECLN_parse (&__temp.execute.arg[4])
      && S_parse (&__temp.execute.arg[5]))
    {
      if (!_optimise)
	debug_exit ("STMNT_parse found option 9 -- ");
      *__arg = makeparsetree (__temp, STMNT_9, 5, "STMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMNT_parse - trying option 10");
  lev += 1;

  if (note_backtrack (&__pos)
      && CHKLAB_parse (&__temp.execute.arg[1])
      && NAME_parse (&__temp.execute.arg[2])
      && _regexp_parse (savepat, 172, &__temp.execute.arg[3])
      && LINKLAB_parse (&__temp.execute.arg[4])
      && STMNT_parse (&__temp.execute.arg[5]))
    {
      if (!_optimise)
	debug_exit ("STMNT_parse found option 10 -- ");
      *__arg = makeparsetree (__temp, STMNT_10, 5, "STMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMNT_parse - trying option 11");
  lev += 1;

  if (note_backtrack (&__pos) && semi_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("STMNT_parse found option 11 -- ");
      *__arg = makeparsetree (__temp, STMNT_11, 1, "STMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMNT_parse - trying option 12");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 173, &__temp.execute.arg[1])
      && S_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("STMNT_parse found option 12 -- ");
      *__arg = makeparsetree (__temp, STMNT_12, 2, "STMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMNT_parse - trying option 13");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 174, &__temp.execute.arg[1])
      && S_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("STMNT_parse found option 13 -- ");
      *__arg = makeparsetree (__temp, STMNT_13, 2, "STMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("STMNT_parse - trying option 14");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 175, &__temp.execute.arg[1])
      && NAME_parse (&__temp.execute.arg[2])
      && S_parse (&__temp.execute.arg[3]))
    {
      if (!_optimise)
	debug_exit ("STMNT_parse found option 14 -- \"program\" <NAME> <S> ");
      *__arg = makeparsetree (__temp, STMNT_14, 3, "STMNT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("STMNT_parse failed");
  return (FALSE);
}

int
NOTENAME_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("NOTENAME_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 176, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("NOTENAME_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, NOTENAME_1, 1, "NOTENAME", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("NOTENAME_parse failed");
  return (FALSE);
}

int
S_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("S_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos) && semi_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("S_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, S_1, 1, "S", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("S_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos) && is (end_parse, &__temp.execute.arg[1])	/* Lazy eval */
    )
    {
      if (!_optimise)
	debug_exit ("S_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, S_2, 1, "S", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("S_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos) && is (else_parse, &__temp.execute.arg[1])	/* Lazy eval */
    )
    {
      if (!_optimise)
	debug_exit ("S_parse found option 3 -- <?else> ");
      *__arg = makeparsetree (__temp, S_3, 1, "S", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("S_parse failed");
  return (FALSE);
}

int
UP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("UP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 177, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("UP_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, UP_1, 1, "UP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("UP_parse failed");
  return (FALSE);
}

int
DOWN_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("DOWN_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 178, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("DOWN_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, DOWN_1, 1, "DOWN", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("DOWN_parse failed");
  return (FALSE);
}

int
CHKLAB_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("CHKLAB_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 179, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("CHKLAB_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, CHKLAB_1, 1, "CHKLAB", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("CHKLAB_parse failed");
  return (FALSE);
}

int
ass_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("ass_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 180, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("ass_parse found option 1 -- \":=\" ");
      *__arg = makeparsetree (__temp, ass_1, 1, "ass", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("ass_parse failed");
  return (FALSE);
}

int
LINKOWNS_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("LINKOWNS_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 181, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("LINKOWNS_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, LINKOWNS_1, 1, "LINKOWNS", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("LINKOWNS_parse failed");
  return (FALSE);
}

int
ARRAYTYPE_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("ARRAYTYPE_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 182, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("ARRAYTYPE_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, ARRAYTYPE_1, 1, "ARRAYTYPE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("ARRAYTYPE_parse failed");
  return (FALSE);
}

int
CHECKSC_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("CHECKSC_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos) && is (semi_parse, &__temp.execute.arg[1])	/* Lazy eval */
    )
    {
      if (!_optimise)
	debug_exit ("CHECKSC_parse found option 1 -- <?semi> ");
      *__arg = makeparsetree (__temp, CHECKSC_1, 1, "CHECKSC", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("CHECKSC_parse failed");
  return (FALSE);
}

int
CHKLPL_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("CHKLPL_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 183, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("CHKLPL_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, CHKLPL_1, 1, "CHKLPL", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("CHKLPL_parse failed");
  return (FALSE);
}

int
CMPND_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("CMPND_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos) && is (S_parse, &__temp.execute.arg[1])	/* Lazy eval */
    )
    {
      if (!_optimise)
	debug_exit ("CMPND_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, CMPND_1, 1, "CMPND", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("CMPND_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos) && is (end_parse, &__temp.execute.arg[1])	/* Lazy eval */
    )
    {
      if (!_optimise)
	debug_exit ("CMPND_parse found option 2 -- <?end> ");
      *__arg = makeparsetree (__temp, CMPND_2, 1, "CMPND", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("CMPND_parse failed");
  return (FALSE);
}

int
COMTEXT_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("COMTEXT_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 184, &__temp.execute.arg[1])
      && continuecom_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit
	  ("COMTEXT_parse found option 1 -- \"[^;]*\" <continuecom> ");
      *__arg = makeparsetree (__temp, COMTEXT_1, 2, "COMTEXT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("COMTEXT_parse failed");
  return (FALSE);
}

int
continuecom_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("continuecom_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 185, &__temp.execute.arg[1])
      && COMTEXT_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("continuecom_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, continuecom_1, 2, "continuecom", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("continuecom_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 186, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("continuecom_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, continuecom_2, 1, "continuecom", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("continuecom_parse failed");
  return (FALSE);
}

int
ENDTEXT_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("ENDTEXT_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos) && RENDTEXT_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("ENDTEXT_parse found option 1 -- <RENDTEXT> ");
      *__arg = makeparsetree (__temp, ENDTEXT_1, 1, "ENDTEXT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("ENDTEXT_parse failed");
  return (FALSE);
}

int
RENDTEXT_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RENDTEXT_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos) && not (semi_parse, &__temp.execute.arg[1])	/* Lazy eval */
      && not (end_parse, &__temp.execute.arg[2])	/* Lazy eval */
      && not (else_parse, &__temp.execute.arg[3])	/* Lazy eval */
      && ch_parse (&__temp.execute.arg[4])
      && RENDTEXT_parse (&__temp.execute.arg[5]))
    {
      if (!_optimise)
	debug_exit ("RENDTEXT_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, RENDTEXT_1, 5, "RENDTEXT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RENDTEXT_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 187, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RENDTEXT_parse found option 2 -- \"\" ");
      *__arg = makeparsetree (__temp, RENDTEXT_2, 1, "RENDTEXT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RENDTEXT_parse failed");
  return (FALSE);
}

int
end_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("end_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 188, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("end_parse found option 1 -- \"end\" ");
      *__arg = makeparsetree (__temp, end_1, 1, "end", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("end_parse failed");
  return (FALSE);
}

int
then_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("then_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 189, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("then_parse found option 1 -- \"then\" ");
      *__arg = makeparsetree (__temp, then_1, 1, "then", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("then_parse failed");
  return (FALSE);
}

int
else_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("else_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 190, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("else_parse found option 1 -- \"else\" ");
      *__arg = makeparsetree (__temp, else_1, 1, "else", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("else_parse failed");
  return (FALSE);
}

int
semi_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("semi_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 191, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("semi_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, semi_1, 1, "semi", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("semi_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 192, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("semi_parse found option 2 -- \"\\.,\" ");
      *__arg = makeparsetree (__temp, semi_2, 1, "semi", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("semi_parse failed");
  return (FALSE);
}

int
ch_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("ch_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 193, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("ch_parse found option 1 -- \".\" ");
      *__arg = makeparsetree (__temp, ch_1, 1, "ch", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("ch_parse failed");
  return (FALSE);
}

int
closer_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("closer_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos) && semi_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("closer_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, closer_1, 1, "closer", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("closer_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos) && comma_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("closer_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, closer_2, 1, "closer", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("closer_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos) && crb_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("closer_parse found option 3 -- ");
      *__arg = makeparsetree (__temp, closer_3, 1, "closer", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("closer_parse - trying option 4");
  lev += 1;

  if (note_backtrack (&__pos) && else_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("closer_parse found option 4 -- ");
      *__arg = makeparsetree (__temp, closer_4, 1, "closer", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("closer_parse - trying option 5");
  lev += 1;

  if (note_backtrack (&__pos) && then_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("closer_parse found option 5 -- <then> ");
      *__arg = makeparsetree (__temp, closer_5, 1, "closer", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("closer_parse failed");
  return (FALSE);
}

int
ICONST_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("ICONST_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && PLUSopt_parse (&__temp.execute.arg[1])
      && _regexp_parse (savepat, 194, &__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit
	  ("ICONST_parse found option 1 -- <PLUSopt> \"[0-9][0-9]*\" ");
      *__arg = makeparsetree (__temp, ICONST_1, 2, "ICONST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("ICONST_parse failed");
  return (FALSE);
}

int
decfract_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("decfract_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 195, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("decfract_parse found option 1 -- \"\\.[0-9][0-9]*\" ");
      *__arg = makeparsetree (__temp, decfract_1, 1, "decfract", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("decfract_parse failed");
  return (FALSE);
}

int
expart_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("expart_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && subten_parse (&__temp.execute.arg[1])
      && ICONST_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("expart_parse found option 1 -- <subten> <ICONST> ");
      *__arg = makeparsetree (__temp, expart_1, 2, "expart", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("expart_parse failed");
  return (FALSE);
}

int
decnum_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("decnum_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 196, &__temp.execute.arg[1])
      && decfract_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("decnum_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, decnum_1, 2, "decnum", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("decnum_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos) && decfract_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("decnum_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, decnum_2, 1, "decnum", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("decnum_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 197, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("decnum_parse found option 3 -- \"[0-9][0-9]*\" ");
      *__arg = makeparsetree (__temp, decnum_3, 1, "decnum", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("decnum_parse failed");
  return (FALSE);
}

int
unsigned_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("unsigned_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && decnum_parse (&__temp.execute.arg[1])
      && expart_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("unsigned_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, unsigned_1, 2, "unsigned", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("unsigned_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos) && expart_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("unsigned_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, unsigned_2, 1, "unsigned", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("unsigned_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos) && decnum_parse (&__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("unsigned_parse found option 3 -- <decnum> ");
      *__arg = makeparsetree (__temp, unsigned_3, 1, "unsigned", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("unsigned_parse failed");
  return (FALSE);
}

int
CONST_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("CONST_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && PLUSopt_parse (&__temp.execute.arg[1])
      && unsigned_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("CONST_parse found option 1 -- <PLUSopt> <unsigned> ");
      *__arg = makeparsetree (__temp, CONST_1, 2, "CONST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("CONST_parse failed");
  return (FALSE);
}

int
subten_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("subten_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 198, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("subten_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, subten_1, 1, "subten", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("subten_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 199, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("subten_parse found option 2 -- \"@\" ");
      *__arg = makeparsetree (__temp, subten_2, 1, "subten", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("subten_parse failed");
  return (FALSE);
}

int
LABTYPE_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("LABTYPE_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 200, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("LABTYPE_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, LABTYPE_1, 1, "LABTYPE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("LABTYPE_parse failed");
  return (FALSE);
}

int
LETTERSTRING_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("LETTERSTRING_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 201, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("LETTERSTRING_parse found option 1 -- \"[A-Z]*\" ");
      *__arg =
	makeparsetree (__temp, LETTERSTRING_1, 1, "LETTERSTRING", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("LETTERSTRING_parse failed");
  return (FALSE);
}

int
LHSQBR_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("LHSQBR_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 202, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("LHSQBR_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, LHSQBR_1, 1, "LHSQBR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("LHSQBR_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 203, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("LHSQBR_parse found option 2 -- \"\\(/\" ");
      *__arg = makeparsetree (__temp, LHSQBR_2, 1, "LHSQBR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("LHSQBR_parse failed");
  return (FALSE);
}

int
RHSQBR_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RHSQBR_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 204, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RHSQBR_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, RHSQBR_1, 1, "RHSQBR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RHSQBR_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 205, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RHSQBR_parse found option 2 -- \"/\\)\" ");
      *__arg = makeparsetree (__temp, RHSQBR_2, 1, "RHSQBR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RHSQBR_parse failed");
  return (FALSE);
}

int
LINKARR_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("LINKARR_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 206, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("LINKARR_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, LINKARR_1, 1, "LINKARR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("LINKARR_parse failed");
  return (FALSE);
}

int
LINKLAB_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("LINKLAB_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 207, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("LINKLAB_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, LINKLAB_1, 1, "LINKLAB", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("LINKLAB_parse failed");
  return (FALSE);
}

int
LINKPROC_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("LINKPROC_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 208, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("LINKPROC_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, LINKPROC_1, 1, "LINKPROC", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("LINKPROC_parse failed");
  return (FALSE);
}

int
LINKSCAL_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("LINKSCAL_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 209, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("LINKSCAL_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, LINKSCAL_1, 1, "LINKSCAL", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("LINKSCAL_parse failed");
  return (FALSE);
}

int
LINKSW_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("LINKSW_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 210, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("LINKSW_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, LINKSW_1, 1, "LINKSW", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("LINKSW_parse failed");
  return (FALSE);
}

int
NAME_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("NAME_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 211, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("NAME_parse found option 1 -- \"[A-Z][A-Z0-9_]*\" ");
      *__arg = makeparsetree (__temp, NAME_1, 1, "NAME", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("NAME_parse failed");
  return (FALSE);
}

int
NOMORE_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("NOMORE_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos) && is (comma_parse, &__temp.execute.arg[1])	/* Lazy eval */
    )
    {
      if (!_optimise)
	debug_exit ("NOMORE_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, NOMORE_1, 1, "NOMORE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("NOMORE_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos) && is (crb_parse, &__temp.execute.arg[1])	/* Lazy eval */
    )
    {
      if (!_optimise)
	debug_exit ("NOMORE_parse found option 2 -- <?crb> ");
      *__arg = makeparsetree (__temp, NOMORE_2, 1, "NOMORE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("NOMORE_parse failed");
  return (FALSE);
}

int
comma_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("comma_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 212, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("comma_parse found option 1 -- \",\" ");
      *__arg = makeparsetree (__temp, comma_1, 1, "comma", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("comma_parse failed");
  return (FALSE);
}

int
crb_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("crb_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 213, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("crb_parse found option 1 -- \"\\)\" ");
      *__arg = makeparsetree (__temp, crb_1, 1, "crb", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("crb_parse failed");
  return (FALSE);
}

int
NOTELINE_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("NOTELINE_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 214, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("NOTELINE_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, NOTELINE_1, 1, "NOTELINE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("NOTELINE_parse failed");
  return (FALSE);
}

int
ONAME_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("ONAME_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 215, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("ONAME_parse found option 1 -- \"[A-Z][A-Z0-9_]*\" ");
      *__arg = makeparsetree (__temp, ONAME_1, 1, "ONAME", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("ONAME_parse failed");
  return (FALSE);
}

int
ONAMELIST_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("ONAMELIST_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && ONAME_parse (&__temp.execute.arg[1])
      && RESTOFONAMELIST_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit
	  ("ONAMELIST_parse found option 1 -- <ONAME> <RESTOFONAMELIST> ");
      *__arg = makeparsetree (__temp, ONAMELIST_1, 2, "ONAMELIST", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("ONAMELIST_parse failed");
  return (FALSE);
}

int
RESTOFONAMELIST_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("RESTOFONAMELIST_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 216, &__temp.execute.arg[1])
      && ONAMELIST_parse (&__temp.execute.arg[2]))
    {
      if (!_optimise)
	debug_exit ("RESTOFONAMELIST_parse found option 1 -- ");
      *__arg =
	makeparsetree (__temp, RESTOFONAMELIST_1, 2, "RESTOFONAMELIST",
		       __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("RESTOFONAMELIST_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 217, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("RESTOFONAMELIST_parse found option 2 -- \"\" ");
      *__arg =
	makeparsetree (__temp, RESTOFONAMELIST_2, 1, "RESTOFONAMELIST",
		       __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("RESTOFONAMELIST_parse failed");
  return (FALSE);
}

int
OP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("OP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 218, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("OP_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, OP_1, 1, "OP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("OP_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 219, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("OP_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, OP_2, 1, "OP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("OP_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 220, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("OP_parse found option 3 -- ");
      *__arg = makeparsetree (__temp, OP_3, 1, "OP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("OP_parse - trying option 4");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 221, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("OP_parse found option 4 -- ");
      *__arg = makeparsetree (__temp, OP_4, 1, "OP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("OP_parse - trying option 5");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 222, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("OP_parse found option 5 -- ");
      *__arg = makeparsetree (__temp, OP_5, 1, "OP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("OP_parse - trying option 6");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 223, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("OP_parse found option 6 -- ");
      *__arg = makeparsetree (__temp, OP_6, 1, "OP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("OP_parse - trying option 7");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 224, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("OP_parse found option 7 -- ");
      *__arg = makeparsetree (__temp, OP_7, 1, "OP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("OP_parse - trying option 8");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 225, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("OP_parse found option 8 -- ");
      *__arg = makeparsetree (__temp, OP_8, 1, "OP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("OP_parse - trying option 9");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 226, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("OP_parse found option 9 -- ");
      *__arg = makeparsetree (__temp, OP_9, 1, "OP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("OP_parse - trying option 10");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 227, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("OP_parse found option 10 -- ");
      *__arg = makeparsetree (__temp, OP_10, 1, "OP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("OP_parse - trying option 11");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 228, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("OP_parse found option 11 -- \"power\" ");
      *__arg = makeparsetree (__temp, OP_11, 1, "OP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("OP_parse failed");
  return (FALSE);
}

int
PLUSopt_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("PLUSopt_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 229, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("PLUSopt_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, PLUSopt_1, 1, "PLUSopt", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("PLUSopt_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 230, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("PLUSopt_parse found option 2 -- ");
      *__arg = makeparsetree (__temp, PLUSopt_2, 1, "PLUSopt", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("PLUSopt_parse - trying option 3");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 231, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("PLUSopt_parse found option 3 -- \"\" ");
      *__arg = makeparsetree (__temp, PLUSopt_3, 1, "PLUSopt", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("PLUSopt_parse failed");
  return (FALSE);
}

int
PROCTYPE_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("PROCTYPE_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 232, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("PROCTYPE_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, PROCTYPE_1, 1, "PROCTYPE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("PROCTYPE_parse failed");
  return (FALSE);
}

int
SCALARTYPE_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("SCALARTYPE_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 233, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("SCALARTYPE_parse found option 1 -- \"\" ");
      *__arg =
	makeparsetree (__temp, SCALARTYPE_1, 1, "SCALARTYPE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("SCALARTYPE_parse failed");
  return (FALSE);
}

int
STRTYPE_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("STRTYPE_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 234, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("STRTYPE_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, STRTYPE_1, 1, "STRTYPE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("STRTYPE_parse failed");
  return (FALSE);
}

int
SWBYNAME_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("SWBYNAME_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 235, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("SWBYNAME_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, SWBYNAME_1, 1, "SWBYNAME", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("SWBYNAME_parse failed");
  return (FALSE);
}

int
SWTYPE_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("SWTYPE_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 236, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("SWTYPE_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, SWTYPE_1, 1, "SWTYPE", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("SWTYPE_parse failed");
  return (FALSE);
}

int
TEXTTEXT_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("TEXTTEXT_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 237, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("TEXTTEXT_parse found option 1 -- ");
      *__arg = makeparsetree (__temp, TEXTTEXT_1, 1, "TEXTTEXT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  /*if (!_optimise) */ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_exit ("TEXTTEXT_parse - trying option 2");
  lev += 1;

  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 238, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("TEXTTEXT_parse found option 2 -- \"`[^']*'\" ");
      *__arg = makeparsetree (__temp, TEXTTEXT_2, 1, "TEXTTEXT", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("TEXTTEXT_parse failed");
  return (FALSE);
}

int
TYPEeqA_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("TYPEeqA_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 239, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("TYPEeqA_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, TYPEeqA_1, 1, "TYPEeqA", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("TYPEeqA_parse failed");
  return (FALSE);
}

int
TYPEeqARR_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("TYPEeqARR_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 240, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("TYPEeqARR_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, TYPEeqARR_1, 1, "TYPEeqARR", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("TYPEeqARR_parse failed");
  return (FALSE);
}

int
TYPEeqB_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("TYPEeqB_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 241, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("TYPEeqB_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, TYPEeqB_1, 1, "TYPEeqB", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("TYPEeqB_parse failed");
  return (FALSE);
}

int
TYPENOTARITH_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("TYPENOTARITH_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 242, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("TYPENOTARITH_parse found option 1 -- \"\" ");
      *__arg =
	makeparsetree (__temp, TYPENOTARITH_1, 1, "TYPENOTARITH", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("TYPENOTARITH_parse failed");
  return (FALSE);
}

int
TYPENOTBOOLEAN_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("TYPENOTBOOLEAN_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 243, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("TYPENOTBOOLEAN_parse found option 1 -- \"\" ");
      *__arg =
	makeparsetree (__temp, TYPENOTBOOLEAN_1, 1, "TYPENOTBOOLEAN",
		       __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("TYPENOTBOOLEAN_parse failed");
  return (FALSE);
}

int
UPATSEP_parse (YYTYPE ** __arg)
{
  YYTYPE __temp;
  int i;
  long __pos;

  void *__stack;

  *__arg = NULL;		/* Initialise in case of failure */
/*if (!_optimise)*/ for (i = 0; i < MAX_RULES; i++)
    __temp.execute.arg[i] = NULL;
  if (!_optimise)
    debug_enter ("UPATSEP_parse - trying option 1");
  __stack = stackmark ();
  if (note_backtrack (&__pos)
      && _regexp_parse (savepat, 244, &__temp.execute.arg[1]))
    {
      if (!_optimise)
	debug_exit ("UPATSEP_parse found option 1 -- \"\" ");
      *__arg = makeparsetree (__temp, UPATSEP_1, 1, "UPATSEP", __LINE__);
      return (TRUE);
    }
  do_backtrack (__pos);
  stackrelease (__stack);
  if (!_optimise)
    debug_exit ("UPATSEP_parse failed");
  return (FALSE);
}


static int
cover_test (void)
{
  if ((cover_testing) && (!SEEN_main_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule main not tested\n");
  if ((cover_testing) && (!SEEN_DECLIST_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule DECLIST not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFDECLIST_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFDECLIST not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFDECLIST_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFDECLIST not tested\n");
  if ((cover_testing) && (!SEEN_OPERAND_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule OPERAND not tested\n");
  if ((cover_testing) && (!SEEN_OPERAND_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule OPERAND not tested\n");
  if ((cover_testing) && (!SEEN_OPERAND_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule OPERAND not tested\n");
  if ((cover_testing) && (!SEEN_EXPR_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule EXPR not tested\n");
  if ((cover_testing) && (!SEEN_EXPR_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule EXPR not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFEXPR_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFEXPR not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFEXPR_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFEXPR not tested\n");
  if ((cover_testing) && (!SEEN_APP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule APP not tested\n");
  if ((cover_testing) && (!SEEN_APP_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule APP not tested\n");
  if ((cover_testing) && (!SEEN_APP_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule APP not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFAPP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFAPP not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFAPP_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFAPP not tested\n");
  if ((cover_testing) && (!SEEN_LABAPP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule LABAPP not tested\n");
  if ((cover_testing) && (!SEEN_LABAPP_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule LABAPP not tested\n");
  if ((cover_testing) && (!SEEN_LABAPP_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule LABAPP not tested\n");
  if ((cover_testing) && (!SEEN_BCONST_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule BCONST not tested\n");
  if ((cover_testing) && (!SEEN_BCONST_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule BCONST not tested\n");
  if ((cover_testing) && (!SEEN_BOP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule BOP not tested\n");
  if ((cover_testing) && (!SEEN_BOP_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule BOP not tested\n");
  if ((cover_testing) && (!SEEN_BOP_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule BOP not tested\n");
  if ((cover_testing) && (!SEEN_BOP_4))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 4 of rule BOP not tested\n");
  if ((cover_testing) && (!SEEN_BOP_5))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 5 of rule BOP not tested\n");
  if ((cover_testing) && (!SEEN_BOP_6))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 6 of rule BOP not tested\n");
  if ((cover_testing) && (!SEEN_BOP_7))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 7 of rule BOP not tested\n");
  if ((cover_testing) && (!SEEN_BTERM_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule BTERM not tested\n");
  if ((cover_testing) && (!SEEN_BTERM_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule BTERM not tested\n");
  if ((cover_testing) && (!SEEN_BTERM_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule BTERM not tested\n");
  if ((cover_testing) && (!SEEN_SBEXPR_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule SBEXPR not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFSBEXPR_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFSBEXPR not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFSBEXPR_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFSBEXPR not tested\n");
  if ((cover_testing) && (!SEEN_BEXPR_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule BEXPR not tested\n");
  if ((cover_testing) && (!SEEN_BEXPR_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule BEXPR not tested\n");
  if ((cover_testing) && (!SEEN_BOPERAND_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule BOPERAND not tested\n");
  if ((cover_testing) && (!SEEN_BOPERAND_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule BOPERAND not tested\n");
  if ((cover_testing) && (!SEEN_BOPERAND_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule BOPERAND not tested\n");
  if ((cover_testing) && (!SEEN_BOPERAND_4))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 4 of rule BOPERAND not tested\n");
  if ((cover_testing) && (!SEEN_TYPEopt_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule TYPEopt not tested\n");
  if ((cover_testing) && (!SEEN_TYPEopt_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule TYPEopt not tested\n");
  if ((cover_testing) && (!SEEN_TYPEopt_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule TYPEopt not tested\n");
  if ((cover_testing) && (!SEEN_TYPEopt_4))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 4 of rule TYPEopt not tested\n");
  if ((cover_testing) && (!SEEN_VALUEq_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule VALUEq not tested\n");
  if ((cover_testing) && (!SEEN_VALUEq_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule VALUEq not tested\n");
  if ((cover_testing) && (!SEEN_FPDEL_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule FPDEL not tested\n");
  if ((cover_testing) && (!SEEN_FPDEL_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule FPDEL not tested\n");
  if ((cover_testing) && (!SEEN_FPDEL_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule FPDEL not tested\n");
  if ((cover_testing) && (!SEEN_FPDEL_4))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 4 of rule FPDEL not tested\n");
  if ((cover_testing) && (!SEEN_PDECLN_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule PDECLN not tested\n");
  if ((cover_testing) && (!SEEN_PDECLN_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule PDECLN not tested\n");
  if ((cover_testing) && (!SEEN_PDECLN_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule PDECLN not tested\n");
  if ((cover_testing) && (!SEEN_FPP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule FPP not tested\n");
  if ((cover_testing) && (!SEEN_FPP_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule FPP not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFFPLIST_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFFPLIST not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFFPLIST_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFFPLIST not tested\n");
  if ((cover_testing) && (!SEEN_FPSEP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule FPSEP not tested\n");
  if ((cover_testing) && (!SEEN_FPSEP_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule FPSEP not tested\n");
  if ((cover_testing) && (!SEEN_OPTCOM_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule OPTCOM not tested\n");
  if ((cover_testing) && (!SEEN_OPTCOM_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule OPTCOM not tested\n");
  if ((cover_testing) && (!SEEN_FPSPEC_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule FPSPEC not tested\n");
  if ((cover_testing) && (!SEEN_FPSPEC_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule FPSPEC not tested\n");
  if ((cover_testing) && (!SEEN_PARCOM_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule PARCOM not tested\n");
  if ((cover_testing) && (!SEEN_PARCOM_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule PARCOM not tested\n");
  if ((cover_testing) && (!SEEN_COLONq_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule COLONq not tested\n");
  if ((cover_testing) && (!SEEN_COLONq_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule COLONq not tested\n");
  if ((cover_testing) && (!SEEN_COMVAL_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule COMVAL not tested\n");
  if ((cover_testing) && (!SEEN_COMVAL_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule COMVAL not tested\n");
  if ((cover_testing) && (!SEEN_COMFP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule COMFP not tested\n");
  if ((cover_testing) && (!SEEN_COMFP_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule COMFP not tested\n");
  if ((cover_testing) && (!SEEN_COMDEL_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule COMDEL not tested\n");
  if ((cover_testing) && (!SEEN_COMDEL_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule COMDEL not tested\n");
  if ((cover_testing) && (!SEEN_COMDEL_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule COMDEL not tested\n");
  if ((cover_testing) && (!SEEN_COMDEL_4))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 4 of rule COMDEL not tested\n");
  if ((cover_testing) && (!SEEN_COMDECLN_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule COMDECLN not tested\n");
  if ((cover_testing) && (!SEEN_COMDECLN_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule COMDECLN not tested\n");
  if ((cover_testing) && (!SEEN_COMDECLN_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule COMDECLN not tested\n");
  if ((cover_testing) && (!SEEN_CNLIST_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule CNLIST not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFCNLIST_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFCNLIST not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFCNLIST_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFCNLIST not tested\n");
  if ((cover_testing) && (!SEEN_GENSDE_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule GENSDE not tested\n");
  if ((cover_testing) && (!SEEN_GENSDE_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule GENSDE not tested\n");
  if ((cover_testing) && (!SEEN_GENDE_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule GENDE not tested\n");
  if ((cover_testing) && (!SEEN_GENDE_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule GENDE not tested\n");
  if ((cover_testing) && (!SEEN_SDE_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule SDE not tested\n");
  if ((cover_testing) && (!SEEN_SDE_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule SDE not tested\n");
  if ((cover_testing) && (!SEEN_DE_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule DE not tested\n");
  if ((cover_testing) && (!SEEN_DE_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule DE not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFGENDELIST_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFGENDELIST not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFGENDELIST_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFGENDELIST not tested\n");
  if ((cover_testing) && (!SEEN_RTP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RTP not tested\n");
  if ((cover_testing) && (!SEEN_RTP_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RTP not tested\n");
  if ((cover_testing) && (!SEEN_RTP_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule RTP not tested\n");
  if ((cover_testing) && (!SEEN_RTP_4))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 4 of rule RTP not tested\n");
  if ((cover_testing) && (!SEEN_RTP_5))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 5 of rule RTP not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFRTPLIST_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFRTPLIST not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFRTPLIST_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFRTPLIST not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFASS_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFASS not tested\n");
  if ((cover_testing) && (!SEEN_abEXPR_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule abEXPR not tested\n");
  if ((cover_testing) && (!SEEN_abEXPR_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule abEXPR not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFABLP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFABLP not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFABLP_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFABLP not tested\n");
  if ((cover_testing) && (!SEEN_oldRESTOFASS_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule oldRESTOFASS not tested\n");
  if ((cover_testing) && (!SEEN_oldRESTOFASS_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule oldRESTOFASS not tested\n");
  if ((cover_testing) && (!SEEN_oldRESTOFBLP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule oldRESTOFBLP not tested\n");
  if ((cover_testing) && (!SEEN_oldRESTOFBLP_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule oldRESTOFBLP not tested\n");
  if ((cover_testing) && (!SEEN_oldRESTOFALP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule oldRESTOFALP not tested\n");
  if ((cover_testing) && (!SEEN_oldRESTOFALP_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule oldRESTOFALP not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFFLE_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFFLE not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFFLE_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFFLE not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFFLE_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule RESTOFFLE not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFFORLIST_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFFORLIST not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFFORLIST_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFFORLIST not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFBPLIST_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFBPLIST not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFBPLIST_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFBPLIST not tested\n");
  if ((cover_testing) && (!SEEN_DECLN_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule DECLN not tested\n");
  if ((cover_testing) && (!SEEN_DECLN_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule DECLN not tested\n");
  if ((cover_testing) && (!SEEN_ADECLN_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule ADECLN not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFARRAYLIST_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFARRAYLIST not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFARRAYLIST_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFARRAYLIST not tested\n");
  if ((cover_testing) && (!SEEN_BPAIR_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule BPAIR not tested\n");
  if ((cover_testing) && (!SEEN_BPAIR_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule BPAIR not tested\n");
  if ((cover_testing) && (!SEEN_CBPAIR_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule CBPAIR not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFCBP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFCBP not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFCBP_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFCBP not tested\n");
  if ((cover_testing) && (!SEEN_OADECLN_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule OADECLN not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFOADEC_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFOADEC not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFOADEC_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFOADEC not tested\n");
  if ((cover_testing) && (!SEEN_VDECLNa_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule VDECLNa not tested\n");
  if ((cover_testing) && (!SEEN_VDECLNb_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule VDECLNb not tested\n");
  if ((cover_testing) && (!SEEN_VDECLN_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule VDECLN not tested\n");
  if ((cover_testing) && (!SEEN_VDECLN_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule VDECLN not tested\n");
  if ((cover_testing) && (!SEEN_VDECLN_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule VDECLN not tested\n");
  if ((cover_testing) && (!SEEN_COMP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_4))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 4 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_5))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 5 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_6))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 6 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_7))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 7 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_8))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 8 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_9))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 9 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_10))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 10 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_11))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 11 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_12))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 12 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_13))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 13 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_14))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 14 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_15))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 15 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_16))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 16 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_17))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 17 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_18))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 18 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_19))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 19 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_20))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 20 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_21))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 21 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_COMP_22))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 22 of rule COMP not tested\n");
  if ((cover_testing) && (!SEEN_OLABEL_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule OLABEL not tested\n");
  if ((cover_testing) && (!SEEN_OLABEL_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule OLABEL not tested\n");
  if ((cover_testing) && (!SEEN_NSTMT_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule NSTMT not tested\n");
  if ((cover_testing) && (!SEEN_NSTMT_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule NSTMT not tested\n");
  if ((cover_testing) && (!SEEN_NSTMT_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule NSTMT not tested\n");
  if ((cover_testing) && (!SEEN_NSTMT_4))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 4 of rule NSTMT not tested\n");
  if ((cover_testing) && (!SEEN_FORSTMNT_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule FORSTMNT not tested\n");
  if ((cover_testing) && (!SEEN_STMT_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule STMT not tested\n");
  if ((cover_testing) && (!SEEN_STMT_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule STMT not tested\n");
  if ((cover_testing) && (!SEEN_STMT_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule STMT not tested\n");
  if ((cover_testing) && (!SEEN_STMT_4))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 4 of rule STMT not tested\n");
  if ((cover_testing) && (!SEEN_BLKORCS_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule BLKORCS not tested\n");
  if ((cover_testing) && (!SEEN_BLKORCS_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule BLKORCS not tested\n");
  if ((cover_testing) && (!SEEN_FSTMT_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule FSTMT not tested\n");
  if ((cover_testing) && (!SEEN_FSTMT_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule FSTMT not tested\n");
  if ((cover_testing) && (!SEEN_USTMT_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule USTMT not tested\n");
  if ((cover_testing) && (!SEEN_USTMT_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule USTMT not tested\n");
  if ((cover_testing) && (!SEEN_USTMT_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule USTMT not tested\n");
  if ((cover_testing) && (!SEEN_USTMT_4))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 4 of rule USTMT not tested\n");
  if ((cover_testing) && (!SEEN_EPNAME_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule EPNAME not tested\n");
  if ((cover_testing) && (!SEEN_EPNAME_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule EPNAME not tested\n");
  if ((cover_testing) && (!SEEN_PROCSTMT_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule PROCSTMT not tested\n");
  if ((cover_testing) && (!SEEN_PROCSTMT_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule PROCSTMT not tested\n");
  if ((cover_testing) && (!SEEN_PROCSTMT_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule PROCSTMT not tested\n");
  if ((cover_testing) && (!SEEN_PROCSTMT_4))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 4 of rule PROCSTMT not tested\n");
  if ((cover_testing) && (!SEEN_PROCSTMT_5))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 5 of rule PROCSTMT not tested\n");
  if ((cover_testing) && (!SEEN_PROCSTMT_6))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 6 of rule PROCSTMT not tested\n");
  if ((cover_testing) && (!SEEN_ELSEq_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule ELSEq not tested\n");
  if ((cover_testing) && (!SEEN_ELSEq_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule ELSEq not tested\n");
  if ((cover_testing) && (!SEEN_ELSESTMNT_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule ELSESTMNT not tested\n");
  if ((cover_testing) && (!SEEN_ELSESTMNT_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule ELSESTMNT not tested\n");
  if ((cover_testing) && (!SEEN_UI_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule UI not tested\n");
  if ((cover_testing) && (!SEEN_UI_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule UI not tested\n");
  if ((cover_testing) && (!SEEN_UI_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule UI not tested\n");
  if ((cover_testing) && (!SEEN_SS_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule SS not tested\n");
  if ((cover_testing) && (!SEEN_SS_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule SS not tested\n");
  if ((cover_testing) && (!SEEN_SS_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule SS not tested\n");
  if ((cover_testing) && (!SEEN_STMNT_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule STMNT not tested\n");
  if ((cover_testing) && (!SEEN_STMNT_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule STMNT not tested\n");
  if ((cover_testing) && (!SEEN_STMNT_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule STMNT not tested\n");
  if ((cover_testing) && (!SEEN_STMNT_4))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 4 of rule STMNT not tested\n");
  if ((cover_testing) && (!SEEN_STMNT_5))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 5 of rule STMNT not tested\n");
  if ((cover_testing) && (!SEEN_STMNT_6))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 6 of rule STMNT not tested\n");
  if ((cover_testing) && (!SEEN_STMNT_7))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 7 of rule STMNT not tested\n");
  if ((cover_testing) && (!SEEN_STMNT_8))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 8 of rule STMNT not tested\n");
  if ((cover_testing) && (!SEEN_STMNT_9))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 9 of rule STMNT not tested\n");
  if ((cover_testing) && (!SEEN_STMNT_10))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 10 of rule STMNT not tested\n");
  if ((cover_testing) && (!SEEN_STMNT_11))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 11 of rule STMNT not tested\n");
  if ((cover_testing) && (!SEEN_STMNT_12))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 12 of rule STMNT not tested\n");
  if ((cover_testing) && (!SEEN_STMNT_13))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 13 of rule STMNT not tested\n");
  if ((cover_testing) && (!SEEN_STMNT_14))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 14 of rule STMNT not tested\n");
  if ((cover_testing) && (!SEEN_NOTENAME_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule NOTENAME not tested\n");
  if ((cover_testing) && (!SEEN_S_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule S not tested\n");
  if ((cover_testing) && (!SEEN_S_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule S not tested\n");
  if ((cover_testing) && (!SEEN_S_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule S not tested\n");
  if ((cover_testing) && (!SEEN_UP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule UP not tested\n");
  if ((cover_testing) && (!SEEN_DOWN_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule DOWN not tested\n");
  if ((cover_testing) && (!SEEN_CHKLAB_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule CHKLAB not tested\n");
  if ((cover_testing) && (!SEEN_ass_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule ass not tested\n");
  if ((cover_testing) && (!SEEN_LINKOWNS_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule LINKOWNS not tested\n");
  if ((cover_testing) && (!SEEN_ARRAYTYPE_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule ARRAYTYPE not tested\n");
  if ((cover_testing) && (!SEEN_CHECKSC_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule CHECKSC not tested\n");
  if ((cover_testing) && (!SEEN_CHKLPL_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule CHKLPL not tested\n");
  if ((cover_testing) && (!SEEN_CMPND_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule CMPND not tested\n");
  if ((cover_testing) && (!SEEN_CMPND_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule CMPND not tested\n");
  if ((cover_testing) && (!SEEN_COMTEXT_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule COMTEXT not tested\n");
  if ((cover_testing) && (!SEEN_continuecom_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule continuecom not tested\n");
  if ((cover_testing) && (!SEEN_continuecom_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule continuecom not tested\n");
  if ((cover_testing) && (!SEEN_ENDTEXT_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule ENDTEXT not tested\n");
  if ((cover_testing) && (!SEEN_RENDTEXT_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RENDTEXT not tested\n");
  if ((cover_testing) && (!SEEN_RENDTEXT_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RENDTEXT not tested\n");
  if ((cover_testing) && (!SEEN_end_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule end not tested\n");
  if ((cover_testing) && (!SEEN_then_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule then not tested\n");
  if ((cover_testing) && (!SEEN_else_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule else not tested\n");
  if ((cover_testing) && (!SEEN_semi_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule semi not tested\n");
  if ((cover_testing) && (!SEEN_semi_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule semi not tested\n");
  if ((cover_testing) && (!SEEN_ch_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule ch not tested\n");
  if ((cover_testing) && (!SEEN_closer_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule closer not tested\n");
  if ((cover_testing) && (!SEEN_closer_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule closer not tested\n");
  if ((cover_testing) && (!SEEN_closer_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule closer not tested\n");
  if ((cover_testing) && (!SEEN_closer_4))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 4 of rule closer not tested\n");
  if ((cover_testing) && (!SEEN_closer_5))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 5 of rule closer not tested\n");
  if ((cover_testing) && (!SEEN_ICONST_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule ICONST not tested\n");
  if ((cover_testing) && (!SEEN_decfract_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule decfract not tested\n");
  if ((cover_testing) && (!SEEN_expart_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule expart not tested\n");
  if ((cover_testing) && (!SEEN_decnum_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule decnum not tested\n");
  if ((cover_testing) && (!SEEN_decnum_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule decnum not tested\n");
  if ((cover_testing) && (!SEEN_decnum_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule decnum not tested\n");
  if ((cover_testing) && (!SEEN_unsigned_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule unsigned not tested\n");
  if ((cover_testing) && (!SEEN_unsigned_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule unsigned not tested\n");
  if ((cover_testing) && (!SEEN_unsigned_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule unsigned not tested\n");
  if ((cover_testing) && (!SEEN_CONST_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule CONST not tested\n");
  if ((cover_testing) && (!SEEN_subten_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule subten not tested\n");
  if ((cover_testing) && (!SEEN_subten_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule subten not tested\n");
  if ((cover_testing) && (!SEEN_LABTYPE_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule LABTYPE not tested\n");
  if ((cover_testing) && (!SEEN_LETTERSTRING_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule LETTERSTRING not tested\n");
  if ((cover_testing) && (!SEEN_LHSQBR_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule LHSQBR not tested\n");
  if ((cover_testing) && (!SEEN_LHSQBR_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule LHSQBR not tested\n");
  if ((cover_testing) && (!SEEN_RHSQBR_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RHSQBR not tested\n");
  if ((cover_testing) && (!SEEN_RHSQBR_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RHSQBR not tested\n");
  if ((cover_testing) && (!SEEN_LINKARR_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule LINKARR not tested\n");
  if ((cover_testing) && (!SEEN_LINKLAB_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule LINKLAB not tested\n");
  if ((cover_testing) && (!SEEN_LINKPROC_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule LINKPROC not tested\n");
  if ((cover_testing) && (!SEEN_LINKSCAL_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule LINKSCAL not tested\n");
  if ((cover_testing) && (!SEEN_LINKSW_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule LINKSW not tested\n");
  if ((cover_testing) && (!SEEN_NAME_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule NAME not tested\n");
  if ((cover_testing) && (!SEEN_NOMORE_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule NOMORE not tested\n");
  if ((cover_testing) && (!SEEN_NOMORE_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule NOMORE not tested\n");
  if ((cover_testing) && (!SEEN_comma_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule comma not tested\n");
  if ((cover_testing) && (!SEEN_crb_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule crb not tested\n");
  if ((cover_testing) && (!SEEN_NOTELINE_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule NOTELINE not tested\n");
  if ((cover_testing) && (!SEEN_ONAME_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule ONAME not tested\n");
  if ((cover_testing) && (!SEEN_ONAMELIST_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule ONAMELIST not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFONAMELIST_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule RESTOFONAMELIST not tested\n");
  if ((cover_testing) && (!SEEN_RESTOFONAMELIST_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule RESTOFONAMELIST not tested\n");
  if ((cover_testing) && (!SEEN_OP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule OP not tested\n");
  if ((cover_testing) && (!SEEN_OP_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule OP not tested\n");
  if ((cover_testing) && (!SEEN_OP_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule OP not tested\n");
  if ((cover_testing) && (!SEEN_OP_4))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 4 of rule OP not tested\n");
  if ((cover_testing) && (!SEEN_OP_5))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 5 of rule OP not tested\n");
  if ((cover_testing) && (!SEEN_OP_6))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 6 of rule OP not tested\n");
  if ((cover_testing) && (!SEEN_OP_7))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 7 of rule OP not tested\n");
  if ((cover_testing) && (!SEEN_OP_8))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 8 of rule OP not tested\n");
  if ((cover_testing) && (!SEEN_OP_9))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 9 of rule OP not tested\n");
  if ((cover_testing) && (!SEEN_OP_10))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 10 of rule OP not tested\n");
  if ((cover_testing) && (!SEEN_OP_11))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 11 of rule OP not tested\n");
  if ((cover_testing) && (!SEEN_PLUSopt_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule PLUSopt not tested\n");
  if ((cover_testing) && (!SEEN_PLUSopt_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule PLUSopt not tested\n");
  if ((cover_testing) && (!SEEN_PLUSopt_3))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 3 of rule PLUSopt not tested\n");
  if ((cover_testing) && (!SEEN_PROCTYPE_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule PROCTYPE not tested\n");
  if ((cover_testing) && (!SEEN_SCALARTYPE_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule SCALARTYPE not tested\n");
  if ((cover_testing) && (!SEEN_STRTYPE_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule STRTYPE not tested\n");
  if ((cover_testing) && (!SEEN_SWBYNAME_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule SWBYNAME not tested\n");
  if ((cover_testing) && (!SEEN_SWTYPE_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule SWTYPE not tested\n");
  if ((cover_testing) && (!SEEN_TEXTTEXT_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule TEXTTEXT not tested\n");
  if ((cover_testing) && (!SEEN_TEXTTEXT_2))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 2 of rule TEXTTEXT not tested\n");
  if ((cover_testing) && (!SEEN_TYPEeqA_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule TYPEeqA not tested\n");
  if ((cover_testing) && (!SEEN_TYPEeqARR_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule TYPEeqARR not tested\n");
  if ((cover_testing) && (!SEEN_TYPEeqB_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule TYPEeqB not tested\n");
  if ((cover_testing) && (!SEEN_TYPENOTARITH_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule TYPENOTARITH not tested\n");
  if ((cover_testing) && (!SEEN_TYPENOTBOOLEAN_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule TYPENOTBOOLEAN not tested\n");
  if ((cover_testing) && (!SEEN_UPATSEP_1))
    LogWarning (ProgName, "algolps9.e", 0,
		"Alternative 1 of rule UPATSEP not tested\n");
}

#ifndef NO_MAIN			/* Get this by default */

int
main (int local_argc, char **local_argv)
{
  YYTYPE *root;			/* Or could be a single YYTYPE, plus an explicit makeparsetree() */
  int i;
  argv = local_argv;
  argc = local_argc;
  /* Should open file yyin here; do it in first entry routine *only* if
     it recognises the null phrase "" */
  if (main_parse (&root))
    {
      dump_parsetree (root);
      execute_parsetree (root);
    }
  else
    {
      fprintf (stderr, "Parse fail\n");
      for (i = 0; i < 245; i++)
	if (savepat[i].r != NULL)
	  free (savepat[i].r);
      exit (EXIT_FAILURE);
    }
  /*free_parsetree(root); *//*free(root); */
  cover_test ();
  exit (EXIT_SUCCESS);
}
#endif /* not NO_MAIN */

static void
_regexp_freeall (void)
{
  int i;
  for (i = 0; i < 245; i++)
    if (savepat[i].r != NULL)
      free (savepat[i].r);
}
