

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <assert.h>

#include "log.h"
#include "taccutil.h"
#include "sscanr.h"
#include "debug.h"
#include "mmalloc.h"

/*



    The hack for EXPR vs BEXPR is now getting too messy.  Remove it, add
    a symbol table, and check properly.  I gave up patching the parser
    with guards when I got to this example: I:=ifI=0thenifJ=0then1else2else3;

-----------------------------------------------------------------------------

     This program parses an Algol60 source file, and walks the parse tree
    to output the source with consistent case and indentation.  It is
    roughly equivalent to the original Algol60 SOAP program, but not as clever.

    This is not yet released for prime time!  It was written solely as an
    excuse to use the Algol60 grammar and see how it worked.

    The input for this program must come from the "filter" program also
    in this directory.  Note different manufacturers' compilers use slightly
    different concrete syntax and therefore require a different filter program
    to do line reconstruction.  There appears to be a major problem in
    the grammar relating to strings of the form <string>, which is ambiguous
    due to '<' and '>' relation operators.  Stripping spaces and converting
    keywords within such a string may not be wanted.

 */

/* This is the type of objects passed around as $1, $0 etc. */
#define USERTYPE char

#define RBRACE '}'
  /* Bug in tacc translation  - } skipped OK in strings but not int consts */
#define SQUOTE 39
#define DQUOTE 34


int exit_flag = FALSE;
int printing = TRUE;
int ilev = 0; /* nested begin/end for now.  Later use a stack */
int delayed_ilev = 0;
extern int _debug; /* set to true for parser diags */
int label = FALSE;

char *ProgName = "algolps9";
extern char **argv;
extern int argc;

int verbose = FALSE;

void indent(int ilev)
{
  while (ilev-- > 0) printf("   ");
}

char *doubleup(char *text, int c)
{
   char *s, *t;
   int ccount = 0;
   s = text;
   while (*s != '\0') if (*s++ == c) ccount += 1;
   t = s = stackmalloc(strlen(text)+ccount+1);
   if (s == NULL) {
      fprintf(stderr, "copyof: malloc fails - not enough room.\n");
      exit(EXIT_FAILURE);
   }
   for (;;) {
     if (*text == c) *s++ = c;
     if ((*s++ = *text++) == '\0') break;
   }
   return(t);
}

char *formatf(char *s, ...)
{
  /* Size the string by vfprint'ing it to /dev/null... */
  /* then heapmalloc an appropriate area                */
  char *APPROPRIATE_STRING;
  va_list ap;          

  
  {
    static FILE *nullfile = NULL;
    int string_length;
    
    if (nullfile == NULL) nullfile = fopen("/dev/null", "w");
    if (nullfile == NULL) {
      fprintf(stderr, "Major error - cannot open /dev/null\n");
      fflush(stderr);
      exit(1);
    }
  va_start(ap, s);
    string_length = vfprintf(nullfile, s, ap);
  va_end(ap);
    /* fclose(nullfile); */
    APPROPRIATE_STRING = tempheapmalloc(string_length+1);
  va_start(ap, s);
    vsprintf(APPROPRIATE_STRING, s, ap);
  va_end(ap);
  }
  return(APPROPRIATE_STRING);
}
             
char *strlwr(char *orig)
{
  char *s = orig;
  for (;;) {
    if (*s == '\0') break;
    if ((isalpha(*s)) && (isupper(*s))) *s = tolower(*s);
    s++;
  }
  return(orig);
}

char *htmlescape(char *s)
{
  static char line[1024];
  char *t = line;
  for (;;) {
    if (*s == '\0') {
      break;
    } else if (*s == '&') {
      t += sprintf(t, "&amp;");
    } else if (*s == '<') {
      t += sprintf(t, "&lt;");
    } else if (*s == '>') {
      t += sprintf(t, "&gt;");
    } else if (*s == DQUOTE) {
      for (;;) {
        *t++ = *s++;
        if ((*s == DQUOTE) || (*s == '\0')) break;
      }
      *t = '\0';
      if (*s == '\0') return line;
      *t++ = DQUOTE;
    } else {
      if (islower(*s)) t += sprintf(t, "<b><u>");
      *t++ = *s;
      if (islower(*s)) t += sprintf(t, "</u></b>");
    }
    s += 1;
  }
  *t = '\0';
  return line;
}


int main_1(YYTYPE *__arg);

int main_parse(YYTYPE **__arg);
static int SEEN_main_1 = FALSE;

int DECLIST_1(YYTYPE *__arg);

int DECLIST_parse(YYTYPE **__arg);
static int SEEN_DECLIST_1 = FALSE;

int RESTOFDECLIST_1(YYTYPE *__arg);

int RESTOFDECLIST_parse(YYTYPE **__arg);
static int SEEN_RESTOFDECLIST_1 = FALSE;

int RESTOFDECLIST_2(YYTYPE *__arg);
static int SEEN_RESTOFDECLIST_2 = FALSE;

int OPERAND_1(YYTYPE *__arg);

int OPERAND_parse(YYTYPE **__arg);
static int SEEN_OPERAND_1 = FALSE;

int OPERAND_2(YYTYPE *__arg);
static int SEEN_OPERAND_2 = FALSE;

int OPERAND_3(YYTYPE *__arg);
static int SEEN_OPERAND_3 = FALSE;

int EXPR_1(YYTYPE *__arg);

int EXPR_parse(YYTYPE **__arg);
static int SEEN_EXPR_1 = FALSE;

int EXPR_2(YYTYPE *__arg);
static int SEEN_EXPR_2 = FALSE;

int RESTOFEXPR_1(YYTYPE *__arg);

int RESTOFEXPR_parse(YYTYPE **__arg);
static int SEEN_RESTOFEXPR_1 = FALSE;

int RESTOFEXPR_2(YYTYPE *__arg);
static int SEEN_RESTOFEXPR_2 = FALSE;

int APP_1(YYTYPE *__arg);

int APP_parse(YYTYPE **__arg);
static int SEEN_APP_1 = FALSE;

int APP_2(YYTYPE *__arg);
static int SEEN_APP_2 = FALSE;

int APP_3(YYTYPE *__arg);
static int SEEN_APP_3 = FALSE;

int RESTOFAPP_1(YYTYPE *__arg);

int RESTOFAPP_parse(YYTYPE **__arg);
static int SEEN_RESTOFAPP_1 = FALSE;

