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