]>
git.saurik.com Git - wxWidgets.git/blob - src/common/dosyacc.c
2 static char yysccsid
[] = "@(#)yaccpar 1.7 (Berkeley) 09/09/90";
13 #define __EXTERN_C__ 1
16 #if defined(__cplusplus) || defined(__STDC__)
17 #if defined(__cplusplus) && defined(__EXTERN_C__)
24 int yyback(int *, int);
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
31 /* int yyoutput(int); */
37 #if defined(__cplusplus) || defined(__STDC__)
38 #if defined(__cplusplus) && defined(__EXTERN_C__)
45 /* struct pexpr *expr; */
58 #define CLOSE_SQUARE 10
63 0, 0, 1, 1, 1, 2, 2, 2, 3, 3,
64 3, 4, 4, 5, 5, 5, 5, 5, 5, 5,
67 0, 2, 2, 2, 2, 4, 2, 3, 0, 1,
68 3, 3, 1, 1, 1, 1, 3, 3, 5, 1,
70 short 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,
76 short yydgoto
[] = { 1,
79 short 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,
85 short 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,
91 short yygindex
[] = { 0,
94 #define YYTABLESIZE 254
95 short 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,
123 short 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,
155 #define YYMAXTOKEN 14
158 "end-of-file","INTEGER","WORD","STRING","OPEN","CLOSE","COMMA","NEWLINE",
159 "ERROR","OPEN_SQUARE","CLOSE_SQUARE","EQUALS",0,"PERIOD","EXP",
162 "$accept : 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",
173 "arglist : arg COMMA arglist",
174 "arg : WORD EQUALS arg1",
179 "arg1 : INTEGER PERIOD INTEGER",
180 "arg1 : INTEGER EXP INTEGER",
181 "arg1 : INTEGER PERIOD INTEGER EXP INTEGER",
185 #define yyclearin (yychar=(-1))
186 #define yyerrok (yyerrflag=0)
189 #define YYMAXDEPTH YYSTACKSIZE
193 #define YYSTACKSIZE YYMAXDEPTH
195 #define YYSTACKSIZE 600
196 #define YYMAXDEPTH 600
207 short yyss
[YYSTACKSIZE
];
208 YYSTYPE yyvs
[YYSTACKSIZE
];
209 #define yystacksize YYSTACKSIZE
212 #include "../common/lex_yy.c"
222 /* Ansi prototype. If this doesn't work for you... uncomment
226 void yyerror(char *s
)
232 * Unfortunately, my DOS version of FLEX
233 * requires yywrap to be #def'ed, whereas
234 * the UNIX flex expects a proper function.
237 /* Not sure if __SC__ is the appropriate thing
247 int yywrap() { return 1; }
251 #define YYABORT goto yyabort
252 #define YYACCEPT goto yyaccept
253 #define YYERROR goto yyerrlab
257 register int yym
, yyn
, yystate
;
260 extern char *getenv();
262 if (yys
= getenv("YYDEBUG"))
265 if (yyn
>= '0' && yyn
<= '9')
276 *yyssp
= yystate
= 0;
279 if (yyn
= yydefred
[yystate
]) goto yyreduce
;
282 if ((yychar
= yylex()) < 0) yychar
= 0;
287 if (yychar
<= YYMAXTOKEN
) yys
= yyname
[yychar
];
288 if (!yys
) yys
= "illegal-symbol";
289 printf("yydebug: state %d, reading %d (%s)\n", yystate
,
294 if ((yyn
= yysindex
[yystate
]) && (yyn
+= yychar
) >= 0 &&
295 yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == yychar
)
299 printf("yydebug: state %d, shifting to state %d\n",
300 yystate
, yytable
[yyn
]);
302 if (yyssp
>= yyss
+ yystacksize
- 1)
306 *++yyssp
= yystate
= yytable
[yyn
];
309 if (yyerrflag
> 0) --yyerrflag
;
312 if ((yyn
= yyrindex
[yystate
]) && (yyn
+= yychar
) >= 0 &&
313 yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == yychar
)
318 if (yyerrflag
) goto yyinrecovery
;
323 yyerror("syntax error");
335 if ((yyn
= yysindex
[*yyssp
]) && (yyn
+= YYERRCODE
) >= 0 &&
336 yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == YYERRCODE
)
340 printf("yydebug: state %d, error recovery shifting\
341 to state %d\n", *yyssp
, yytable
[yyn
]);
343 if (yyssp
>= yyss
+ yystacksize
- 1)
347 *++yyssp
= yystate
= yytable
[yyn
];
355 printf("yydebug: error recovery discarding state %d\n",
358 if (yyssp
<= yyss
) goto yyabort
;
366 if (yychar
== 0) goto yyabort
;
371 if (yychar
<= YYMAXTOKEN
) yys
= yyname
[yychar
];
372 if (!yys
) yys
= "illegal-symbol";
373 printf("yydebug: state %d, error recovery discards token %d (%s)\n",
374 yystate
, yychar
, yys
);
383 printf("yydebug: state %d, reducing by rule %d (%s)\n",
384 yystate
, yyn
, yyrule
[yyn
]);
387 yyval
= yyvsp
[1-yym
];
392 {process_command(proio_cons(make_word(yyvsp
[-1].s
), NULL
)); free(yyvsp
[-1].s
);}
396 {process_command(yyvsp
[-1].s
);}
400 {syntax_error("Unrecognized command.");}
404 {yyval
.s
= proio_cons(make_word(yyvsp
[-3].s
), yyvsp
[-1].s
); free(yyvsp
[-3].s
);}
408 {yyval
.s
= proio_cons(NULL
, NULL
);}
412 {yyval
.s
= yyvsp
[-1].s
; }
420 {yyval
.s
= proio_cons(yyvsp
[0].s
, NULL
);}
424 {yyval
.s
= proio_cons(yyvsp
[-2].s
, yyvsp
[0].s
);}
428 {yyval
.s
= proio_cons(make_word("="), proio_cons(make_word(yyvsp
[-2].s
), proio_cons(yyvsp
[0].s
, NULL
)));
433 {yyval
.s
= yyvsp
[0].s
; }
437 {yyval
.s
= make_word(yyvsp
[0].s
); free(yyvsp
[0].s
);}
441 {yyval
.s
= make_string(yyvsp
[0].s
); free(yyvsp
[0].s
);}
445 {yyval
.s
= make_integer(yyvsp
[0].s
); free(yyvsp
[0].s
);}
449 {yyval
.s
= make_real(yyvsp
[-2].s
, yyvsp
[0].s
); free(yyvsp
[-2].s
); free(yyvsp
[0].s
); }
453 {yyval
.s
= make_exp(yyvsp
[-2].s
, yyvsp
[0].s
); free(yyvsp
[-2].s
); free(yyvsp
[0].s
); }
457 {yyval
.s
= make_exp2(yyvsp
[-4].s
, yyvsp
[-2].s
, yyvsp
[0].s
); free(yyvsp
[-4].s
); free(yyvsp
[-2].s
);
462 {yyval
.s
= yyvsp
[0].s
;}
470 if (yystate
== 0 && yym
== 0)
474 printf("yydebug: after reduction, shifting from state 0 to\
475 state %d\n", YYFINAL
);
482 if ((yychar
= yylex()) < 0) yychar
= 0;
487 if (yychar
<= YYMAXTOKEN
) yys
= yyname
[yychar
];
488 if (!yys
) yys
= "illegal-symbol";
489 printf("yydebug: state %d, reading %d (%s)\n",
490 YYFINAL
, yychar
, yys
);
494 if (yychar
== 0) goto yyaccept
;
497 if ((yyn
= yygindex
[yym
]) && (yyn
+= yystate
) >= 0 &&
498 yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == yystate
)
499 yystate
= yytable
[yyn
];
501 yystate
= yydgoto
[yym
];
504 printf("yydebug: after reduction, shifting from state %d \
505 to state %d\n", *yyssp
, yystate
);
507 if (yyssp
>= yyss
+ yystacksize
- 1)
515 yyerror("yacc stack overflow");