int RESTOFAPP_2(YYTYPE *__arg);
static int SEEN_RESTOFAPP_2 = FALSE;

int LABAPP_1(YYTYPE *__arg);

int LABAPP_parse(YYTYPE **__arg);
static int SEEN_LABAPP_1 = FALSE;

int LABAPP_2(YYTYPE *__arg);
static int SEEN_LABAPP_2 = FALSE;

int LABAPP_3(YYTYPE *__arg);
static int SEEN_LABAPP_3 = FALSE;

int BCONST_1(YYTYPE *__arg);

int BCONST_parse(YYTYPE **__arg);
static int SEEN_BCONST_1 = FALSE;

int BCONST_2(YYTYPE *__arg);
static int SEEN_BCONST_2 = FALSE;

int BOP_1(YYTYPE *__arg);

int BOP_parse(YYTYPE **__arg);
static int SEEN_BOP_1 = FALSE;

int BOP_2(YYTYPE *__arg);
static int SEEN_BOP_2 = FALSE;

int BOP_3(YYTYPE *__arg);
static int SEEN_BOP_3 = FALSE;

int BOP_4(YYTYPE *__arg);
static int SEEN_BOP_4 = FALSE;

int BOP_5(YYTYPE *__arg);
static int SEEN_BOP_5 = FALSE;

int BOP_6(YYTYPE *__arg);
static int SEEN_BOP_6 = FALSE;

int BOP_7(YYTYPE *__arg);
static int SEEN_BOP_7 = FALSE;

int BTERM_1(YYTYPE *__arg);

int BTERM_parse(YYTYPE **__arg);
static int SEEN_BTERM_1 = FALSE;

int BTERM_2(YYTYPE *__arg);
static int SEEN_BTERM_2 = FALSE;

int BTERM_3(YYTYPE *__arg);
static int SEEN_BTERM_3 = FALSE;

int SBEXPR_1(YYTYPE *__arg);

int SBEXPR_parse(YYTYPE **__arg);
static int SEEN_SBEXPR_1 = FALSE;

int RESTOFSBEXPR_1(YYTYPE *__arg);

int RESTOFSBEXPR_parse(YYTYPE **__arg);
static int SEEN_RESTOFSBEXPR_1 = FALSE;

int RESTOFSBEXPR_2(YYTYPE *__arg);
static int SEEN_RESTOFSBEXPR_2 = FALSE;

int BEXPR_1(YYTYPE *__arg);

int BEXPR_parse(YYTYPE **__arg);
static int SEEN_BEXPR_1 = FALSE;

int BEXPR_2(YYTYPE *__arg);
static int SEEN_BEXPR_2 = FALSE;

int BOPERAND_1(YYTYPE *__arg);

int BOPERAND_parse(YYTYPE **__arg);
static int SEEN_BOPERAND_1 = FALSE;

int BOPERAND_2(YYTYPE *__arg);
static int SEEN_BOPERAND_2 = FALSE;

int BOPERAND_3(YYTYPE *__arg);
static int SEEN_BOPERAND_3 = FALSE;

int BOPERAND_4(YYTYPE *__arg);
static int SEEN_BOPERAND_4 = FALSE;

int TYPEopt_1(YYTYPE *__arg);

int TYPEopt_parse(YYTYPE **__arg);
static int SEEN_TYPEopt_1 = FALSE;

int TYPEopt_2(YYTYPE *__arg);
static int SEEN_TYPEopt_2 = FALSE;

int TYPEopt_3(YYTYPE *__arg);
static int SEEN_TYPEopt_3 = FALSE;

int TYPEopt_4(YYTYPE *__arg);
static int SEEN_TYPEopt_4 = FALSE;

int VALUEq_1(YYTYPE *__arg);

int VALUEq_parse(YYTYPE **__arg);
static int SEEN_VALUEq_1 = FALSE;

int VALUEq_2(YYTYPE *__arg);
static int SEEN_VALUEq_2 = FALSE;

int FPDEL_1(YYTYPE *__arg);

int FPDEL_parse(YYTYPE **__arg);
static int SEEN_FPDEL_1 = FALSE;

int FPDEL_2(YYTYPE *__arg);
static int SEEN_FPDEL_2 = FALSE;

int FPDEL_3(YYTYPE *__arg);
static int SEEN_FPDEL_3 = FALSE;

int FPDEL_4(YYTYPE *__arg);
static int SEEN_FPDEL_4 = FALSE;

int PDECLN_1(YYTYPE *__arg);

int PDECLN_parse(YYTYPE **__arg);
static int SEEN_PDECLN_1 = FALSE;

int PDECLN_2(YYTYPE *__arg);
static int SEEN_PDECLN_2 = FALSE;

int PDECLN_3(YYTYPE *__arg);
static int SEEN_PDECLN_3 = FALSE;

int FPP_1(YYTYPE *__arg);

int FPP_parse(YYTYPE **__arg);
static int SEEN_FPP_1 = FALSE;

int FPP_2(YYTYPE *__arg);
static int SEEN_FPP_2 = FALSE;

int RESTOFFPLIST_1(YYTYPE *__arg);

int RESTOFFPLIST_parse(YYTYPE **__arg);
static int SEEN_RESTOFFPLIST_1 = FALSE;

int RESTOFFPLIST_2(YYTYPE *__arg);
static int SEEN_RESTOFFPLIST_2 = FALSE;

int FPSEP_1(YYTYPE *__arg);

int FPSEP_parse(YYTYPE **__arg);
static int SEEN_FPSEP_1 = FALSE;

int FPSEP_2(YYTYPE *__arg);
static int SEEN_FPSEP_2 = FALSE;

int OPTCOM_1(YYTYPE *__arg);

int OPTCOM_parse(YYTYPE **__arg);
static int SEEN_OPTCOM_1 = FALSE;

int OPTCOM_2(YYTYPE *__arg);
static int SEEN_OPTCOM_2 = FALSE;

int FPSPEC_1(YYTYPE *__arg);

int FPSPEC_parse(YYTYPE **__arg);
static int SEEN_FPSPEC_1 = FALSE;

int FPSPEC_2(YYTYPE *__arg);
static int SEEN_FPSPEC_2 = FALSE;

int PARCOM_1(YYTYPE *__arg);

int PARCOM_parse(YYTYPE **__arg);
static int SEEN_PARCOM_1 = FALSE;

int PARCOM_2(YYTYPE *__arg);
static int SEEN_PARCOM_2 = FALSE;

