Commit | Line | Data |
---|---|---|
9d116dd7 JH |
1 | *** perly.c.orig Tue Jul 28 15:02:41 1998 |
2 | --- perly.c Tue Jul 28 15:14:54 1998 | |
93a17b20 | 3 | *************** |
9d116dd7 JH |
4 | *** 7,11 **** |
5 | --- 7,19 ---- | |
640b9ef6 SM |
6 | #include "perl.h" |
7 | ||
8 | + #ifdef PERL_OBJECT | |
9d116dd7 | 9 | static void |
640b9ef6 SM |
10 | + Dep(CPerlObj *pPerl) |
11 | + { | |
12 | + pPerl->deprecate("\"do\" to call subroutines"); | |
13 | + } | |
14 | + #define dep() Dep(this) | |
15 | + #else | |
9d116dd7 | 16 | + static void |
640b9ef6 | 17 | dep(void) |
9d116dd7 | 18 | { |
640b9ef6 | 19 | *************** |
9d116dd7 | 20 | *** 12,86 **** |
640b9ef6 | 21 | deprecate("\"do\" to call subroutines"); |
a0d0e21e LW |
22 | } |
23 | ||
9d116dd7 JH |
24 | #line 30 "perly.y" |
25 | - #ifndef OEMVS | |
26 | - #line 33 "perly.y" | |
27 | - typedef union { | |
28 | - I32 ival; | |
29 | - char *pval; | |
30 | - OP *opval; | |
31 | - GV *gvval; | |
32 | - } YYSTYPE; | |
33 | - #line 41 "perly.y" | |
34 | - #endif /* OEMVS */ | |
35 | - #line 27 "y.tab.c" | |
36 | - #define WORD 257 | |
37 | - #define METHOD 258 | |
38 | - #define FUNCMETH 259 | |
39 | - #define THING 260 | |
40 | - #define PMFUNC 261 | |
41 | - #define PRIVATEREF 262 | |
42 | - #define FUNC0SUB 263 | |
43 | - #define UNIOPSUB 264 | |
44 | - #define LSTOPSUB 265 | |
45 | - #define LABEL 266 | |
46 | - #define FORMAT 267 | |
47 | - #define SUB 268 | |
48 | - #define ANONSUB 269 | |
49 | - #define PACKAGE 270 | |
50 | - #define USE 271 | |
51 | - #define WHILE 272 | |
52 | - #define UNTIL 273 | |
53 | - #define IF 274 | |
54 | - #define UNLESS 275 | |
55 | - #define ELSE 276 | |
56 | - #define ELSIF 277 | |
57 | - #define CONTINUE 278 | |
58 | - #define FOR 279 | |
59 | - #define LOOPEX 280 | |
60 | - #define DOTDOT 281 | |
61 | - #define FUNC0 282 | |
62 | - #define FUNC1 283 | |
63 | - #define FUNC 284 | |
64 | - #define UNIOP 285 | |
65 | - #define LSTOP 286 | |
66 | - #define RELOP 287 | |
67 | - #define EQOP 288 | |
68 | - #define MULOP 289 | |
69 | - #define ADDOP 290 | |
70 | - #define DOLSHARP 291 | |
71 | - #define DO 292 | |
72 | - #define HASHBRACK 293 | |
73 | - #define NOAMP 294 | |
74 | - #define LOCAL 295 | |
75 | - #define MY 296 | |
76 | - #define OROP 297 | |
77 | - #define ANDOP 298 | |
78 | - #define NOTOP 299 | |
79 | - #define ASSIGNOP 300 | |
80 | - #define OROR 301 | |
81 | - #define ANDAND 302 | |
82 | - #define BITOROP 303 | |
83 | - #define BITANDOP 304 | |
84 | - #define SHIFTOP 305 | |
85 | - #define MATCHOP 306 | |
86 | - #define UMINUS 307 | |
87 | - #define REFGEN 308 | |
88 | - #define POWOP 309 | |
89 | - #define PREINC 310 | |
90 | - #define PREDEC 311 | |
91 | - #define POSTINC 312 | |
92 | - #define POSTDEC 313 | |
93 | - #define ARROW 314 | |
36477c24 | 94 | #define YYERRCODE 256 |
95 | short yylhs[] = { -1, | |
640b9ef6 SM |
96 | --- 20,26 ---- |
97 | deprecate("\"do\" to call subroutines"); | |
36477c24 | 98 | } |
640b9ef6 | 99 | + #endif |
36477c24 | 100 | |
9d116dd7 | 101 | #line 30 "perly.y" |
a0d0e21e LW |
102 | #define YYERRCODE 256 |
103 | short yylhs[] = { -1, | |
a0d0e21e | 104 | *************** |
9d116dd7 | 105 | *** 1345,1365 **** |
93a17b20 LW |
106 | YYSTYPE yyval; |
107 | YYSTYPE yylval; | |
108 | - short yyss[YYSTACKSIZE]; | |
109 | - YYSTYPE yyvs[YYSTACKSIZE]; | |
110 | - #define yystacksize YYSTACKSIZE | |
9d116dd7 | 111 | #line 643 "perly.y" |
93a17b20 | 112 | /* PROGRAM */ |
9d116dd7 | 113 | ! #line 1353 "y.tab.c" |
640b9ef6 | 114 | #define YYABORT goto yyabort |
0da4822f GS |
115 | #define YYACCEPT goto yyaccept |
116 | #define YYERROR goto yyerrlab | |
117 | int | |
118 | ! yyparse() | |
119 | { | |
120 | register int yym, yyn, yystate; | |
121 | #if YYDEBUG | |
122 | register char *yys; | |
123 | extern char *getenv(); | |
124 | ||
125 | if (yys = getenv("YYDEBUG")) | |
126 | { | |
9d116dd7 | 127 | --- 1285,1349 ---- |
640b9ef6 SM |
128 | YYSTYPE yyval; |
129 | YYSTYPE yylval; | |
9d116dd7 | 130 | #line 643 "perly.y" |
640b9ef6 | 131 | /* PROGRAM */ |
9d116dd7 | 132 | ! #line 1353 "perly.c" |
640b9ef6 | 133 | #define YYABORT goto yyabort |
a0d0e21e LW |
134 | #define YYACCEPT goto yyaccept |
135 | #define YYERROR goto yyerrlab | |
136 | + | |
137 | + struct ysv { | |
138 | + short* yyss; | |
139 | + YYSTYPE* yyvs; | |
140 | + int oldyydebug; | |
141 | + int oldyynerrs; | |
142 | + int oldyyerrflag; | |
143 | + int oldyychar; | |
144 | + YYSTYPE oldyyval; | |
145 | + YYSTYPE oldyylval; | |
146 | + }; | |
147 | + | |
148 | + void | |
0da4822f | 149 | + yydestruct(void *ptr) |
a0d0e21e LW |
150 | + { |
151 | + struct ysv* ysave = (struct ysv*)ptr; | |
489bbe73 | 152 | + if (ysave->yyss) Safefree(ysave->yyss); |
153 | + if (ysave->yyvs) Safefree(ysave->yyvs); | |
a0d0e21e LW |
154 | + yydebug = ysave->oldyydebug; |
155 | + yynerrs = ysave->oldyynerrs; | |
156 | + yyerrflag = ysave->oldyyerrflag; | |
157 | + yychar = ysave->oldyychar; | |
158 | + yyval = ysave->oldyyval; | |
159 | + yylval = ysave->oldyylval; | |
489bbe73 | 160 | + Safefree(ysave); |
a0d0e21e LW |
161 | + } |
162 | + | |
163 | int | |
0da4822f | 164 | ! yyparse(void) |
93a17b20 LW |
165 | { |
166 | register int yym, yyn, yystate; | |
167 | + register short *yyssp; | |
168 | + register YYSTYPE *yyvsp; | |
169 | + short* yyss; | |
170 | + YYSTYPE* yyvs; | |
171 | + unsigned yystacksize = YYSTACKSIZE; | |
93a17b20 | 172 | + int retval = 0; |
93a17b20 LW |
173 | #if YYDEBUG |
174 | register char *yys; | |
0da4822f | 175 | + #ifndef __cplusplus |
93a17b20 | 176 | extern char *getenv(); |
a0d0e21e | 177 | + #endif |
0da4822f | 178 | + #endif |
9d116dd7 | 179 | |
8c52afec IZ |
180 | + struct ysv *ysave; |
181 | + New(73, ysave, 1, struct ysv); | |
a0d0e21e LW |
182 | + SAVEDESTRUCTOR(yydestruct, ysave); |
183 | + ysave->oldyydebug = yydebug; | |
184 | + ysave->oldyynerrs = yynerrs; | |
185 | + ysave->oldyyerrflag = yyerrflag; | |
186 | + ysave->oldyychar = yychar; | |
187 | + ysave->oldyyval = yyval; | |
188 | + ysave->oldyylval = yylval; | |
9d116dd7 | 189 | + |
a0d0e21e LW |
190 | + #if YYDEBUG |
191 | if (yys = getenv("YYDEBUG")) | |
192 | { | |
93a17b20 | 193 | *************** |
9d116dd7 JH |
194 | *** 1374,1377 **** |
195 | --- 1358,1371 ---- | |
93a17b20 LW |
196 | yychar = (-1); |
197 | ||
198 | + /* | |
199 | + ** Initialize private stacks (yyparse may be called from an action) | |
200 | + */ | |
8c52afec IZ |
201 | + New(73, yyss, yystacksize, short); |
202 | + New(73, yyvs, yystacksize, YYSTYPE); | |
203 | + ysave->yyss = yyss; | |
204 | + ysave->yyvs = yyvs; | |
93a17b20 LW |
205 | + if (!yyvs || !yyss) |
206 | + goto yyoverflow; | |
207 | + | |
208 | yyssp = yyss; | |
209 | yyvsp = yyvs; | |
93a17b20 | 210 | *************** |
9d116dd7 | 211 | *** 1389,1393 **** |
ed6116ce LW |
212 | if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; |
213 | if (!yys) yys = "illegal-symbol"; | |
214 | ! printf("yydebug: state %d, reading %d (%s)\n", yystate, | |
215 | yychar, yys); | |
216 | } | |
9d116dd7 | 217 | --- 1383,1387 ---- |
ed6116ce LW |
218 | if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; |
219 | if (!yys) yys = "illegal-symbol"; | |
ac4c12e7 | 220 | ! PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n", yystate, |
ed6116ce LW |
221 | yychar, yys); |
222 | } | |
ed6116ce | 223 | *************** |
9d116dd7 | 224 | *** 1399,1403 **** |
ed6116ce LW |
225 | #if YYDEBUG |
226 | if (yydebug) | |
227 | ! printf("yydebug: state %d, shifting to state %d\n", | |
228 | yystate, yytable[yyn]); | |
93a17b20 | 229 | #endif |
9d116dd7 | 230 | --- 1393,1397 ---- |
ed6116ce LW |
231 | #if YYDEBUG |
232 | if (yydebug) | |
ac4c12e7 | 233 | ! PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n", |
ed6116ce | 234 | yystate, yytable[yyn]); |
93a17b20 | 235 | #endif |
9d116dd7 JH |
236 | *************** |
237 | *** 1404,1408 **** | |
238 | if (yyssp >= yyss + yystacksize - 1) | |
239 | { | |
240 | ! goto yyoverflow; | |
241 | } | |
242 | *++yyssp = yystate = yytable[yyn]; | |
243 | --- 1398,1416 ---- | |
93a17b20 LW |
244 | if (yyssp >= yyss + yystacksize - 1) |
245 | { | |
246 | ! /* | |
247 | ! ** reallocate and recover. Note that pointers | |
248 | ! ** have to be reset, or bad things will happen | |
249 | ! */ | |
250 | ! int yyps_index = (yyssp - yyss); | |
251 | ! int yypv_index = (yyvsp - yyvs); | |
252 | ! yystacksize += YYSTACKSIZE; | |
a0d0e21e LW |
253 | ! ysave->yyvs = yyvs = |
254 | ! (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE)); | |
255 | ! ysave->yyss = yyss = | |
256 | ! (short*)realloc((char*)yyss,yystacksize * sizeof(short)); | |
93a17b20 LW |
257 | ! if (!yyvs || !yyss) |
258 | ! goto yyoverflow; | |
259 | ! yyssp = yyss + yyps_index; | |
260 | ! yyvsp = yyvs + yypv_index; | |
261 | } | |
262 | *++yyssp = yystate = yytable[yyn]; | |
93a17b20 | 263 | *************** |
9d116dd7 | 264 | *** 1440,1449 **** |
ed6116ce LW |
265 | #if YYDEBUG |
266 | if (yydebug) | |
267 | ! printf("yydebug: state %d, error recovery shifting\ | |
268 | ! to state %d\n", *yyssp, yytable[yyn]); | |
93a17b20 LW |
269 | #endif |
270 | if (yyssp >= yyss + yystacksize - 1) | |
271 | { | |
272 | ! goto yyoverflow; | |
273 | } | |
274 | *++yyssp = yystate = yytable[yyn]; | |
9d116dd7 | 275 | --- 1448,1472 ---- |
ed6116ce LW |
276 | #if YYDEBUG |
277 | if (yydebug) | |
ac4c12e7 | 278 | ! PerlIO_printf(Perl_debug_log, |
ed6116ce LW |
279 | ! "yydebug: state %d, error recovery shifting to state %d\n", |
280 | ! *yyssp, yytable[yyn]); | |
93a17b20 LW |
281 | #endif |
282 | if (yyssp >= yyss + yystacksize - 1) | |
283 | { | |
284 | ! /* | |
285 | ! ** reallocate and recover. Note that pointers | |
286 | ! ** have to be reset, or bad things will happen | |
287 | ! */ | |
288 | ! int yyps_index = (yyssp - yyss); | |
289 | ! int yypv_index = (yyvsp - yyvs); | |
290 | ! yystacksize += YYSTACKSIZE; | |
a0d0e21e | 291 | ! ysave->yyvs = yyvs = (YYSTYPE*)realloc((char*)yyvs, |
93a17b20 | 292 | ! yystacksize * sizeof(YYSTYPE)); |
a0d0e21e | 293 | ! ysave->yyss = yyss = (short*)realloc((char*)yyss, |
93a17b20 LW |
294 | ! yystacksize * sizeof(short)); |
295 | ! if (!yyvs || !yyss) | |
296 | ! goto yyoverflow; | |
297 | ! yyssp = yyss + yyps_index; | |
298 | ! yyvsp = yyvs + yypv_index; | |
299 | } | |
300 | *++yyssp = yystate = yytable[yyn]; | |
93a17b20 | 301 | *************** |
9d116dd7 | 302 | *** 1455,1460 **** |
ed6116ce LW |
303 | #if YYDEBUG |
304 | if (yydebug) | |
305 | ! printf("yydebug: error recovery discarding state %d\n", | |
306 | ! *yyssp); | |
307 | #endif | |
308 | if (yyssp <= yyss) goto yyabort; | |
9d116dd7 | 309 | --- 1478,1484 ---- |
ed6116ce LW |
310 | #if YYDEBUG |
311 | if (yydebug) | |
ac4c12e7 | 312 | ! PerlIO_printf(Perl_debug_log, |
ed6116ce LW |
313 | ! "yydebug: error recovery discarding state %d\n", |
314 | ! *yyssp); | |
315 | #endif | |
316 | if (yyssp <= yyss) goto yyabort; | |
ed6116ce | 317 | *************** |
9d116dd7 | 318 | *** 1473,1478 **** |
ed6116ce LW |
319 | if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; |
320 | if (!yys) yys = "illegal-symbol"; | |
321 | ! printf("yydebug: state %d, error recovery discards token %d (%s)\n", | |
322 | ! yystate, yychar, yys); | |
323 | } | |
324 | #endif | |
9d116dd7 | 325 | --- 1497,1503 ---- |
ed6116ce LW |
326 | if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; |
327 | if (!yys) yys = "illegal-symbol"; | |
ac4c12e7 | 328 | ! PerlIO_printf(Perl_debug_log, |
ed6116ce LW |
329 | ! "yydebug: state %d, error recovery discards token %d (%s)\n", |
330 | ! yystate, yychar, yys); | |
331 | } | |
332 | #endif | |
ed6116ce | 333 | *************** |
9d116dd7 | 334 | *** 1483,1487 **** |
ed6116ce LW |
335 | #if YYDEBUG |
336 | if (yydebug) | |
337 | ! printf("yydebug: state %d, reducing by rule %d (%s)\n", | |
338 | yystate, yyn, yyrule[yyn]); | |
339 | #endif | |
9d116dd7 | 340 | --- 1508,1512 ---- |
ed6116ce LW |
341 | #if YYDEBUG |
342 | if (yydebug) | |
ac4c12e7 | 343 | ! PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n", |
ed6116ce LW |
344 | yystate, yyn, yyrule[yyn]); |
345 | #endif | |
ed6116ce | 346 | *************** |
9d116dd7 | 347 | *** 2267,2271 **** |
640b9ef6 SM |
348 | { yyval.opval = yyvsp[0].opval; } |
349 | break; | |
9d116dd7 | 350 | ! #line 2270 "y.tab.c" |
640b9ef6 SM |
351 | } |
352 | yyssp -= yym; | |
9d116dd7 | 353 | --- 2292,2296 ---- |
640b9ef6 SM |
354 | { yyval.opval = yyvsp[0].opval; } |
355 | break; | |
9d116dd7 | 356 | ! #line 2270 "perly.c" |
640b9ef6 SM |
357 | } |
358 | yyssp -= yym; | |
359 | *************** | |
9d116dd7 | 360 | *** 2277,2282 **** |
ed6116ce LW |
361 | #if YYDEBUG |
362 | if (yydebug) | |
363 | ! printf("yydebug: after reduction, shifting from state 0 to\ | |
364 | ! state %d\n", YYFINAL); | |
365 | #endif | |
366 | yystate = YYFINAL; | |
9d116dd7 | 367 | --- 2302,2308 ---- |
ed6116ce LW |
368 | #if YYDEBUG |
369 | if (yydebug) | |
ac4c12e7 | 370 | ! PerlIO_printf(Perl_debug_log, |
ed6116ce LW |
371 | ! "yydebug: after reduction, shifting from state 0 to state %d\n", |
372 | ! YYFINAL); | |
373 | #endif | |
374 | yystate = YYFINAL; | |
ed6116ce | 375 | *************** |
9d116dd7 | 376 | *** 2292,2296 **** |
ed6116ce LW |
377 | if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; |
378 | if (!yys) yys = "illegal-symbol"; | |
379 | ! printf("yydebug: state %d, reading %d (%s)\n", | |
380 | YYFINAL, yychar, yys); | |
381 | } | |
9d116dd7 | 382 | --- 2318,2322 ---- |
ed6116ce LW |
383 | if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; |
384 | if (!yys) yys = "illegal-symbol"; | |
ac4c12e7 | 385 | ! PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n", |
ed6116ce LW |
386 | YYFINAL, yychar, yys); |
387 | } | |
ed6116ce | 388 | *************** |
9d116dd7 | 389 | *** 2307,2316 **** |
ed6116ce LW |
390 | #if YYDEBUG |
391 | if (yydebug) | |
392 | ! printf("yydebug: after reduction, shifting from state %d \ | |
393 | ! to state %d\n", *yyssp, yystate); | |
93a17b20 LW |
394 | #endif |
395 | if (yyssp >= yyss + yystacksize - 1) | |
396 | { | |
397 | ! goto yyoverflow; | |
398 | } | |
399 | *++yyssp = yystate; | |
9d116dd7 | 400 | --- 2333,2357 ---- |
ed6116ce LW |
401 | #if YYDEBUG |
402 | if (yydebug) | |
ac4c12e7 | 403 | ! PerlIO_printf(Perl_debug_log, |
ed6116ce LW |
404 | ! "yydebug: after reduction, shifting from state %d to state %d\n", |
405 | ! *yyssp, yystate); | |
93a17b20 LW |
406 | #endif |
407 | if (yyssp >= yyss + yystacksize - 1) | |
408 | { | |
409 | ! /* | |
410 | ! ** reallocate and recover. Note that pointers | |
411 | ! ** have to be reset, or bad things will happen | |
412 | ! */ | |
413 | ! int yyps_index = (yyssp - yyss); | |
414 | ! int yypv_index = (yyvsp - yyvs); | |
415 | ! yystacksize += YYSTACKSIZE; | |
a0d0e21e LW |
416 | ! ysave->yyvs = yyvs = |
417 | ! (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE)); | |
418 | ! ysave->yyss = yyss = | |
419 | ! (short*)realloc((char*)yyss,yystacksize * sizeof(short)); | |
93a17b20 LW |
420 | ! if (!yyvs || !yyss) |
421 | ! goto yyoverflow; | |
422 | ! yyssp = yyss + yyps_index; | |
423 | ! yyvsp = yyvs + yypv_index; | |
424 | } | |
425 | *++yyssp = yystate; | |
bbce6d69 | 426 | *************** |
9d116dd7 | 427 | *** 2318,2325 **** |
bbce6d69 | 428 | goto yyloop; |
429 | yyoverflow: | |
430 | ! yyerror("yacc stack overflow"); | |
431 | yyabort: | |
432 | ! return (1); | |
433 | yyaccept: | |
434 | ! return (0); | |
435 | } | |
9d116dd7 | 436 | --- 2359,2366 ---- |
93a17b20 LW |
437 | goto yyloop; |
438 | yyoverflow: | |
439 | ! yyerror("Out of memory for yacc stack"); | |
440 | yyabort: | |
441 | ! retval = 1; | |
442 | yyaccept: | |
93a17b20 LW |
443 | ! return retval; |
444 | } |