1
2 package fr.in2p3.jsaga.generated.parser;
3 import fr.in2p3.jsaga.engine.session.BaseUrlItem;
4 import fr.in2p3.jsaga.engine.session.item.*;
5 import java.io.ByteArrayInputStream;
6 import java.util.ArrayList;
7 import java.util.List;
8 public class BaseUrlParser implements BaseUrlParserConstants {
9 public static BaseUrlItem[] parse(String pattern) throws ParseException {
10 return new BaseUrlParser(new ByteArrayInputStream(pattern.getBytes())).parse();
11 }
12
13 final public BaseUrlItem[] parse() throws ParseException {
14 Token scheme,alias=null,host,port; StringBuffer domain,dir,ipv4;
15 Token preHost=null,postHost=null,preDomain=null,preDir=null,postDir=null;
16 List<BaseUrlItem> result = new ArrayList<BaseUrlItem>();
17 result.add(null);
18 result.add(new HostItem());
19 result.add(new DomainItem());
20 result.add(new PortItem());
21 if (jj_2_1(2)) {
22 alias = jj_consume_token(NAME);
23 jj_consume_token(SEP_ALIAS);
24 } else {
25 ;
26 }
27 scheme = jj_consume_token(NAME);
28 result.set(0, new SchemeItem(scheme.toString(),
29 alias!=null ? alias.toString() : null));
30 if (jj_2_25(2)) {
31 jj_consume_token(SEP_SCHEME);
32 if (jj_2_18(2)) {
33 if (jj_2_10(2)) {
34 if (jj_2_4(2)) {
35 if (jj_2_2(2)) {
36 preHost = jj_consume_token(STAR);
37 } else {
38 ;
39 }
40 host = jj_consume_token(NAME);
41 if (jj_2_3(2)) {
42 postHost = jj_consume_token(STAR);
43 } else {
44 ;
45 }
46 result.set(1, new HostItem(host.toString(), preHost, postHost));
47 } else if (jj_2_5(2)) {
48 preHost = jj_consume_token(STAR);
49 } else {
50 jj_consume_token(-1);
51 throw new ParseException();
52 }
53 if (jj_2_9(2)) {
54 jj_consume_token(SEP_DOMAIN);
55 if (jj_2_7(2)) {
56 if (jj_2_6(2)) {
57 preDomain = jj_consume_token(STAR);
58 } else {
59 ;
60 }
61 domain = parseDomain();
62 result.set(2, new DomainItem(domain.toString(), preDomain));
63 } else if (jj_2_8(2)) {
64 preDomain = jj_consume_token(STAR);
65 } else {
66 jj_consume_token(-1);
67 throw new ParseException();
68 }
69 } else {
70 ;
71 }
72 } else if (jj_2_11(2)) {
73 ipv4 = parseIPv4();
74 result.set(1, new IPv4Item(ipv4.toString()));
75 } else {
76 jj_consume_token(-1);
77 throw new ParseException();
78 }
79 if (jj_2_14(2)) {
80 if (jj_2_12(2)) {
81 jj_consume_token(SEP_PORT);
82 port = jj_consume_token(NUMBER);
83 result.set(3, new PortItem(port.toString(), PortItem.REQUIRED));
84 } else if (jj_2_13(2)) {
85 jj_consume_token(16);
86 jj_consume_token(SEP_PORT);
87 port = jj_consume_token(NUMBER);
88 jj_consume_token(17);
89 result.set(3, new PortItem(port.toString(), PortItem.OPTIONAL));
90 } else {
91 jj_consume_token(-1);
92 throw new ParseException();
93 }
94 } else {
95 ;
96 }
97 if (jj_2_17(2)) {
98 jj_consume_token(SEP_PORT);
99 if (jj_2_15(2)) {
100 port = jj_consume_token(NUMBER);
101 } else if (jj_2_16(2)) {
102 jj_consume_token(16);
103 port = jj_consume_token(NUMBER);
104 jj_consume_token(17);
105 } else {
106 jj_consume_token(-1);
107 throw new ParseException();
108 }
109 } else {
110 ;
111 }
112 } else {
113 ;
114 }
115 label_1:
116 while (true) {
117 if (jj_2_19(2)) {
118 ;
119 } else {
120 break label_1;
121 }
122 jj_consume_token(SEP_DIR);
123 if (jj_2_22(2)) {
124 if (jj_2_20(2)) {
125 preDir = jj_consume_token(STAR);
126 } else {
127 ;
128 }
129 dir = parseDir();
130 if (jj_2_21(2)) {
131 postDir = jj_consume_token(STAR);
132 } else {
133 ;
134 }
135 result.add(new DirItem(dir.toString(), preDir, postDir));
136 } else if (jj_2_23(2)) {
137 preDir = jj_consume_token(STAR);
138 result.add(new DirItem());
139 } else {
140 jj_consume_token(-1);
141 throw new ParseException();
142 }
143 preDir=postDir=null;
144 }
145 if (jj_2_24(2)) {
146 jj_consume_token(SEP_DIR);
147 } else {
148 ;
149 }
150 } else {
151 ;
152 }
153 jj_consume_token(0);
154 {if (true) return (BaseUrlItem[]) result.toArray(new BaseUrlItem[result.size()]);}
155 throw new Error("Missing return statement in function");
156 }
157
158 final public StringBuffer parseDomain() throws ParseException {
159 StringBuffer buffer=new StringBuffer(); Token token;
160 token = jj_consume_token(NAME);
161 buffer.append(token.toString());
162 label_2:
163 while (true) {
164 if (jj_2_26(2)) {
165 ;
166 } else {
167 break label_2;
168 }
169 jj_consume_token(SEP_DOMAIN);
170 token = jj_consume_token(NAME);
171 buffer.append(".").append(token.toString());
172 }
173 {if (true) return buffer;}
174 throw new Error("Missing return statement in function");
175 }
176
177 final public StringBuffer parseDir() throws ParseException {
178 StringBuffer buffer=new StringBuffer(); Token token;
179 label_3:
180 while (true) {
181 if (jj_2_27(2)) {
182 token = jj_consume_token(NAME);
183 buffer.append(token.toString());
184 } else if (jj_2_28(2)) {
185 token = jj_consume_token(NUMBER);
186 buffer.append(token.toString());
187 } else if (jj_2_29(2)) {
188 token = jj_consume_token(18);
189 buffer.append(token.toString());
190 } else {
191 jj_consume_token(-1);
192 throw new ParseException();
193 }
194 if (jj_2_30(2)) {
195 ;
196 } else {
197 break label_3;
198 }
199 }
200 {if (true) return buffer;}
201 throw new Error("Missing return statement in function");
202 }
203
204 final public StringBuffer parseIPv4() throws ParseException {
205 StringBuffer buffer=new StringBuffer(); Token token;
206 label_4:
207 while (true) {
208 if (jj_2_31(2)) {
209 token = jj_consume_token(NUMBER);
210 buffer.append(token.toString());
211 } else if (jj_2_32(2)) {
212 token = jj_consume_token(SEP_DOMAIN);
213 buffer.append(token.toString());
214 } else {
215 jj_consume_token(-1);
216 throw new ParseException();
217 }
218 if (jj_2_33(2)) {
219 ;
220 } else {
221 break label_4;
222 }
223 }
224 {if (true) return buffer;}
225 throw new Error("Missing return statement in function");
226 }
227
228 private boolean jj_2_1(int xla) {
229 jj_la = xla; jj_lastpos = jj_scanpos = token;
230 try { return !jj_3_1(); }
231 catch(LookaheadSuccess ls) { return true; }
232 finally { jj_save(0, xla); }
233 }
234
235 private boolean jj_2_2(int xla) {
236 jj_la = xla; jj_lastpos = jj_scanpos = token;
237 try { return !jj_3_2(); }
238 catch(LookaheadSuccess ls) { return true; }
239 finally { jj_save(1, xla); }
240 }
241
242 private boolean jj_2_3(int xla) {
243 jj_la = xla; jj_lastpos = jj_scanpos = token;
244 try { return !jj_3_3(); }
245 catch(LookaheadSuccess ls) { return true; }
246 finally { jj_save(2, xla); }
247 }
248
249 private boolean jj_2_4(int xla) {
250 jj_la = xla; jj_lastpos = jj_scanpos = token;
251 try { return !jj_3_4(); }
252 catch(LookaheadSuccess ls) { return true; }
253 finally { jj_save(3, xla); }
254 }
255
256 private boolean jj_2_5(int xla) {
257 jj_la = xla; jj_lastpos = jj_scanpos = token;
258 try { return !jj_3_5(); }
259 catch(LookaheadSuccess ls) { return true; }
260 finally { jj_save(4, xla); }
261 }
262
263 private boolean jj_2_6(int xla) {
264 jj_la = xla; jj_lastpos = jj_scanpos = token;
265 try { return !jj_3_6(); }
266 catch(LookaheadSuccess ls) { return true; }
267 finally { jj_save(5, xla); }
268 }
269
270 private boolean jj_2_7(int xla) {
271 jj_la = xla; jj_lastpos = jj_scanpos = token;
272 try { return !jj_3_7(); }
273 catch(LookaheadSuccess ls) { return true; }
274 finally { jj_save(6, xla); }
275 }
276
277 private boolean jj_2_8(int xla) {
278 jj_la = xla; jj_lastpos = jj_scanpos = token;
279 try { return !jj_3_8(); }
280 catch(LookaheadSuccess ls) { return true; }
281 finally { jj_save(7, xla); }
282 }
283
284 private boolean jj_2_9(int xla) {
285 jj_la = xla; jj_lastpos = jj_scanpos = token;
286 try { return !jj_3_9(); }
287 catch(LookaheadSuccess ls) { return true; }
288 finally { jj_save(8, xla); }
289 }
290
291 private boolean jj_2_10(int xla) {
292 jj_la = xla; jj_lastpos = jj_scanpos = token;
293 try { return !jj_3_10(); }
294 catch(LookaheadSuccess ls) { return true; }
295 finally { jj_save(9, xla); }
296 }
297
298 private boolean jj_2_11(int xla) {
299 jj_la = xla; jj_lastpos = jj_scanpos = token;
300 try { return !jj_3_11(); }
301 catch(LookaheadSuccess ls) { return true; }
302 finally { jj_save(10, xla); }
303 }
304
305 private boolean jj_2_12(int xla) {
306 jj_la = xla; jj_lastpos = jj_scanpos = token;
307 try { return !jj_3_12(); }
308 catch(LookaheadSuccess ls) { return true; }
309 finally { jj_save(11, xla); }
310 }
311
312 private boolean jj_2_13(int xla) {
313 jj_la = xla; jj_lastpos = jj_scanpos = token;
314 try { return !jj_3_13(); }
315 catch(LookaheadSuccess ls) { return true; }
316 finally { jj_save(12, xla); }
317 }
318
319 private boolean jj_2_14(int xla) {
320 jj_la = xla; jj_lastpos = jj_scanpos = token;
321 try { return !jj_3_14(); }
322 catch(LookaheadSuccess ls) { return true; }
323 finally { jj_save(13, xla); }
324 }
325
326 private boolean jj_2_15(int xla) {
327 jj_la = xla; jj_lastpos = jj_scanpos = token;
328 try { return !jj_3_15(); }
329 catch(LookaheadSuccess ls) { return true; }
330 finally { jj_save(14, xla); }
331 }
332
333 private boolean jj_2_16(int xla) {
334 jj_la = xla; jj_lastpos = jj_scanpos = token;
335 try { return !jj_3_16(); }
336 catch(LookaheadSuccess ls) { return true; }
337 finally { jj_save(15, xla); }
338 }
339
340 private boolean jj_2_17(int xla) {
341 jj_la = xla; jj_lastpos = jj_scanpos = token;
342 try { return !jj_3_17(); }
343 catch(LookaheadSuccess ls) { return true; }
344 finally { jj_save(16, xla); }
345 }
346
347 private boolean jj_2_18(int xla) {
348 jj_la = xla; jj_lastpos = jj_scanpos = token;
349 try { return !jj_3_18(); }
350 catch(LookaheadSuccess ls) { return true; }
351 finally { jj_save(17, xla); }
352 }
353
354 private boolean jj_2_19(int xla) {
355 jj_la = xla; jj_lastpos = jj_scanpos = token;
356 try { return !jj_3_19(); }
357 catch(LookaheadSuccess ls) { return true; }
358 finally { jj_save(18, xla); }
359 }
360
361 private boolean jj_2_20(int xla) {
362 jj_la = xla; jj_lastpos = jj_scanpos = token;
363 try { return !jj_3_20(); }
364 catch(LookaheadSuccess ls) { return true; }
365 finally { jj_save(19, xla); }
366 }
367
368 private boolean jj_2_21(int xla) {
369 jj_la = xla; jj_lastpos = jj_scanpos = token;
370 try { return !jj_3_21(); }
371 catch(LookaheadSuccess ls) { return true; }
372 finally { jj_save(20, xla); }
373 }
374
375 private boolean jj_2_22(int xla) {
376 jj_la = xla; jj_lastpos = jj_scanpos = token;
377 try { return !jj_3_22(); }
378 catch(LookaheadSuccess ls) { return true; }
379 finally { jj_save(21, xla); }
380 }
381
382 private boolean jj_2_23(int xla) {
383 jj_la = xla; jj_lastpos = jj_scanpos = token;
384 try { return !jj_3_23(); }
385 catch(LookaheadSuccess ls) { return true; }
386 finally { jj_save(22, xla); }
387 }
388
389 private boolean jj_2_24(int xla) {
390 jj_la = xla; jj_lastpos = jj_scanpos = token;
391 try { return !jj_3_24(); }
392 catch(LookaheadSuccess ls) { return true; }
393 finally { jj_save(23, xla); }
394 }
395
396 private boolean jj_2_25(int xla) {
397 jj_la = xla; jj_lastpos = jj_scanpos = token;
398 try { return !jj_3_25(); }
399 catch(LookaheadSuccess ls) { return true; }
400 finally { jj_save(24, xla); }
401 }
402
403 private boolean jj_2_26(int xla) {
404 jj_la = xla; jj_lastpos = jj_scanpos = token;
405 try { return !jj_3_26(); }
406 catch(LookaheadSuccess ls) { return true; }
407 finally { jj_save(25, xla); }
408 }
409
410 private boolean jj_2_27(int xla) {
411 jj_la = xla; jj_lastpos = jj_scanpos = token;
412 try { return !jj_3_27(); }
413 catch(LookaheadSuccess ls) { return true; }
414 finally { jj_save(26, xla); }
415 }
416
417 private boolean jj_2_28(int xla) {
418 jj_la = xla; jj_lastpos = jj_scanpos = token;
419 try { return !jj_3_28(); }
420 catch(LookaheadSuccess ls) { return true; }
421 finally { jj_save(27, xla); }
422 }
423
424 private boolean jj_2_29(int xla) {
425 jj_la = xla; jj_lastpos = jj_scanpos = token;
426 try { return !jj_3_29(); }
427 catch(LookaheadSuccess ls) { return true; }
428 finally { jj_save(28, xla); }
429 }
430
431 private boolean jj_2_30(int xla) {
432 jj_la = xla; jj_lastpos = jj_scanpos = token;
433 try { return !jj_3_30(); }
434 catch(LookaheadSuccess ls) { return true; }
435 finally { jj_save(29, xla); }
436 }
437
438 private boolean jj_2_31(int xla) {
439 jj_la = xla; jj_lastpos = jj_scanpos = token;
440 try { return !jj_3_31(); }
441 catch(LookaheadSuccess ls) { return true; }
442 finally { jj_save(30, xla); }
443 }
444
445 private boolean jj_2_32(int xla) {
446 jj_la = xla; jj_lastpos = jj_scanpos = token;
447 try { return !jj_3_32(); }
448 catch(LookaheadSuccess ls) { return true; }
449 finally { jj_save(31, xla); }
450 }
451
452 private boolean jj_2_33(int xla) {
453 jj_la = xla; jj_lastpos = jj_scanpos = token;
454 try { return !jj_3_33(); }
455 catch(LookaheadSuccess ls) { return true; }
456 finally { jj_save(32, xla); }
457 }
458
459 private boolean jj_3_15() {
460 if (jj_scan_token(NUMBER)) return true;
461 return false;
462 }
463
464 private boolean jj_3_19() {
465 if (jj_scan_token(SEP_DIR)) return true;
466 Token xsp;
467 xsp = jj_scanpos;
468 if (jj_3_22()) {
469 jj_scanpos = xsp;
470 if (jj_3_23()) return true;
471 }
472 return false;
473 }
474
475 private boolean jj_3_6() {
476 if (jj_scan_token(STAR)) return true;
477 return false;
478 }
479
480 private boolean jj_3_17() {
481 if (jj_scan_token(SEP_PORT)) return true;
482 Token xsp;
483 xsp = jj_scanpos;
484 if (jj_3_15()) {
485 jj_scanpos = xsp;
486 if (jj_3_16()) return true;
487 }
488 return false;
489 }
490
491 private boolean jj_3_8() {
492 if (jj_scan_token(STAR)) return true;
493 return false;
494 }
495
496 private boolean jj_3_13() {
497 if (jj_scan_token(16)) return true;
498 if (jj_scan_token(SEP_PORT)) return true;
499 return false;
500 }
501
502 private boolean jj_3_11() {
503 if (jj_3R_6()) return true;
504 return false;
505 }
506
507 private boolean jj_3_14() {
508 Token xsp;
509 xsp = jj_scanpos;
510 if (jj_3_12()) {
511 jj_scanpos = xsp;
512 if (jj_3_13()) return true;
513 }
514 return false;
515 }
516
517 private boolean jj_3_12() {
518 if (jj_scan_token(SEP_PORT)) return true;
519 if (jj_scan_token(NUMBER)) return true;
520 return false;
521 }
522
523 private boolean jj_3_7() {
524 Token xsp;
525 xsp = jj_scanpos;
526 if (jj_3_6()) jj_scanpos = xsp;
527 if (jj_3R_5()) return true;
528 return false;
529 }
530
531 private boolean jj_3_5() {
532 if (jj_scan_token(STAR)) return true;
533 return false;
534 }
535
536 private boolean jj_3_3() {
537 if (jj_scan_token(STAR)) return true;
538 return false;
539 }
540
541 private boolean jj_3_9() {
542 if (jj_scan_token(SEP_DOMAIN)) return true;
543 Token xsp;
544 xsp = jj_scanpos;
545 if (jj_3_7()) {
546 jj_scanpos = xsp;
547 if (jj_3_8()) return true;
548 }
549 return false;
550 }
551
552 private boolean jj_3_2() {
553 if (jj_scan_token(STAR)) return true;
554 return false;
555 }
556
557 private boolean jj_3_4() {
558 Token xsp;
559 xsp = jj_scanpos;
560 if (jj_3_2()) jj_scanpos = xsp;
561 if (jj_scan_token(NAME)) return true;
562 xsp = jj_scanpos;
563 if (jj_3_3()) jj_scanpos = xsp;
564 return false;
565 }
566
567 private boolean jj_3_10() {
568 Token xsp;
569 xsp = jj_scanpos;
570 if (jj_3_4()) {
571 jj_scanpos = xsp;
572 if (jj_3_5()) return true;
573 }
574 xsp = jj_scanpos;
575 if (jj_3_9()) jj_scanpos = xsp;
576 return false;
577 }
578
579 private boolean jj_3_18() {
580 Token xsp;
581 xsp = jj_scanpos;
582 if (jj_3_10()) {
583 jj_scanpos = xsp;
584 if (jj_3_11()) return true;
585 }
586 xsp = jj_scanpos;
587 if (jj_3_14()) jj_scanpos = xsp;
588 xsp = jj_scanpos;
589 if (jj_3_17()) jj_scanpos = xsp;
590 return false;
591 }
592
593 private boolean jj_3_25() {
594 if (jj_scan_token(SEP_SCHEME)) return true;
595 Token xsp;
596 xsp = jj_scanpos;
597 if (jj_3_18()) jj_scanpos = xsp;
598 while (true) {
599 xsp = jj_scanpos;
600 if (jj_3_19()) { jj_scanpos = xsp; break; }
601 }
602 xsp = jj_scanpos;
603 if (jj_3_24()) jj_scanpos = xsp;
604 return false;
605 }
606
607 private boolean jj_3_1() {
608 if (jj_scan_token(NAME)) return true;
609 if (jj_scan_token(SEP_ALIAS)) return true;
610 return false;
611 }
612
613 private boolean jj_3_32() {
614 if (jj_scan_token(SEP_DOMAIN)) return true;
615 return false;
616 }
617
618 private boolean jj_3_31() {
619 if (jj_scan_token(NUMBER)) return true;
620 return false;
621 }
622
623 private boolean jj_3_33() {
624 Token xsp;
625 xsp = jj_scanpos;
626 if (jj_3_31()) {
627 jj_scanpos = xsp;
628 if (jj_3_32()) return true;
629 }
630 return false;
631 }
632
633 private boolean jj_3R_6() {
634 Token xsp;
635 if (jj_3_33()) return true;
636 while (true) {
637 xsp = jj_scanpos;
638 if (jj_3_33()) { jj_scanpos = xsp; break; }
639 }
640 return false;
641 }
642
643 private boolean jj_3_29() {
644 if (jj_scan_token(18)) return true;
645 return false;
646 }
647
648 private boolean jj_3_28() {
649 if (jj_scan_token(NUMBER)) return true;
650 return false;
651 }
652
653 private boolean jj_3_27() {
654 if (jj_scan_token(NAME)) return true;
655 return false;
656 }
657
658 private boolean jj_3_30() {
659 Token xsp;
660 xsp = jj_scanpos;
661 if (jj_3_27()) {
662 jj_scanpos = xsp;
663 if (jj_3_28()) {
664 jj_scanpos = xsp;
665 if (jj_3_29()) return true;
666 }
667 }
668 return false;
669 }
670
671 private boolean jj_3R_7() {
672 Token xsp;
673 if (jj_3_30()) return true;
674 while (true) {
675 xsp = jj_scanpos;
676 if (jj_3_30()) { jj_scanpos = xsp; break; }
677 }
678 return false;
679 }
680
681 private boolean jj_3_21() {
682 if (jj_scan_token(STAR)) return true;
683 return false;
684 }
685
686 private boolean jj_3_26() {
687 if (jj_scan_token(SEP_DOMAIN)) return true;
688 if (jj_scan_token(NAME)) return true;
689 return false;
690 }
691
692 private boolean jj_3_20() {
693 if (jj_scan_token(STAR)) return true;
694 return false;
695 }
696
697 private boolean jj_3_23() {
698 if (jj_scan_token(STAR)) return true;
699 return false;
700 }
701
702 private boolean jj_3R_5() {
703 if (jj_scan_token(NAME)) return true;
704 Token xsp;
705 while (true) {
706 xsp = jj_scanpos;
707 if (jj_3_26()) { jj_scanpos = xsp; break; }
708 }
709 return false;
710 }
711
712 private boolean jj_3_22() {
713 Token xsp;
714 xsp = jj_scanpos;
715 if (jj_3_20()) jj_scanpos = xsp;
716 if (jj_3R_7()) return true;
717 xsp = jj_scanpos;
718 if (jj_3_21()) jj_scanpos = xsp;
719 return false;
720 }
721
722 private boolean jj_3_24() {
723 if (jj_scan_token(SEP_DIR)) return true;
724 return false;
725 }
726
727 private boolean jj_3_16() {
728 if (jj_scan_token(16)) return true;
729 if (jj_scan_token(NUMBER)) return true;
730 return false;
731 }
732
733
734 public BaseUrlParserTokenManager token_source;
735 JavaCharStream jj_input_stream;
736
737 public Token token;
738
739 public Token jj_nt;
740 private int jj_ntk;
741 private Token jj_scanpos, jj_lastpos;
742 private int jj_la;
743 private int jj_gen;
744 final private int[] jj_la1 = new int[0];
745 static private int[] jj_la1_0;
746 static {
747 jj_la1_init_0();
748 }
749 private static void jj_la1_init_0() {
750 jj_la1_0 = new int[] {};
751 }
752 final private JJCalls[] jj_2_rtns = new JJCalls[33];
753 private boolean jj_rescan = false;
754 private int jj_gc = 0;
755
756
757 public BaseUrlParser(java.io.InputStream stream) {
758 this(stream, null);
759 }
760
761 public BaseUrlParser(java.io.InputStream stream, String encoding) {
762 try { jj_input_stream = new JavaCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
763 token_source = new BaseUrlParserTokenManager(jj_input_stream);
764 token = new Token();
765 jj_ntk = -1;
766 jj_gen = 0;
767 for (int i = 0; i < 0; i++) jj_la1[i] = -1;
768 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
769 }
770
771
772 public void ReInit(java.io.InputStream stream) {
773 ReInit(stream, null);
774 }
775
776 public void ReInit(java.io.InputStream stream, String encoding) {
777 try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
778 token_source.ReInit(jj_input_stream);
779 token = new Token();
780 jj_ntk = -1;
781 jj_gen = 0;
782 for (int i = 0; i < 0; i++) jj_la1[i] = -1;
783 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
784 }
785
786
787 public BaseUrlParser(java.io.Reader stream) {
788 jj_input_stream = new JavaCharStream(stream, 1, 1);
789 token_source = new BaseUrlParserTokenManager(jj_input_stream);
790 token = new Token();
791 jj_ntk = -1;
792 jj_gen = 0;
793 for (int i = 0; i < 0; i++) jj_la1[i] = -1;
794 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
795 }
796
797
798 public void ReInit(java.io.Reader stream) {
799 jj_input_stream.ReInit(stream, 1, 1);
800 token_source.ReInit(jj_input_stream);
801 token = new Token();
802 jj_ntk = -1;
803 jj_gen = 0;
804 for (int i = 0; i < 0; i++) jj_la1[i] = -1;
805 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
806 }
807
808
809 public BaseUrlParser(BaseUrlParserTokenManager tm) {
810 token_source = tm;
811 token = new Token();
812 jj_ntk = -1;
813 jj_gen = 0;
814 for (int i = 0; i < 0; i++) jj_la1[i] = -1;
815 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
816 }
817
818
819 public void ReInit(BaseUrlParserTokenManager tm) {
820 token_source = tm;
821 token = new Token();
822 jj_ntk = -1;
823 jj_gen = 0;
824 for (int i = 0; i < 0; i++) jj_la1[i] = -1;
825 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
826 }
827
828 private Token jj_consume_token(int kind) throws ParseException {
829 Token oldToken;
830 if ((oldToken = token).next != null) token = token.next;
831 else token = token.next = token_source.getNextToken();
832 jj_ntk = -1;
833 if (token.kind == kind) {
834 jj_gen++;
835 if (++jj_gc > 100) {
836 jj_gc = 0;
837 for (int i = 0; i < jj_2_rtns.length; i++) {
838 JJCalls c = jj_2_rtns[i];
839 while (c != null) {
840 if (c.gen < jj_gen) c.first = null;
841 c = c.next;
842 }
843 }
844 }
845 return token;
846 }
847 token = oldToken;
848 jj_kind = kind;
849 throw generateParseException();
850 }
851
852 static private final class LookaheadSuccess extends java.lang.Error { }
853 final private LookaheadSuccess jj_ls = new LookaheadSuccess();
854 private boolean jj_scan_token(int kind) {
855 if (jj_scanpos == jj_lastpos) {
856 jj_la--;
857 if (jj_scanpos.next == null) {
858 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
859 } else {
860 jj_lastpos = jj_scanpos = jj_scanpos.next;
861 }
862 } else {
863 jj_scanpos = jj_scanpos.next;
864 }
865 if (jj_rescan) {
866 int i = 0; Token tok = token;
867 while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
868 if (tok != null) jj_add_error_token(kind, i);
869 }
870 if (jj_scanpos.kind != kind) return true;
871 if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
872 return false;
873 }
874
875
876
877 final public Token getNextToken() {
878 if (token.next != null) token = token.next;
879 else token = token.next = token_source.getNextToken();
880 jj_ntk = -1;
881 jj_gen++;
882 return token;
883 }
884
885
886 final public Token getToken(int index) {
887 Token t = token;
888 for (int i = 0; i < index; i++) {
889 if (t.next != null) t = t.next;
890 else t = t.next = token_source.getNextToken();
891 }
892 return t;
893 }
894
895 private int jj_ntk() {
896 if ((jj_nt=token.next) == null)
897 return (jj_ntk = (token.next=token_source.getNextToken()).kind);
898 else
899 return (jj_ntk = jj_nt.kind);
900 }
901
902 private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
903 private int[] jj_expentry;
904 private int jj_kind = -1;
905 private int[] jj_lasttokens = new int[100];
906 private int jj_endpos;
907
908 private void jj_add_error_token(int kind, int pos) {
909 if (pos >= 100) return;
910 if (pos == jj_endpos + 1) {
911 jj_lasttokens[jj_endpos++] = kind;
912 } else if (jj_endpos != 0) {
913 jj_expentry = new int[jj_endpos];
914 for (int i = 0; i < jj_endpos; i++) {
915 jj_expentry[i] = jj_lasttokens[i];
916 }
917 jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) {
918 int[] oldentry = (int[])(it.next());
919 if (oldentry.length == jj_expentry.length) {
920 for (int i = 0; i < jj_expentry.length; i++) {
921 if (oldentry[i] != jj_expentry[i]) {
922 continue jj_entries_loop;
923 }
924 }
925 jj_expentries.add(jj_expentry);
926 break jj_entries_loop;
927 }
928 }
929 if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
930 }
931 }
932
933
934 public ParseException generateParseException() {
935 jj_expentries.clear();
936 boolean[] la1tokens = new boolean[19];
937 if (jj_kind >= 0) {
938 la1tokens[jj_kind] = true;
939 jj_kind = -1;
940 }
941 for (int i = 0; i < 0; i++) {
942 if (jj_la1[i] == jj_gen) {
943 for (int j = 0; j < 32; j++) {
944 if ((jj_la1_0[i] & (1<<j)) != 0) {
945 la1tokens[j] = true;
946 }
947 }
948 }
949 }
950 for (int i = 0; i < 19; i++) {
951 if (la1tokens[i]) {
952 jj_expentry = new int[1];
953 jj_expentry[0] = i;
954 jj_expentries.add(jj_expentry);
955 }
956 }
957 jj_endpos = 0;
958 jj_rescan_token();
959 jj_add_error_token(0, 0);
960 int[][] exptokseq = new int[jj_expentries.size()][];
961 for (int i = 0; i < jj_expentries.size(); i++) {
962 exptokseq[i] = jj_expentries.get(i);
963 }
964 return new ParseException(token, exptokseq, tokenImage);
965 }
966
967
968 final public void enable_tracing() {
969 }
970
971
972 final public void disable_tracing() {
973 }
974
975 private void jj_rescan_token() {
976 jj_rescan = true;
977 for (int i = 0; i < 33; i++) {
978 try {
979 JJCalls p = jj_2_rtns[i];
980 do {
981 if (p.gen > jj_gen) {
982 jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
983 switch (i) {
984 case 0: jj_3_1(); break;
985 case 1: jj_3_2(); break;
986 case 2: jj_3_3(); break;
987 case 3: jj_3_4(); break;
988 case 4: jj_3_5(); break;
989 case 5: jj_3_6(); break;
990 case 6: jj_3_7(); break;
991 case 7: jj_3_8(); break;
992 case 8: jj_3_9(); break;
993 case 9: jj_3_10(); break;
994 case 10: jj_3_11(); break;
995 case 11: jj_3_12(); break;
996 case 12: jj_3_13(); break;
997 case 13: jj_3_14(); break;
998 case 14: jj_3_15(); break;
999 case 15: jj_3_16(); break;
1000 case 16: jj_3_17(); break;
1001 case 17: jj_3_18(); break;
1002 case 18: jj_3_19(); break;
1003 case 19: jj_3_20(); break;
1004 case 20: jj_3_21(); break;
1005 case 21: jj_3_22(); break;
1006 case 22: jj_3_23(); break;
1007 case 23: jj_3_24(); break;
1008 case 24: jj_3_25(); break;
1009 case 25: jj_3_26(); break;
1010 case 26: jj_3_27(); break;
1011 case 27: jj_3_28(); break;
1012 case 28: jj_3_29(); break;
1013 case 29: jj_3_30(); break;
1014 case 30: jj_3_31(); break;
1015 case 31: jj_3_32(); break;
1016 case 32: jj_3_33(); break;
1017 }
1018 }
1019 p = p.next;
1020 } while (p != null);
1021 } catch(LookaheadSuccess ls) { }
1022 }
1023 jj_rescan = false;
1024 }
1025
1026 private void jj_save(int index, int xla) {
1027 JJCalls p = jj_2_rtns[index];
1028 while (p.gen > jj_gen) {
1029 if (p.next == null) { p = p.next = new JJCalls(); break; }
1030 p = p.next;
1031 }
1032 p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
1033 }
1034
1035 static final class JJCalls {
1036 int gen;
1037 Token first;
1038 int arg;
1039 JJCalls next;
1040 }
1041
1042 }