int COLONq_1(YYTYPE *__arg);

int COLONq_parse(YYTYPE **__arg);
static int SEEN_COLONq_1 = FALSE;

int COLONq_2(YYTYPE *__arg);
static int SEEN_COLONq_2 = FALSE;

int COMVAL_1(YYTYPE *__arg);

int COMVAL_parse(YYTYPE **__arg);
static int SEEN_COMVAL_1 = FALSE;

int COMVAL_2(YYTYPE *__arg);
static int SEEN_COMVAL_2 = FALSE;

int COMFP_1(YYTYPE *__arg);

int COMFP_parse(YYTYPE **__arg);
static int SEEN_COMFP_1 = FALSE;

int COMFP_2(YYTYPE *__arg);
static int SEEN_COMFP_2 = FALSE;

int COMDEL_1(YYTYPE *__arg);

int COMDEL_parse(YYTYPE **__arg);
static int SEEN_COMDEL_1 = FALSE;

int COMDEL_2(YYTYPE *__arg);
static int SEEN_COMDEL_2 = FALSE;

int COMDEL_3(YYTYPE *__arg);
static int SEEN_COMDEL_3 = FALSE;

int COMDEL_4(YYTYPE *__arg);
static int SEEN_COMDEL_4 = FALSE;

int COMDECLN_1(YYTYPE *__arg);

int COMDECLN_parse(YYTYPE **__arg);
static int SEEN_COMDECLN_1 = FALSE;

int COMDECLN_2(YYTYPE *__arg);
static int SEEN_COMDECLN_2 = FALSE;

int COMDECLN_3(YYTYPE *__arg);
static int SEEN_COMDECLN_3 = FALSE;

int CNLIST_1(YYTYPE *__arg);

int CNLIST_parse(YYTYPE **__arg);
static int SEEN_CNLIST_1 = FALSE;

int RESTOFCNLIST_1(YYTYPE *__arg);

int RESTOFCNLIST_parse(YYTYPE **__arg);
static int SEEN_RESTOFCNLIST_1 = FALSE;

int RESTOFCNLIST_2(YYTYPE *__arg);
static int SEEN_RESTOFCNLIST_2 = FALSE;

int GENSDE_1(YYTYPE *__arg);

int GENSDE_parse(YYTYPE **__arg);
static int SEEN_GENSDE_1 = FALSE;

int GENSDE_2(YYTYPE *__arg);
static int SEEN_GENSDE_2 = FALSE;

int GENDE_1(YYTYPE *__arg);

int GENDE_parse(YYTYPE **__arg);
static int SEEN_GENDE_1 = FALSE;

int GENDE_2(YYTYPE *__arg);
static int SEEN_GENDE_2 = FALSE;

int SDE_1(YYTYPE *__arg);

int SDE_parse(YYTYPE **__arg);
static int SEEN_SDE_1 = FALSE;

int SDE_2(YYTYPE *__arg);
static int SEEN_SDE_2 = FALSE;

int DE_1(YYTYPE *__arg);

int DE_parse(YYTYPE **__arg);
static int SEEN_DE_1 = FALSE;

int DE_2(YYTYPE *__arg);
static int SEEN_DE_2 = FALSE;

int RESTOFGENDELIST_1(YYTYPE *__arg);

int RESTOFGENDELIST_parse(YYTYPE **__arg);
static int SEEN_RESTOFGENDELIST_1 = FALSE;

int RESTOFGENDELIST_2(YYTYPE *__arg);
static int SEEN_RESTOFGENDELIST_2 = FALSE;

int RTP_1(YYTYPE *__arg);

int RTP_parse(YYTYPE **__arg);
static int SEEN_RTP_1 = FALSE;

int RTP_2(YYTYPE *__arg);
static int SEEN_RTP_2 = FALSE;

int RTP_3(YYTYPE *__arg);
static int SEEN_RTP_3 = FALSE;

int RTP_4(YYTYPE *__arg);
static int SEEN_RTP_4 = FALSE;

int RTP_5(YYTYPE *__arg);
static int SEEN_RTP_5 = FALSE;

int RESTOFRTPLIST_1(YYTYPE *__arg);

int RESTOFRTPLIST_parse(YYTYPE **__arg);
static int SEEN_RESTOFRTPLIST_1 = FALSE;

int RESTOFRTPLIST_2(YYTYPE *__arg);
static int SEEN_RESTOFRTPLIST_2 = FALSE;

int RESTOFASS_1(YYTYPE *__arg);

int RESTOFASS_parse(YYTYPE **__arg);
static int SEEN_RESTOFASS_1 = FALSE;

int abEXPR_1(YYTYPE *__arg);

int abEXPR_parse(YYTYPE **__arg);
static int SEEN_abEXPR_1 = FALSE;

int abEXPR_2(YYTYPE *__arg);
static int SEEN_abEXPR_2 = FALSE;

int RESTOFABLP_1(YYTYPE *__arg);

int RESTOFABLP_parse(YYTYPE **__arg);
static int SEEN_RESTOFABLP_1 = FALSE;

int RESTOFABLP_2(YYTYPE *__arg);
static int SEEN_RESTOFABLP_2 = FALSE;

int oldRESTOFASS_1(YYTYPE *__arg);

int oldRESTOFASS_parse(YYTYPE **__arg);
static int SEEN_oldRESTOFASS_1 = FALSE;

int oldRESTOFASS_2(YYTYPE *__arg);
static int SEEN_oldRESTOFASS_2 = FALSE;

int oldRESTOFBLP_1(YYTYPE *__arg);

int oldRESTOFBLP_parse(YYTYPE **__arg);
static int SEEN_oldRESTOFBLP_1 = FALSE;

int oldRESTOFBLP_2(YYTYPE *__arg);
static int SEEN_oldRESTOFBLP_2 = FALSE;

int oldRESTOFALP_1(YYTYPE *__arg);

int oldRESTOFALP_parse(YYTYPE **__arg);
static int SEEN_oldRESTOFALP_1 = FALSE;

int oldRESTOFALP_2(YYTYPE *__arg);
static int SEEN_oldRESTOFALP_2 = FALSE;

int RESTOFFLE_1(YYTYPE *__arg);

int RESTOFFLE_parse(YYTYPE **__arg);
static int SEEN_RESTOFFLE_1 = FALSE;

int RESTOFFLE_2(YYTYPE *__arg);
static int SEEN_RESTOFFLE_2 = FALSE;

