Module Name:    src
Committed By:   joerg
Date:           Sat Apr  6 15:27:26 UTC 2013

Modified Files:
        src/external/bsd/flex/dist: initparse.c

Log Message:
Regen initparse.c with the current byacc with -l.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/external/bsd/flex/dist/initparse.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/bsd/flex/dist/initparse.c
diff -u src/external/bsd/flex/dist/initparse.c:1.2 src/external/bsd/flex/dist/initparse.c:1.3
--- src/external/bsd/flex/dist/initparse.c:1.2	Fri Feb 19 14:22:43 2010
+++ src/external/bsd/flex/dist/initparse.c	Sat Apr  6 15:27:26 2013
@@ -17,27 +17,10 @@ static const char yysccsid[] = "@(#)yacc
 #define yyerrok        (yyerrflag = 0)
 #define YYRECOVERING() (yyerrflag != 0)
 
-/* 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
+#define YYPREFIX "yy"
 
-/* Pure parsers. */
 #define YYPURE 0
-#ifdef YYLEX_PARAM
-# define YYLEX yylex(YYLEX_PARAM)
-#else
-# define YYLEX yylex()
-#endif
 
-#define YYPREFIX "yy"
 /*  Copyright (c) 1990 The Regents of the University of California. */
 /*  All rights reserved. */
 
@@ -118,6 +101,43 @@ int previous_continued_action;	/* whethe
  */
 #define YYSTYPE int
 
+
+#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 CHAR 257
 #define NUMBER 258
 #define SECTEND 259
@@ -461,16 +481,14 @@ static const char *yyrule[] = {
 
 };
 #endif
-#ifndef YYSTYPE
-typedef int YYSTYPE;
-#endif
-#if YYDEBUG
-#include <stdio.h>
-#endif
 
-extern int YYPARSE_DECL();
-static int yygrowstack(short **, short **, short **,
-    YYSTYPE **, YYSTYPE **, unsigned *);
+int      yydebug;
+int      yynerrs;
+
+int      yyerrflag;
+int      yychar;
+YYSTYPE  yyval;
+YYSTYPE  yylval;
 
 /* define the initial stack-sizes */
 #ifdef YYSTACKSIZE
@@ -487,12 +505,16 @@ static int yygrowstack(short **, short *
 
 #define YYINITSTACKSIZE 500
 
-int      yydebug;
-int      yyerrflag;
-    int      yynerrs;
-    int      yychar;
-    YYSTYPE  yylval;
-
+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;
 
 
 /* build_eof_action - build the "<<EOF>>" action for the active start
@@ -514,6 +536,10 @@ void build_eof_action()
 		else
 			{
 			sceof[scon_stk[i]] = true;
+
+			if (previous_continued_action /* && previous action was regular */)
+				add_action("YY_RULE_SETUP\n");
+
 			snprintf( action_text, sizeof(action_text), "case YY_STATE_EOF(%s):\n",
 				scname[scon_stk[i]] );
 			add_action( action_text );
@@ -631,40 +657,60 @@ void yyerror( msg )
 const char *msg;
 	{
 	}
+
+#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(short **yyss, short **yyssp, short **yysslim,
-    YYSTYPE **yyvs, YYSTYPE **yyvsp, unsigned *yystacksize)
+static int yygrowstack(YYSTACKDATA *data)
 {
     int i;
     unsigned newsize;
     short *newss;
     YYSTYPE *newvs;
 
-    if ((newsize = *yystacksize) == 0)
+    if ((newsize = data->stacksize) == 0)
         newsize = YYINITSTACKSIZE;
     else if (newsize >= YYMAXDEPTH)
         return -1;
     else if ((newsize *= 2) > YYMAXDEPTH)
         newsize = YYMAXDEPTH;
 
-    i = *yyssp - *yyss;
-    newss = (short *)realloc(*yyss, newsize * sizeof(*newss));
+    i = (int) (data->s_mark - data->s_base);
+    newss = (short *)realloc(data->s_base, newsize * sizeof(*newss));
     if (newss == 0)
         return -1;
 
-    *yyss  = newss;
-    *yyssp = newss + i;
-    newvs = (YYSTYPE *)realloc(*yyvs, newsize * sizeof(*newvs));
+    data->s_base = newss;
+    data->s_mark = newss + i;
+
+    newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));
     if (newvs == 0)
         return -1;
 
