text: #ifndef lint
  static const char yysccsid[] = "@(#)yaccpar	1.9 (Berkeley) 02/21/93";
  #endif
  
  #define YYBYACC 1
  #define YYMAJOR 1
  #define YYMINOR 9
  
  #define YYEMPTY        (-1)
  #define yyclearin      (yychar = YYEMPTY)
  #define yyerrok        (yyerrflag = 0)
  #define YYRECOVERING() (yyerrflag != 0)
  
  
  #ifndef yyparse
  #define yyparse    error_parse
  #endif /* yyparse */
  
  #ifndef yylex
  #define yylex      error_lex
  #endif /* yylex */
  
  #ifndef yyerror
  #define yyerror    error_error
  #endif /* yyerror */
  
  #ifndef yychar
  #define yychar     error_char
  #endif /* yychar */
  
  #ifndef yyval
  #define yyval      error_val
  #endif /* yyval */
  
  #ifndef yylval
  #define yylval     error_lval
  #endif /* yylval */
  
  #ifndef yydebug
  #define yydebug    error_debug
  #endif /* yydebug */
  
  #ifndef yynerrs
  #define yynerrs    error_nerrs
  #endif /* yynerrs */
  
  #ifndef yyerrflag
  #define yyerrflag  error_errflag
  #endif /* yyerrflag */
  
  #ifndef yylhs
  #define yylhs      error_lhs
  #endif /* yylhs */
  
  #ifndef yylen
  #define yylen      error_len
  #endif /* yylen */
  
  #ifndef yydefred
  #define yydefred   error_defred
  #endif /* yydefred */
  
  #ifndef yydgoto
  #define yydgoto    error_dgoto
  #endif /* yydgoto */
  
  #ifndef yysindex
  #define yysindex   error_sindex
  #endif /* yysindex */
  
  #ifndef yyrindex
  #define yyrindex   error_rindex
  #endif /* yyrindex */
  
  #ifndef yygindex
  #define yygindex   error_gindex
  #endif /* yygindex */
  
  #ifndef yytable
  #define yytable    error_table
  #endif /* yytable */
  
  #ifndef yycheck
  #define yycheck    error_check
  #endif /* yycheck */
  
  #ifndef yyname
  #define yyname     error_name
  #endif /* yyname */
  
  #ifndef yyrule
  #define yyrule     error_rule
  #endif /* yyrule */
  #define YYPREFIX "error_"
  
  #define YYPURE 0
  
  #line 2 "error.y"
  int yylex(void);
  static void yyerror(const char *);
  #line 102 "error.tab.c"
  
  #ifndef YYSTYPE
  typedef int YYSTYPE;
  #endif
  
  /* compatibility with bison */
  #ifdef YYPARSE_PARAM
  /* compatibility with FreeBSD */
  # ifdef YYPARSE_PARAM_TYPE
  #  define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM)
  # else
  #  define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM)
  # endif
  #else
  # define YYPARSE_DECL() yyparse(void)
  #endif
  
  /* Parameters sent to lex. */
  #ifdef YYLEX_PARAM
  # define YYLEX_DECL() yylex(void *YYLEX_PARAM)
  # define YYLEX yylex(YYLEX_PARAM)
  #else
  # define YYLEX_DECL() yylex(void)
  # define YYLEX yylex()
  #endif
  
  /* Parameters sent to yyerror. */
  #ifndef YYERROR_DECL
  #define YYERROR_DECL() yyerror(const char *s)
  #endif
  #ifndef YYERROR_CALL
  #define YYERROR_CALL(msg) yyerror(msg)
  #endif
  
  extern int YYPARSE_DECL();
  
  #define YYERRCODE 256
  static const short error_lhs[] = {                       -1,
      0,
  };
  static const short error_len[] = {                        2,
      1,
  };
  static const short error_defred[] = {                     0,
      1,    0,
  };
  static const short error_dgoto[] = {                      2,
  };
  static const short error_sindex[] = {                  -256,
      0,    0,
  };
  static const short error_rindex[] = {                     0,
      0,    0,
  };
  static const short error_gindex[] = {                     0,
  };
  #define YYTABLESIZE 0
  static const short error_table[] = {                      1,
  };
  static const short error_check[] = {                    256,
  };
  #define YYFINAL 2
  #ifndef YYDEBUG
  #define YYDEBUG 0
  #endif
  #define YYMAXTOKEN 0
  #if YYDEBUG
  static const char *yyname[] = {
  
  "end-of-file",
  };
  static const char *yyrule[] = {
  "$accept : S",
  "S : error",
  
  };
  #endif
  
  int      yydebug;
  int      yynerrs;
  
  int      yyerrflag;
  int      yychar;
  YYSTYPE  yyval;
  YYSTYPE  yylval;
  
  /* define the initial stack-sizes */
  #ifdef YYSTACKSIZE
  #undef YYMAXDEPTH
  #define YYMAXDEPTH  YYSTACKSIZE
  #else
  #ifdef YYMAXDEPTH
  #define YYSTACKSIZE YYMAXDEPTH
  #else
  #define YYSTACKSIZE 10000
  #define YYMAXDEPTH  10000
  #endif
  #endif
  
  #define YYINITSTACKSIZE 200
  
  typedef struct {
      unsigned stacksize;
      short    *s_base;
      short    *s_mark;
      short    *s_last;
      YYSTYPE  *l_base;
      YYSTYPE  *l_mark;
  } YYSTACKDATA;
  /* variables for the parser stack */
  static YYSTACKDATA yystack;
  #line 8 "error.y"
  
  #include <stdio.h>
  
  int
  main(void)
  {
      printf("yyparse() = %d\n", yyparse());
      return 0;
  }
  
  int
  yylex(void)
  {
      return -1;
  }
  
  static void
  yyerror(const char* s)
  {
      printf("%s\n", s);
  }
  #line 236 "error.tab.c"
  
  #if YYDEBUG
  #include <stdio.h>		/* needed for printf */
  #endif
  
  #include <stdlib.h>	/* needed for malloc, etc */
  #include <string.h>	/* needed for memset */
  
  /* allocate initial stack or double stack size, up to YYMAXDEPTH */
  static int yygrowstack(YYSTACKDATA *data)
  {
      int i;
      unsigned newsize;
      short *newss;
      YYSTYPE *newvs;
  
      if ((newsize = data->stacksize) == 0)
          newsize = YYINITSTACKSIZE;
      else if (newsize >= YYMAXDEPTH)
          return -1;
      else if ((newsize *= 2) > YYMAXDEPTH)
          newsize = YYMAXDEPTH;
  
      i = (int) (data->s_mark - data->s_base);
      newss = (short *)realloc(data->s_base, newsize * sizeof(*newss));
      if (newss == 0)
          return -1;
  
      data->s_base = newss;
      data->s_mark = newss + i;
  
      newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));
      if (newvs == 0)
          return -1;
  
      data->l_base = newvs;
      data->l_mark = newvs + i;
  
      data->stacksize = newsize;
      data->s_last = data->s_base + newsize - 1;
      return 0;
  }
  
  #if YYPURE || defined(YY_NO_LEAKS)
  static void yyfreestack(YYSTACKDATA *data)
  {
      free(data->s_base);
      free(data->l_base);
      memset(data, 0, sizeof(*data));
  }
  #else
  #define yyfreestack(data) /* nothing */
  #endif
  
  #define YYABORT  goto yyabort
  #define YYREJECT goto yyabort
  #define YYACCEPT goto yyaccept
  #define YYERROR  goto yyerrlab
  
  int
  YYPARSE_DECL()
  {
      int yym, yyn, yystate;
  #if YYDEBUG
      const char *yys;
  
      if ((yys = getenv("YYDEBUG")) != 0)
      {
          yyn = *yys;
          if (yyn >= '0' && yyn <= '9')
              yydebug = yyn - '0';
      }
  #endif
  
      yynerrs = 0;
      yyerrflag = 0;
      yychar = YYEMPTY;
      yystate = 0;
  
  #if YYPURE
      memset(&yystack, 0, sizeof(yystack));
  #endif
  
      if (yystack.s_base == NULL && yygrowstack(&yystack)) goto yyoverflow;
      yystack.s_mark = yystack.s_base;
      yystack.l_mark = yystack.l_base;
      yystate = 0;
      *yystack.s_mark = 0;
  
  yyloop:
      if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
      if (yychar < 0)
      {
          if ((yychar = YYLEX) < 0) yychar = 0;
  #if YYDEBUG
          if (yydebug)
          {
              yys = 0;
              if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
              if (!yys) yys = "illegal-symbol";
              printf("%sdebug: state %d, reading %d (%s)\n",
                      YYPREFIX, yystate, yychar, yys);
          }
  #endif
      }
      if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
              yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
      {
  #if YYDEBUG
          if (yydebug)
              printf("%sdebug: state %d, shifting to state %d\n",
                      YYPREFIX, yystate, yytable[yyn]);
  #endif
          if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack))
          {
              goto yyoverflow;
          }
          yystate = yytable[yyn];
          *++yystack.s_mark = yytable[yyn];
          *++yystack.l_mark = yylval;
          yychar = YYEMPTY;
          if (yyerrflag > 0)  --yyerrflag;
          goto yyloop;
      }
      if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
              yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
      {
          yyn = yytable[yyn];
          goto yyreduce;
      }
      if (yyerrflag) goto yyinrecovery;
  
      yyerror("syntax error");
  
      goto yyerrlab;
  
  yyerrlab:
      ++yynerrs;
  
  yyinrecovery:
      if (yyerrflag < 3)
      {
          yyerrflag = 3;
          for (;;)
          {
              if ((yyn = yysindex[*yystack.s_mark]) && (yyn += YYERRCODE) >= 0 &&
                      yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
              {
  #if YYDEBUG
                  if (yydebug)
                      printf("%sdebug: state %d, error recovery shifting\
   to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]);
  #endif
                  if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack))
                  {
                      goto yyoverflow;
                  }
                  yystate = yytable[yyn];
                  *++yystack.s_mark = yytable[yyn];
                  *++yystack.l_mark = yylval;
                  goto yyloop;
              }
              else
              {
  #if YYDEBUG
                  if (yydebug)
                      printf("%sdebug: error recovery discarding state %d\n",
                              YYPREFIX, *yystack.s_mark);
  #endif
                  if (yystack.s_mark <= yystack.s_base) goto yyabort;
                  --yystack.s_mark;
                  --yystack.l_mark;
              }
          }
      }
      else
      {
          if (yychar == 0) goto yyabort;
  #if YYDEBUG
          if (yydebug)
          {
              yys = 0;
              if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
              if (!yys) yys = "illegal-symbol";
              printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
                      YYPREFIX, yystate, yychar, yys);
          }
  #endif
          yychar = YYEMPTY;
          goto yyloop;
      }
  
  yyreduce:
  #if YYDEBUG
      if (yydebug)
          printf("%sdebug: state %d, reducing by rule %d (%s)\n",
                  YYPREFIX, yystate, yyn, yyrule[yyn]);
  #endif
      yym = yylen[yyn];
      if (yym)
          yyval = yystack.l_mark[1-yym];
      else
          memset(&yyval, 0, sizeof yyval);
      switch (yyn)
      {
      }
      yystack.s_mark -= yym;
      yystate = *yystack.s_mark;
      yystack.l_mark -= yym;
      yym = yylhs[yyn];
      if (yystate == 0 && yym == 0)
      {
  #if YYDEBUG
          if (yydebug)
              printf("%sdebug: after reduction, shifting from state 0 to\
   state %d\n", YYPREFIX, YYFINAL);
  #endif
          yystate = YYFINAL;
          *++yystack.s_mark = YYFINAL;
          *++yystack.l_mark = yyval;
          if (yychar < 0)
          {
              if ((yychar = YYLEX) < 0) yychar = 0;
  #if YYDEBUG
              if (yydebug)
              {
                  yys = 0;
                  if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
                  if (!yys) yys = "illegal-symbol";
                  printf("%sdebug: state %d, reading %d (%s)\n",
                          YYPREFIX, YYFINAL, yychar, yys);
              }
  #endif
          }
          if (yychar == 0) goto yyaccept;
          goto yyloop;
      }
      if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
              yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
          yystate = yytable[yyn];
      else
          yystate = yydgoto[yym];
  #if YYDEBUG
      if (yydebug)
          printf("%sdebug: after reduction, shifting from state %d \
  to state %d\n", YYPREFIX, *yystack.s_mark, yystate);
  #endif
      if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack))
      {
          goto yyoverflow;
      }
      *++yystack.s_mark = (short) yystate;
      *++yystack.l_mark = yyval;
      goto yyloop;
  
  yyoverflow:
      yyerror("yacc stack overflow");
  
  yyabort:
      yyfreestack(&yystack);
      return (1);
  
  yyaccept:
      yyfreestack(&yystack);
      return (0);
  }
  