int RESTOFFLE_3(YYTYPE *__arg);
static int SEEN_RESTOFFLE_3 = FALSE;

int RESTOFFORLIST_1(YYTYPE *__arg);

int RESTOFFORLIST_parse(YYTYPE **__arg);
static int SEEN_RESTOFFORLIST_1 = FALSE;

int RESTOFFORLIST_2(YYTYPE *__arg);
static int SEEN_RESTOFFORLIST_2 = FALSE;

int RESTOFBPLIST_1(YYTYPE *__arg);

int RESTOFBPLIST_parse(YYTYPE **__arg);
static int SEEN_RESTOFBPLIST_1 = FALSE;

int RESTOFBPLIST_2(YYTYPE *__arg);
static int SEEN_RESTOFBPLIST_2 = FALSE;

int DECLN_1(YYTYPE *__arg);

int DECLN_parse(YYTYPE **__arg);
static int SEEN_DECLN_1 = FALSE;

int DECLN_2(YYTYPE *__arg);
static int SEEN_DECLN_2 = FALSE;

int ADECLN_1(YYTYPE *__arg);

int ADECLN_parse(YYTYPE **__arg);
static int SEEN_ADECLN_1 = FALSE;

int RESTOFARRAYLIST_1(YYTYPE *__arg);

int RESTOFARRAYLIST_parse(YYTYPE **__arg);
static int SEEN_RESTOFARRAYLIST_1 = FALSE;

int RESTOFARRAYLIST_2(YYTYPE *__arg);
static int SEEN_RESTOFARRAYLIST_2 = FALSE;

int BPAIR_1(YYTYPE *__arg);

int BPAIR_parse(YYTYPE **__arg);
static int SEEN_BPAIR_1 = FALSE;

int BPAIR_2(YYTYPE *__arg);
static int SEEN_BPAIR_2 = FALSE;

int CBPAIR_1(YYTYPE *__arg);

int CBPAIR_parse(YYTYPE **__arg);
static int SEEN_CBPAIR_1 = FALSE;

int RESTOFCBP_1(YYTYPE *__arg);

int RESTOFCBP_parse(YYTYPE **__arg);
static int SEEN_RESTOFCBP_1 = FALSE;

int RESTOFCBP_2(YYTYPE *__arg);
static int SEEN_RESTOFCBP_2 = FALSE;

int OADECLN_1(YYTYPE *__arg);

int OADECLN_parse(YYTYPE **__arg);
static int SEEN_OADECLN_1 = FALSE;

int RESTOFOADEC_1(YYTYPE *__arg);

int RESTOFOADEC_parse(YYTYPE **__arg);
static int SEEN_RESTOFOADEC_1 = FALSE;

int RESTOFOADEC_2(YYTYPE *__arg);
static int SEEN_RESTOFOADEC_2 = FALSE;

int VDECLNa_1(YYTYPE *__arg);

int VDECLNa_parse(YYTYPE **__arg);
static int SEEN_VDECLNa_1 = FALSE;

int VDECLNb_1(YYTYPE *__arg);

int VDECLNb_parse(YYTYPE **__arg);
static int SEEN_VDECLNb_1 = FALSE;

int VDECLN_1(YYTYPE *__arg);

int VDECLN_parse(YYTYPE **__arg);
static int SEEN_VDECLN_1 = FALSE;

int VDECLN_2(YYTYPE *__arg);
static int SEEN_VDECLN_2 = FALSE;

int VDECLN_3(YYTYPE *__arg);
static int SEEN_VDECLN_3 = FALSE;

int COMP_1(YYTYPE *__arg);

int COMP_parse(YYTYPE **__arg);
static int SEEN_COMP_1 = FALSE;

int COMP_2(YYTYPE *__arg);
static int SEEN_COMP_2 = FALSE;

int COMP_3(YYTYPE *__arg);
static int SEEN_COMP_3 = FALSE;

int COMP_4(YYTYPE *__arg);
static int SEEN_COMP_4 = FALSE;

int COMP_5(YYTYPE *__arg);
static int SEEN_COMP_5 = FALSE;

int COMP_6(YYTYPE *__arg);
static int SEEN_COMP_6 = FALSE;

int COMP_7(YYTYPE *__arg);
static int SEEN_COMP_7 = FALSE;

int COMP_8(YYTYPE *__arg);
static int SEEN_COMP_8 = FALSE;

int COMP_9(YYTYPE *__arg);
static int SEEN_COMP_9 = FALSE;

int COMP_10(YYTYPE *__arg);
static int SEEN_COMP_10 = FALSE;

int COMP_11(YYTYPE *__arg);
static int SEEN_COMP_11 = FALSE;

int COMP_12(YYTYPE *__arg);
static int SEEN_COMP_12 = FALSE;

int COMP_13(YYTYPE *__arg);
static int SEEN_COMP_13 = FALSE;

int COMP_14(YYTYPE *__arg);
static int SEEN_COMP_14 = FALSE;

int COMP_15(YYTYPE *__arg);
static int SEEN_COMP_15 = FALSE;

int COMP_16(YYTYPE *__arg);
static int SEEN_COMP_16 = FALSE;

int COMP_17(YYTYPE *__arg);
static int SEEN_COMP_17 = FALSE;

int COMP_18(YYTYPE *__arg);
static int SEEN_COMP_18 = FALSE;

int COMP_19(YYTYPE *__arg);
static int SEEN_COMP_19 = FALSE;

int COMP_20(YYTYPE *__arg);
static int SEEN_COMP_20 = FALSE;

int COMP_21(YYTYPE *__arg);
static int SEEN_COMP_21 = FALSE;

int COMP_22(YYTYPE *__arg);
static int SEEN_COMP_22 = FALSE;

int OLABEL_1(YYTYPE *__arg);

int OLABEL_parse(YYTYPE **__arg);
static int SEEN_OLABEL_1 = FALSE;

int OLABEL_2(YYTYPE *__arg);
static int SEEN_OLABEL_2 = FALSE;

int NSTMT_1(YYTYPE *__arg);

int NSTMT_parse(YYTYPE **__arg);
static int SEEN_NSTMT_1 = FALSE;

int NSTMT_2(YYTYPE *__arg);
static int SEEN_NSTMT_2 = FALSE;

int NSTMT_3(YYTYPE *__arg);
static int SEEN_NSTMT_3 = FALSE;