-    *yyvs = newvs;
-    *yyvsp = newvs + i;
-    *yystacksize = newsize;
-    *yysslim = *yyss + newsize - 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
@@ -674,15 +720,6 @@ int
 YYPARSE_DECL()
 {
     int yym, yyn, yystate;
-
-    YYSTYPE  yyval;
-    /* variables for the parser stack */
-    short   *yyssp;
-    short   *yyss;
-    short   *yysslim;
-    YYSTYPE *yyvs;
-    YYSTYPE *yyvsp;
-    unsigned yystacksize;
 #if YYDEBUG
     const char *yys;
 
@@ -699,19 +736,21 @@ YYPARSE_DECL()
     yychar = YYEMPTY;
     yystate = 0;
 
-    yystacksize = 0;
-    yyvs = yyvsp = NULL;
-    yyss = yyssp = NULL;
-    if (yygrowstack(&yyss, &yyssp, &yysslim, &yyvs, &yyvsp, &yystacksize))
-        goto yyoverflow;
+#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;
-    *yyssp = 0;
+    *yystack.s_mark = 0;
 
 yyloop:
     if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
     if (yychar < 0)
     {
-        if ((yychar = yylex()) < 0) yychar = 0;
+        if ((yychar = YYLEX) < 0) yychar = 0;
 #if YYDEBUG
         if (yydebug)
         {
@@ -731,14 +770,13 @@ yyloop:
             printf("%sdebug: state %d, shifting to state %d\n",
                     YYPREFIX, yystate, yytable[yyn]);
 #endif
-        if (yyssp >= yysslim && yygrowstack(&yyss, &yyssp, &yysslim,
-            &yyvs, &yyvsp, &yystacksize))
+        if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack))
         {
             goto yyoverflow;
         }
         yystate = yytable[yyn];
-        *++yyssp = yytable[yyn];
-        *++yyvsp = yylval;
+        *++yystack.s_mark = yytable[yyn];
+        *++yystack.l_mark = yylval;
         yychar = YYEMPTY;
         if (yyerrflag > 0)  --yyerrflag;
         goto yyloop;
@@ -764,22 +802,21 @@ yyinrecovery:
         yyerrflag = 3;
         for (;;)
         {
-            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
+            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, *yyssp, yytable[yyn]);
+ to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]);
 #endif
-                if (yyssp >= yysslim && yygrowstack(&yyss, &yyssp,
-                    &yysslim, &yyvs, &yyvsp, &yystacksize))
+                if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack))
                 {
                     goto yyoverflow;
                 }
                 yystate = yytable[yyn];
-                *++yyssp = yytable[yyn];
-                *++yyvsp = yylval;
+                *++yystack.s_mark = yytable[yyn];
+                *++yystack.l_mark = yylval;
                 goto yyloop;
             }
             else
@@ -787,11 +824,11 @@ yyinrecovery:
 #if YYDEBUG
                 if (yydebug)
                     printf("%sdebug: error recovery discarding state %d\n",
-                            YYPREFIX, *yyssp);
+                            YYPREFIX, *yystack.s_mark);
 #endif
-                if (yyssp <= yyss) goto yyabort;
-                --yyssp;
-                --yyvsp;
+                if (yystack.s_mark <= yystack.s_base) goto yyabort;
+                --yystack.s_mark;
+                --yystack.l_mark;
             }
         }
     }
@@ -820,7 +857,7 @@ yyreduce:
 #endif
     yym = yylen[yyn];
     if (yym)
-        yyval = yyvsp[1-yym];
+        yyval = yystack.l_mark[1-yym];
     else
         memset(&yyval, 0, sizeof yyval);
     switch (yyn)
@@ -907,10 +944,10 @@ case 21:
 	{ tablesext = true; tablesfilename = copy_string( nmstr ); }
 break;
 case 22:
-	{ scon_stk_ptr = yyvsp[-3]; }
+	{ scon_stk_ptr = yystack.l_mark[-3]; }
 break;
 case 23:
