193 |
+ YYSTACK_GAP_MAX) |
+ YYSTACK_GAP_MAX) |
194 |
# endif |
# endif |
195 |
|
|
196 |
/* Relocate the TYPE STACK from its old location to the new one. The |
/* Copy COUNT objects from FROM to TO. The source and destination do |
197 |
|
not overlap. */ |
198 |
|
# ifndef YYCOPY |
199 |
|
# if 1 < __GNUC__ |
200 |
|
# define YYCOPY(To, From, Count) \ |
201 |
|
__builtin_memcpy (To, From, (Count) * sizeof (*(From))) |
202 |
|
# else |
203 |
|
# define YYCOPY(To, From, Count) \ |
204 |
|
do \ |
205 |
|
{ \ |
206 |
|
register YYSIZE_T yyi; \ |
207 |
|
for (yyi = 0; yyi < (Count); yyi++) \ |
208 |
|
(To)[yyi] = (From)[yyi]; \ |
209 |
|
} \ |
210 |
|
while (0) |
211 |
|
# endif |
212 |
|
# endif |
213 |
|
|
214 |
|
/* Relocate STACK from its old location to the new one. The |
215 |
local variables YYSIZE and YYSTACKSIZE give the old and new number of |
local variables YYSIZE and YYSTACKSIZE give the old and new number of |
216 |
elements in the stack, and YYPTR gives the new location of the |
elements in the stack, and YYPTR gives the new location of the |
217 |
stack. Advance YYPTR to a properly aligned location for the next |
stack. Advance YYPTR to a properly aligned location for the next |
218 |
stack. */ |
stack. */ |
219 |
# define YYSTACK_RELOCATE(Type, Stack) \ |
# define YYSTACK_RELOCATE(Stack) \ |
220 |
do \ |
do \ |
221 |
{ \ |
{ \ |
222 |
YYSIZE_T yynewbytes; \ |
YYSIZE_T yynewbytes; \ |
223 |
yymemcpy ((char *) yyptr, (char *) (Stack), \ |
YYCOPY (&yyptr->Stack, Stack, yysize); \ |
|
yysize * (YYSIZE_T) sizeof (Type)); \ |
|
224 |
Stack = &yyptr->Stack; \ |
Stack = &yyptr->Stack; \ |
225 |
yynewbytes = yystacksize * sizeof (Type) + YYSTACK_GAP_MAX; \ |
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \ |
226 |
yyptr += yynewbytes / sizeof (*yyptr); \ |
yyptr += yynewbytes / sizeof (*yyptr); \ |
227 |
} \ |
} \ |
228 |
while (0) |
while (0) |
473 |
|
|
474 |
|
|
475 |
|
|
|
#if ! defined (yyoverflow) && ! defined (yymemcpy) |
|
|
# if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ |
|
|
# define yymemcpy __builtin_memcpy |
|
|
# else /* not GNU C or C++ */ |
|
|
|
|
|
/* This is the most reliable way to avoid incompatibilities |
|
|
in available built-in functions on various systems. */ |
|
|
static void |
|
|
# if defined (__STDC__) || defined (__cplusplus) |
|
|
yymemcpy (char *yyto, const char *yyfrom, YYSIZE_T yycount) |
|
|
# else |
|
|
yymemcpy (yyto, yyfrom, yycount) |
|
|
char *yyto; |
|
|
const char *yyfrom; |
|
|
YYSIZE_T yycount; |
|
|
# endif |
|
|
{ |
|
|
register const char *yyf = yyfrom; |
|
|
register char *yyt = yyto; |
|
|
register YYSIZE_T yyi = yycount; |
|
|
|
|
|
while (yyi-- != 0) |
|
|
*yyt++ = *yyf++; |
|
|
} |
|
|
# endif |
|
|
#endif |
|
|
|
|
476 |
#if YYERROR_VERBOSE |
#if YYERROR_VERBOSE |
477 |
|
|
478 |
# ifndef yystrlen |
# ifndef yystrlen |
726 |
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); |
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); |
727 |
if (! yyptr) |
if (! yyptr) |
728 |
goto yyoverflowlab; |
goto yyoverflowlab; |
729 |
YYSTACK_RELOCATE (short, yyss); |
YYSTACK_RELOCATE (yyss); |
730 |
YYSTACK_RELOCATE (YYSTYPE, yyvs); |
YYSTACK_RELOCATE (yyvs); |
731 |
# if YYLSP_NEEDED |
# if YYLSP_NEEDED |
732 |
YYSTACK_RELOCATE (YYLTYPE, yyls); |
YYSTACK_RELOCATE (yyls); |
733 |
# endif |
# endif |
734 |
# undef YYSTACK_RELOCATE |
# undef YYSTACK_RELOCATE |
735 |
if (yyss1 != yyssa) |
if (yyss1 != yyssa) |