int NSTMT_4(YYTYPE *__arg);
static int SEEN_NSTMT_4 = FALSE;

int FORSTMNT_1(YYTYPE *__arg);

int FORSTMNT_parse(YYTYPE **__arg);
static int SEEN_FORSTMNT_1 = FALSE;

int STMT_1(YYTYPE *__arg);

int STMT_parse(YYTYPE **__arg);
static int SEEN_STMT_1 = FALSE;

int STMT_2(YYTYPE *__arg);
static int SEEN_STMT_2 = FALSE;

int STMT_3(YYTYPE *__arg);
static int SEEN_STMT_3 = FALSE;

int STMT_4(YYTYPE *__arg);
static int SEEN_STMT_4 = FALSE;

int BLKORCS_1(YYTYPE *__arg);

int BLKORCS_parse(YYTYPE **__arg);
static int SEEN_BLKORCS_1 = FALSE;

int BLKORCS_2(YYTYPE *__arg);
static int SEEN_BLKORCS_2 = FALSE;

int FSTMT_1(YYTYPE *__arg);

int FSTMT_parse(YYTYPE **__arg);
static int SEEN_FSTMT_1 = FALSE;

int FSTMT_2(YYTYPE *__arg);
static int SEEN_FSTMT_2 = FALSE;

int USTMT_1(YYTYPE *__arg);

int USTMT_parse(YYTYPE **__arg);
static int SEEN_USTMT_1 = FALSE;

int USTMT_2(YYTYPE *__arg);
static int SEEN_USTMT_2 = FALSE;

int USTMT_3(YYTYPE *__arg);
static int SEEN_USTMT_3 = FALSE;

int USTMT_4(YYTYPE *__arg);
static int SEEN_USTMT_4 = FALSE;

int EPNAME_1(YYTYPE *__arg);

int EPNAME_parse(YYTYPE **__arg);
static int SEEN_EPNAME_1 = FALSE;

int EPNAME_2(YYTYPE *__arg);
static int SEEN_EPNAME_2 = FALSE;

int PROCSTMT_1(YYTYPE *__arg);

int PROCSTMT_parse(YYTYPE **__arg);
static int SEEN_PROCSTMT_1 = FALSE;

int PROCSTMT_2(YYTYPE *__arg);
static int SEEN_PROCSTMT_2 = FALSE;

int PROCSTMT_3(YYTYPE *__arg);
static int SEEN_PROCSTMT_3 = FALSE;

int PROCSTMT_4(YYTYPE *__arg);
static int SEEN_PROCSTMT_4 = FALSE;

int PROCSTMT_5(YYTYPE *__arg);
static int SEEN_PROCSTMT_5 = FALSE;

int PROCSTMT_6(YYTYPE *__arg);
static int SEEN_PROCSTMT_6 = FALSE;

int ELSEq_1(YYTYPE *__arg);

int ELSEq_parse(YYTYPE **__arg);
static int SEEN_ELSEq_1 = FALSE;

int ELSEq_2(YYTYPE *__arg);
static int SEEN_ELSEq_2 = FALSE;

int ELSESTMNT_1(YYTYPE *__arg);

int ELSESTMNT_parse(YYTYPE **__arg);
static int SEEN_ELSESTMNT_1 = FALSE;

int ELSESTMNT_2(YYTYPE *__arg);
static int SEEN_ELSESTMNT_2 = FALSE;

int UI_1(YYTYPE *__arg);

int UI_parse(YYTYPE **__arg);
static int SEEN_UI_1 = FALSE;

int UI_2(YYTYPE *__arg);
static int SEEN_UI_2 = FALSE;

int UI_3(YYTYPE *__arg);
static int SEEN_UI_3 = FALSE;

int SS_1(YYTYPE *__arg);

int SS_parse(YYTYPE **__arg);
static int SEEN_SS_1 = FALSE;

int SS_2(YYTYPE *__arg);
static int SEEN_SS_2 = FALSE;

int SS_3(YYTYPE *__arg);
static int SEEN_SS_3 = FALSE;

int STMNT_1(YYTYPE *__arg);

int STMNT_parse(YYTYPE **__arg);
static int SEEN_STMNT_1 = FALSE;

int STMNT_2(YYTYPE *__arg);
static int SEEN_STMNT_2 = FALSE;

int STMNT_3(YYTYPE *__arg);
static int SEEN_STMNT_3 = FALSE;

int STMNT_4(YYTYPE *__arg);
static int SEEN_STMNT_4 = FALSE;

int STMNT_5(YYTYPE *__arg);
static int SEEN_STMNT_5 = FALSE;

int STMNT_6(YYTYPE *__arg);
static int SEEN_STMNT_6 = FALSE;

int STMNT_7(YYTYPE *__arg);
static int SEEN_STMNT_7 = FALSE;

int STMNT_8(YYTYPE *__arg);
static int SEEN_STMNT_8 = FALSE;

int STMNT_9(YYTYPE *__arg);
static int SEEN_STMNT_9 = FALSE;

int STMNT_10(YYTYPE *__arg);
static int SEEN_STMNT_10 = FALSE;

int STMNT_11(YYTYPE *__arg);
static int SEEN_STMNT_11 = FALSE;

int STMNT_12(YYTYPE *__arg);
static int SEEN_STMNT_12 = FALSE;

int STMNT_13(YYTYPE *__arg);
static int SEEN_STMNT_13 = FALSE;

int STMNT_14(YYTYPE *__arg);
static int SEEN_STMNT_14 = FALSE;

int NOTENAME_1(YYTYPE *__arg);

int NOTENAME_parse(YYTYPE **__arg);
static int SEEN_NOTENAME_1 = FALSE;

int S_1(YYTYPE *__arg);

int S_parse(YYTYPE **__arg);
static int SEEN_S_1 = FALSE;

int S_2(YYTYPE *__arg);
static int SEEN_S_2 = FALSE;

int S_3(YYTYPE *__arg);
static int SEEN_S_3 = FALSE;

int UP_1(YYTYPE *__arg);

int UP_parse(YYTYPE **__arg);
static int SEEN_UP_1 = FALSE;

int DOWN_1(YYTYPE *__arg);

int DOWN_parse(YYTYPE **__arg);
static int SEEN_DOWN_1 = FALSE;

int CHKLAB_1(YYTYPE *__arg);

int CHKLAB_parse(YYTYPE **__arg);
static int SEEN_CHKLAB_1 = FALSE;

int ass_1(YYTYPE *__arg);