-	{ scon_stk_ptr = yyvsp[-3]; }
+	{ scon_stk_ptr = yystack.l_mark[-3]; }
 break;
 case 25:
 	{
@@ -926,7 +963,7 @@ case 25:
 break;
 case 26:
 	{
-			pat = yyvsp[0];
+			pat = yystack.l_mark[0];
 			finish_rule( pat, variable_trail_rule,
 				headcnt, trailcnt , previous_continued_action);
 
@@ -962,7 +999,7 @@ case 26:
 break;
 case 27:
 	{
-			pat = yyvsp[0];
+			pat = yystack.l_mark[0];
 			finish_rule( pat, variable_trail_rule,
 				headcnt, trailcnt , previous_continued_action);
 
@@ -1014,7 +1051,7 @@ case 30:
 	{ yyval = scon_stk_ptr; }
 break;
 case 31:
-	{ yyval = yyvsp[-2]; }
+	{ yyval = yystack.l_mark[-2]; }
 break;
 case 32:
 	{
@@ -1063,15 +1100,15 @@ case 37:
 break;
 case 38:
 	{
-			if ( transchar[lastst[yyvsp[0]]] != SYM_EPSILON )
+			if ( transchar[lastst[yystack.l_mark[0]]] != SYM_EPSILON )
 				/* Provide final transition \now/ so it
 				 * will be marked as a trailing context
 				 * state.
 				 */
-				yyvsp[0] = link_machines( yyvsp[0],
+				yystack.l_mark[0] = link_machines( yystack.l_mark[0],
 						mkstate( SYM_EPSILON ) );
 
-			mark_beginning_as_normal( yyvsp[0] );
+			mark_beginning_as_normal( yystack.l_mark[0] );
 			current_state_type = STATE_NORMAL;
 
 			if ( previous_continued_action )
@@ -1106,7 +1143,7 @@ case 38:
 				 * trail rule, and add_accept() can create
 				 * a new state ...
 				 */
-				add_accept( yyvsp[-1],
+				add_accept( yystack.l_mark[-1],
 					num_rules | YY_TRAILING_HEAD_MASK );
 				variable_trail_rule = true;
 				}
@@ -1114,7 +1151,7 @@ case 38:
 			else
 				trailcnt = rulelen;
 
-			yyval = link_machines( yyvsp[-1], yyvsp[0] );
+			yyval = link_machines( yystack.l_mark[-1], yystack.l_mark[0] );
 			}
 break;
 case 39:
@@ -1151,7 +1188,7 @@ case 40:
 				/* Again, see the comment in the rule for
 				 * "re2 re" above.
 				 */
-				add_accept( yyvsp[-1],
+				add_accept( yystack.l_mark[-1],
 					num_rules | YY_TRAILING_HEAD_MASK );
 				variable_trail_rule = true;
 				}
@@ -1159,13 +1196,13 @@ case 40:
 			trlcontxt = true;
 
 			eps = mkstate( SYM_EPSILON );
-			yyval = link_machines( yyvsp[-1],
+			yyval = link_machines( yystack.l_mark[-1],
 				link_machines( eps, mkstate( '\n' ) ) );
 			}
 break;
 case 41:
 	{
-			yyval = yyvsp[0];
+			yyval = yystack.l_mark[0];
 
 			if ( trlcontxt )
 				{
@@ -1182,11 +1219,11 @@ break;
 case 42:
 	{
 			varlength = true;
-			yyval = mkor( yyvsp[-2], yyvsp[0] );
+			yyval = mkor( yystack.l_mark[-2], yystack.l_mark[0] );
 			}
 break;
 case 43:
-	{ yyval = yyvsp[0]; }
+	{ yyval = yystack.l_mark[0]; }
 break;
 case 44:
 	{
@@ -1211,7 +1248,7 @@ case 44:
 			rulelen = 0;
 
 			current_state_type = STATE_TRAILING_CONTEXT;
-			yyval = yyvsp[-1];
+			yyval = yystack.l_mark[-1];
 			}
 break;
 case 45:
@@ -1219,37 +1256,37 @@ case 45:
 			/* This is where concatenation of adjacent patterns
 			 * gets done.
 			 */
-			yyval = link_machines( yyvsp[-1], yyvsp[0] );
+			yyval = link_machines( yystack.l_mark[-1], yystack.l_mark[0] );
 			}
 break;
 case 46:
-	{ yyval = yyvsp[0]; }
+	{ yyval = yystack.l_mark[0]; }
 break;
 case 47:
 	{
 			varlength = true;
 
-			if ( yyvsp[-3] > yyvsp[-1] || yyvsp[-3] < 0 )
+			if ( yystack.l_mark[-3] > yystack.l_mark[-1] || yystack.l_mark[-3] < 0 )
 				{
 				synerr( _("bad iteration values") );
-				yyval = yyvsp[-5];
+				yyval = yystack.l_mark[-5];
 				}
 			else
 				{
-				if ( yyvsp[-3] == 0 )
+				if ( yystack.l_mark[-3] == 0 )
 					{
-					if ( yyvsp[-1] <= 0 )
+					if ( yystack.l_mark[-1] <= 0 )
 						{
 						synerr(
 						_("bad iteration values") );
-						yyval = yyvsp[-5];
+						yyval = yystack.l_mark[-5];
 						}
 					else
 						yyval = mkopt(
-							mkrep( yyvsp[-5], 1, yyvsp[-1] ) );
+							mkrep( yystack.l_mark[-5], 1, yystack.l_mark[-1] ) );
 					}
 				else
-					yyval = mkrep( yyvsp[-5], yyvsp[-3], yyvsp[-1] );
+					yyval = mkrep( yystack.l_mark[-5], yystack.l_mark[-3], yystack.l_mark[-1] );
 				}
 			}
 break;
@@ -1257,14 +1294,14 @@ case 48:
 	{
 			varlength = true;
 
-			if ( yyvsp[-2] <= 0 )
+			if ( yystack.l_mark[-2] <= 0 )
 				{
 				synerr( _("iteration value must be positive") );
-				yyval = yyvsp[-4];
+				yyval = yystack.l_mark[-4];
 				}
 
 			else
-				yyval = mkrep( yyvsp[-4], yyvsp[-2], INFINITE_REPEAT );
+				yyval = mkrep( yystack.l_mark[-4], yystack.l_mark[-2], INFINITE_REPEAT );
 			}
 break;
 case 49:
@@ -1275,62 +1312,62 @@ case 49:
 			 */
 			varlength = true;
 
-			if ( yyvsp[-1] <= 0 )
+			if ( yystack.l_mark[-1] <= 0 )
 				{
 				  synerr( _("iteration value must be positive")
 					  );
-				yyval = yyvsp[-3];
+				yyval = yystack.l_mark[-3];
 				}
 
 			else
-				yyval = link_machines( yyvsp[-3],
-						copysingl( yyvsp[-3], yyvsp[-1] - 1 ) );
+				yyval = link_machines( yystack.l_mark[-3],
+						copysingl( yystack.l_mark[-3], yystack.l_mark[-1] - 1 ) );
 			}
 break;
 case 50:
 	{
 			varlength = true;
 
-			yyval = mkclos( yyvsp[-1] );
+			yyval = mkclos( yystack.l_mark[-1] );
 			}
 break;
 case 51:
 	{
 			varlength = true;
-			yyval = mkposcl( yyvsp[-1] );
+			yyval = mkposcl( yystack.l_mark[-1] );
 			}
 break;
 case 52:
 	{
 			varlength = true;
-			yyval = mkopt( yyvsp[-1] );
+			yyval = mkopt( yystack.l_mark[-1] );
 			}
 break;
 case 53:
 	{
 			varlength = true;
 
-			if ( yyvsp[-3] > yyvsp[-1] || yyvsp[-3] < 0 )
+			if ( yystack.l_mark[-3] > yystack.l_mark[-1] || yystack.l_mark[-3] < 0 )
 				{
 				synerr( _("bad iteration values") );
-				yyval = yyvsp[-5];
+				yyval = yystack.l_mark[-5];
 				}
 			else
 				{
-				if ( yyvsp[-3] == 0 )
+				if ( yystack.l_mark[-3] == 0 )
 					{
-					if ( yyvsp[-1] <= 0 )
+					if ( yystack.l_mark[-1] <= 0 )
 						{
 						synerr(
 						_("bad iteration values") );
-						yyval = yyvsp[-5];
+						yyval = yystack.l_mark[-5];
 						}
 					else
 						yyval = mkopt(
-							mkrep( yyvsp[-5], 1, yyvsp[-1] ) );
+							mkrep( yystack.l_mark[-5], 1, yystack.l_mark[-1] ) );
 					}
 				else
-					yyval = mkrep( yyvsp[-5], yyvsp[-3], yyvsp[-1] );
+					yyval = mkrep( yystack.l_mark[-5], yystack.l_mark[-3], yystack.l_mark[-1] );
 				}
 			}
 break;
@@ -1338,14 +1375,14 @@ case 54:
 	{
 			varlength = true;
 
-			if ( yyvsp[-2] <= 0 )
+			if ( yystack.l_mark[-2] <= 0 )
 				{
 				synerr( _("iteration value must be positive") );
-				yyval = yyvsp[-4];
+				yyval = yystack.l_mark[-4];
 				}
 
 			else
-				yyval = mkrep( yyvsp[-4], yyvsp[-2], INFINITE_REPEAT );
+				yyval = mkrep( yystack.l_mark[-4], yystack.l_mark[-2], INFINITE_REPEAT );
 			}
 break;
 case 55:
@@ -1356,15 +1393,15 @@ case 55:
 			 */
 			varlength = true;
 
-			if ( yyvsp[-1] <= 0 )
+			if ( yystack.l_mark[-1] <= 0 )
 				{
 				synerr( _("iteration value must be positive") );
-				yyval = yyvsp[-3];
+				yyval = yystack.l_mark[-3];
 				}
 
 			else
-				yyval = link_machines( yyvsp[-3],
-						copysingl( yyvsp[-3], yyvsp[-1] - 1 ) );
+				yyval = link_machines( yystack.l_mark[-3],
+						copysingl( yystack.l_mark[-3], yystack.l_mark[-1] - 1 ) );
 			}
 break;
 case 56:
@@ -1403,67 +1440,65 @@ case 56:
 break;
 case 57:
 	{
-				/* Sort characters for fast searching.  We
-				 * use a shell sort since this list could
-				 * be large.
+				/* Sort characters for fast searching.
 				 */
-				cshell( ccltbl + cclmap[yyvsp[0]], ccllen[yyvsp[0]], true );
+				qsort( ccltbl + cclmap[yystack.l_mark[0]], ccllen[yystack.l_mark[0]], sizeof (*ccltbl), cclcmp );
 
 			if ( useecs )
-				mkeccl( ccltbl + cclmap[yyvsp[0]], ccllen[yyvsp[0]],
+				mkeccl( ccltbl + cclmap[yystack.l_mark[0]], ccllen[yystack.l_mark[0]],
 					nextecm, ecgroup, csize, csize );
 
 			++rulelen;
 
-			if (ccl_has_nl[yyvsp[0]])
+			if (ccl_has_nl[yystack.l_mark[0]])
 				rule_has_nl[num_rules] = true;
 
-			yyval = mkstate( -yyvsp[0] );
+			yyval = mkstate( -yystack.l_mark[0] );
 			}
 break;
 case 58:
 	{
 			++rulelen;
 
-			if (ccl_has_nl[yyvsp[0]])
+			if (ccl_has_nl[yystack.l_mark[0]])
 				rule_has_nl[num_rules] = true;
 
-			yyval = mkstate( -yyvsp[0] );
+			yyval = mkstate( -yystack.l_mark[0] );
 			}
 break;
 case 59:
-	{ yyval = yyvsp[-1]; }
+	{ yyval = yystack.l_mark[-1]; }
 break;
 case 60:
-	{ yyval = yyvsp[-1]; }
+	{ yyval = yystack.l_mark[-1]; }
 break;
 case 61:
 	{
 			++rulelen;
 
-			if (yyvsp[0] == nlch)
+			if (yystack.l_mark[0] == nlch)
 				rule_has_nl[num_rules] = true;
 
-            if (sf_case_ins() && has_case(yyvsp[0]))
+            if (sf_case_ins() && has_case(yystack.l_mark[0]))
                 /* create an alternation, as in (a|A) */
-                yyval = mkor (mkstate(yyvsp[0]), mkstate(reverse_case(yyvsp[0])));
+                yyval = mkor (mkstate(yystack.l_mark[0]), mkstate(reverse_case(yystack.l_mark[0])));
             else
-                yyval = mkstate( yyvsp[0] );
+                yyval = mkstate( yystack.l_mark[0] );
 			}
 break;
 case 62:
-	{ yyval = ccl_set_diff  (yyvsp[-2], yyvsp[0]); }
+	{ yyval = ccl_set_diff  (yystack.l_mark[-2], yystack.l_mark[0]); }
 break;
 case 63:
-	{ yyval = ccl_set_union (yyvsp[-2], yyvsp[0]); }
+	{ yyval = ccl_set_union (yystack.l_mark[-2], yystack.l_mark[0]); }
 break;
 case 65:
-	{ yyval = yyvsp[-1]; }
+	{ yyval = yystack.l_mark[-1]; }
 break;
 case 66:
 	{
-			cclnegate( yyvsp[-1] );
-			yyval = yyvsp[-1];
+			cclnegate( yystack.l_mark[-1] );
+			yyval = yystack.l_mark[-1];
 			}
 break;
 case 67:
@@ -1477,78 +1512,78 @@ case 67:
 			     * sure what range the user is trying to express.
 			     * Examples: [@-z] or [S-t]
 			     */
-			    if (has_case (yyvsp[-2]) != has_case (yyvsp[0])
-				     || (has_case (yyvsp[-2]) && (b_islower (yyvsp[-2]) != b_islower (yyvsp[0])))
-				     || (has_case (yyvsp[-2]) && (b_isupper (yyvsp[-2]) != b_isupper (yyvsp[0]))))
+			    if (has_case (yystack.l_mark[-2]) != has_case (yystack.l_mark[0])
+				     || (has_case (yystack.l_mark[-2]) && (b_islower (yystack.l_mark[-2]) != b_islower (yystack.l_mark[0])))
+				     || (has_case (yystack.l_mark[-2]) && (b_isupper (yystack.l_mark[-2]) != b_isupper (yystack.l_mark[0]))))
 			      format_warn3 (
 			      _("the character range [%c-%c] is ambiguous in a case-insensitive scanner"),
-					    yyvsp[-2], yyvsp[0]);
+					    yystack.l_mark[-2], yystack.l_mark[0]);
 
 			    /* If the range spans uppercase characters but not
 			     * lowercase (or vice-versa), then should we automatically
 			     * include lowercase characters in the range?
 			     * Example: [@-_] spans [a-z] but not [A-Z]
 			     */
-			    else if (!has_case (yyvsp[-2]) && !has_case (yyvsp[0]) && !range_covers_case (yyvsp[-2], yyvsp[0]))
+			    else if (!has_case (yystack.l_mark[-2]) && !has_case (yystack.l_mark[0]) && !range_covers_case (yystack.l_mark[-2], yystack.l_mark[0]))
 			      format_warn3 (
 			      _("the character range [%c-%c] is ambiguous in a case-insensitive scanner"),
-					    yyvsp[-2], yyvsp[0]);
+					    yystack.l_mark[-2], yystack.l_mark[0]);
 			  }
 
