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