int ass_parse(YYTYPE **__arg);
static int SEEN_ass_1 = FALSE;

int LINKOWNS_1(YYTYPE *__arg);

int LINKOWNS_parse(YYTYPE **__arg);
static int SEEN_LINKOWNS_1 = FALSE;

int ARRAYTYPE_1(YYTYPE *__arg);

int ARRAYTYPE_parse(YYTYPE **__arg);
static int SEEN_ARRAYTYPE_1 = FALSE;

int CHECKSC_1(YYTYPE *__arg);

int CHECKSC_parse(YYTYPE **__arg);
static int SEEN_CHECKSC_1 = FALSE;

int CHKLPL_1(YYTYPE *__arg);

int CHKLPL_parse(YYTYPE **__arg);
static int SEEN_CHKLPL_1 = FALSE;

int CMPND_1(YYTYPE *__arg);

int CMPND_parse(YYTYPE **__arg);
static int SEEN_CMPND_1 = FALSE;

int CMPND_2(YYTYPE *__arg);
static int SEEN_CMPND_2 = FALSE;

int COMTEXT_1(YYTYPE *__arg);

int COMTEXT_parse(YYTYPE **__arg);
static int SEEN_COMTEXT_1 = FALSE;

int continuecom_1(YYTYPE *__arg);

int continuecom_parse(YYTYPE **__arg);
static int SEEN_continuecom_1 = FALSE;

int continuecom_2(YYTYPE *__arg);
static int SEEN_continuecom_2 = FALSE;

int ENDTEXT_1(YYTYPE *__arg);

int ENDTEXT_parse(YYTYPE **__arg);
static int SEEN_ENDTEXT_1 = FALSE;

int RENDTEXT_1(YYTYPE *__arg);

int RENDTEXT_parse(YYTYPE **__arg);
static int SEEN_RENDTEXT_1 = FALSE;

int RENDTEXT_2(YYTYPE *__arg);
static int SEEN_RENDTEXT_2 = FALSE;

int end_1(YYTYPE *__arg);

int end_parse(YYTYPE **__arg);
static int SEEN_end_1 = FALSE;

int then_1(YYTYPE *__arg);

int then_parse(YYTYPE **__arg);
static int SEEN_then_1 = FALSE;

int else_1(YYTYPE *__arg);

int else_parse(YYTYPE **__arg);
static int SEEN_else_1 = FALSE;

int semi_1(YYTYPE *__arg);

int semi_parse(YYTYPE **__arg);
static int SEEN_semi_1 = FALSE;

int semi_2(YYTYPE *__arg);
static int SEEN_semi_2 = FALSE;

int ch_1(YYTYPE *__arg);

int ch_parse(YYTYPE **__arg);
static int SEEN_ch_1 = FALSE;

int closer_1(YYTYPE *__arg);

int closer_parse(YYTYPE **__arg);
static int SEEN_closer_1 = FALSE;

int closer_2(YYTYPE *__arg);
static int SEEN_closer_2 = FALSE;

int closer_3(YYTYPE *__arg);
static int SEEN_closer_3 = FALSE;

int closer_4(YYTYPE *__arg);
static int SEEN_closer_4 = FALSE;

int closer_5(YYTYPE *__arg);
static int SEEN_closer_5 = FALSE;

int ICONST_1(YYTYPE *__arg);

int ICONST_parse(YYTYPE **__arg);
static int SEEN_ICONST_1 = FALSE;

int decfract_1(YYTYPE *__arg);

int decfract_parse(YYTYPE **__arg);
static int SEEN_decfract_1 = FALSE;

int expart_1(YYTYPE *__arg);

int expart_parse(YYTYPE **__arg);
static int SEEN_expart_1 = FALSE;

int decnum_1(YYTYPE *__arg);

int decnum_parse(YYTYPE **__arg);
static int SEEN_decnum_1 = FALSE;

int decnum_2(YYTYPE *__arg);
static int SEEN_decnum_2 = FALSE;

int decnum_3(YYTYPE *__arg);
static int SEEN_decnum_3 = FALSE;

int unsigned_1(YYTYPE *__arg);

int unsigned_parse(YYTYPE **__arg);
static int SEEN_unsigned_1 = FALSE;

int unsigned_2(YYTYPE *__arg);
static int SEEN_unsigned_2 = FALSE;

int unsigned_3(YYTYPE *__arg);
static int SEEN_unsigned_3 = FALSE;

int CONST_1(YYTYPE *__arg);

int CONST_parse(YYTYPE **__arg);
static int SEEN_CONST_1 = FALSE;

int subten_1(YYTYPE *__arg);

int subten_parse(YYTYPE **__arg);
static int SEEN_subten_1 = FALSE;

int subten_2(YYTYPE *__arg);
static int SEEN_subten_2 = FALSE;

int LABTYPE_1(YYTYPE *__arg);

int LABTYPE_parse(YYTYPE **__arg);
static int SEEN_LABTYPE_1 = FALSE;

int LETTERSTRING_1(YYTYPE *__arg);

int LETTERSTRING_parse(YYTYPE **__arg);
static int SEEN_LETTERSTRING_1 = FALSE;

int LHSQBR_1(YYTYPE *__arg);

int LHSQBR_parse(YYTYPE **__arg);
static int SEEN_LHSQBR_1 = FALSE;

int LHSQBR_2(YYTYPE *__arg);
static int SEEN_LHSQBR_2 = FALSE;

int RHSQBR_1(YYTYPE *__arg);

int RHSQBR_parse(YYTYPE **__arg);
static int SEEN_RHSQBR_1 = FALSE;

int RHSQBR_2(YYTYPE *__arg);
static int SEEN_RHSQBR_2 = FALSE;

int LINKARR_1(YYTYPE *__arg);

int LINKARR_parse(YYTYPE **__arg);
static int SEEN_LINKARR_1 = FALSE;

int LINKLAB_1(YYTYPE *__arg);

int LINKLAB_parse(YYTYPE **__arg);
static int SEEN_LINKLAB_1 = FALSE;

int LINKPROC_1(YYTYPE *__arg);

int LINKPROC_parse(YYTYPE **__arg);
static int SEEN_LINKPROC_1 = FALSE;

int LINKSCAL_1(YYTYPE *__arg);

int LINKSCAL_parse(YYTYPE **__arg);
static int SEEN_LINKSCAL_1 = FALSE;

int LINKSW_1(YYTYPE *__arg);