-			if ( yyvsp[-2] > yyvsp[0] )
+			if ( yystack.l_mark[-2] > yystack.l_mark[0] )
 				synerr( _("negative range in character class") );
 
 			else
 				{
-				for ( i = yyvsp[-2]; i <= yyvsp[0]; ++i )
-					ccladd( yyvsp[-3], i );
+				for ( i = yystack.l_mark[-2]; i <= yystack.l_mark[0]; ++i )
+					ccladd( yystack.l_mark[-3], i );
 
 				/* Keep track if this ccl is staying in
 				 * alphabetical order.
 				 */
-				cclsorted = cclsorted && (yyvsp[-2] > lastchar);
-				lastchar = yyvsp[0];
+				cclsorted = cclsorted && (yystack.l_mark[-2] > lastchar);
+				lastchar = yystack.l_mark[0];
 
                 /* Do it again for upper/lowercase */
-                if (sf_case_ins() && has_case(yyvsp[-2]) && has_case(yyvsp[0])){
-                    yyvsp[-2] = reverse_case (yyvsp[-2]);
-                    yyvsp[0] = reverse_case (yyvsp[0]);
+                if (sf_case_ins() && has_case(yystack.l_mark[-2]) && has_case(yystack.l_mark[0])){
+                    yystack.l_mark[-2] = reverse_case (yystack.l_mark[-2]);
+                    yystack.l_mark[0] = reverse_case (yystack.l_mark[0]);
                     
-                    for ( i = yyvsp[-2]; i <= yyvsp[0]; ++i )
-                        ccladd( yyvsp[-3], i );
+                    for ( i = yystack.l_mark[-2]; i <= yystack.l_mark[0]; ++i )
+                        ccladd( yystack.l_mark[-3], i );
 
-                    cclsorted = cclsorted && (yyvsp[-2] > lastchar);
-                    lastchar = yyvsp[0];
+                    cclsorted = cclsorted && (yystack.l_mark[-2] > lastchar);
+                    lastchar = yystack.l_mark[0];
                 }
 
 				}
 
-			yyval = yyvsp[-3];
+			yyval = yystack.l_mark[-3];
 			}
 break;
 case 68:
 	{
-			ccladd( yyvsp[-1], yyvsp[0] );
-			cclsorted = cclsorted && (yyvsp[0] > lastchar);
-			lastchar = yyvsp[0];
+			ccladd( yystack.l_mark[-1], yystack.l_mark[0] );
+			cclsorted = cclsorted && (yystack.l_mark[0] > lastchar);
+			lastchar = yystack.l_mark[0];
 
             /* Do it again for upper/lowercase */
-            if (sf_case_ins() && has_case(yyvsp[0])){
-                yyvsp[0] = reverse_case (yyvsp[0]);
-                ccladd (yyvsp[-1], yyvsp[0]);
+            if (sf_case_ins() && has_case(yystack.l_mark[0])){
+                yystack.l_mark[0] = reverse_case (yystack.l_mark[0]);
+                ccladd (yystack.l_mark[-1], yystack.l_mark[0]);
 
-                cclsorted = cclsorted && (yyvsp[0] > lastchar);
-                lastchar = yyvsp[0];
+                cclsorted = cclsorted && (yystack.l_mark[0] > lastchar);
+                lastchar = yystack.l_mark[0];
             }
 
-			yyval = yyvsp[-1];
+			yyval = yystack.l_mark[-1];
 			}
 break;
 case 69:
 	{
 			/* Too hard to properly maintain cclsorted. */
 			cclsorted = false;
-			yyval = yyvsp[-1];
+			yyval = yystack.l_mark[-1];
 			}
 break;
 case 70:
@@ -1650,26 +1685,26 @@ case 94:
 break;
 case 95:
 	{
-			if ( yyvsp[0] == nlch )
+			if ( yystack.l_mark[0] == nlch )
 				rule_has_nl[num_rules] = true;
 
 			++rulelen;
 
-            if (sf_case_ins() && has_case(yyvsp[0]))
-                yyval = mkor (mkstate(yyvsp[0]), mkstate(reverse_case(yyvsp[0])));
+            if (sf_case_ins() && has_case(yystack.l_mark[0]))
+                yyval = mkor (mkstate(yystack.l_mark[0]), mkstate(reverse_case(yystack.l_mark[0])));
             else
-                yyval = mkstate (yyvsp[0]);
+                yyval = mkstate (yystack.l_mark[0]);
 
-			yyval = link_machines( yyvsp[-1], yyval);
+			yyval = link_machines( yystack.l_mark[-1], yyval);
 			}
 break;
 case 96:
 	{ yyval = mkstate( SYM_EPSILON ); }
 break;
     }
