Skip to content

Package: ExtParser

ExtParser

nameinstructionbranchcomplexitylinemethod
ExtParser()
M: 0 C: 7
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
ExtParser(Reader)
M: 0 C: 14
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
ExtParser(boolean)
M: 10 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
debug(String)
M: 7 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
dump_stacks(int)
M: 51 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 5 C: 0
0%
M: 1 C: 0
0%
dup_yyval(ExtParserVal)
M: 0 C: 22
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 6
100%
M: 0 C: 1
100%
getMyTree()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
init_stacks()
M: 0 C: 7
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
run()
M: 4 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
state_drop(int)
M: 0 C: 7
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
state_peek(int)
M: 0 C: 8
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
state_pop()
M: 0 C: 11
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
state_push(int)
M: 28 C: 14
33%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 7 C: 4
36%
M: 0 C: 1
100%
static {...}
M: 0 C: 4454
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
val_drop(int)
M: 1 C: 11
92%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 1 C: 4
80%
M: 0 C: 1
100%
val_init()
M: 0 C: 18
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 5
100%
M: 0 C: 1
100%
val_peek(int)
M: 4 C: 12
75%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 1 C: 3
75%
M: 0 C: 1
100%
val_pop()
M: 4 C: 14
78%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 1 C: 2
67%
M: 0 C: 1
100%
val_push(ExtParserVal)
M: 1 C: 16
94%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 1 C: 3
75%
M: 0 C: 1
100%
yycheck()
M: 0 C: 2384
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
yyerror(String)
M: 0 C: 11
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
yylex()
M: 11 C: 9
45%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 4
67%
M: 0 C: 1
100%
yylexdebug(int, int)
M: 38 C: 0
0%
M: 6 C: 0
0%
M: 4 C: 0
0%
M: 9 C: 0
0%
M: 1 C: 0
0%
yyparse()
M: 680 C: 984
59%
M: 67 C: 89
57%
M: 59 C: 49
45%
M: 102 C: 172
63%
M: 0 C: 1
100%
yytable()
M: 0 C: 2384
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%

Coverage