int LINKSW_parse(YYTYPE **__arg);
static int SEEN_LINKSW_1 = FALSE;

int NAME_1(YYTYPE *__arg);

int NAME_parse(YYTYPE **__arg);
static int SEEN_NAME_1 = FALSE;

int NOMORE_1(YYTYPE *__arg);

int NOMORE_parse(YYTYPE **__arg);
static int SEEN_NOMORE_1 = FALSE;

int NOMORE_2(YYTYPE *__arg);
static int SEEN_NOMORE_2 = FALSE;

int comma_1(YYTYPE *__arg);

int comma_parse(YYTYPE **__arg);
static int SEEN_comma_1 = FALSE;

int crb_1(YYTYPE *__arg);

int crb_parse(YYTYPE **__arg);
static int SEEN_crb_1 = FALSE;

int NOTELINE_1(YYTYPE *__arg);

int NOTELINE_parse(YYTYPE **__arg);
static int SEEN_NOTELINE_1 = FALSE;

int ONAME_1(YYTYPE *__arg);

int ONAME_parse(YYTYPE **__arg);
static int SEEN_ONAME_1 = FALSE;

int ONAMELIST_1(YYTYPE *__arg);

int ONAMELIST_parse(YYTYPE **__arg);
static int SEEN_ONAMELIST_1 = FALSE;

int RESTOFONAMELIST_1(YYTYPE *__arg);

int RESTOFONAMELIST_parse(YYTYPE **__arg);
static int SEEN_RESTOFONAMELIST_1 = FALSE;

int RESTOFONAMELIST_2(YYTYPE *__arg);
static int SEEN_RESTOFONAMELIST_2 = FALSE;

int OP_1(YYTYPE *__arg);

int OP_parse(YYTYPE **__arg);
static int SEEN_OP_1 = FALSE;

int OP_2(YYTYPE *__arg);
static int SEEN_OP_2 = FALSE;

int OP_3(YYTYPE *__arg);
static int SEEN_OP_3 = FALSE;

int OP_4(YYTYPE *__arg);
static int SEEN_OP_4 = FALSE;

int OP_5(YYTYPE *__arg);
static int SEEN_OP_5 = FALSE;

int OP_6(YYTYPE *__arg);
static int SEEN_OP_6 = FALSE;

int OP_7(YYTYPE *__arg);
static int SEEN_OP_7 = FALSE;

int OP_8(YYTYPE *__arg);
static int SEEN_OP_8 = FALSE;

int OP_9(YYTYPE *__arg);
static int SEEN_OP_9 = FALSE;

int OP_10(YYTYPE *__arg);
static int SEEN_OP_10 = FALSE;

int OP_11(YYTYPE *__arg);
static int SEEN_OP_11 = FALSE;

int PLUSopt_1(YYTYPE *__arg);

int PLUSopt_parse(YYTYPE **__arg);
static int SEEN_PLUSopt_1 = FALSE;

int PLUSopt_2(YYTYPE *__arg);
static int SEEN_PLUSopt_2 = FALSE;

int PLUSopt_3(YYTYPE *__arg);
static int SEEN_PLUSopt_3 = FALSE;

int PROCTYPE_1(YYTYPE *__arg);

int PROCTYPE_parse(YYTYPE **__arg);
static int SEEN_PROCTYPE_1 = FALSE;

int SCALARTYPE_1(YYTYPE *__arg);

int SCALARTYPE_parse(YYTYPE **__arg);
static int SEEN_SCALARTYPE_1 = FALSE;

int STRTYPE_1(YYTYPE *__arg);

int STRTYPE_parse(YYTYPE **__arg);
static int SEEN_STRTYPE_1 = FALSE;

int SWBYNAME_1(YYTYPE *__arg);

int SWBYNAME_parse(YYTYPE **__arg);
static int SEEN_SWBYNAME_1 = FALSE;

int SWTYPE_1(YYTYPE *__arg);

int SWTYPE_parse(YYTYPE **__arg);
static int SEEN_SWTYPE_1 = FALSE;

int TEXTTEXT_1(YYTYPE *__arg);

int TEXTTEXT_parse(YYTYPE **__arg);
static int SEEN_TEXTTEXT_1 = FALSE;

int TEXTTEXT_2(YYTYPE *__arg);
static int SEEN_TEXTTEXT_2 = FALSE;

int TYPEeqA_1(YYTYPE *__arg);

int TYPEeqA_parse(YYTYPE **__arg);
static int SEEN_TYPEeqA_1 = FALSE;

int TYPEeqARR_1(YYTYPE *__arg);

int TYPEeqARR_parse(YYTYPE **__arg);
static int SEEN_TYPEeqARR_1 = FALSE;

int TYPEeqB_1(YYTYPE *__arg);

int TYPEeqB_parse(YYTYPE **__arg);
static int SEEN_TYPEeqB_1 = FALSE;

int TYPENOTARITH_1(YYTYPE *__arg);

int TYPENOTARITH_parse(YYTYPE **__arg);
static int SEEN_TYPENOTARITH_1 = FALSE;

int TYPENOTBOOLEAN_1(YYTYPE *__arg);

int TYPENOTBOOLEAN_parse(YYTYPE **__arg);
static int SEEN_TYPENOTBOOLEAN_1 = FALSE;

int UPATSEP_1(YYTYPE *__arg);

int UPATSEP_parse(YYTYPE **__arg);
static int SEEN_UPATSEP_1 = FALSE;


#ifdef NEVER
// "<" "[^<>]*" <RESTOFTEXTTEXT> {
//               $0 = formatf("&lt;%s%s", @2.text, $3);
//               /* any keywords need to be expanded back to 'KEYWORDS' */
//RESTOFTEXTTEXT: ">" { $0 = formatf(">"); }
//|            <TEXTTEXT> "[^<>]*" ">" {
//               $0 = formatf("%s%s&gt;", $1, @2.text);
#endif

extern int debug(const char *fmt, ...);
extern int debug_enter(const char *fmt, ...);
extern int debug_exit(const char *fmt, ...);

extern FILE *yyin;

int eof_parse(YYTYPE **p)
{
  int c;
  c = fgetc(yyin);
  if (c == EOF) {
    return(TRUE);
  }
  ungetc(c, yyin);
  return(FALSE);
}

int setdebug_parse(YYTYPE **p)
{
  _debug = TRUE;
  return(TRUE);
}

