]> git.saurik.com Git - wxWidgets.git/blame - src/common/cwy_tab.c
applied patch #103444
[wxWidgets.git] / src / common / cwy_tab.c
CommitLineData
469e1e5c
SC
1#ifndef lint
2static char yysccsid[] = "@(#)yaccpar 1.7 (Berkeley) 09/09/90";
3#endif
4#define YYBYACC 1
5#line 2 "parser.y"
6#include "string.h"
7#ifdef _MSC_VER
8#include <io.h>
9#endif
10#include "wx/expr.h"
11
12#ifndef __EXTERN_C__
13#define __EXTERN_C__ 1
14#endif
15
16#if defined(__cplusplus) || defined(__STDC__)
17#if defined(__cplusplus) && defined(__EXTERN_C__)
18extern "C" {
19#endif
20#endif
21int yylex(void);
22int yylook(void);
23int yywrap(void);
24int yyback(int *, int);
7d610b90
SC
25#ifdef __WXMAC__
26int read( int , char * , int ) ;
27int fileno( void* ) ;
28#endif
469e1e5c
SC
29
30/* You may need to put /DLEX_SCANNER in your makefile
31 * if you're using LEX!
32 Last change: JS 13 Jul 97 6:12 pm
33 */
34#ifdef LEX_SCANNER
35/* int yyoutput(int); */
36void yyoutput(int);
37#else
38void yyoutput(int);
39#endif
40
41#if defined(__cplusplus) || defined(__STDC__)
42#if defined(__cplusplus) && defined(__EXTERN_C__)
43}
44#endif
45#endif
46#line 36 "parser.y"
47typedef union {
48 char *s;
49/* struct pexpr *expr; */
50} YYSTYPE;
51#line 44 "y_tab.c"
52#define INTEGER 1
53#define WORD 2
54#define STRING 3
55#define PERIOD 13
56#define OPEN 4
57#define CLOSE 5
58#define COMMA 6
59#define NEWLINE 7
60#define ERROR 8
61#define OPEN_SQUARE 9
62#define CLOSE_SQUARE 10
63#define EQUALS 11
64#define EXP 14
65#define YYERRCODE 256
66short yylhs[] = { -1,
67 0, 0, 1, 1, 1, 2, 2, 2, 3, 3,
68 3, 4, 4, 5, 5, 5, 5, 5, 5, 5,
69};
70short yylen[] = { 2,
71 0, 2, 2, 2, 2, 4, 2, 3, 0, 1,
72 3, 3, 1, 1, 1, 1, 3, 3, 5, 1,
73};
74short yydefred[] = { 1,
75 0, 0, 0, 0, 2, 0, 5, 3, 0, 0,
76 0, 15, 7, 20, 0, 0, 13, 4, 0, 0,
77 0, 0, 8, 0, 6, 0, 18, 0, 12, 11,
78 0, 19,
79};
80short yydgoto[] = { 1,
81 5, 14, 15, 16, 17,
82};
83short yysindex[] = { 0,
84 -2, 9, 2, 1, 0, 10, 0, 0, 11, -5,
85 17, 0, 0, 0, 14, -1, 0, 0, 33, 38,
86 41, 16, 0, 11, 0, 29, 0, 40, 0, 0,
87 44, 0,
88};
89short yyrindex[] = { 0,
90 0, 0, 0, 0, 0, 0, 0, 0, 42, 21,
91 24, 0, 0, 0, 0, 30, 0, 0, 0, 0,
92 0, 0, 0, 31, 0, 27, 0, 24, 0, 0,
93 0, 0,
94};
95short yygindex[] = { 0,
96 0, 45, -8, 0, 26,
97};
98#define YYTABLESIZE 254
99short yytable[] = { 3,
100 19, 10, 11, 12, 24, 9, 4, 20, 21, 4,
101 13, 10, 11, 12, 8, 30, 10, 28, 12, 4,
102 9, 7, 18, 23, 4, 16, 16, 22, 14, 14,
103 16, 17, 17, 14, 10, 9, 17, 25, 26, 10,
104 9, 27, 31, 9, 32, 6, 9, 29, 0, 0,
105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
125 0, 0, 0, 2,
126};
127short yycheck[] = { 2,
128 9, 1, 2, 3, 6, 4, 9, 13, 14, 9,
129 10, 1, 2, 3, 13, 24, 1, 2, 3, 9,
130 4, 13, 13, 10, 9, 5, 6, 11, 5, 6,
131 10, 5, 6, 10, 5, 5, 10, 5, 1, 10,
132 10, 1, 14, 4, 1, 1, 5, 22, -1, -1,
133 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
134 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
135 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
136 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
137 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
138 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
139 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
140 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
141 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
142 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
143 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
144 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
145 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
146 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
147 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
148 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
149 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
150 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
151 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
152 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
153 -1, -1, -1, 256,
154};
155#define YYFINAL 1
156#ifndef YYDEBUG
157#define YYDEBUG 0
158#endif
159#define YYMAXTOKEN 14
160#if YYDEBUG
161char *yyname[] = {
162"end-of-file","INTEGER","WORD","STRING","OPEN","CLOSE","COMMA","NEWLINE",
163"ERROR","OPEN_SQUARE","CLOSE_SQUARE","EQUALS",0,"PERIOD","EXP",
164};
165char *yyrule[] = {
166"$accept : commands",
167"commands :",
168"commands : commands command",
169"command : WORD PERIOD",
170"command : expr PERIOD",
171"command : error PERIOD",
172"expr : WORD OPEN arglist CLOSE",
173"expr : OPEN_SQUARE CLOSE_SQUARE",
174"expr : OPEN_SQUARE arglist CLOSE_SQUARE",
175"arglist :",
176"arglist : arg",
177"arglist : arg COMMA arglist",
178"arg : WORD EQUALS arg1",
179"arg : arg1",
180"arg1 : WORD",
181"arg1 : STRING",
182"arg1 : INTEGER",
183"arg1 : INTEGER PERIOD INTEGER",
184"arg1 : INTEGER EXP INTEGER",
185"arg1 : INTEGER PERIOD INTEGER EXP INTEGER",
186"arg1 : expr",
187};
188#endif
189#define yyclearin (yychar=(-1))
190#define yyerrok (yyerrflag=0)
191#ifdef YYSTACKSIZE
192#ifndef YYMAXDEPTH
193#define YYMAXDEPTH YYSTACKSIZE
194#endif
195#else
196#ifdef YYMAXDEPTH
197#define YYSTACKSIZE YYMAXDEPTH
198#else
199#define YYSTACKSIZE 600
200#define YYMAXDEPTH 600
201#endif
202#endif
203int yydebug;
204int yynerrs;
205int yyerrflag;
206int yychar;
207short *yyssp;
208YYSTYPE *yyvsp;
209YYSTYPE yyval;
210YYSTYPE yylval;
211short yyss[YYSTACKSIZE];
212YYSTYPE yyvs[YYSTACKSIZE];
213#define yystacksize YYSTACKSIZE
214#line 118 "parser.y"
215
216#ifdef IDE_INVOKED
217#include "../common/doslex.c"
218#else
219#if (defined(__MWERKS__))
220#include "../common/cwlex_yy.c"
221#else
222#include "../common/lex_yy.c"
223#endif
224#endif
225
226/*
227void yyerror(s)
228char *s;
229{
230 syntax_error(s);
231}
232*/
233
234/* Ansi prototype. If this doesn't work for you... uncomment
235 the above instead.
236 */
237
238void yyerror(char *s)
239{
240 syntax_error(s);
241}
242
243/*
244 * Unfortunately, my DOS version of FLEX
245 * requires yywrap to be #def'ed, whereas
246 * the UNIX flex expects a proper function.
247 */
248
249/* Not sure if __SC__ is the appropriate thing
250 * to test
251 */
252
253#ifndef __SC__
254#ifdef USE_DEFINE
255#ifndef yywrap
256#define yywrap() 1
257#endif
258#else
259int yywrap() { return 1; }
260#endif
261#endif
262#line 247 "y_tab.c"
263#define YYABORT goto yyabort
264#define YYACCEPT goto yyaccept
265#define YYERROR goto yyerrlab
266int
267yyparse()
268{
269 register int yym, yyn, yystate;
270#if YYDEBUG
271 register char *yys;
272 extern char *getenv();
273
274 if (yys = getenv("YYDEBUG"))
275 {
276 yyn = *yys;
277 if (yyn >= '0' && yyn <= '9')
278 yydebug = yyn - '0';
279 }
280#endif
281
282 yynerrs = 0;
283 yyerrflag = 0;
284 yychar = (-1);
285
286 yyssp = yyss;
287 yyvsp = yyvs;
288 *yyssp = yystate = 0;
289
290yyloop:
291 if (yyn = yydefred[yystate]) goto yyreduce;
292 if (yychar < 0)
293 {
294 if ((yychar = yylex()) < 0) yychar = 0;
295#if YYDEBUG
296 if (yydebug)
297 {
298 yys = 0;
299 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
300 if (!yys) yys = "illegal-symbol";
301 printf("yydebug: state %d, reading %d (%s)\n", yystate,
302 yychar, yys);
303 }
304#endif
305 }
306 if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
307 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
308 {
309#if YYDEBUG
310 if (yydebug)
311 printf("yydebug: state %d, shifting to state %d\n",
312 yystate, yytable[yyn]);
313#endif
314 if (yyssp >= yyss + yystacksize - 1)
315 {
316 goto yyoverflow;
317 }
318 *++yyssp = yystate = yytable[yyn];
319 *++yyvsp = yylval;
320 yychar = (-1);
321 if (yyerrflag > 0) --yyerrflag;
322 goto yyloop;
323 }
324 if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
325 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
326 {
327 yyn = yytable[yyn];
328 goto yyreduce;
329 }
330 if (yyerrflag) goto yyinrecovery;
331#ifdef lint
332 goto yynewerror;
333#endif
334yynewerror:
335 yyerror("syntax error");
336#ifdef lint
337 goto yyerrlab;
338#endif
339yyerrlab:
340 ++yynerrs;
341yyinrecovery:
342 if (yyerrflag < 3)
343 {
344 yyerrflag = 3;
345 for (;;)
346 {
347 if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
348 yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
349 {
350#if YYDEBUG
351 if (yydebug)
352 printf("yydebug: state %d, error recovery shifting\
353 to state %d\n", *yyssp, yytable[yyn]);
354#endif
355 if (yyssp >= yyss + yystacksize - 1)
356 {
357 goto yyoverflow;
358 }
359 *++yyssp = yystate = yytable[yyn];
360 *++yyvsp = yylval;
361 goto yyloop;
362 }
363 else
364 {
365#if YYDEBUG
366 if (yydebug)
367 printf("yydebug: error recovery discarding state %d\n",
368 *yyssp);
369#endif
370 if (yyssp <= yyss) goto yyabort;
371 --yyssp;
372 --yyvsp;
373 }
374 }
375 }
376 else
377 {
378 if (yychar == 0) goto yyabort;
379#if YYDEBUG
380 if (yydebug)
381 {
382 yys = 0;
383 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
384 if (!yys) yys = "illegal-symbol";
385 printf("yydebug: state %d, error recovery discards token %d (%s)\n",
386 yystate, yychar, yys);
387 }
388#endif
389 yychar = (-1);
390 goto yyloop;
391 }
392yyreduce:
393#if YYDEBUG
394 if (yydebug)
395 printf("yydebug: state %d, reducing by rule %d (%s)\n",
396 yystate, yyn, yyrule[yyn]);
397#endif
398 yym = yylen[yyn];
399 yyval = yyvsp[1-yym];
400 switch (yyn)
401 {
402case 3:
403#line 68 "parser.y"
5b077d48 404{process_command(proio_cons(wxmake_word(yyvsp[-1].s), NULL)); free(yyvsp[-1].s);}
469e1e5c
SC
405break;
406case 4:
407#line 70 "parser.y"
408{process_command(yyvsp[-1].s);}
409break;
410case 5:
411#line 72 "parser.y"
412{syntax_error("Unrecognized command.");}
413break;
414case 6:
415#line 76 "parser.y"
5b077d48 416{yyval.s = proio_cons(wxmake_word(yyvsp[-3].s), yyvsp[-1].s); free(yyvsp[-3].s);}
469e1e5c
SC
417break;
418case 7:
419#line 78 "parser.y"
420{yyval.s = proio_cons(NULL, NULL);}
421break;
422case 8:
423#line 80 "parser.y"
424{yyval.s = yyvsp[-1].s; }
425break;
426case 9:
427#line 84 "parser.y"
428{yyval.s = NULL;}
429break;
430case 10:
431#line 86 "parser.y"
432{yyval.s = proio_cons(yyvsp[0].s, NULL);}
433break;
434case 11:
435#line 89 "parser.y"
436{yyval.s = proio_cons(yyvsp[-2].s, yyvsp[0].s);}
437break;
438case 12:
439#line 93 "parser.y"
5b077d48 440{yyval.s = proio_cons(wxmake_word("="), proio_cons(wxmake_word(yyvsp[-2].s), proio_cons(yyvsp[0].s, NULL)));
469e1e5c
SC
441 free(yyvsp[-2].s); }
442break;
443case 13:
444#line 96 "parser.y"
445{yyval.s = yyvsp[0].s; }
446break;
447case 14:
448#line 99 "parser.y"
5b077d48 449{yyval.s = wxmake_word(yyvsp[0].s); free(yyvsp[0].s);}
469e1e5c
SC
450break;
451case 15:
452#line 101 "parser.y"
5b077d48 453{yyval.s = wxmake_string(yyvsp[0].s); free(yyvsp[0].s);}
469e1e5c
SC
454break;
455case 16:
456#line 103 "parser.y"
5b077d48 457{yyval.s = wxmake_integer(yyvsp[0].s); free(yyvsp[0].s);}
469e1e5c
SC
458break;
459case 17:
460#line 105 "parser.y"
5b077d48 461{yyval.s = wxmake_real(yyvsp[-2].s, yyvsp[0].s); free(yyvsp[-2].s); free(yyvsp[0].s); }
469e1e5c
SC
462break;
463case 18:
464#line 107 "parser.y"
5b077d48 465{yyval.s = wxmake_exp(yyvsp[-2].s, yyvsp[0].s); free(yyvsp[-2].s); free(yyvsp[0].s); }
469e1e5c
SC
466break;
467case 19:
468#line 110 "parser.y"
5b077d48 469{yyval.s = wxmake_exp2(yyvsp[-4].s, yyvsp[-2].s, yyvsp[0].s); free(yyvsp[-4].s); free(yyvsp[-2].s);
469e1e5c
SC
470 free(yyvsp[0].s); }
471break;
472case 20:
473#line 114 "parser.y"
474{yyval.s = yyvsp[0].s;}
475break;
476#line 461 "y_tab.c"
477 }
478 yyssp -= yym;
479 yystate = *yyssp;
480 yyvsp -= yym;
481 yym = yylhs[yyn];
482 if (yystate == 0 && yym == 0)
483 {
484#if YYDEBUG
485 if (yydebug)
486 printf("yydebug: after reduction, shifting from state 0 to\
487 state %d\n", YYFINAL);
488#endif
489 yystate = YYFINAL;
490 *++yyssp = YYFINAL;
491 *++yyvsp = yyval;
492 if (yychar < 0)
493 {
494 if ((yychar = yylex()) < 0) yychar = 0;
495#if YYDEBUG
496 if (yydebug)
497 {
498 yys = 0;
499 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
500 if (!yys) yys = "illegal-symbol";
501 printf("yydebug: state %d, reading %d (%s)\n",
502 YYFINAL, yychar, yys);
503 }
504#endif
505 }
506 if (yychar == 0) goto yyaccept;
507 goto yyloop;
508 }
509 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
510 yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
511 yystate = yytable[yyn];
512 else
513 yystate = yydgoto[yym];
514#if YYDEBUG
515 if (yydebug)
516 printf("yydebug: after reduction, shifting from state %d \
517to state %d\n", *yyssp, yystate);
518#endif
519 if (yyssp >= yyss + yystacksize - 1)
520 {
521 goto yyoverflow;
522 }
523 *++yyssp = yystate;
524 *++yyvsp = yyval;
525 goto yyloop;
526yyoverflow:
527 yyerror("yacc stack overflow");
528yyabort:
529 return (1);
530yyaccept:
531 return (0);
532}