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