int candebug_parse(YYTYPE **p)
{
  _debug = FALSE;
  return(TRUE);
}


#define MAX_RULES 10
static patpair savepat[245] = {
   {"^", NULL},
   {"^,", NULL},
   {"^", NULL},
   {"^\\(", NULL},
   {"^\\)", NULL},
   {"^if", NULL},
   {"^then", NULL},
   {"^else", NULL},
   {"^", NULL},
   {"^\\(", NULL},
   {"^\\)", NULL},
   {"^", NULL},
   {"^,", NULL},
   {"^", NULL},
   {"^\\(", NULL},
   {"^\\)", NULL},
   {"^", NULL},
   {"^true", NULL},
   {"^false", NULL},
   {"^and", NULL},
   {"^\\&", NULL},
   {"^or", NULL},
   {"^#", NULL},
   {"^impl", NULL},
   {"^equiv", NULL},
   {"^eqv", NULL},
   {"^not", NULL},
   {"^~", NULL},
   {"^", NULL},
   {"^if", NULL},
   {"^then", NULL},
   {"^else", NULL},
   {"^\\(", NULL},
   {"^\\)", NULL},
   {"^integer", NULL},
   {"^real", NULL},
   {"^boolean", NULL},
   {"^", NULL},
   {"^value", NULL},
   {"^", NULL},
   {"^label", NULL},
   {"^switch", NULL},
   {"^string", NULL},
   {"^array", NULL},
   {"^procedure", NULL},
   {"^\\(", NULL},
   {"^\\)", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^,", NULL},
   {"^\\)", NULL},
   {"^:\\(", NULL},
   {"^comment", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^comment", NULL},
   {"^\\(", NULL},
   {"^\\)", NULL},
   {"^", NULL},
   {"^:", NULL},
   {"^", NULL},
   {"^value", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^label", NULL},
   {"^switch", NULL},
   {"^string", NULL},
   {"^array", NULL},
   {"^procedure", NULL},
   {"^,", NULL},
   {"^", NULL},
   {"^\\(", NULL},
   {"^\\)", NULL},
   {"^if", NULL},
   {"^then", NULL},
   {"^else", NULL},
   {"^\\(", NULL},
   {"^\\)", NULL},
   {"^if", NULL},
   {"^then", NULL},
   {"^else", NULL},
   {"^,", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^:=", NULL},
   {"^:=", NULL},
   {"^", NULL},
   {"^:=", NULL},
   {"^:=", NULL},
   {"^:=", NULL},
   {"^", NULL},
   {"^:=", NULL},
   {"^", NULL},
   {"^step", NULL},
   {"^until", NULL},
   {"^while", NULL},
   {"^", NULL},
   {"^,", NULL},
   {"^", NULL},
   {"^,", NULL},
   {"^:", NULL},
   {"^", NULL},
   {"^array", NULL},
   {"^,", NULL},
   {"^", NULL},
   {"^:", NULL},
   {"^:", NULL},
   {"^,", NULL},
   {"^:", NULL},
   {"^", NULL},
   {"^,", NULL},
   {"^", NULL},
   {"^procedure", NULL},
   {"^array", NULL},
   {"^\\<>", NULL},
   {"^\\<=", NULL},
   {"^\\<", NULL},
   {"^=", NULL},
   {"^>=", NULL},
   {"^>", NULL},
   {"^|=", NULL},
   {"^{", NULL},
   {"^#", NULL},
   {"^equal", NULL},
   {"^eq", NULL},
   {"^ge", NULL},
   {"^gt", NULL},
   {"^ne", NULL},
   {"^notequal", NULL},
   {"^less", NULL},
   {"^le", NULL},
   {"^notgreater", NULL},
   {"^lt", NULL},
   {"^!=", NULL},
   {"^~=", NULL},
   {"^\\\\=", NULL},
   {"^:", NULL},
   {"^", NULL},
   {"^for", NULL},
   {"^if", NULL},
   {"^then", NULL},
   {"^:=", NULL},
   {"^do", NULL},
   {"^for", NULL},
   {"^if", NULL},
   {"^then", NULL},
   {"^", NULL},
   {"^begin", NULL},
   {"^begin", NULL},
   {"^for", NULL},
   {"^", NULL},
   {"^algol", NULL},
   {"^external", NULL},
   {"^fortran", NULL},
   {"^code", NULL},
   {"^[0-9][0-9]*", NULL},
   {"^begin", NULL},
   {"^else", NULL},
   {"^", NULL},
   {"^begin", NULL},
   {"^goto", NULL},
   {"^[^;]*;", NULL},
   {"^procedure", NULL},
   {"^code", NULL},
   {"^[0-9][0-9]*", NULL},
   {"^end", NULL},
   {"^end", NULL},
   {"^comment", NULL},
   {"^begin", NULL},
   {"^switch", NULL},
   {"^:=", NULL},
   {"^own", NULL},
   {"^:", NULL},
   {"^codeon", NULL},
   {"^codeoff", NULL},
   {"^program", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^:=", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^[^;]*", NULL},
   {"^$", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^end", NULL},
   {"^then", NULL},
   {"^else", NULL},
   {"^;", NULL},
   {"^\\.,", NULL},
   {"^.", NULL},
   {"^[0-9][0-9]*", NULL},
   {"^\\.[0-9][0-9]*", NULL},
   {"^[0-9][0-9]*", NULL},
   {"^[0-9][0-9]*", NULL},
   {"^\\&", NULL},
   {"^@", NULL},
   {"^", NULL},
   {"^[A-Z]*", NULL},
   {"^\\[", NULL},
   {"^\\(/", NULL},
   {"^\\]", NULL},
   {"^/\\)", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^[A-Z][A-Z0-9_]*", NULL},
   {"^,", NULL},
   {"^\\)", NULL},
   {"^", NULL},
   {"^[A-Z][A-Z0-9_]*", NULL},
   {"^,", NULL},
   {"^", NULL},
   {"^\\^", NULL},
   {"^\\*\\*", NULL},
   {"^\\+", NULL},
   {"^\\-", NULL},
   {"^\\*", NULL},
   {"^//", NULL},
   {"^/", NULL},
   {"^div", NULL},
   {"^mod", NULL},
   {"^%", NULL},
   {"^power", NULL},
   {"^\\+", NULL},
   {"^\\-", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^\"[^\"]*\"", NULL},
   {"^`[^']*'", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^", NULL},
   {"^", NULL},
};