-    yyssp -= yym;
-    yystate = *yyssp;
-    yyvsp -= yym;
+    yystack.s_mark -= yym;
+    yystate = *yystack.s_mark;
+    yystack.l_mark -= yym;
     yym = yylhs[yyn];
     if (yystate == 0 && yym == 0)
     {
@@ -1679,11 +1714,11 @@ break;
  state %d\n", YYPREFIX, YYFINAL);
 #endif
         yystate = YYFINAL;
-        *++yyssp = YYFINAL;
-        *++yyvsp = yyval;
+        *++yystack.s_mark = YYFINAL;
+        *++yystack.l_mark = yyval;
         if (yychar < 0)
         {
-            if ((yychar = yylex()) < 0) yychar = 0;
+            if ((yychar = YYLEX) < 0) yychar = 0;
 #if YYDEBUG
             if (yydebug)
             {
@@ -1706,27 +1741,24 @@ break;
 #if YYDEBUG
     if (yydebug)
         printf("%sdebug: after reduction, shifting from state %d \
-to state %d\n", YYPREFIX, *yyssp, yystate);
+to state %d\n", YYPREFIX, *yystack.s_mark, yystate);
 #endif
-    if (yyssp >= yysslim && yygrowstack(&yyss, &yyssp,
-        &yysslim, &yyvs, &yyvsp, &yystacksize))
+    if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack))
     {
         goto yyoverflow;
     }
-    *++yyssp = (short) yystate;
-    *++yyvsp = yyval;
+    *++yystack.s_mark = (short) yystate;
+    *++yystack.l_mark = yyval;
     goto yyloop;
 
 yyoverflow:
     yyerror("yacc stack overflow");
 
 yyabort:
-	 free(yyss);
-	 free(yyvs);
+    yyfreestack(&yystack);
     return (1);
 
 yyaccept:
-	 free(yyss);
-	 free(yyvs);
+    yyfreestack(&yystack);
     return (0);
 }

Reply via email to