]>
git.saurik.com Git - wxWidgets.git/blob - contrib/src/deprecated/dosyacc.c
1 /* Copyright: (c) Julian Smart */
2 /* Licence: wxWindows Licence */
3 /* include platform.h first to get __WIN32__ definition */
4 #include "wx/platform.h"
6 #include "wx/deprecated/setup.h"
8 #if !defined(wxUSE_PROLOGIO) || wxUSE_PROLOGIO
10 #if !defined(lint) && 0
11 static char yysccsid
[] = "@(#)yaccpar 1.7 (Berkeley) 09/09/90";
16 #if defined(_MSC_VER) || defined(__VISAGECPP__)
19 #include "wx/deprecated/expr.h"
22 #define __EXTERN_C__ 1
25 #if defined(__cplusplus) || defined(__STDC__)
26 #if defined(__cplusplus) && defined(__EXTERN_C__)
33 int yyback(int *, int);
35 /* You may need to put /DLEX_SCANNER in your makefile
36 * if you're using LEX!
39 /* int yyoutput(int); */
45 #if defined(__cplusplus) || defined(__STDC__)
46 #if defined(__cplusplus) && defined(__EXTERN_C__)
50 // #line 36 "parser.y"
53 /* struct pexpr *expr; */
66 #define CLOSE_SQUARE 10
71 0, 0, 1, 1, 1, 2, 2, 2, 3, 3,
72 3, 4, 4, 5, 5, 5, 5, 5, 5, 5,
75 0, 2, 2, 2, 2, 4, 2, 3, 0, 1,
76 3, 3, 1, 1, 1, 1, 3, 3, 5, 1,
78 short yydefred
[] = { 1,
79 0, 0, 0, 0, 2, 0, 5, 3, 0, 0,
80 0, 15, 7, 20, 0, 0, 13, 4, 0, 0,
81 0, 0, 8, 0, 6, 0, 18, 0, 12, 11,
84 short yydgoto
[] = { 1,
87 short yysindex
[] = { 0,
88 -2, 9, 2, 1, 0, 10, 0, 0, 11, -5,
89 17, 0, 0, 0, 14, -1, 0, 0, 33, 38,
90 41, 16, 0, 11, 0, 29, 0, 40, 0, 0,
93 short yyrindex
[] = { 0,
94 0, 0, 0, 0, 0, 0, 0, 0, 42, 21,
95 24, 0, 0, 0, 0, 30, 0, 0, 0, 0,
96 0, 0, 0, 31, 0, 27, 0, 24, 0, 0,
99 short yygindex
[] = { 0,
102 #define YYTABLESIZE 254
103 short yytable
[] = { 3,
104 19, 10, 11, 12, 24, 9, 4, 20, 21, 4,
105 13, 10, 11, 12, 8, 30, 10, 28, 12, 4,
106 9, 7, 18, 23, 4, 16, 16, 22, 14, 14,
107 16, 17, 17, 14, 10, 9, 17, 25, 26, 10,
108 9, 27, 31, 9, 32, 6, 9, 29, 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, 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,
131 short yycheck
[] = { 2,
132 9, 1, 2, 3, 6, 4, 9, 13, 14, 9,
133 10, 1, 2, 3, 13, 24, 1, 2, 3, 9,
134 4, 13, 13, 10, 9, 5, 6, 11, 5, 6,
135 10, 5, 6, 10, 5, 5, 10, 5, 1, 10,
136 10, 1, 14, 4, 1, 1, 5, 22, -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, -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,
163 #define YYMAXTOKEN 14
166 "end-of-file","INTEGER","WORD","STRING","OPEN","CLOSE","COMMA","NEWLINE",
167 "ERROR","OPEN_SQUARE","CLOSE_SQUARE","EQUALS",0,"PERIOD","EXP",
170 "$accept : commands",
172 "commands : commands command",
173 "command : WORD PERIOD",
174 "command : expr PERIOD",
175 "command : error PERIOD",
176 "expr : WORD OPEN arglist CLOSE",
177 "expr : OPEN_SQUARE CLOSE_SQUARE",
178 "expr : OPEN_SQUARE arglist CLOSE_SQUARE",
181 "arglist : arg COMMA arglist",
182 "arg : WORD EQUALS arg1",
187 "arg1 : INTEGER PERIOD INTEGER",
188 "arg1 : INTEGER EXP INTEGER",
189 "arg1 : INTEGER PERIOD INTEGER EXP INTEGER",
193 #define yyclearin (yychar=(-1))
194 #define yyerrok (yyerrflag=0)
197 #define YYMAXDEPTH YYSTACKSIZE
201 #define YYSTACKSIZE YYMAXDEPTH
203 #define YYSTACKSIZE 600
204 #define YYMAXDEPTH 600
215 short yyss
[YYSTACKSIZE
];
216 YYSTYPE yyvs
[YYSTACKSIZE
];
217 #define yystacksize YYSTACKSIZE
218 // #line 118 "parser.y"
230 /* Ansi prototype. If this doesn't work for you... uncomment
234 void yyerror(char *s
)
240 * Unfortunately, my DOS version of FLEX
241 * requires yywrap to be #def'ed, whereas
242 * the UNIX flex expects a proper function.
245 /* Not sure if __SC__ is the appropriate thing
249 #if 0 /* VS: doesn't work... */
256 # if !(defined(__VISAGECPP__) && __IBMC__ >= 400)
257 /* VA 4.0 thinks this is multiply defined (in lex_yy.c) */
258 int yywrap() { return 1; }
264 // #line 247 "y_tab.c"
265 #define YYABORT goto yyabort
266 #define YYACCEPT goto yyaccept
267 #define YYERROR goto yyerrlab
271 register int yym
, yyn
, yystate
;
274 extern char *getenv();
276 yys
= getenv("YYDEBUG");
280 if (yyn
>= '0' && yyn
<= '9')
291 *yyssp
= yystate
= 0;
294 yyn
= yydefred
[yystate
];
295 if (yyn
!= 0) goto yyreduce
;
298 if ((yychar
= yylex()) < 0) yychar
= 0;
303 if (yychar
<= YYMAXTOKEN
) yys
= yyname
[yychar
];
304 if (!yys
) yys
= "illegal-symbol";
305 printf("yydebug: state %d, reading %d (%s)\n", yystate
,
310 yyn
= yysindex
[yystate
];
311 if ((yyn
) && (yyn
+= yychar
) >= 0 &&
312 yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == yychar
)
316 printf("yydebug: state %d, shifting to state %d\n",
317 yystate
, yytable
[yyn
]);
319 if (yyssp
>= yyss
+ yystacksize
- 1)
323 *++yyssp
= yystate
= yytable
[yyn
];
326 if (yyerrflag
> 0) --yyerrflag
;
329 yyn
= yyrindex
[yystate
];
330 if ((yyn
) && (yyn
+= yychar
) >= 0 &&
331 yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == yychar
)
336 if (yyerrflag
) goto yyinrecovery
;
341 yyerror("syntax error");
353 yyn
= yysindex
[*yyssp
];
354 if ((yyn
) && (yyn
+= YYERRCODE
) >= 0 &&
355 yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == YYERRCODE
)
359 printf("yydebug: state %d, error recovery shifting\
360 to state %d\n", *yyssp
, yytable
[yyn
]);
362 if (yyssp
>= yyss
+ yystacksize
- 1)
366 *++yyssp
= yystate
= yytable
[yyn
];
374 printf("yydebug: error recovery discarding state %d\n",
377 if (yyssp
<= yyss
) goto yyabort
;
385 if (yychar
== 0) goto yyabort
;
390 if (yychar
<= YYMAXTOKEN
) yys
= yyname
[yychar
];
391 if (!yys
) yys
= "illegal-symbol";
392 printf("yydebug: state %d, error recovery discards token %d (%s)\n",
393 yystate
, yychar
, yys
);
402 printf("yydebug: state %d, reducing by rule %d (%s)\n",
403 yystate
, yyn
, yyrule
[yyn
]);
406 yyval
= yyvsp
[1-yym
];
410 // #line 68 "parser.y"
411 {process_command(proio_cons(wxmake_word(yyvsp
[-1].s
), NULL
)); free(yyvsp
[-1].s
);}
414 // #line 70 "parser.y"
415 {process_command(yyvsp
[-1].s
);}
418 // #line 72 "parser.y"
419 {syntax_error("Unrecognized command.");}
422 // #line 76 "parser.y"
423 {yyval
.s
= proio_cons(wxmake_word(yyvsp
[-3].s
), yyvsp
[-1].s
); free(yyvsp
[-3].s
);}
426 // #line 78 "parser.y"
427 {yyval
.s
= proio_cons(NULL
, NULL
);}
430 // #line 80 "parser.y"
431 {yyval
.s
= yyvsp
[-1].s
; }
434 // #line 84 "parser.y"
438 // #line 86 "parser.y"
439 {yyval
.s
= proio_cons(yyvsp
[0].s
, NULL
);}
442 // #line 89 "parser.y"
443 {yyval
.s
= proio_cons(yyvsp
[-2].s
, yyvsp
[0].s
);}
446 // #line 93 "parser.y"
447 {yyval
.s
= proio_cons(wxmake_word("="), proio_cons(wxmake_word(yyvsp
[-2].s
), proio_cons(yyvsp
[0].s
, NULL
)));
451 // #line 96 "parser.y"
452 {yyval
.s
= yyvsp
[0].s
; }
455 // #line 99 "parser.y"
456 {yyval
.s
= wxmake_word(yyvsp
[0].s
); free(yyvsp
[0].s
);}
459 // #line 101 "parser.y"
460 {yyval
.s
= wxmake_string(yyvsp
[0].s
); free(yyvsp
[0].s
);}
463 // #line 103 "parser.y"
464 {yyval
.s
= wxmake_integer(yyvsp
[0].s
); free(yyvsp
[0].s
);}
467 // #line 105 "parser.y"
468 {yyval
.s
= wxmake_real(yyvsp
[-2].s
, yyvsp
[0].s
); free(yyvsp
[-2].s
); free(yyvsp
[0].s
); }
471 // #line 107 "parser.y"
472 {yyval
.s
= wxmake_exp(yyvsp
[-2].s
, yyvsp
[0].s
); free(yyvsp
[-2].s
); free(yyvsp
[0].s
); }
475 // #line 110 "parser.y"
476 {yyval
.s
= wxmake_exp2(yyvsp
[-4].s
, yyvsp
[-2].s
, yyvsp
[0].s
); free(yyvsp
[-4].s
); free(yyvsp
[-2].s
);
480 // #line 114 "parser.y"
481 {yyval
.s
= yyvsp
[0].s
;}
483 // #line 461 "y_tab.c"
489 if (yystate
== 0 && yym
== 0)
493 printf("yydebug: after reduction, shifting from state 0 to\
494 state %d\n", YYFINAL
);
501 if ((yychar
= yylex()) < 0) yychar
= 0;
506 if (yychar
<= YYMAXTOKEN
) yys
= yyname
[yychar
];
507 if (!yys
) yys
= "illegal-symbol";
508 printf("yydebug: state %d, reading %d (%s)\n",
509 YYFINAL
, yychar
, yys
);
513 if (yychar
== 0) goto yyaccept
;
517 if ((yyn
) && (yyn
+= yystate
) >= 0 &&
518 yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == yystate
)
519 yystate
= yytable
[yyn
];
521 yystate
= yydgoto
[yym
];
524 printf("yydebug: after reduction, shifting from state %d \
525 to state %d\n", *yyssp
, yystate
);
527 if (yyssp
>= yyss
+ yystacksize
- 1)
535 yyerror("yacc stack overflow");
542 #endif /* wxUSE_PROLOGIO */