1: // ### This file created by BYACC 1.8(/Java extension 1.15)
2: // ### Java capabilities added 7 Jan 97, Bob Jamison
3: // ### Updated : 27 Nov 97 -- Bob Jamison, Joe Nieten
4: // ### 01 Jan 98 -- Bob Jamison -- fixed generic semantic constructor
5: // ### 01 Jun 99 -- Bob Jamison -- added Runnable support
6: // ### 06 Aug 00 -- Bob Jamison -- made state variables class-global
7: // ### 03 Jan 01 -- Bob Jamison -- improved flags, tracing
8: // ### 16 May 01 -- Bob Jamison -- added custom stack sizing
9: // ### 04 Mar 02 -- Yuval Oren -- improved java performance, added options
10: // ### 14 Mar 02 -- Tomas Hurka -- -d support, static initializer workaround
11: // ### Please send bug reports to tom@hukatronic.cz
12: // ### static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/90";
13:
14: package pruefskript.parser;
15:
16: import java.io.IOException;
17: import java.io.Reader;
18:
19: // #line 26 "extParser.y"
20: import pruefskript.parser.nodes.AbstractNode;
21: import pruefskript.parser.nodes.AddNode;
22: import pruefskript.parser.nodes.AddToOptNode;
23: import pruefskript.parser.nodes.AndNode;
24: import pruefskript.parser.nodes.AssignNode;
25: import pruefskript.parser.nodes.CastNode;
26: import pruefskript.parser.nodes.ConditionNode;
27: import pruefskript.parser.nodes.CopyPendingNode;
28: import pruefskript.parser.nodes.CryptNode;
29: import pruefskript.parser.nodes.DefinedNode;
30: import pruefskript.parser.nodes.DependsNode;
31: import pruefskript.parser.nodes.DivNode;
32: import pruefskript.parser.nodes.EqualNode;
33: import pruefskript.parser.nodes.ErrorNode;
34: import pruefskript.parser.nodes.FGrepNode;
35: import pruefskript.parser.nodes.FatalErrorNode;
36: import pruefskript.parser.nodes.ForEachNode;
37: import pruefskript.parser.nodes.GENode;
38: import pruefskript.parser.nodes.GreaterNode;
39: import pruefskript.parser.nodes.IDNode;
40: import pruefskript.parser.nodes.IdSetArrayNode;
41: import pruefskript.parser.nodes.IdSetNode;
42: import pruefskript.parser.nodes.IfNode;
43: import pruefskript.parser.nodes.InputNode;
44: import pruefskript.parser.nodes.LENode;
45: import pruefskript.parser.nodes.LessNode;
46: import pruefskript.parser.nodes.LineNode;
47: import pruefskript.parser.nodes.MatchNode;
48: import pruefskript.parser.nodes.ModNode;
49: import pruefskript.parser.nodes.MultNode;
50: import pruefskript.parser.nodes.NotEqualNode;
51: import pruefskript.parser.nodes.NotNode;
52: import pruefskript.parser.nodes.OrElseNode;
53: import pruefskript.parser.nodes.OrNode;
54: import pruefskript.parser.nodes.ProvidesNode;
55: import pruefskript.parser.nodes.SamenetNode;
56: import pruefskript.parser.nodes.SkriptNode;
57: import pruefskript.parser.nodes.SplitNode;
58: import pruefskript.parser.nodes.StatNode;
59: import pruefskript.parser.nodes.SubNode;
60: import pruefskript.parser.nodes.SubnetNode;
61: import pruefskript.parser.nodes.UniqueNode;
62: import pruefskript.parser.nodes.WarningNode;
63: import pruefskript.scanner.ExtScanner;
64:
65: /* This will suppress all the PMD warnings in this class */
66: @SuppressWarnings("PMD")
67: // #line 23 "ExtParser.java"
68:
69: public class ExtParser {
70:
71:         boolean yydebug; // do I want debug output?
72:         int yynerrs; // number of errors so far
73:         int yyerrflag; // was there an error?
74:         int yychar; // the current working character
75:
76:         // ########## MESSAGES ##########
77:         // ###############################################################
78:         // method: debug
79:         // ###############################################################
80:         void debug(String msg) {
81:•                if (yydebug)
82:                         System.out.println(msg);
83:         }
84:
85:         // ########## STATE STACK ##########
86:         public final static int YYSTACKSIZE = 500; // maximum stack size
87:         public int statestk[] = new int[YYSTACKSIZE]; // state stack
88:         public int stateptr;
89:         public int stateptrmax; // highest index of stackptr
90:         public int statemax; // state when highest index reached
91:         // ###############################################################
92:         // methods: state stack push,pop,drop,peek
93:         // ###############################################################
94:
95:         final void state_push(int state) {
96:                 try {
97:                         stateptr++;
98:                         statestk[stateptr] = state;
99:                 } catch (ArrayIndexOutOfBoundsException e) {
100:                         int oldsize = statestk.length;
101:                         int newsize = oldsize * 2;
102:                         int[] newstack = new int[newsize];
103:                         System.arraycopy(statestk, 0, newstack, 0, oldsize);
104:                         statestk = newstack;
105:                         statestk[stateptr] = state;
106:                 }
107:         }
108:
109:         final int state_pop() {
110:                 return statestk[stateptr--];
111:         }
112:
113:         final void state_drop(int cnt) {
114:                 stateptr -= cnt;
115:         }
116:
117:         final int state_peek(int relative) {
118:                 return statestk[stateptr - relative];
119:         }
120:
121:         // ###############################################################
122:         // method: init_stacks : allocate and prepare stacks
123:         // ###############################################################
124:         final boolean init_stacks() {
125:                 stateptr = -1;
126:                 val_init();
127:                 return true;
128:         }
129:
130:         // ###############################################################
131:         // method: dump_stacks : show n levels of the stacks
132:         // ###############################################################
133:         void dump_stacks(int count) {
134:                 int i;
135:                 System.out.println("=index==state====value= s:" + stateptr + " v:" + valptr);
136:•                for (i = 0; i < count; i++)
137:                         System.out.println(" " + i + " " + statestk[i] + " " + valstk[i]);
138:                 System.out.println("======================");
139:         }
140:
141:         // ########## SEMANTIC VALUES ##########
142:         // public class ExtParserVal is defined in ExtParserVal.java
143:
144:         public String yytext;// user variable to return contextual strings
145:         public ExtParserVal yyval; // used to return semantic vals from action routines
146:         public ExtParserVal yylval;// the 'lval' (result) I got from yylex()
147:         public ExtParserVal valstk[];
148:         int valptr;
149:
150:         // ###############################################################
151:         // methods: value stack push,pop,drop,peek.
152:         // ###############################################################
153:         void val_init() {
154:                 valstk = new ExtParserVal[YYSTACKSIZE];
155:                 yyval = new ExtParserVal();
156:                 yylval = new ExtParserVal();
157:                 valptr = -1;
158:         }
159:
160:         void val_push(ExtParserVal val) {
161:•                if (valptr >= YYSTACKSIZE)
162:                         return;
163:                 valstk[++valptr] = val;
164:         }
165:
166:         ExtParserVal val_pop() {
167:•                if (valptr < 0)
168:                         return new ExtParserVal();
169:                 return valstk[valptr--];
170:         }
171:
172:         void val_drop(int cnt) {
173:                 int ptr;
174:                 ptr = valptr - cnt;
175:•                if (ptr < 0)
176:                         return;
177:                 valptr = ptr;
178:         }
179:
180:         ExtParserVal val_peek(int relative) {
181:                 int ptr;
182:                 ptr = valptr - relative;
183:•                if (ptr < 0)
184:                         return new ExtParserVal();
185:                 return valstk[ptr];
186:         }
187:
188:         final ExtParserVal dup_yyval(ExtParserVal val) {
189:                 ExtParserVal dup = new ExtParserVal();
190:                 dup.ival = val.ival;
191:                 dup.dval = val.dval;
192:                 dup.sval = val.sval;
193:                 dup.obj = val.obj;
194:                 return dup;
195:         }
196:
197:         // #### end semantic value section ####
198:         public final static short ID = 257;
199:         public final static short IDSET = 258;
200:         public final static short NUM = 259;
201:         public final static short STRING = 260;
202:         public final static short CHAR = 261;
203:         public final static short VER = 262;
204:         public final static short MAJOR_VER = 263;
205:         public final static short VER_EXPR = 264;
206:         public final static short IF = 265;
207:         public final static short THEN = 266;
208:         public final static short ELSE = 267;
209:         public final static short FOREACH = 268;
210:         public final static short WARNING = 269;
211:         public final static short ERROR = 270;
212:         public final static short FATAL_ERROR = 271;
213:         public final static short FGREP = 272;
214:         public final static short STAT = 273;
215:         public final static short CRYPT = 274;
216:         public final static short SPLIT = 275;
217:         public final static short NUMERIC = 276;
218:         public final static short SET = 277;
219:         public final static short ADD_TO_OPT = 278;
220:         public final static short PROVIDES = 279;
221:         public final static short DEPENDS = 280;
222:         public final static short VERSION = 281;
223:         public final static short UNKNOWN = 282;
224:         public final static short FI = 283;
225:         public final static short IN = 284;
226:         public final static short DO = 285;
227:         public final static short DONE = 286;
228:         public final static short ON = 287;
229:         public final static short SAMENET = 288;
230:         public final static short SUBNET = 289;
231:         public final static short ORELSE = 290;
232:         public final static short ASSIGN = 291;
233:         public final static short AND = 292;
234:         public final static short OR = 293;
235:         public final static short ADD = 294;
236:         public final static short SUB = 295;
237:         public final static short MULT = 296;
238:         public final static short DIV = 297;
239:         public final static short MOD = 298;
240:         public final static short EQUAL = 299;
241:         public final static short NOT_EQUAL = 300;
242:         public final static short LESS = 301;
243:         public final static short GREATER = 302;
244:         public final static short LE = 303;
245:         public final static short GE = 304;
246:         public final static short MATCH = 305;
247:         public final static short NOT = 306;
248:         public final static short COPY_PENDING = 307;
249:         public final static short DEFINED = 308;
250:         public final static short UNIQUE = 309;
251:         public final static short CAST = 310;
252:         public final static short YYERRCODE = 256;
253:         final static short yylhs[] = {
254:                         -1,
255:                         0,
256:                         1,
257:                         1,
258:                         2,
259:                         2,
260:                         2,
261:                         3,
262:                         3,
263:                         3,
264:                         3,
265:                         3,
266:                         3,
267:                         3,
268:                         3,
269:                         3,
270:                         3,
271:                         3,
272:                         3,
273:                         3,
274:                         3,
275:                         3,
276:                         9,
277:                         9,
278:                         9,
279:                         10,
280:                         4,
281:                         4,
282:                         5,
283:                         5,
284:                         12,
285:                         12,
286:                         13,
287:                         13,
288:                         13,
289:                         13,
290:                         13,
291:                         13,
292:                         6,
293:                         6,
294:                         8,
295:                         8,
296:                         7,
297:                         7,
298:                         7,
299:                         7,
300:                         7,
301:                         7,
302:                         14,
303:                         14,
304:                         14,
305:                         14,
306:                         14,
307:                         14,
308:                         14,
309:                         11,
310:                         11,
311:                         11,
312:                         11,
313:                         11,
314:                         11,
315:                         11,
316:                         11,
317:                         11,
318:                         11,
319:                         11,
320:                         11,
321:                         11,
322:                         11,
323:                         11,
324:                         11,
325:                         11,
326:                         11, };
327:         final static short yylen[] = {
328:                         2,
329:                         1,
330:                         1,
331:                         2,
332:                         1,
333:                         1,
334:                         1,
335:                         2,
336:                         2,
337:                         2,
338:                         2,
339:                         3,
340:                         6,
341:                         6,
342:                         4,
343:                         8,
344:                         10,
345:                         2,
346:                         4,
347:                         7,
348:                         1,
349:                         1,
350:                         5,
351:                         5,
352:                         5,
353:                         4,
354:                         5,
355:                         7,
356:                         7,
357:                         7,
358:                         2,
359:                         1,
360:                         4,
361:                         4,
362:                         4,
363:                         4,
364:                         4,
365:                         4,
366:                         1,
367:                         1,
368:                         1,
369:                         1,
370:                         1,
371:                         1,
372:                         1,
373:                         3,
374:                         3,
375:                         3,
376:                         1,
377:                         3,
378:                         3,
379:                         3,
380:                         3,
381:                         3,
382:                         3,
383:                         1,
384:                         3,
385:                         3,
386:                         3,
387:                         3,
388:                         3,
389:                         3,
390:                         3,
391:                         2,
392:                         4,
393:                         4,
394:                         4,
395:                         6,
396:                         6,
397:                         4,
398:                         3,
399:                         3,
400:                         3, };
401:         final static short yydefred[] = {
402:                         0,
403:                         0,
404:                         0,
405:                         0,
406:                         0,
407:                         0,
408:                         0,
409:                         0,
410:                         0,
411:                         0,
412:                         0,
413:                         0,
414:                         0,
415:                         0,
416:                         0,
417:                         0,
418:                         2,
419:                         4,
420:                         5,
421:                         6,
422:                         20,
423:                         21,
424:                         38,
425:                         0,
426:                         41,
427:                         44,
428:                         42,
429:                         0,
430:                         0,
431:                         0,
432:                         0,
433:                         0,
434:                         0,
435:                         0,
436:                         0,
437:                         0,
438:                         48,
439:                         0,
440:                         0,
441:                         0,
442:                         0,
443:                         7,
444:                         8,
445:                         9,
446:                         0,
447:                         0,
448:                         0,
449:                         0,
450:                         0,
451:                         0,
452:                         0,
453:                         0,
454:                         0,
455:                         3,
456:                         0,
457:                         0,
458:                         0,
459:                         63,
460:                         0,
461:                         0,
462:                         0,
463:                         0,
464:                         0,
465:                         0,
466:                         0,
467:                         0,
468:                         0,
469:                         0,
470:                         0,
471:                         0,
472:                         0,
473:                         0,
474:                         0,
475:                         0,
476:                         0,
477:                         0,
478:                         0,
479:                         0,
480:                         0,
481:                         0,
482:                         0,
483:                         0,
484:                         0,
485:                         0,
486:                         0,
487:                         0,
488:                         0,
489:                         0,
490:                         11,
491:                         0,
492:                         0,
493:                         0,
494:                         0,
495:                         0,
496:                         0,
497:                         0,
498:                         0,
499:                         0,
500:                         0,
501:                         0,
502:                         72,
503:                         49,
504:                         0,
505:                         0,
506:                         0,
507:                         62,
508:                         0,
509:                         0,
510:                         0,
511:                         0,
512:                         0,
513:                         0,
514:                         46,
515:                         47,
516:                         0,
517:                         70,
518:                         71,
519:                         0,
520:                         0,
521:                         0,
522:                         40,
523:                         50,
524:                         52,
525:                         51,
526:                         53,
527:                         54,
528:                         0,
529:                         31,
530:                         0,
531:                         0,
532:                         0,
533:                         14,
534:                         0,
535:                         0,
536:                         0,
537:                         25,
538:                         0,
539:                         32,
540:                         34,
541:                         33,
542:                         0,
543:                         0,
544:                         65,
545:                         64,
546:                         69,
547:                         66,
548:                         0,
549:                         0,
550:                         26,
551:                         35,
552:                         37,
553:                         36,
554:                         0,
555:                         30,
556:                         0,
557:                         0,
558:                         0,
559:                         0,
560:                         0,
561:                         23,
562:                         22,
563:                         24,
564:                         0,
565:                         0,
566:                         0,
567:                         0,
568:                         0,
569:                         12,
570:                         13,
571:                         0,
572:                         0,
573:                         67,
574:                         68,
575:                         27,
576:                         29,
577:                         28,
578:                         0,
579:                         0,
580:                         0,
581:                         15,
582:                         0,
583:                         16, };
584:         final static short yydgoto[] =
585:                         { 14, 15, 16, 17, 18, 19, 103, 35, 36, 20, 21, 37, 128, 38, 39, };
586:         final static short yysindex[] = {
587:                         314,
588:                         269,
589:                         -249,
590:                         -226,
591:                         -219,
592:                         -216,
593:                         6,
594:                         8,
595:                         21,
596:                         36,
597:                         -190,
598:                         -173,
599:                         -228,
600:                         -195,
601:                         0,
602:                         314,
603:                         0,
604:                         0,
605:                         0,
606:                         0,
607:                         0,
608:                         0,
609:                         0,
610:                         11,
611:                         0,
612:                         0,
613:                         0,
614:                         74,
615:                         76,
616:                         269,
617:                         88,
618:                         115,
619:                         116,
620:                         269,
621:                         -262,
622:                         -204,
623:                         0,
624:                         -256,
625:                         79,
626:                         -239,
627:                         -119,
628:                         0,
629:                         0,
630:                         0,
631:                         -89,
632:                         -88,
633:                         -176,
634:                         -176,
635:                         -118,
636:                         83,
637:                         -84,
638:                         -104,
639:                         -79,
640:                         0,
641:                         -122,
642:                         -77,
643:                         -46,
644:                         0,
645:                         -145,
646:                         -176,
647:                         -176,
648:                         -10,
649:                         -41,
650:                         -37,
651:                         -45,
652:                         -37,
653:                         -37,
654:                         -37,
655:                         -37,
656:                         -37,
657:                         -37,
658:                         -237,
659:                         314,
660:                         269,
661:                         269,
662:                         -117,
663:                         -17,
664:                         -17,
665:                         -17,
666:                         -17,
667:                         -17,
668:                         -108,
669:                         137,
670:                         149,
671:                         168,
672:                         173,
673:                         -37,
674:                         -114,
675:                         0,
676:                         -44,
677:                         -57,
678:                         133,
679:                         134,
680:                         -69,
681:                         184,
682:                         185,
683:                         189,
684:                         190,
685:                         192,
686:                         194,
687:                         0,
688:                         0,
689:                         -17,
690:                         -47,
691:                         -73,
692:                         0,
693:                         -73,
694:                         -73,
695:                         -73,
696:                         -73,
697:                         -73,
698:                         -73,
699:                         0,
700:                         0,
701:                         -83,
702:                         0,
703:                         0,
704:                         151,
705:                         152,
706:                         -53,
707:                         0,
708:                         0,
709:                         0,
710:                         0,
711:                         0,
712:                         0,
713:                         -39,
714:                         0,
715:                         -231,
716:                         -12,
717:                         -7,
718:                         0,
719:                         -9,
720:                         -73,
721:                         154,
722:                         0,
723:                         -116,
724:                         0,
725:                         0,
726:                         0,
727:                         17,
728:                         25,
729:                         0,
730:                         0,
731:                         0,
732:                         0,
733:                         -41,
734:                         314,
735:                         0,
736:                         0,
737:                         0,
738:                         0,
739:                         314,
740:                         0,
741:                         314,
742:                         210,
743:                         211,
744:                         242,
745:                         -3,
746:                         0,
747:                         0,
748:                         0,
749:                         248,
750:                         251,
751:                         -67,
752:                         -148,
753:                         -111,
754:                         0,
755:                         0,
756:                         46,
757:                         -37,
758:                         0,
759:                         0,
760:                         0,
761:                         0,
762:                         0,
763:                         -11,
764:                         -73,
765:                         53,
766:                         0,
767:                         282,
768:                         0, };
769:         final static short yyrindex[] = {
770:                         0,
771:                         0,
772:                         0,
773:                         0,
774:                         0,
775:                         0,
776:                         0,
777:                         0,
778:                         0,
779:                         0,
780:                         0,
781:                         0,
782:                         0,
783:                         0,
784:                         0,
785:                         331,
786:                         0,
787:                         0,
788:                         0,
789:                         0,
790:                         0,
791:                         0,
792:                         0,
793:                         0,
794:                         0,
795:                         0,
796:                         0,
797:                         0,
798:                         0,
799:                         0,
800:                         0,
801:                         0,
802:                         0,
803:                         0,
804:                         249,
805:                         -34,
806:                         0,
807:                         0,
808:                         1,
809:                         93,
810:                         0,
811:                         0,
812:                         0,
813:                         0,
814:                         0,
815:                         0,
816:                         0,
817:                         0,
818:                         179,
819:                         0,
820:                         199,
821:                         0,
822:                         0,
823:                         0,
824:                         0,
825:                         0,
826:                         0,
827:                         0,
828:                         0,
829:                         0,
830:                         0,
831:                         0,
832:                         -230,
833:                         0,
834:                         0,
835:                         0,
836:                         0,
837:                         0,
838:                         0,
839:                         0,
840:                         0,
841:                         0,
842:                         0,
843:                         0,
844:                         0,
845:                         0,
846:                         0,
847:                         0,
848:                         0,
849:                         0,
850:                         0,
851:                         0,
852:                         0,
853:                         0,
854:                         0,
855:                         0,
856:                         0,
857:                         0,
858:                         0,
859:                         0,
860:                         0,
861:                         0,
862:                         0,
863:                         0,
864:                         0,
865:                         0,
866:                         0,
867:                         0,
868:                         0,
869:                         0,
870:                         0,
871:                         0,
872:                         0,
873:                         47,
874:                         139,
875:                         0,
876:                         -32,
877:                         -30,
878:                         -28,
879:                         42,
880:                         44,
881:                         62,
882:                         0,
883:                         0,
884:                         0,
885:                         0,
886:                         0,
887:                         0,
888:                         0,
889:                         0,
890:                         0,
891:                         0,
892:                         0,
893:                         0,
894:                         0,
895:                         0,
896:                         0,
897:                         0,
898:                         0,
899:                         0,
900:                         0,
901:                         0,
902:                         0,
903:                         219,
904:                         0,
905:                         0,
906:                         0,
907:                         0,
908:                         0,
909:                         0,
910:                         0,
911:                         0,
912:                         0,
913:                         0,
914:                         0,
915:                         0,
916:                         0,
917:                         0,
918:                         0,
919:                         0,
920:                         0,
921:                         0,
922:                         0,
923:                         0,
924:                         0,
925:                         0,
926:                         0,
927:                         0,
928:                         0,
929:                         0,
930:                         0,
931:                         0,
932:                         0,
933:                         0,
934:                         0,
935:                         0,
936:                         0,
937:                         0,
938:                         0,
939:                         0,
940:                         0,
941:                         0,
942:                         0,
943:                         0,
944:                         0,
945:                         0,
946:                         0,
947:                         239,
948:                         0,
949:                         0,
950:                         0,
951:                         0, };
952:         final static short yygindex[] =
953:                         { 0, -68, -13, 0, 0, 0, 31, -51, 245, 0, 0, -8, 0, -49, -27, };
954:         final static int YYTABLESIZE = 594;
955:         static short yytable[];
956:         static {
957:                 yytable();
958:         }
959:
960:         static void yytable() {
961:                 yytable = new short[] {
962:                                 101,
963:                                 39,
964:                                 53,
965:                                 102,
966:                                 114,
967:                                 93,
968:                                 62,
969:                                 55,
970:                                 40,
971:                                 56,
972:                                 72,
973:                                 57,
974:                                 104,
975:                                 58,
976:                                 106,
977:                                 107,
978:                                 108,
979:                                 109,
980:                                 110,
981:                                 111,
982:                                 112,
983:                                 57,
984:                                 75,
985:                                 102,
986:                                 139,
987:                                 61,
988:                                 119,
989:                                 153,
990:                                 63,
991:                                 51,
992:                                 179,
993:                                 100,
994:                                 34,
995:                                 178,
996:                                 41,
997:                                 133,
998:                                 73,
999:                                 74,
1000:                                 75,
1001:                                 113,
1002:                                 151,
1003:                                 42,
1004:                                 39,
1005:                                 64,
1006:                                 43,
1007:                                 39,
1008:                                 44,
1009:                                 40,
1010:                                 45,
1011:                                 121,
1012:                                 122,
1013:                                 123,
1014:                                 124,
1015:                                 125,
1016:                                 154,
1017:                                 76,
1018:                                 77,
1019:                                 78,
1020:                                 79,
1021:                                 80,
1022:                                 34,
1023:                                 46,
1024:                                 43,
1025:                                 43,
1026:                                 34,
1027:                                 115,
1028:                                 116,
1029:                                 48,
1030:                                 49,
1031:                                 43,
1032:                                 43,
1033:                                 43,
1034:                                 43,
1035:                                 43,
1036:                                 43,
1037:                                 146,
1038:                                 47,
1039:                                 84,
1040:                                 85,
1041:                                 164,
1042:                                 43,
1043:                                 22,
1044:                                 23,
1045:                                 59,
1046:                                 165,
1047:                                 60,
1048:                                 166,
1049:                                 50,
1050:                                 40,
1051:                                 97,
1052:                                 98,
1053:                                 99,
1054:                                 52,
1055:                                 43,
1056:                                 39,
1057:                                 65,
1058:                                 66,
1059:                                 67,
1060:                                 68,
1061:                                 69,
1062:                                 70,
1063:                                 53,
1064:                                 54,
1065:                                 61,
1066:                                 34,
1067:                                 34,
1068:                                 71,
1069:                                 120,
1070:                                 120,
1071:                                 120,
1072:                                 120,
1073:                                 120,
1074:                                 22,
1075:                                 23,
1076:                                 55,
1077:                                 96,
1078:                                 56,
1079:                                 1,
1080:                                 120,
1081:                                 177,
1082:                                 2,
1083:                                 3,
1084:                                 4,
1085:                                 5,
1086:                                 6,
1087:                                 7,
1088:                                 8,
1089:                                 9,
1090:                                 58,
1091:                                 10,
1092:                                 11,
1093:                                 12,
1094:                                 13,
1095:                                 120,
1096:                                 43,
1097:                                 91,
1098:                                 23,
1099:                                 92,
1100:                                 174,
1101:                                 45,
1102:                                 117,
1103:                                 23,
1104:                                 118,
1105:                                 22,
1106:                                 23,
1107:                                 24,
1108:                                 159,
1109:                                 160,
1110:                                 161,
1111:                                 126,
1112:                                 127,
1113:                                 53,
1114:                                 53,
1115:                                 53,
1116:                                 1,
1117:                                 59,
1118:                                 60,
1119:                                 2,
1120:                                 3,
1121:                                 4,
1122:                                 5,
1123:                                 6,
1124:                                 7,
1125:                                 8,
1126:                                 9,
1127:                                 81,
1128:                                 10,
1129:                                 11,
1130:                                 12,
1131:                                 13,
1132:                                 75,
1133:                                 82,
1134:                                 83,
1135:                                 86,
1136:                                 87,
1137:                                 175,
1138:                                 88,
1139:                                 89,
1140:                                 90,
1141:                                 17,
1142:                                 45,
1143:                                 129,
1144:                                 1,
1145:                                 94,
1146:                                 147,
1147:                                 2,
1148:                                 3,
1149:                                 4,
1150:                                 5,
1151:                                 6,
1152:                                 7,
1153:                                 8,
1154:                                 9,
1155:                                 130,
1156:                                 10,
1157:                                 11,
1158:                                 12,
1159:                                 13,
1160:                                 1,
1161:                                 10,
1162:                                 148,
1163:                                 2,
1164:                                 3,
1165:                                 4,
1166:                                 5,
1167:                                 6,
1168:                                 7,
1169:                                 8,
1170:                                 9,
1171:                                 131,
1172:                                 10,
1173:                                 11,
1174:                                 12,
1175:                                 13,
1176:                                 95,
1177:                                 105,
1178:                                 173,
1179:                                 132,
1180:                                 135,
1181:                                 18,
1182:                                 22,
1183:                                 23,
1184:                                 24,
1185:                                 25,
1186:                                 136,
1187:                                 26,
1188:                                 137,
1189:                                 138,
1190:                                 140,
1191:                                 141,
1192:                                 142,
1193:                                 143,
1194:                                 55,
1195:                                 144,
1196:                                 56,
1197:                                 145,
1198:                                 57,
1199:                                 71,
1200:                                 58,
1201:                                 19,
1202:                                 22,
1203:                                 23,
1204:                                 24,
1205:                                 63,
1206:                                 149,
1207:                                 150,
1208:                                 152,
1209:                                 158,
1210:                                 155,
1211:                                 157,
1212:                                 156,
1213:                                 167,
1214:                                 168,
1215:                                 76,
1216:                                 77,
1217:                                 78,
1218:                                 79,
1219:                                 80,
1220:                                 55,
1221:                                 55,
1222:                                 56,
1223:                                 56,
1224:                                 57,
1225:                                 57,
1226:                                 58,
1227:                                 58,
1228:                                 39,
1229:                                 39,
1230:                                 39,
1231:                                 39,
1232:                                 39,
1233:                                 39,
1234:                                 39,
1235:                                 39,
1236:                                 39,
1237:                                 39,
1238:                                 39,
1239:                                 162,
1240:                                 39,
1241:                                 39,
1242:                                 39,
1243:                                 39,
1244:                                 73,
1245:                                 74,
1246:                                 39,
1247:                                 163,
1248:                                 169,
1249:                                 39,
1250:                                 170,
1251:                                 171,
1252:                                 40,
1253:                                 39,
1254:                                 172,
1255:                                 39,
1256:                                 39,
1257:                                 39,
1258:                                 39,
1259:                                 39,
1260:                                 39,
1261:                                 39,
1262:                                 39,
1263:                                 39,
1264:                                 39,
1265:                                 39,
1266:                                 39,
1267:                                 39,
1268:                                 39,
1269:                                 176,
1270:                                 59,
1271:                                 33,
1272:                                 60,
1273:                                 39,
1274:                                 40,
1275:                                 40,
1276:                                 40,
1277:                                 40,
1278:                                 40,
1279:                                 40,
1280:                                 40,
1281:                                 40,
1282:                                 40,
1283:                                 40,
1284:                                 40,
1285:                                 181,
1286:                                 40,
1287:                                 40,
1288:                                 40,
1289:                                 40,
1290:                                 61,
1291:                                 180,
1292:                                 40,
1293:                                 1,
1294:                                 134,
1295:                                 40,
1296:                                 59,
1297:                                 59,
1298:                                 60,
1299:                                 60,
1300:                                 0,
1301:                                 40,
1302:                                 40,
1303:                                 40,
1304:                                 40,
1305:                                 40,
1306:                                 40,
1307:                                 40,
1308:                                 40,
1309:                                 40,
1310:                                 40,
1311:                                 40,
1312:                                 40,
1313:                                 40,
1314:                                 0,
1315:                                 0,
1316:                                 61,
1317:                                 61,
1318:                                 0,
1319:                                 40,
1320:                                 43,
1321:                                 43,
1322:                                 43,
1323:                                 43,
1324:                                 43,
1325:                                 43,
1326:                                 43,
1327:                                 43,
1328:                                 43,
1329:                                 43,
1330:                                 43,
1331:                                 0,
1332:                                 43,
1333:                                 43,
1334:                                 43,
1335:                                 43,
1336:                                 0,
1337:                                 0,
1338:                                 43,
1339:                                 0,
1340:                                 0,
1341:                                 43,
1342:                                 0,
1343:                                 0,
1344:                                 0,
1345:                                 0,
1346:                                 0,
1347:                                 43,
1348:                                 43,
1349:                                 0,
1350:                                 0,
1351:                                 0,
1352:                                 0,
1353:                                 0,
1354:                                 43,
1355:                                 43,
1356:                                 43,
1357:                                 43,
1358:                                 43,
1359:                                 43,
1360:                                 0,
1361:                                 0,
1362:                                 0,
1363:                                 0,
1364:                                 0,
1365:                                 43,
1366:                                 45,
1367:                                 45,
1368:                                 45,
1369:                                 45,
1370:                                 45,
1371:                                 45,
1372:                                 45,
1373:                                 45,
1374:                                 45,
1375:                                 45,
1376:                                 45,
1377:                                 0,
1378:                                 45,
1379:                                 45,
1380:                                 45,
1381:                                 45,
1382:                                 0,
1383:                                 0,
1384:                                 45,
1385:                                 0,
1386:                                 0,
1387:                                 45,
1388:                                 0,
1389:                                 0,
1390:                                 0,
1391:                                 0,
1392:                                 0,
1393:                                 45,
1394:                                 45,
1395:                                 0,
1396:                                 0,
1397:                                 0,
1398:                                 0,
1399:                                 0,
1400:                                 45,
1401:                                 45,
1402:                                 45,
1403:                                 45,
1404:                                 45,
1405:                                 45,
1406:                                 17,
1407:                                 0,
1408:                                 17,
1409:                                 17,
1410:                                 17,
1411:                                 17,
1412:                                 17,
1413:                                 17,
1414:                                 17,
1415:                                 17,
1416:                                 17,
1417:                                 0,
1418:                                 17,
1419:                                 17,
1420:                                 17,
1421:                                 17,
1422:                                 0,
1423:                                 0,
1424:                                 17,
1425:                                 0,
1426:                                 10,
1427:                                 17,
1428:                                 10,
1429:                                 10,
1430:                                 10,
1431:                                 10,
1432:                                 10,
1433:                                 10,
1434:                                 10,
1435:                                 10,
1436:                                 10,
1437:                                 0,
1438:                                 10,
1439:                                 10,
1440:                                 10,
1441:                                 10,
1442:                                 0,
1443:                                 0,
1444:                                 10,
1445:                                 0,
1446:                                 18,
1447:                                 10,
1448:                                 18,
1449:                                 18,
1450:                                 18,
1451:                                 18,
1452:                                 18,
1453:                                 18,
1454:                                 18,
1455:                                 18,
1456:                                 18,
1457:                                 0,
1458:                                 18,
1459:                                 18,
1460:                                 18,
1461:                                 18,
1462:                                 0,
1463:                                 0,
1464:                                 18,
1465:                                 0,
1466:                                 19,
1467:                                 18,
1468:                                 19,
1469:                                 19,
1470:                                 19,
1471:                                 19,
1472:                                 19,
1473:                                 19,
1474:                                 19,
1475:                                 19,
1476:                                 19,
1477:                                 40,
1478:                                 19,
1479:                                 19,
1480:                                 19,
1481:                                 19,
1482:                                 0,
1483:                                 0,
1484:                                 19,
1485:                                 0,
1486:                                 0,
1487:                                 19,
1488:                                 22,
1489:                                 23,
1490:                                 24,
1491:                                 25,
1492:                                 0,
1493:                                 26,
1494:                                 0,
1495:                                 0,
1496:                                 0,
1497:                                 0,
1498:                                 0,
1499:                                 0,
1500:                                 0,
1501:                                 0,
1502:                                 0,
1503:                                 40,
1504:                                 40,
1505:                                 40,
1506:                                 40,
1507:                                 40,
1508:                                 40,
1509:                                 40,
1510:                                 40,
1511:                                 40,
1512:                                 40,
1513:                                 40,
1514:                                 40,
1515:                                 40,
1516:                                 0,
1517:                                 0,
1518:                                 0,
1519:                                 27,
1520:                                 28,
1521:                                 40,
1522:                                 0,
1523:                                 0,
1524:                                 0,
1525:                                 0,
1526:                                 0,
1527:                                 0,
1528:                                 0,
1529:                                 0,
1530:                                 0,
1531:                                 0,
1532:                                 0,
1533:                                 0,
1534:                                 0,
1535:                                 0,
1536:                                 0,
1537:                                 29,
1538:                                 30,
1539:                                 31,
1540:                                 32,
1541:                                 1,
1542:                                 0,
1543:                                 0,
1544:                                 2,
1545:                                 3,
1546:                                 4,
1547:                                 5,
1548:                                 6,
1549:                                 7,
1550:                                 8,
1551:                                 9,
1552:                                 0,
1553:                                 10,
1554:                                 11,
1555:                                 12,
1556:                                 13, };
1557:         }
1558:
1559:         static short yycheck[];
1560:         static {
1561:                 yycheck();
1562:         }
1563:
1564:         static void yycheck() {
1565:                 yycheck = new short[] {
1566:                                 41,
1567:                                 0,
1568:                                 15,
1569:                                 40,
1570:                                 72,
1571:                                 54,
1572:                                 33,
1573:                                 41,
1574:                                 257,
1575:                                 41,
1576:                                 266,
1577:                                 41,
1578:                                 63,
1579:                                 41,
1580:                                 65,
1581:                                 66,
1582:                                 67,
1583:                                 68,
1584:                                 69,
1585:                                 70,
1586:                                 257,
1587:                                 29,
1588:                                 91,
1589:                                 40,
1590:                                 93,
1591:                                 33,
1592:                                 75,
1593:                                 258,
1594:                                 290,
1595:                                 257,
1596:                                 41,
1597:                                 41,
1598:                                 1,
1599:                                 44,
1600:                                 260,
1601:                                 86,
1602:                                 292,
1603:                                 293,
1604:                                 91,
1605:                                 276,
1606:                                 93,
1607:                                 260,
1608:                                 41,
1609:                                 305,
1610:                                 260,
1611:                                 44,
1612:                                 40,
1613:                                 0,
1614:                                 40,
1615:                                 76,
1616:                                 77,
1617:                                 78,
1618:                                 79,
1619:                                 80,
1620:                                 285,
1621:                                 294,
1622:                                 295,
1623:                                 296,
1624:                                 297,
1625:                                 298,
1626:                                 29,
1627:                                 40,
1628:                                 292,
1629:                                 293,
1630:                                 33,
1631:                                 73,
1632:                                 74,
1633:                                 257,
1634:                                 258,
1635:                                 299,
1636:                                 300,
1637:                                 301,
1638:                                 302,
1639:                                 303,
1640:                                 304,
1641:                                 102,
1642:                                 40,
1643:                                 46,
1644:                                 47,
1645:                                 147,
1646:                                 310,
1647:                                 257,
1648:                                 258,
1649:                                 41,
1650:                                 152,
1651:                                 41,
1652:                                 154,
1653:                                 260,
1654:                                 41,
1655:                                 58,
1656:                                 59,
1657:                                 60,
1658:                                 287,
1659:                                 0,
1660:                                 93,
1661:                                 299,
1662:                                 300,
1663:                                 301,
1664:                                 302,
1665:                                 303,
1666:                                 304,
1667:                                 114,
1668:                                 91,
1669:                                 41,
1670:                                 73,
1671:                                 74,
1672:                                 310,
1673:                                 76,
1674:                                 77,
1675:                                 78,
1676:                                 79,
1677:                                 80,
1678:                                 257,
1679:                                 258,
1680:                                 40,
1681:                                 260,
1682:                                 40,
1683:                                 265,
1684:                                 87,
1685:                                 170,
1686:                                 268,
1687:                                 269,
1688:                                 270,
1689:                                 271,
1690:                                 272,
1691:                                 273,
1692:                                 274,
1693:                                 275,
1694:                                 40,
1695:                                 277,
1696:                                 278,
1697:                                 279,
1698:                                 280,
1699:                                 102,
1700:                                 41,
1701:                                 257,
1702:                                 258,
1703:                                 259,
1704:                                 286,
1705:                                 0,
1706:                                 257,
1707:                                 258,
1708:                                 259,
1709:                                 257,
1710:                                 258,
1711:                                 259,
1712:                                 262,
1713:                                 263,
1714:                                 264,
1715:                                 257,
1716:                                 258,
1717:                                 164,
1718:                                 165,
1719:                                 166,
1720:                                 265,
1721:                                 40,
1722:                                 40,
1723:                                 268,
1724:                                 269,
1725:                                 270,
1726:                                 271,
1727:                                 272,
1728:                                 273,
1729:                                 274,
1730:                                 275,
1731:                                 284,
1732:                                 277,
1733:                                 278,
1734:                                 279,
1735:                                 280,
1736:                                 91,
1737:                                 260,
1738:                                 260,
1739:                                 291,
1740:                                 91,
1741:                                 286,
1742:                                 260,
1743:                                 281,
1744:                                 257,
1745:                                 0,
1746:                                 41,
1747:                                 44,
1748:                                 265,
1749:                                 260,
1750:                                 267,
1751:                                 268,
1752:                                 269,
1753:                                 270,
1754:                                 271,
1755:                                 272,
1756:                                 273,
1757:                                 274,
1758:                                 275,
1759:                                 44,
1760:                                 277,
1761:                                 278,
1762:                                 279,
1763:                                 280,
1764:                                 265,
1765:                                 0,
1766:                                 283,
1767:                                 268,
1768:                                 269,
1769:                                 270,
1770:                                 271,
1771:                                 272,
1772:                                 273,
1773:                                 274,
1774:                                 275,
1775:                                 41,
1776:                                 277,
1777:                                 278,
1778:                                 279,
1779:                                 280,
1780:                                 260,
1781:                                 260,
1782:                                 283,
1783:                                 44,
1784:                                 262,
1785:                                 0,
1786:                                 257,
1787:                                 258,
1788:                                 259,
1789:                                 260,
1790:                                 281,
1791:                                 262,
1792:                                 93,
1793:                                 93,
1794:                                 44,
1795:                                 44,
1796:                                 41,
1797:                                 41,
1798:                                 266,
1799:                                 41,
1800:                                 266,
1801:                                 41,
1802:                                 266,
1803:                                 310,
1804:                                 266,
1805:                                 0,
1806:                                 257,
1807:                                 258,
1808:                                 259,
1809:                                 290,
1810:                                 93,
1811:                                 93,
1812:                                 285,
1813:                                 93,
1814:                                 260,
1815:                                 258,
1816:                                 257,
1817:                                 41,
1818:                                 41,
1819:                                 294,
1820:                                 295,
1821:                                 296,
1822:                                 297,
1823:                                 298,
1824:                                 292,
1825:                                 293,
1826:                                 292,
1827:                                 293,
1828:                                 292,
1829:                                 293,
1830:                                 292,
1831:                                 293,
1832:                                 265,
1833:                                 266,
1834:                                 267,
1835:                                 268,
1836:                                 269,
1837:                                 270,
1838:                                 271,
1839:                                 272,
1840:                                 273,
1841:                                 274,
1842:                                 275,
1843:                                 260,
1844:                                 277,
1845:                                 278,
1846:                                 279,
1847:                                 280,
1848:                                 292,
1849:                                 293,
1850:                                 283,
1851:                                 260,
1852:                                 44,
1853:                                 286,
1854:                                 291,
1855:                                 41,
1856:                                 41,
1857:                                 290,
1858:                                 41,
1859:                                 292,
1860:                                 293,
1861:                                 294,
1862:                                 295,
1863:                                 296,
1864:                                 297,
1865:                                 298,
1866:                                 299,
1867:                                 300,
1868:                                 301,
1869:                                 302,
1870:                                 303,
1871:                                 304,
1872:                                 305,
1873:                                 261,
1874:                                 266,
1875:                                 40,
1876:                                 266,
1877:                                 310,
1878:                                 265,
1879:                                 266,
1880:                                 267,
1881:                                 268,
1882:                                 269,
1883:                                 270,
1884:                                 271,
1885:                                 272,
1886:                                 273,
1887:                                 274,
1888:                                 275,
1889:                                 41,
1890:                                 277,
1891:                                 278,
1892:                                 279,
1893:                                 280,
1894:                                 266,
1895:                                 276,
1896:                                 283,
1897:                                 0,
1898:                                 87,
1899:                                 286,
1900:                                 292,
1901:                                 293,
1902:                                 292,
1903:                                 293,
1904:                                 -1,
1905:                                 292,
1906:                                 293,
1907:                                 294,
1908:                                 295,
1909:                                 296,
1910:                                 297,
1911:                                 298,
1912:                                 299,
1913:                                 300,
1914:                                 301,
1915:                                 302,
1916:                                 303,
1917:                                 304,
1918:                                 -1,
1919:                                 -1,
1920:                                 292,
1921:                                 293,
1922:                                 -1,
1923:                                 310,
1924:                                 265,
1925:                                 266,
1926:                                 267,
1927:                                 268,
1928:                                 269,
1929:                                 270,
1930:                                 271,
1931:                                 272,
1932:                                 273,
1933:                                 274,
1934:                                 275,
1935:                                 -1,
1936:                                 277,
1937:                                 278,
1938:                                 279,
1939:                                 280,
1940:                                 -1,
1941:                                 -1,
1942:                                 283,
1943:                                 -1,
1944:                                 -1,
1945:                                 286,
1946:                                 -1,
1947:                                 -1,
1948:                                 -1,
1949:                                 -1,
1950:                                 -1,
1951:                                 292,
1952:                                 293,
1953:                                 -1,
1954:                                 -1,
1955:                                 -1,
1956:                                 -1,
1957:                                 -1,
1958:                                 299,
1959:                                 300,
1960:                                 301,
1961:                                 302,
1962:                                 303,
1963:                                 304,
1964:                                 -1,
1965:                                 -1,
1966:                                 -1,
1967:                                 -1,
1968:                                 -1,
1969:                                 310,
1970:                                 265,
1971:                                 266,
1972:                                 267,
1973:                                 268,
1974:                                 269,
1975:                                 270,
1976:                                 271,
1977:                                 272,
1978:                                 273,
1979:                                 274,
1980:                                 275,
1981:                                 -1,
1982:                                 277,
1983:                                 278,
1984:                                 279,
1985:                                 280,
1986:                                 -1,
1987:                                 -1,
1988:                                 283,
1989:                                 -1,
1990:                                 -1,
1991:                                 286,
1992:                                 -1,
1993:                                 -1,
1994:                                 -1,
1995:                                 -1,
1996:                                 -1,
1997:                                 292,
1998:                                 293,
1999:                                 -1,
2000:                                 -1,
2001:                                 -1,
2002:                                 -1,
2003:                                 -1,
2004:                                 299,
2005:                                 300,
2006:                                 301,
2007:                                 302,
2008:                                 303,
2009:                                 304,
2010:                                 265,
2011:                                 -1,
2012:                                 267,
2013:                                 268,
2014:                                 269,
2015:                                 270,
2016:                                 271,
2017:                                 272,
2018:                                 273,
2019:                                 274,
2020:                                 275,
2021:                                 -1,
2022:                                 277,
2023:                                 278,
2024:                                 279,
2025:                                 280,
2026:                                 -1,
2027:                                 -1,
2028:                                 283,
2029:                                 -1,
2030:                                 265,
2031:                                 286,
2032:                                 267,
2033:                                 268,
2034:                                 269,
2035:                                 270,
2036:                                 271,
2037:                                 272,
2038:                                 273,
2039:                                 274,
2040:                                 275,
2041:                                 -1,
2042:                                 277,
2043:                                 278,
2044:                                 279,
2045:                                 280,
2046:                                 -1,
2047:                                 -1,
2048:                                 283,
2049:                                 -1,
2050:                                 265,
2051:                                 286,
2052:                                 267,
2053:                                 268,
2054:                                 269,
2055:                                 270,
2056:                                 271,
2057:                                 272,
2058:                                 273,
2059:                                 274,
2060:                                 275,
2061:                                 -1,
2062:                                 277,
2063:                                 278,
2064:                                 279,
2065:                                 280,
2066:                                 -1,
2067:                                 -1,
2068:                                 283,
2069:                                 -1,
2070:                                 265,
2071:                                 286,
2072:                                 267,
2073:                                 268,
2074:                                 269,
2075:                                 270,
2076:                                 271,
2077:                                 272,
2078:                                 273,
2079:                                 274,
2080:                                 275,
2081:                                 266,
2082:                                 277,
2083:                                 278,
2084:                                 279,
2085:                                 280,
2086:                                 -1,
2087:                                 -1,
2088:                                 283,
2089:                                 -1,
2090:                                 -1,
2091:                                 286,
2092:                                 257,
2093:                                 258,
2094:                                 259,
2095:                                 260,
2096:                                 -1,
2097:                                 262,
2098:                                 -1,
2099:                                 -1,
2100:                                 -1,
2101:                                 -1,
2102:                                 -1,
2103:                                 -1,
2104:                                 -1,
2105:                                 -1,
2106:                                 -1,
2107:                                 292,
2108:                                 293,
2109:                                 294,
2110:                                 295,
2111:                                 296,
2112:                                 297,
2113:                                 298,
2114:                                 299,
2115:                                 300,
2116:                                 301,
2117:                                 302,
2118:                                 303,
2119:                                 304,
2120:                                 -1,
2121:                                 -1,
2122:                                 -1,
2123:                                 288,
2124:                                 289,
2125:                                 310,
2126:                                 -1,
2127:                                 -1,
2128:                                 -1,
2129:                                 -1,
2130:                                 -1,
2131:                                 -1,
2132:                                 -1,
2133:                                 -1,
2134:                                 -1,
2135:                                 -1,
2136:                                 -1,
2137:                                 -1,
2138:                                 -1,
2139:                                 -1,
2140:                                 -1,
2141:                                 306,
2142:                                 307,
2143:                                 308,
2144:                                 309,
2145:                                 265,
2146:                                 -1,
2147:                                 -1,
2148:                                 268,
2149:                                 269,
2150:                                 270,
2151:                                 271,
2152:                                 272,
2153:                                 273,
2154:                                 274,
2155:                                 275,
2156:                                 -1,
2157:                                 277,
2158:                                 278,
2159:                                 279,
2160:                                 280, };
2161:         }
2162:
2163:         final static short YYFINAL = 14;
2164:         final static short YYMAXTOKEN = 310;
2165:         final static String yyname[] = {
2166:                         "end-of-file",
2167:                         null,
2168:                         null,
2169:                         null,
2170:                         null,
2171:                         null,
2172:                         null,
2173:                         null,
2174:                         null,
2175:                         null,
2176:                         null,
2177:                         null,
2178:                         null,
2179:                         null,
2180:                         null,
2181:                         null,
2182:                         null,
2183:                         null,
2184:                         null,
2185:                         null,
2186:                         null,
2187:                         null,
2188:                         null,
2189:                         null,
2190:                         null,
2191:                         null,
2192:                         null,
2193:                         null,
2194:                         null,
2195:                         null,
2196:                         null,
2197:                         null,
2198:                         null,
2199:                         null,
2200:                         null,
2201:                         null,
2202:                         null,
2203:                         null,
2204:                         null,
2205:                         null,
2206:                         "'('",
2207:                         "')'",
2208:                         null,
2209:                         null,
2210:                         "','",
2211:                         null,
2212:                         null,
2213:                         null,
2214:                         null,
2215:                         null,
2216:                         null,
2217:                         null,
2218:                         null,
2219:                         null,
2220:                         null,
2221:                         null,
2222:                         null,
2223:                         null,
2224:                         null,
2225:                         null,
2226:                         null,
2227:                         null,
2228:                         null,
2229:                         null,
2230:                         null,
2231:                         null,
2232:                         null,
2233:                         null,
2234:                         null,
2235:                         null,
2236:                         null,
2237:                         null,
2238:                         null,
2239:                         null,
2240:                         null,
2241:                         null,
2242:                         null,
2243:                         null,
2244:                         null,
2245:                         null,
2246:                         null,
2247:                         null,
2248:                         null,
2249:                         null,
2250:                         null,
2251:                         null,
2252:                         null,
2253:                         null,
2254:                         null,
2255:                         null,
2256:                         null,
2257:                         "'['",
2258:                         null,
2259:                         "']'",
2260:                         null,
2261:                         null,
2262:                         null,
2263:                         null,
2264:                         null,
2265:                         null,
2266:                         null,
2267:                         null,
2268:                         null,
2269:                         null,
2270:                         null,
2271:                         null,
2272:                         null,
2273:                         null,
2274:                         null,
2275:                         null,
2276:                         null,
2277:                         null,
2278:                         null,
2279:                         null,
2280:                         null,
2281:                         null,
2282:                         null,
2283:                         null,
2284:                         null,
2285:                         null,
2286:                         null,
2287:                         null,
2288:                         null,
2289:                         null,
2290:                         null,
2291:                         null,
2292:                         null,
2293:                         null,
2294:                         null,
2295:                         null,
2296:                         null,
2297:                         null,
2298:                         null,
2299:                         null,
2300:                         null,
2301:                         null,
2302:                         null,
2303:                         null,
2304:                         null,
2305:                         null,
2306:                         null,
2307:                         null,
2308:                         null,
2309:                         null,
2310:                         null,
2311:                         null,
2312:                         null,
2313:                         null,
2314:                         null,
2315:                         null,
2316:                         null,
2317:                         null,
2318:                         null,
2319:                         null,
2320:                         null,
2321:                         null,
2322:                         null,
2323:                         null,
2324:                         null,
2325:                         null,
2326:                         null,
2327:                         null,
2328:                         null,
2329:                         null,
2330:                         null,
2331:                         null,
2332:                         null,
2333:                         null,
2334:                         null,
2335:                         null,
2336:                         null,
2337:                         null,
2338:                         null,
2339:                         null,
2340:                         null,
2341:                         null,
2342:                         null,
2343:                         null,
2344:                         null,
2345:                         null,
2346:                         null,
2347:                         null,
2348:                         null,
2349:                         null,
2350:                         null,
2351:                         null,
2352:                         null,
2353:                         null,
2354:                         null,
2355:                         null,
2356:                         null,
2357:                         null,
2358:                         null,
2359:                         null,
2360:                         null,
2361:                         null,
2362:                         null,
2363:                         null,
2364:                         null,
2365:                         null,
2366:                         null,
2367:                         null,
2368:                         null,
2369:                         null,
2370:                         null,
2371:                         null,
2372:                         null,
2373:                         null,
2374:                         null,
2375:                         null,
2376:                         null,
2377:                         null,
2378:                         null,
2379:                         null,
2380:                         null,
2381:                         null,
2382:                         null,
2383:                         null,
2384:                         null,
2385:                         null,
2386:                         null,
2387:                         null,
2388:                         null,
2389:                         null,
2390:                         null,
2391:                         null,
2392:                         null,
2393:                         null,
2394:                         null,
2395:                         null,
2396:                         null,
2397:                         null,
2398:                         null,
2399:                         null,
2400:                         null,
2401:                         null,
2402:                         null,
2403:                         null,
2404:                         null,
2405:                         null,
2406:                         null,
2407:                         null,
2408:                         null,
2409:                         null,
2410:                         null,
2411:                         null,
2412:                         null,
2413:                         null,
2414:                         null,
2415:                         null,
2416:                         null,
2417:                         null,
2418:                         null,
2419:                         null,
2420:                         null,
2421:                         null,
2422:                         null,
2423:                         "ID",
2424:                         "IDSET",
2425:                         "NUM",
2426:                         "STRING",
2427:                         "CHAR",
2428:                         "VER",
2429:                         "MAJOR_VER",
2430:                         "VER_EXPR",
2431:                         "IF",
2432:                         "THEN",
2433:                         "ELSE",
2434:                         "FOREACH",
2435:                         "WARNING",
2436:                         "ERROR",
2437:                         "FATAL_ERROR",
2438:                         "FGREP",
2439:                         "STAT",
2440:                         "CRYPT",
2441:                         "SPLIT",
2442:                         "NUMERIC",
2443:                         "SET",
2444:                         "ADD_TO_OPT",
2445:                         "PROVIDES",
2446:                         "DEPENDS",
2447:                         "VERSION",
2448:                         "UNKNOWN",
2449:                         "FI",
2450:                         "IN",
2451:                         "DO",
2452:                         "DONE",
2453:                         "ON",
2454:                         "SAMENET",
2455:                         "SUBNET",
2456:                         "ORELSE",
2457:                         "ASSIGN",
2458:                         "AND",
2459:                         "OR",
2460:                         "ADD",
2461:                         "SUB",
2462:                         "MULT",
2463:                         "DIV",
2464:                         "MOD",
2465:                         "EQUAL",
2466:                         "NOT_EQUAL",
2467:                         "LESS",
2468:                         "GREATER",
2469:                         "LE",
2470:                         "GE",
2471:                         "MATCH",
2472:                         "NOT",
2473:                         "COPY_PENDING",
2474:                         "DEFINED",
2475:                         "UNIQUE",
2476:                         "CAST", };
2477:         final static String yyrule[] = {
2478:                         "$accept : lang",
2479:                         "lang : input",
2480:                         "input : line",
2481:                         "input : input line",
2482:                         "line : statement",
2483:                         "line : if_statement",
2484:                         "line : foreach_statement",
2485:                         "statement : WARNING STRING",
2486:                         "statement : ERROR STRING",
2487:                         "statement : FATAL_ERROR STRING",
2488:                         "statement : ADD_TO_OPT STRING",
2489:                         "statement : ADD_TO_OPT STRING STRING",
2490:                         "statement : FGREP '(' STRING ',' STRING ')'",
2491:                         "statement : STAT '(' STRING ',' ID ')'",
2492:                         "statement : CRYPT '(' id ')'",
2493:                         "statement : SPLIT '(' id ',' IDSET ',' CHAR ')'",
2494:                         "statement : SPLIT '(' id ',' IDSET ',' CHAR ',' NUMERIC ')'",
2495:                         "statement : SET ID",
2496:                         "statement : SET ID ASSIGN val",
2497:                         "statement : SET IDSET '[' index ']' ASSIGN val",
2498:                         "statement : depend",
2499:                         "statement : provides",
2500:                         "depend : DEPENDS ON ID VERSION MAJOR_VER",
2501:                         "depend : DEPENDS ON ID VERSION VER",
2502:                         "depend : DEPENDS ON ID VERSION VER_EXPR",
2503:                         "provides : PROVIDES ID VERSION VER",
2504:                         "if_statement : IF condition THEN input FI",
2505:                         "if_statement : IF condition THEN input ELSE input FI",
2506:                         "foreach_statement : FOREACH ID IN idset_set DO input DONE",
2507:                         "foreach_statement : FOREACH ID IN ID DO input DONE",
2508:                         "idset_set : idset_set IDSET",
2509:                         "idset_set : IDSET",
2510:                         "idset : IDSET '[' ID ']'",
2511:                         "idset : IDSET '[' idset ']'",
2512:                         "idset : IDSET '[' NUM ']'",
2513:                         "idset : idset '[' ID ']'",
2514:                         "idset : idset '[' idset ']'",
2515:                         "idset : idset '[' NUM ']'",
2516:                         "id : ID",
2517:                         "id : idset",
2518:                         "index : id",
2519:                         "index : NUM",
2520:                         "val : VER",
2521:                         "val : num_expr",
2522:                         "val : STRING",
2523:                         "val : id ORELSE val",
2524:                         "val : val CAST ID",
2525:                         "val : val CAST NUMERIC",
2526:                         "num_expr : index",
2527:                         "num_expr : '(' num_expr ')'",
2528:                         "num_expr : num_expr ADD num_expr",
2529:                         "num_expr : num_expr MULT num_expr",
2530:                         "num_expr : num_expr SUB num_expr",
2531:                         "num_expr : num_expr DIV num_expr",
2532:                         "num_expr : num_expr MOD num_expr",
2533:                         "condition : val",
2534:                         "condition : val EQUAL val",
2535:                         "condition : val NOT_EQUAL val",
2536:                         "condition : val LESS val",
2537:                         "condition : val GREATER val",
2538:                         "condition : val LE val",
2539:                         "condition : val GE val",
2540:                         "condition : id MATCH STRING",
2541:                         "condition : NOT condition",
2542:                         "condition : COPY_PENDING '(' id ')'",
2543:                         "condition : COPY_PENDING '(' STRING ')'",
2544:                         "condition : UNIQUE '(' id ')'",
2545:                         "condition : SAMENET '(' STRING ',' STRING ')'",
2546:                         "condition : SUBNET '(' STRING ',' STRING ')'",
2547:                         "condition : DEFINED '(' id ')'",
2548:                         "condition : condition AND condition",
2549:                         "condition : condition OR condition",
2550:                         "condition : '(' condition ')'", };
2551:
2552:         // #line 152 "extParser.y"
2553:         /* a reference to the lexer object */
2554:         private ExtScanner lexer;
2555:         private AbstractNode myTree;
2556:
2557:         /* interface to the lexer */
2558:         private int yylex() {
2559:                 int yyl_return = -1;
2560:                 try {
2561:                         yyl_return = lexer.next_token();
2562:                 } catch (IOException e) {
2563:                         System.err.println("IO error :" + e);
2564:                 }
2565:                 return yyl_return;
2566:         }
2567:
2568:         /* error reporting */
2569:         public void yyerror(String error) {
2570:                 System.err.println("Error: " + error);
2571:         }
2572:
2573:         /* lexer is created in the constructor */
2574:         public ExtParser(Reader r) {
2575:                 lexer = new ExtScanner(r, this);
2576:         }
2577:
2578:         public AbstractNode getMyTree() {
2579:                 return this.myTree;
2580:         }
2581:
2582:         // #line 504 "ExtParser.java"
2583:         // ###############################################################
2584:         // method: yylexdebug : check lexer state
2585:         // ###############################################################
2586:         void yylexdebug(int state, int ch) {
2587:                 String s = null;
2588:•                if (ch < 0)
2589:                         ch = 0;
2590:•                if (ch <= YYMAXTOKEN) // check index bounds
2591:                         s = yyname[ch]; // now get it
2592:•                if (s == null)
2593:                         s = "illegal-symbol";
2594:                 debug("state " + state + ", reading " + ch + " (" + s + ")");
2595:         }
2596:
2597:         // The following are now global, to aid in error reporting
2598:         int yyn; // next next thing to do
2599:         int yym; //
2600:         int yystate; // current parsing state from state table
2601:         String yys; // current token string
2602:
2603:         // ###############################################################
2604:         // method: yyparse : parse input and execute indicated items
2605:         // ###############################################################
2606:         public int yyparse() {
2607:                 boolean doaction;
2608:                 init_stacks();
2609:                 yynerrs = 0;
2610:                 yyerrflag = 0;
2611:                 yychar = -1; // impossible char forces a read
2612:                 yystate = 0; // initial state
2613:                 state_push(yystate); // save it
2614:                 val_push(yylval); // save empty value
2615:                 while (true) // until parsing is done, either correctly, or w/error
2616:                 {
2617:                         doaction = true;
2618:•                        if (yydebug)
2619:                                 debug("loop");
2620:                         // #### NEXT ACTION (from reduction table)
2621:•                        for (yyn = yydefred[yystate]; yyn == 0; yyn = yydefred[yystate]) {
2622:•                                if (yydebug)
2623:                                         debug("yyn:" + yyn + " state:" + yystate + " yychar:" + yychar);
2624:•                                if (yychar < 0) // we want a char?
2625:                                 {
2626:                                         yychar = yylex(); // get next token
2627:•                                        if (yydebug)
2628:                                                 debug(" next yychar:" + yychar);
2629:                                         // #### ERROR CHECK ####
2630:•                                        if (yychar < 0) // it it didn't work/error
2631:                                         {
2632:                                                 yychar = 0; // change it to default string (no -1!)
2633:•                                                if (yydebug)
2634:                                                         yylexdebug(yystate, yychar);
2635:                                         }
2636:                                 } // yychar<0
2637:                                 yyn = yysindex[yystate]; // get amount to shift by (shift index)
2638:•                                if ((yyn != 0) && (yyn += yychar) >= 0 && yyn <= YYTABLESIZE
2639:                                                 && yycheck[yyn] == yychar) {
2640:•                                        if (yydebug)
2641:                                                 debug("state " + yystate + ", shifting to state " + yytable[yyn]);
2642:                                         // #### NEXT STATE ####
2643:                                         yystate = yytable[yyn];// we are in a new state
2644:                                         state_push(yystate); // save it
2645:                                         val_push(yylval); // push our lval as the input for next rule
2646:                                         yychar = -1; // since we have 'eaten' a token, say we need another
2647:•                                        if (yyerrflag > 0) // have we recovered an error?
2648:                                                 --yyerrflag; // give ourselves credit
2649:                                         doaction = false; // but don't process yet
2650:                                         break; // quit the yyn=0 loop
2651:                                 }
2652:
2653:                                 yyn = yyrindex[yystate]; // reduce
2654:•                                if ((yyn != 0) && (yyn += yychar) >= 0 && yyn <= YYTABLESIZE
2655:                                                 && yycheck[yyn] == yychar) { // we reduced!
2656:•                                        if (yydebug)
2657:                                                 debug("reduce");
2658:                                         yyn = yytable[yyn];
2659:                                         doaction = true; // get ready to execute
2660:                                         break; // drop down to actions
2661:                                 } else // ERROR RECOVERY
2662:                                 {
2663:•                                        if (yyerrflag == 0) {
2664:                                                 yyerror("syntax error");
2665:                                                 yynerrs++;
2666:                                         }
2667:•                                        if (yyerrflag < 3) // low error count?
2668:                                         {
2669:                                                 yyerrflag = 3;
2670:                                                 while (true) // do until break
2671:                                                 {
2672:•                                                        if (stateptr < 0) // check for under & overflow here
2673:                                                         {
2674:                                                                 yyerror("stack underflow. aborting..."); // note lower case 's'
2675:                                                                 return 1;
2676:                                                         }
2677:                                                         yyn = yysindex[state_peek(0)];
2678:•                                                        if ((yyn != 0) && (yyn += YYERRCODE) >= 0 && yyn <= YYTABLESIZE
2679:                                                                         && yycheck[yyn] == YYERRCODE) {
2680:•                                                                if (yydebug)
2681:                                                                         debug("state " + state_peek(0)
2682:                                                                                         + ", error recovery shifting to state " + yytable[yyn]
2683:                                                                                         + " ");
2684:                                                                 yystate = yytable[yyn];
2685:                                                                 state_push(yystate);
2686:                                                                 val_push(yylval);
2687:                                                                 doaction = false;
2688:                                                                 break;
2689:                                                         } else {
2690:•                                                                if (yydebug)
2691:                                                                         debug("error recovery discarding state " + state_peek(0)
2692:                                                                                         + " ");
2693:•                                                                if (stateptr < 0) // check for under & overflow here
2694:                                                                 {
2695:                                                                         yyerror("Stack underflow. aborting..."); // capital 'S'
2696:                                                                         return 1;
2697:                                                                 }
2698:                                                                 state_pop();
2699:                                                                 val_pop();
2700:                                                         }
2701:                                                 }
2702:                                         } else // discard this token
2703:                                         {
2704:•                                                if (yychar == 0)
2705:                                                         return 1; // yyabort
2706:•                                                if (yydebug) {
2707:                                                         yys = null;
2708:•                                                        if (yychar <= YYMAXTOKEN)
2709:                                                                 yys = yyname[yychar];
2710:•                                                        if (yys == null)
2711:                                                                 yys = "illegal-symbol";
2712:                                                         debug("state " + yystate + ", error recovery discards token " + yychar
2713:                                                                         + " (" + yys + ")");
2714:                                                 }
2715:                                                 yychar = -1; // read another
2716:                                         }
2717:                                 } // end error recovery
2718:                         } // yyn=0 loop
2719:•                        if (!doaction) // any reason not to proceed?
2720:                                 continue; // skip action
2721:                         yym = yylen[yyn]; // get count of terminals on rhs
2722:•                        if (yydebug)
2723:                                 debug("state " + yystate + ", reducing " + yym + " by rule " + yyn + " ("
2724:                                                 + yyrule[yyn] + ")");
2725:•                        if (yym > 0) // if count of rhs not 'nil'
2726:                                 yyval = val_peek(yym - 1); // get current semantic value
2727:                         yyval = dup_yyval(yyval); // duplicate yyval if ParserVal is used as semantic value
2728:•                        switch (yyn) {
2729:                         // ########## USER-SUPPLIED ACTIONS ##########
2730:                         case 1:
2731:                         // #line 50 "extParser.y"
2732:                         {
2733:                                 this.myTree = new SkriptNode((AbstractNode) val_peek(0).obj);
2734:                                 yyval = new ExtParserVal(this.myTree);
2735:                         }
2736:                                 break;
2737:                         case 2:
2738:                         // #line 52 "extParser.y"
2739:                         {
2740:                                 yyval = new ExtParserVal(
2741:                                                 new InputNode(new LineNode((AbstractNode) val_peek(0).obj)));
2742:                         }
2743:                                 break;
2744:                         case 3:
2745:                         // #line 54 "extParser.y"
2746:                         {
2747:                                 ((InputNode) val_peek(1).obj).add(new LineNode((AbstractNode) val_peek(0).obj));
2748:                                 yyval = val_peek(1);
2749:                         }
2750:                                 break;
2751:                         case 7:
2752:                         // #line 61 "extParser.y"
2753:                         {
2754:                                 yyval = new ExtParserVal(new WarningNode((AbstractNode) val_peek(0).obj));
2755:                         }
2756:                                 break;
2757:                         case 8:
2758:                         // #line 62 "extParser.y"
2759:                         {
2760:                                 yyval = new ExtParserVal(new ErrorNode((AbstractNode) val_peek(0).obj));
2761:                         }
2762:                                 break;
2763:                         case 9:
2764:                         // #line 63 "extParser.y"
2765:                         {
2766:                                 yyval = new ExtParserVal(new FatalErrorNode((AbstractNode) val_peek(0).obj));
2767:                         }
2768:                                 break;
2769:                         case 10:
2770:                         // #line 64 "extParser.y"
2771:                         {
2772:                                 yyval = new ExtParserVal(new AddToOptNode((AbstractNode) val_peek(0).obj));
2773:                         }
2774:                                 break;
2775:                         case 11:
2776:                         // #line 65 "extParser.y"
2777:                         {
2778:                                 yyval = new ExtParserVal(new AddToOptNode((AbstractNode) val_peek(1).obj,
2779:                                                 (AbstractNode) val_peek(0).obj));
2780:                         }
2781:                                 break;
2782:                         case 12:
2783:                         // #line 66 "extParser.y"
2784:                         {
2785:                                 yyval = new ExtParserVal(new FGrepNode((AbstractNode) val_peek(3).obj,
2786:                                                 (AbstractNode) val_peek(1).obj));
2787:                         }
2788:                                 break;
2789:                         case 13:
2790:                         // #line 67 "extParser.y"
2791:                         {
2792:                                 yyval = new ExtParserVal(new StatNode((AbstractNode) val_peek(3).obj,
2793:                                                 (AbstractNode) val_peek(1).obj));
2794:                         }
2795:                                 break;
2796:                         case 14:
2797:                         // #line 68 "extParser.y"
2798:                         {
2799:                                 yyval = new ExtParserVal(new CryptNode((AbstractNode) val_peek(1).obj));
2800:                         }
2801:                                 break;
2802:                         case 15:
2803:                         // #line 69 "extParser.y"
2804:                         {
2805:                                 yyval = new ExtParserVal(new SplitNode((AbstractNode) val_peek(5).obj,
2806:                                                 (AbstractNode) val_peek(3).obj, (AbstractNode) val_peek(1).obj));
2807:                         }
2808:                                 break;
2809:                         case 16:
2810:                         // #line 70 "extParser.y"
2811:                         {
2812:                                 yyval = new ExtParserVal(new SplitNode((AbstractNode) val_peek(7).obj,
2813:                                                 (AbstractNode) val_peek(5).obj, (AbstractNode) val_peek(3).obj,
2814:                                                 (AbstractNode) val_peek(1).obj));
2815:                         }
2816:                                 break;
2817:                         case 17:
2818:                         // #line 71 "extParser.y"
2819:                         {
2820:                                 yyval = new ExtParserVal(new AssignNode((AbstractNode) val_peek(0).obj));
2821:                         }
2822:                                 break;
2823:                         case 18:
2824:                         // #line 72 "extParser.y"
2825:                         {
2826:                                 yyval = new ExtParserVal(new AssignNode((AbstractNode) val_peek(2).obj,
2827:                                                 (AbstractNode) val_peek(0).obj));
2828:                         }
2829:                                 break;
2830:                         case 19:
2831:                         // #line 73 "extParser.y"
2832:                         {
2833:                                 yyval = new ExtParserVal(new AssignNode((AbstractNode) val_peek(5).obj,
2834:                                                 (AbstractNode) val_peek(3).obj, (AbstractNode) val_peek(0).obj));
2835:                         }
2836:                                 break;
2837:                         case 22:
2838:                         // #line 78 "extParser.y"
2839:                         {
2840:                                 yyval = new ExtParserVal(new DependsNode((AbstractNode) val_peek(2).obj,
2841:                                                 (AbstractNode) val_peek(0).obj));
2842:                         }
2843:                                 break;
2844:                         case 23:
2845:                         // #line 79 "extParser.y"
2846:                         {
2847:                                 yyval = new ExtParserVal(new DependsNode((AbstractNode) val_peek(2).obj,
2848:                                                 (AbstractNode) val_peek(0).obj));
2849:                         }
2850:                                 break;
2851:                         case 24:
2852:                         // #line 80 "extParser.y"
2853:                         {
2854:                                 yyval = new ExtParserVal(new DependsNode((AbstractNode) val_peek(2).obj,
2855:                                                 (AbstractNode) val_peek(0).obj));
2856:                         }
2857:                                 break;
2858:                         case 25:
2859:                         // #line 83 "extParser.y"
2860:                         {
2861:                                 yyval = new ExtParserVal(new ProvidesNode((AbstractNode) val_peek(2).obj,
2862:                                                 (AbstractNode) val_peek(0).obj));
2863:                         }
2864:                                 break;
2865:                         case 26:
2866:                         // #line 86 "extParser.y"
2867:                         {
2868:                                 yyval = new ExtParserVal(new IfNode((AbstractNode) val_peek(3).obj,
2869:                                                 (AbstractNode) val_peek(1).obj));
2870:                         }
2871:                                 break;
2872:                         case 27:
2873:                         // #line 87 "extParser.y"
2874:                         {
2875:                                 yyval = new ExtParserVal(new IfNode((AbstractNode) val_peek(5).obj,
2876:                                                 (AbstractNode) val_peek(3).obj, (AbstractNode) val_peek(1).obj));
2877:                         }
2878:                                 break;
2879:                         case 28:
2880:                         // #line 90 "extParser.y"
2881:                         {
2882:                                 yyval = new ExtParserVal(new ForEachNode((AbstractNode) val_peek(5).obj,
2883:                                                 (AbstractNode) val_peek(3).obj, (AbstractNode) val_peek(1).obj));
2884:                         }
2885:                                 break;
2886:                         case 29:
2887:                         // #line 91 "extParser.y"
2888:                         {
2889:                                 yyval = new ExtParserVal(new ForEachNode((AbstractNode) val_peek(5).obj,
2890:                                                 (AbstractNode) val_peek(3).obj, (AbstractNode) val_peek(1).obj));
2891:                         }
2892:                                 break;
2893:                         case 30:
2894:                         // #line 94 "extParser.y"
2895:                         {
2896:                                 ((IdSetArrayNode) val_peek(1).obj).add((IdSetNode) yylval.obj);
2897:                                 yyval = val_peek(1);
2898:                         }
2899:                                 break;
2900:                         case 31:
2901:                         // #line 95 "extParser.y"
2902:                         {
2903:                                 yyval = new ExtParserVal(new IdSetArrayNode((IdSetNode) yylval.obj));
2904:                         }
2905:                                 break;
2906:                         case 32:
2907:                         // #line 98 "extParser.y"
2908:                         {
2909:                                 ((IdSetNode) val_peek(3).obj).addIndex(((AbstractNode) val_peek(1).obj));
2910:                                 yyval = val_peek(3);
2911:                         }
2912:                                 break;
2913:                         case 33:
2914:                         // #line 99 "extParser.y"
2915:                         {
2916:                                 ((IdSetNode) val_peek(3).obj).addIndex(((AbstractNode) val_peek(1).obj));
2917:                                 yyval = val_peek(3);
2918:                         }
2919:                                 break;
2920:                         case 34:
2921:                         // #line 100 "extParser.y"
2922:                         {
2923:                                 ((IdSetNode) val_peek(3).obj).addIndex(((AbstractNode) val_peek(1).obj));
2924:                                 yyval = val_peek(3);
2925:                         }
2926:                                 break;
2927:                         case 35:
2928:                         // #line 101 "extParser.y"
2929:                         {
2930:                                 ((IdSetNode) val_peek(3).obj).addIndex(((AbstractNode) val_peek(1).obj));
2931:                                 yyval = val_peek(3);
2932:                         }
2933:                                 break;
2934:                         case 36:
2935:                         // #line 102 "extParser.y"
2936:                         {
2937:                                 ((IdSetNode) val_peek(3).obj).addIndex(((AbstractNode) val_peek(1).obj));
2938:                                 yyval = val_peek(3);
2939:                         }
2940:                                 break;
2941:                         case 37:
2942:                         // #line 103 "extParser.y"
2943:                         {
2944:                                 ((IdSetNode) val_peek(3).obj).addIndex(((AbstractNode) val_peek(1).obj));
2945:                                 yyval = val_peek(3);
2946:                         }
2947:                                 break;
2948:                         case 45:
2949:                         // #line 117 "extParser.y"
2950:                         {
2951:                                 yyval = new ExtParserVal(new OrElseNode((AbstractNode) val_peek(2).obj,
2952:                                                 (AbstractNode) val_peek(0).obj));
2953:                         }
2954:                                 break;
2955:                         case 46:
2956:                         // #line 118 "extParser.y"
2957:                         {
2958:                                 yyval = new ExtParserVal(
2959:                                                 new CastNode((AbstractNode) val_peek(2).obj, (IDNode) val_peek(0).obj));
2960:                         }
2961:                                 break;
2962:                         case 47:
2963:                         // #line 119 "extParser.y"
2964:                         {
2965:                                 yyval = new ExtParserVal(
2966:                                                 new CastNode((AbstractNode) val_peek(2).obj, new IDNode("NUMERIC")));
2967:                         }
2968:                                 break;
2969:                         case 49:
2970:                         // #line 123 "extParser.y"
2971:                         {
2972:                                 yyval = yylval;
2973:                         }
2974:                                 break;
2975:                         case 50:
2976:                         // #line 124 "extParser.y"
2977:                         {
2978:                                 yyval = new ExtParserVal(new AddNode((AbstractNode) val_peek(2).obj,
2979:                                                 (AbstractNode) val_peek(0).obj));
2980:                         }
2981:                                 break;
2982:                         case 51:
2983:                         // #line 125 "extParser.y"
2984:                         {
2985:                                 yyval = new ExtParserVal(new MultNode((AbstractNode) val_peek(2).obj,
2986:                                                 (AbstractNode) val_peek(0).obj));
2987:                         }
2988:                                 break;
2989:                         case 52:
2990:                         // #line 126 "extParser.y"
2991:                         {
2992:                                 yyval = new ExtParserVal(new SubNode((AbstractNode) val_peek(2).obj,
2993:                                                 (AbstractNode) val_peek(0).obj));
2994:                         }
2995:                                 break;
2996:                         case 53:
2997:                         // #line 127 "extParser.y"
2998:                         {
2999:                                 yyval = new ExtParserVal(new DivNode((AbstractNode) val_peek(2).obj,
3000:                                                 (AbstractNode) val_peek(0).obj));
3001:                         }
3002:                                 break;
3003:                         case 54:
3004:                         // #line 128 "extParser.y"
3005:                         {
3006:                                 yyval = new ExtParserVal(new ModNode((AbstractNode) val_peek(2).obj,
3007:                                                 (AbstractNode) val_peek(0).obj));
3008:                         }
3009:                                 break;
3010:                         case 55:
3011:                         // #line 131 "extParser.y"
3012:                         {
3013:                                 yyval = yylval;
3014:                         }
3015:                                 break;
3016:                         case 56:
3017:                         // #line 132 "extParser.y"
3018:                         {
3019:                                 yyval = new ExtParserVal(new EqualNode((AbstractNode) val_peek(2).obj,
3020:                                                 (AbstractNode) val_peek(0).obj));
3021:                         }
3022:                                 break;
3023:                         case 57:
3024:                         // #line 133 "extParser.y"
3025:                         {
3026:                                 yyval = new ExtParserVal(new NotEqualNode((AbstractNode) val_peek(2).obj,
3027:                                                 (AbstractNode) val_peek(0).obj));
3028:                         }
3029:                                 break;
3030:                         case 58:
3031:                         // #line 134 "extParser.y"
3032:                         {
3033:                                 yyval = new ExtParserVal(new LessNode((AbstractNode) val_peek(2).obj,
3034:                                                 (AbstractNode) val_peek(0).obj));
3035:                         }
3036:                                 break;
3037:                         case 59:
3038:                         // #line 135 "extParser.y"
3039:                         {
3040:                                 yyval = new ExtParserVal(new GreaterNode((AbstractNode) val_peek(2).obj,
3041:                                                 (AbstractNode) val_peek(0).obj));
3042:                         }
3043:                                 break;
3044:                         case 60:
3045:                         // #line 136 "extParser.y"
3046:                         {
3047:                                 yyval = new ExtParserVal(new LENode((AbstractNode) val_peek(2).obj,
3048:                                                 (AbstractNode) val_peek(0).obj));
3049:                         }
3050:                                 break;
3051:                         case 61:
3052:                         // #line 137 "extParser.y"
3053:                         {
3054:                                 yyval = new ExtParserVal(new GENode((AbstractNode) val_peek(2).obj,
3055:                                                 (AbstractNode) val_peek(0).obj));
3056:                         }
3057:                                 break;
3058:                         case 62:
3059:                         // #line 138 "extParser.y"
3060:                         {
3061:                                 yyval = new ExtParserVal(new MatchNode((AbstractNode) val_peek(2).obj,
3062:                                                 (AbstractNode) val_peek(0).obj));
3063:                         }
3064:                                 break;
3065:                         case 63:
3066:                         // #line 139 "extParser.y"
3067:                         {
3068:                                 yyval = new ExtParserVal(new NotNode((AbstractNode) val_peek(0).obj));
3069:                         }
3070:                                 break;
3071:                         case 64:
3072:                         // #line 140 "extParser.y"
3073:                         {
3074:                                 yyval = new ExtParserVal(new CopyPendingNode((AbstractNode) val_peek(1).obj));
3075:                         }
3076:                                 break;
3077:                         case 65:
3078:                         // #line 141 "extParser.y"
3079:                         {
3080:                                 yyval = new ExtParserVal(new CopyPendingNode((AbstractNode) val_peek(1).obj));
3081:                         }
3082:                                 break;
3083:                         case 66:
3084:                         // #line 142 "extParser.y"
3085:                         {
3086:                                 yyval = new ExtParserVal(new UniqueNode((AbstractNode) val_peek(1).obj));
3087:                         }
3088:                                 break;
3089:                         case 67:
3090:                         // #line 143 "extParser.y"
3091:                         {
3092:                                 yyval = new ExtParserVal(new SamenetNode((AbstractNode) val_peek(3).obj,
3093:                                                 (AbstractNode) val_peek(1).obj));
3094:                         }
3095:                                 break;
3096:                         case 68:
3097:                         // #line 144 "extParser.y"
3098:                         {
3099:                                 yyval = new ExtParserVal(new SubnetNode((AbstractNode) val_peek(3).obj,
3100:                                                 (AbstractNode) val_peek(1).obj));
3101:                         }
3102:                                 break;
3103:                         case 69:
3104:                         // #line 145 "extParser.y"
3105:                         {
3106:                                 yyval = new ExtParserVal(new DefinedNode((AbstractNode) val_peek(1).obj));
3107:                         }
3108:                                 break;
3109:                         case 70:
3110:                         // #line 146 "extParser.y"
3111:                         {
3112:                                 yyval = new ExtParserVal(new AndNode((AbstractNode) val_peek(2).obj,
3113:                                                 (AbstractNode) val_peek(0).obj));
3114:                         }
3115:                                 break;
3116:                         case 71:
3117:                         // #line 147 "extParser.y"
3118:                         {
3119:                                 yyval = new ExtParserVal(new OrNode((AbstractNode) val_peek(2).obj,
3120:                                                 (AbstractNode) val_peek(0).obj));
3121:                         }
3122:                                 break;
3123:                         case 72:
3124:                         // #line 148 "extParser.y"
3125:                         {
3126:                                 yyval = new ExtParserVal(new ConditionNode((AbstractNode) val_peek(1).obj));
3127:                         }
3128:                                 break;
3129:                         // #line 890 "ExtParser.java"
3130:                         // ########## END OF USER-SUPPLIED ACTIONS ##########
3131:                         }// switch
3132:                                 // #### Now let's reduce... ####
3133:•                        if (yydebug)
3134:                                 debug("reduce");
3135:                         state_drop(yym); // we just reduced yylen states
3136:                         yystate = state_peek(0); // get new state
3137:                         val_drop(yym); // corresponding value drop
3138:                         yym = yylhs[yyn]; // select next TERMINAL(on lhs)
3139:•                        if (yystate == 0 && yym == 0)// done? 'rest' state and at first TERMINAL
3140:                         {
3141:•                                if (yydebug)
3142:                                         debug("After reduction, shifting from state 0 to state " + YYFINAL + "");
3143:                                 yystate = YYFINAL; // explicitly say we're done
3144:                                 state_push(YYFINAL); // and save it
3145:                                 val_push(yyval); // also save the semantic value of parsing
3146:•                                if (yychar < 0) // we want another character?
3147:                                 {
3148:                                         yychar = yylex(); // get next character
3149:•                                        if (yychar < 0)
3150:                                                 yychar = 0; // clean, if necessary
3151:•                                        if (yydebug)
3152:                                                 yylexdebug(yystate, yychar);
3153:                                 }
3154:•                                if (yychar == 0) // Good exit (if lex returns 0 ;-)
3155:                                         break; // quit the loop--all DONE
3156:                         } // if yystate
3157:                         else // else not done yet
3158:                         { // get next state and push, for next yydefred[]
3159:                                 yyn = yygindex[yym]; // find out where to go
3160:•                                if ((yyn != 0) && (yyn += yystate) >= 0 && yyn <= YYTABLESIZE
3161:                                                 && yycheck[yyn] == yystate)
3162:                                         yystate = yytable[yyn]; // get new state
3163:                                 else
3164:                                         yystate = yydgoto[yym]; // else go to new defred
3165:•                                if (yydebug)
3166:                                         debug("after reduction, shifting from state " + state_peek(0) + " to state "
3167:                                                         + yystate + "");
3168:                                 state_push(yystate); // going again, so push state & val...
3169:                                 val_push(yyval); // for next action
3170:                         }
3171:                 } // main loop
3172:                 return 0;// yyaccept!!
3173:         }
3174:         // ## end of method parse() ######################################
3175:
3176:         // ## run() --- for Thread #######################################
3177:         /**
3178:          * A default run method, used for operating this parser object in the background. It is intended
3179:          * for extending Thread or implementing Runnable. Turn off with -Jnorun .
3180:          */
3181:         public void run() {
3182:                 yyparse();
3183:         }
3184:         // ## end of method run() ########################################
3185:
3186:         // ## Constructors ###############################################
3187:         /**
3188:          * Default constructor. Turn off with -Jnoconstruct .
3189:          *
3190:          */
3191:         public ExtParser() {
3192:                 // nothing to do
3193:         }
3194:
3195:         /**
3196:          * Create a parser, setting the debug to true or false.
3197:          *
3198:          * @param debugMe
3199:          * true for debugging, false for no debug.
3200:          */
3201:         public ExtParser(boolean debugMe) {
3202:                 yydebug = debugMe;
3203:         }
3204:         // ###############################################################
3205:
3206: }
3207: // ################### END OF CLASS ##############################