1
2 package zeus.concepts;
3
4 import java.util.*;
5 import java.io.*;
6 import java.lang.reflect.*;
7 import zeus.util.*;
8 import zeus.concepts.fn.*;
9 import zeus.generator.code.*;
10 import zeus.generator.*;
11 import zeus.rete.Action;
12 import zeus.rete.Pattern;
13 import zeus.rete.Rule;
14 import zeus.rete.ReteFact;
15
16 public class Parser implements ParserConstants {
17
18 final public void end_of_file() throws ParseException {
19 jj_consume_token(0);
20 }
21
22 final public AbilityDbItem abilityDbItem(OntologyDb db) throws ParseException {
23 Token t;
24 AbilitySpec a;
25 jj_consume_token(LBRACKET);
26 jj_consume_token(AGENT);
27 t = jj_consume_token(ID);
28 jj_consume_token(ABILITY);
29 a = abilitySpec(db);
30 jj_consume_token(RBRACKET);
31 {if (true) return new AbilityDbItem(t.image,a);}
32 throw new Error("Missing return statement in function");
33 }
34
35 final public Vector abilityDbItemList(OntologyDb db) throws ParseException {
36 Vector result = new Vector();
37 AbilityDbItem a = null;
38 label_1:
39 while (true) {
40 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
41 case LBRACKET:
42 ;
43 break;
44 default:
45 jj_la1[0] = jj_gen;
46 break label_1;
47 }
48 a = abilityDbItem(db);
49 result.addElement(a);
50 }
51 {if (true) return result;}
52 throw new Error("Missing return statement in function");
53 }
54
55 final public AbilitySpec abilitySpec(OntologyDb db) throws ParseException {
56 Fact f;
57 Token t,n;
58 double c;
59 jj_consume_token(LBRACKET);
60 jj_consume_token(FACT);
61 f = fact(db);
62 jj_consume_token(TIME);
63 t = jj_consume_token(INTEGER);
64 jj_consume_token(COST);
65 c = Real();
66 jj_consume_token(NAME);
67 n = jj_consume_token(ID);
68 jj_consume_token(RBRACKET);
69 {if (true) return new AbilitySpec(n.image,f,Integer.parseInt(t.image),c);}
70 throw new Error("Missing return statement in function");
71 }
72
73 final public Vector abilitySpecList(OntologyDb db) throws ParseException {
74 Vector result = new Vector();
75 AbilitySpec a = null;
76 label_2:
77 while (true) {
78 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
79 case LBRACKET:
80 ;
81 break;
82 default:
83 jj_la1[1] = jj_gen;
84 break label_2;
85 }
86 a = abilitySpec(db);
87 result.addElement(a);
88 }
89 {if (true) return result;}
90 throw new Error("Missing return statement in function");
91 }
92
93 final public Restriction restriction(OntologyDb db) throws ParseException {
94 Token taskName, factName, attributeName, attributeValue;
95 jj_consume_token(LBRACKET);
96 jj_consume_token(TASK);
97 taskName = jj_consume_token(ID);
98 jj_consume_token(FACT);
99 factName = jj_consume_token(VARIABLE);
100 jj_consume_token(ATTRIBUTE);
101 attributeName = jj_consume_token(ID);
102 jj_consume_token(VALUE);
103 attributeValue = jj_consume_token(LITERAL);
104 jj_consume_token(RBRACKET);
105 Restriction r = new Restriction(taskName.image, factName.image,
106 attributeName.image,
107 attributeValue.image);
108 {if (true) return (r);}
109 throw new Error("Missing return statement in function");
110 }
111
112 final public Acquaintance acquaintance(OntologyDb db) throws ParseException {
113 Token name, relation;
114 AbilitySpec a;
115 Vector data = new Vector();
116 jj_consume_token(LBRACKET);
117 jj_consume_token(NAME);
118 name = jj_consume_token(ID);
119 jj_consume_token(RELATION);
120 relation = jj_consume_token(ID);
121 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
122 case ABILITIES:
123 jj_consume_token(ABILITIES);
124 jj_consume_token(LBRACKET);
125 label_3:
126 while (true) {
127 a = abilitySpec(db);
128 data.addElement(a);
129 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
130 case LBRACKET:
131 ;
132 break;
133 default:
134 jj_la1[2] = jj_gen;
135 break label_3;
136 }
137 }
138 jj_consume_token(RBRACKET);
139 break;
140 default:
141 jj_la1[3] = jj_gen;
142 ;
143 }
144 jj_consume_token(RBRACKET);
145 {if (true) return new Acquaintance(name.image,relation.image,data);}
146 throw new Error("Missing return statement in function");
147 }
148
149 final public Address address() throws ParseException {
150 Token name, host, port, type;
151 jj_consume_token(LBRACKET);
152 jj_consume_token(NAME);
153 name = jj_consume_token(ID);
154 jj_consume_token(HOST);
155 host = jj_consume_token(LITERAL);
156 jj_consume_token(PORT);
157 port = jj_consume_token(INTEGER);
158 jj_consume_token(TYPE);
159 type = jj_consume_token(ID);
160 jj_consume_token(RBRACKET);
161 {if (true) return new ZeusAddress(name.image,
162 Misc.literalToString(host.image),
163 Integer.parseInt(port.image),type.image);}
164 throw new Error("Missing return statement in function");
165 }
166
167 final public Vector addressList() throws ParseException {
168 Vector result = new Vector();
169 Address a = null;
170 label_4:
171 while (true) {
172 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
173 case LBRACKET:
174 ;
175 break;
176 default:
177 jj_la1[4] = jj_gen;
178 break label_4;
179 }
180 a = address();
181 result.addElement(a);
182 }
183 {if (true) return result;}
184 throw new Error("Missing return statement in function");
185 }
186
187 final public AgentDescription agentDescription(OntologyDb db) throws ParseException {
188 Token name, xclass, width, length, book;
189 Vector tasks = new Vector();
190 Vector protocols = new Vector();
191 Vector acquaintances = new Vector();
192 Vector facts = new Vector();
193 Vector restrictions = new Vector();
194 Token t = null;
195 Acquaintance a = null;
196 ProtocolInfo p = null;
197 Fact f = null;
198 Restriction r = null;
199 jj_consume_token(LBRACKET);
200 jj_consume_token(NAME);
201 name = jj_consume_token(ID);
202 jj_consume_token(CLASS);
203 xclass = jj_consume_token(ID);
204 jj_consume_token(PLANNER_WIDTH);
205 width = jj_consume_token(INTEGER);
206 jj_consume_token(PLANNER_LENGTH);
207 length = jj_consume_token(INTEGER);
208 jj_consume_token(DOUBLE_BOOK_FRACTION);
209 book = jj_consume_token(INTEGER);
210 if (jj_2_1(2)) {
211 jj_consume_token(TASKS);
212 jj_consume_token(LBRACKET);
213 label_5:
214 while (true) {
215 t = jj_consume_token(ID);
216 tasks.addElement(t.image);
217 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
218 case ID:
219 ;
220 break;
221 default:
222 jj_la1[5] = jj_gen;
223 break label_5;
224 }
225 }
226 jj_consume_token(RBRACKET);
227 } else {
228 ;
229 }
230 if (jj_2_2(2)) {
231 jj_consume_token(INITIAL_FACTS);
232 jj_consume_token(LBRACKET);
233 label_6:
234 while (true) {
235 f = fact(db);
236 facts.addElement(f);
237 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
238 case LBRACKET:
239 ;
240 break;
241 default:
242 jj_la1[6] = jj_gen;
243 break label_6;
244 }
245 }
246 jj_consume_token(RBRACKET);
247 } else {
248 ;
249 }
250 if (jj_2_3(2)) {
251 jj_consume_token(PROTOCOLS);
252 jj_consume_token(LBRACKET);
253 label_7:
254 while (true) {
255 p = protocolInfo(db);
256 protocols.addElement(p);
257 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
258 case LBRACKET:
259 ;
260 break;
261 default:
262 jj_la1[7] = jj_gen;
263 break label_7;
264 }
265 }
266 jj_consume_token(RBRACKET);
267 } else {
268 ;
269 }
270 if (jj_2_4(2)) {
271 jj_consume_token(ACQUAINTANCES);
272 jj_consume_token(LBRACKET);
273 label_8:
274 while (true) {
275 a = acquaintance(db);
276 acquaintances.addElement(a);
277 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
278 case LBRACKET:
279 ;
280 break;
281 default:
282 jj_la1[8] = jj_gen;
283 break label_8;
284 }
285 }
286 jj_consume_token(RBRACKET);
287 } else {
288 ;
289 }
290 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
291 case RESTRICTIONS:
292 jj_consume_token(RESTRICTIONS);
293 jj_consume_token(LBRACKET);
294 label_9:
295 while (true) {
296 r = restriction(db);
297 restrictions.addElement (r);
298 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
299 case LBRACKET:
300 ;
301 break;
302 default:
303 jj_la1[9] = jj_gen;
304 break label_9;
305 }
306 }
307 jj_consume_token(RBRACKET);
308 break;
309 default:
310 jj_la1[10] = jj_gen;
311 ;
312 }
313 jj_consume_token(RBRACKET);
314 AgentDescription agent = new AgentDescription();
315 agent.setName(name.image);
316 agent.setAgentClass(xclass.image);
317 agent.setPlannerWidth(Integer.parseInt(width.image));
318 agent.setPlannerLength(Integer.parseInt(length.image));
319 agent.setDoublebookFraction(Integer.parseInt(book.image));
320 agent.setTasks(tasks);
321 agent.setInitialFacts(facts);
322 agent.setProtocols(protocols);
323 agent.setAcquaintances(acquaintances);
324 agent.setRestrictions (restrictions);
325 {if (true) return agent;}
326 throw new Error("Missing return statement in function");
327 }
328
329 final public ConsumerRecord consumerRecord() throws ParseException {
330 Token p, pid, c, cid, u, k, s, a, b;
331 jj_consume_token(LBRACKET);
332 jj_consume_token(PRODUCER);
333 p = jj_consume_token(ID);
334 jj_consume_token(PRODUCER_ID);
335 pid = jj_consume_token(ID);
336 jj_consume_token(CONSUMER);
337 c = jj_consume_token(ID);
338 jj_consume_token(CONSUMER_ID);
339 cid = jj_consume_token(ID);
340 jj_consume_token(USE_REF);
341 u = jj_consume_token(ID);
342 jj_consume_token(COMMS_KEY);
343 k = jj_consume_token(ID);
344 jj_consume_token(START);
345 s = jj_consume_token(INTEGER);
346 jj_consume_token(AMOUNT);
347 a = jj_consume_token(INTEGER);
348 jj_consume_token(CONSUMED);
349 b = jj_consume_token(BOOLEAN);
350 jj_consume_token(RBRACKET);
351 {if (true) return new ConsumerRecord(p.image,pid.image,
352 c.image,cid.image,u.image,k.image,
353 Integer.parseInt(s.image),Integer.parseInt(a.image),
354 (Boolean.valueOf(b.image)).booleanValue());}
355 throw new Error("Missing return statement in function");
356 }
357
358 final public Fact fact(OntologyDb db) throws ParseException {
359 Token type, id, mod, attribute;
360 ValueFunction value = null;
361 Fact f = null;
362 jj_consume_token(LBRACKET);
363 jj_consume_token(TYPE);
364 type = jj_consume_token(ID);
365 jj_consume_token(FID);
366 id = jj_consume_token(ID);
367 jj_consume_token(MODIFIERS);
368 mod = jj_consume_token(INTEGER);
369 int modifiers = Integer.parseInt(mod.image);
370 f = db.getFact(Fact.isVariable(modifiers),type.image);
371 f.setModifiers(modifiers);
372 f.setId(id.image);
373 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
374 case ATTRIBUTES:
375 jj_consume_token(ATTRIBUTES);
376 jj_consume_token(LBRACKET);
377 label_10:
378 while (true) {
379 jj_consume_token(LBRACKET);
380 attribute = jj_consume_token(ID);
381 value = Expression(db);
382 jj_consume_token(RBRACKET);
383 f.setValue(attribute.image,value);
384 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
385 case LBRACKET:
386 ;
387 break;
388 default:
389 jj_la1[11] = jj_gen;
390 break label_10;
391 }
392 }
393 jj_consume_token(RBRACKET);
394 break;
395 default:
396 jj_la1[12] = jj_gen;
397 ;
398 }
399 jj_consume_token(RBRACKET);
400 {if (true) return f;}
401 throw new Error("Missing return statement in function");
402 }
403
404 final public Vector factList(OntologyDb db) throws ParseException {
405 Vector result = new Vector();
406 Fact f = null;
407 label_11:
408 while (true) {
409 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
410 case LBRACKET:
411 ;
412 break;
413 default:
414 jj_la1[13] = jj_gen;
415 break label_11;
416 }
417 f = fact(db);
418 result.addElement(f);
419 }
420 {if (true) return result;}
421 throw new Error("Missing return statement in function");
422 }
423
424 final public FactSummary factSummary(OntologyDb db) throws ParseException {
425 Fact f;
426 Token t;
427 jj_consume_token(LBRACKET);
428 jj_consume_token(FACT);
429 f = fact(db);
430 jj_consume_token(STATUS);
431 t = jj_consume_token(ID);
432 jj_consume_token(RBRACKET);
433 {if (true) return new FactSummary(f,t.image);}
434 throw new Error("Missing return statement in function");
435 }
436
437 final public Goal goal(OntologyDb db) throws ParseException {
438 Token id, t, s, e, p, d, lhs, rhs;
439 Goal goal = null;
440 Fact f = null;
441 Vector temp = new Vector();
442 String user_object = null;
443 String user_type = null;
444 ResolutionContext context = null;
445 SuppliedDb given = null;
446 ProducerRecord producer = null;
447 ConsumerRecord consumer = null;
448 double c;
449 jj_consume_token(LBRACKET);
450 jj_consume_token(FID);
451 id = jj_consume_token(ID);
452 jj_consume_token(DESIRED);
453 d = jj_consume_token(ID);
454 jj_consume_token(TYPE);
455 t = jj_consume_token(BOOLEAN);
456 jj_consume_token(FACT);
457 f = fact(db);
458 goal = new Goal((Boolean.valueOf(t.image)).booleanValue(),
459 id.image,f,d.image);
460 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
461 case IMAGE:
462 jj_consume_token(IMAGE);
463 t = jj_consume_token(ID);
464 goal.setImage(t.image);
465 break;
466 default:
467 jj_la1[14] = jj_gen;
468 ;
469 }
470 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
471 case START_TIME:
472 jj_consume_token(START_TIME);
473 s = jj_consume_token(INTEGER);
474 goal.setStartTime(Integer.parseInt(s.image));
475 break;
476 default:
477 jj_la1[15] = jj_gen;
478 ;
479 }
480 jj_consume_token(END_TIME);
481 e = jj_consume_token(INTEGER);
482 jj_consume_token(COST);
483 c = Real();
484 jj_consume_token(PRIORITY);
485 p = jj_consume_token(INTEGER);
486 goal.setEndTime(Integer.parseInt(e.image));
487 goal.setCost(c);
488 goal.setPriority(Integer.parseInt(p.image));
489 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
490 case INVOCATIONS:
491 jj_consume_token(INVOCATIONS);
492 t = jj_consume_token(INTEGER);
493 goal.setInvocations(Integer.parseInt(t.image));
494 break;
495 default:
496 jj_la1[16] = jj_gen;
497 ;
498 }
499 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
500 case ROOT_ID:
501 jj_consume_token(ROOT_ID);
502 t = jj_consume_token(ID);
503 goal.setRootId(t.image);
504 break;
505 default:
506 jj_la1[17] = jj_gen;
507 ;
508 }
509 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
510 case MEDIA:
511 jj_consume_token(MEDIA);
512 temp.removeAllElements();
513 jj_consume_token(LBRACKET);
514 label_12:
515 while (true) {
516 lhs = jj_consume_token(LITERAL);
517 rhs = jj_consume_token(LITERAL);
518 temp.addElement(Misc.literalToString(lhs.image));
519 temp.addElement(Misc.literalToString(rhs.image));
520 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
521 case LITERAL:
522 ;
523 break;
524 default:
525 jj_la1[18] = jj_gen;
526 break label_12;
527 }
528 }
529 jj_consume_token(RBRACKET);
530 String[] array = Misc.stringArray(temp);
531 goal.setTargetMedia(array);
532 break;
533 default:
534 jj_la1[19] = jj_gen;
535 ;
536 }
537 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
538 case REPLY_TIME:
539 jj_consume_token(REPLY_TIME);
540 t = jj_consume_token(REAL);
541 goal.setReplyTime((Double.valueOf(t.image)).doubleValue());
542 break;
543 default:
544 jj_la1[20] = jj_gen;
545 ;
546 }
547 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
548 case CONFIRM_TIME:
549 jj_consume_token(CONFIRM_TIME);
550 t = jj_consume_token(REAL);
551 goal.setConfirmTime((Double.valueOf(t.image)).doubleValue());
552 break;
553 default:
554 jj_la1[21] = jj_gen;
555 ;
556 }
557 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
558 case USER_DATA_TYPE:
559 jj_consume_token(USER_DATA_TYPE);
560 t = jj_consume_token(LITERAL);
561 user_type = Misc.literalToString(t.image);
562 goal.setUserDataType(user_type);
563 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
564 case USER_DATA:
565 jj_consume_token(USER_DATA);
566 t = jj_consume_token(OPAQUE);
567 user_object = Misc.opaqueToString(t.image);
568 try {
569 Class x = Class.forName(user_type);
570 Class[] parameter_types = new Class[1];
571 Object[] arglist = new Object[1];
572 parameter_types[0] = Class.forName("java.lang.String");
573 arglist[0] = user_object;
574
575 Constructor ct = x.getConstructor(parameter_types);
576 Object user_data = ct.newInstance(arglist);
577 goal.setUserData(user_data);
578 }
579 catch(Throwable err) {
580 Core.USER_ERROR("Error creating user data: " + err);
581 }
582 break;
583 default:
584 jj_la1[22] = jj_gen;
585 ;
586 }
587 break;
588 default:
589 jj_la1[23] = jj_gen;
590 ;
591 }
592 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
593 case CONTEXT:
594 jj_consume_token(CONTEXT);
595 context = resolutionContext(db);
596 goal.setResolutionContext(context);
597 break;
598 default:
599 jj_la1[24] = jj_gen;
600 ;
601 }
602 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
603 case GIVEN:
604 jj_consume_token(GIVEN);
605 jj_consume_token(LBRACKET);
606 given = suppliedDb(db);
607 jj_consume_token(RBRACKET);
608 goal.setSuppliedDb(given);
609 break;
610 default:
611 jj_la1[25] = jj_gen;
612 ;
613 }
614 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
615 case PRODUCER_RECORDS:
616 jj_consume_token(PRODUCER_RECORDS);
617 jj_consume_token(LBRACKET);
618 label_13:
619 while (true) {
620 producer = producerRecord();
621 goal.addProducer(producer);
622 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
623 case LBRACKET:
624 ;
625 break;
626 default:
627 jj_la1[26] = jj_gen;
628 break label_13;
629 }
630 }
631 jj_consume_token(RBRACKET);
632 break;
633 default:
634 jj_la1[27] = jj_gen;
635 ;
636 }
637 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
638 case CONSUMER_RECORDS:
639 jj_consume_token(CONSUMER_RECORDS);
640 jj_consume_token(LBRACKET);
641 label_14:
642 while (true) {
643 consumer = consumerRecord();
644 goal.addConsumer(consumer);
645 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
646 case LBRACKET:
647 ;
648 break;
649 default:
650 jj_la1[28] = jj_gen;
651 break label_14;
652 }
653 }
654 jj_consume_token(RBRACKET);
655 break;
656 default:
657 jj_la1[29] = jj_gen;
658 ;
659 }
660 jj_consume_token(RBRACKET);
661 {if (true) return goal;}
662 throw new Error("Missing return statement in function");
663 }
664
665 final public Vector goalList(OntologyDb db) throws ParseException {
666 Vector result = new Vector();
667 Goal g = null;
668 label_15:
669 while (true) {
670 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
671 case LBRACKET:
672 ;
673 break;
674 default:
675 jj_la1[30] = jj_gen;
676 break label_15;
677 }
678 g = goal(db);
679 result.addElement(g);
680 }
681 {if (true) return result;}
682 throw new Error("Missing return statement in function");
683 }
684
685 final public GoalSummary goalSummary() throws ParseException {
686 Token id, type, status, owner, item;
687 jj_consume_token(LBRACKET);
688 jj_consume_token(FID);
689 id = jj_consume_token(ID);
690 jj_consume_token(TYPE);
691 type = jj_consume_token(ID);
692 jj_consume_token(STATUS);
693 status = jj_consume_token(ID);
694 jj_consume_token(OWNER);
695 owner = jj_consume_token(ID);
696 jj_consume_token(ITEM);
697 item = jj_consume_token(ID);
698 jj_consume_token(RBRACKET);
699 {if (true) return new GoalSummary(id.image,type.image,status.image,
700 owner.image,item.image);}
701 throw new Error("Missing return statement in function");
702 }
703
704 final public ProducerRecord producerRecord() throws ParseException {
705 ProducerRecord record = null;
706 Token s, u, k, p, pid, c, cid;
707 jj_consume_token(LBRACKET);
708 jj_consume_token(SUPPLY_REF);
709 s = jj_consume_token(ID);
710 jj_consume_token(USE_REF);
711 u = jj_consume_token(ID);
712 jj_consume_token(COMMS_KEY);
713 k = jj_consume_token(ID);
714 jj_consume_token(PRODUCER);
715 p = jj_consume_token(ID);
716 jj_consume_token(PRODUCER_ID);
717 pid = jj_consume_token(ID);
718 jj_consume_token(CONSUMER);
719 c = jj_consume_token(ID);
720 jj_consume_token(CONSUMER_ID);
721 cid = jj_consume_token(ID);
722 jj_consume_token(RBRACKET);
723 {if (true) return new ProducerRecord(s.image,u.image,k.image,
724 p.image,pid.image,c.image,cid.image);}
725 throw new Error("Missing return statement in function");
726 }
727
728 final public ProtocolInfo protocolInfo(OntologyDb db) throws ParseException {
729 StrategyInfo info = null;
730 Vector constraints = new Vector();
731 Token name, type;
732 jj_consume_token(LBRACKET);
733 jj_consume_token(NAME);
734 name = jj_consume_token(LITERAL);
735 jj_consume_token(TYPE);
736 type = jj_consume_token(ID);
737 jj_consume_token(CONSTRAINTS);
738 jj_consume_token(LBRACKET);
739 label_16:
740 while (true) {
741 info = strategyInfo(db);
742 constraints.addElement(info);
743 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
744 case LBRACKET:
745 ;
746 break;
747 default:
748 jj_la1[31] = jj_gen;
749 break label_16;
750 }
751 }
752 jj_consume_token(RBRACKET);
753 jj_consume_token(RBRACKET);
754 {if (true) return new ProtocolInfo(Misc.literalToString(name.image),
755 type.image,constraints);}
756 throw new Error("Missing return statement in function");
757 }
758
759 final public StrategyInfo strategyInfo(OntologyDb db) throws ParseException {
760 StrategyInfo info = null;
761 Token name, type, key, value;
762 Hashtable param;
763 Vector agents = new Vector();
764 Vector relations = new Vector();
765 Fact f = null;
766 int type_val = StrategyInfo.USE;
767 jj_consume_token(LBRACKET);
768 jj_consume_token(FACT);
769 f = fact(db);
770 jj_consume_token(TYPE);
771 type = jj_consume_token(INTEGER);
772 type_val = Integer.parseInt(type.image);
773 if ( type_val == StrategyInfo.NO_USE )
774 info = new StrategyInfo(f);
775 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
776 case STRATEGY:
777 jj_consume_token(STRATEGY);
778 name = jj_consume_token(LITERAL);
779 info = new StrategyInfo(f,Misc.literalToString(name.image));
780 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
781 case PARAMETERS:
782 jj_consume_token(PARAMETERS);
783 jj_consume_token(LBRACKET);
784 param = new Hashtable();
785 label_17:
786 while (true) {
787 key = jj_consume_token(LITERAL);
788 value = jj_consume_token(LITERAL);
789 param.put(Misc.literalToString(key.image),
790 Misc.literalToString(value.image));
791 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
792 case LITERAL:
793 ;
794 break;
795 default:
796 jj_la1[32] = jj_gen;
797 break label_17;
798 }
799 }
800 jj_consume_token(RBRACKET);
801 info.setParameters(param);
802 break;
803 default:
804 jj_la1[33] = jj_gen;
805 ;
806 }
807 break;
808 default:
809 jj_la1[34] = jj_gen;
810 ;
811 }
812 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
813 case AGENTS:
814 jj_consume_token(AGENTS);
815 jj_consume_token(LBRACKET);
816 label_18:
817 while (true) {
818 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
819 case ID:
820 ;
821 break;
822 default:
823 jj_la1[35] = jj_gen;
824 break label_18;
825 }
826 name = jj_consume_token(ID);
827 agents.addElement(name.image);
828 }
829 jj_consume_token(RBRACKET);
830 info.setAgents(agents);
831 break;
832 default:
833 jj_la1[36] = jj_gen;
834 ;
835 }
836 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
837 case RELATIONS:
838 jj_consume_token(RELATIONS);
839 jj_consume_token(LBRACKET);
840 label_19:
841 while (true) {
842 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
843 case ID:
844 ;
845 break;
846 default:
847 jj_la1[37] = jj_gen;
848 break label_19;
849 }
850 name = jj_consume_token(ID);
851 relations.addElement(name.image);
852 }
853 jj_consume_token(RBRACKET);
854 info.setRelations(relations);
855 break;
856 default:
857 jj_la1[38] = jj_gen;
858 ;
859 }
860 jj_consume_token(RBRACKET);
861 {if (true) return info;}
862 throw new Error("Missing return statement in function");
863 }
864
865 final public Relationship relationship() throws ParseException {
866 Token name, relation;
867 jj_consume_token(LBRACKET);
868 jj_consume_token(NAME);
869 name = jj_consume_token(ID);
870 jj_consume_token(RELATION);
871 relation = jj_consume_token(ID);
872 jj_consume_token(RBRACKET);
873 {if (true) return new Relationship(name.image,relation.image);}
874 throw new Error("Missing return statement in function");
875 }
876
877 final public Vector relationshipList() throws ParseException {
878 Vector result = new Vector();
879 Relationship r = null;
880 label_20:
881 while (true) {
882 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
883 case LBRACKET:
884 ;
885 break;
886 default:
887 jj_la1[39] = jj_gen;
888 break label_20;
889 }
890 r = relationship();
891 result.addElement(r);
892 }
893 {if (true) return result;}
894 throw new Error("Missing return statement in function");
895 }
896
897 final public ReportRec reportRec(OntologyDb db) throws ParseException {
898 Token n, g, t, a, s, o, r, e;
899 double c;
900 ReportRec rec = null;
901 Vector consumed = new Vector();
902 Vector produced = new Vector();
903 Fact f;
904 jj_consume_token(LBRACKET);
905 jj_consume_token(NAME);
906 n = jj_consume_token(ID);
907 jj_consume_token(GOAL);
908 g = jj_consume_token(ID);
909 jj_consume_token(TASK);
910 t = jj_consume_token(ID);
911 jj_consume_token(AGENT);
912 a = jj_consume_token(ID);
913 jj_consume_token(STATE);
914 s = jj_consume_token(INTEGER);
915 jj_consume_token(OWNER);
916 o = jj_consume_token(ID);
917 jj_consume_token(ROOT_ID);
918 r = jj_consume_token(ID);
919 rec = new ReportRec(n.image,g.image);
920 rec.setTask(t.image);
921 rec.setAgent(a.image);
922 rec.setState(Integer.parseInt(s.image));
923 rec.setOwner(o.image);
924 rec.setRootId(r.image);
925 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
926 case PARENT:
927 jj_consume_token(PARENT);
928 n = jj_consume_token(ID);
929 rec.setParent(n.image);
930 break;
931 default:
932 jj_la1[40] = jj_gen;
933 ;
934 }
935 jj_consume_token(START_TIME);
936 s = jj_consume_token(INTEGER);
937 jj_consume_token(END_TIME);
938 e = jj_consume_token(INTEGER);
939 jj_consume_token(COST);
940 c = Real();
941 rec.setStartTime(Integer.parseInt(s.image));
942 rec.setEndTime(Integer.parseInt(e.image));
943 rec.setCost(c);
944 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
945 case CHILDREN:
946 jj_consume_token(CHILDREN);
947 jj_consume_token(LBRACKET);
948 label_21:
949 while (true) {
950 t = jj_consume_token(ID);
951 rec.addChild(t.image);
952 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
953 case ID:
954 ;
955 break;
956 default:
957 jj_la1[41] = jj_gen;
958 break label_21;
959 }
960 }
961 jj_consume_token(RBRACKET);
962 break;
963 default:
964 jj_la1[42] = jj_gen;
965 ;
966 }
967 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
968 case SIBLINGS:
969 jj_consume_token(SIBLINGS);
970 jj_consume_token(LBRACKET);
971 label_22:
972 while (true) {
973 t = jj_consume_token(ID);
974 rec.addSibling(t.image);
975 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
976 case ID:
977 ;
978 break;
979 default:
980 jj_la1[43] = jj_gen;
981 break label_22;
982 }
983 }
984 jj_consume_token(RBRACKET);
985 break;
986 default:
987 jj_la1[44] = jj_gen;
988 ;
989 }
990 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
991 case PARENTS:
992 jj_consume_token(PARENTS);
993 jj_consume_token(LBRACKET);
994 label_23:
995 while (true) {
996 t = jj_consume_token(ID);
997 rec.addParent(t.image);
998 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
999 case ID:
1000 ;
1001 break;
1002 default:
1003 jj_la1[45] = jj_gen;
1004 break label_23;
1005 }
1006 }
1007 jj_consume_token(RBRACKET);
1008 break;
1009 default:
1010 jj_la1[46] = jj_gen;
1011 ;
1012 }
1013 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1014 case CONSUMED_FACTS:
1015 jj_consume_token(CONSUMED_FACTS);
1016 jj_consume_token(LBRACKET);
1017 label_24:
1018 while (true) {
1019 f = fact(db);
1020 consumed.addElement(f);
1021 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1022 case LBRACKET:
1023 ;
1024 break;
1025 default:
1026 jj_la1[47] = jj_gen;
1027 break label_24;
1028 }
1029 }
1030 jj_consume_token(RBRACKET);
1031 rec.setPreconditions(consumed);
1032 break;
1033 default:
1034 jj_la1[48] = jj_gen;
1035 ;
1036 }
1037 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1038 case PRODUCED_FACTS:
1039 jj_consume_token(PRODUCED_FACTS);
1040 jj_consume_token(LBRACKET);
1041 label_25:
1042 while (true) {
1043 f = fact(db);
1044 produced.addElement(f);
1045 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1046 case LBRACKET:
1047 ;
1048 break;
1049 default:
1050 jj_la1[49] = jj_gen;
1051 break label_25;
1052 }
1053 }
1054 jj_consume_token(RBRACKET);
1055 rec.setPostconditions(produced);
1056 break;
1057 default:
1058 jj_la1[50] = jj_gen;
1059 ;
1060 }
1061 jj_consume_token(RBRACKET);
1062 {if (true) return rec;}
1063 throw new Error("Missing return statement in function");
1064 }
1065
1066 final public ReservationEntry reservationEntry() throws ParseException {
1067 Token id, st, co, am, ag, gd, ck;
1068 jj_consume_token(LBRACKET);
1069 jj_consume_token(FID);
1070 id = jj_consume_token(ID);
1071 jj_consume_token(START);
1072 st = jj_consume_token(INTEGER);
1073 jj_consume_token(CONSUMED);
1074 co = jj_consume_token(BOOLEAN);
1075 jj_consume_token(AMOUNT);
1076 am = jj_consume_token(INTEGER);
1077 jj_consume_token(AGENT);
1078 ag = jj_consume_token(ID);
1079 jj_consume_token(GOAL_ID);
1080 gd = jj_consume_token(ID);
1081 jj_consume_token(COMMS_KEY);
1082 ck = jj_consume_token(ID);
1083 jj_consume_token(RBRACKET);
1084 {if (true) return new ReservationEntry(id.image,
1085 Integer.parseInt(st.image),
1086 (Boolean.valueOf(co.image)).booleanValue(),
1087 Integer.parseInt(am.image), ag.image, gd.image, ck.image);}
1088 throw new Error("Missing return statement in function");
1089 }
1090
1091 final public RoutingRecord routingRecord() throws ParseException {
1092 Token p, pid, c, cid, uid, key;
1093 jj_consume_token(LBRACKET);
1094 jj_consume_token(PRODUCER);
1095 p = jj_consume_token(ID);
1096 jj_consume_token(PRODUCER_ID);
1097 pid = jj_consume_token(ID);
1098 jj_consume_token(CONSUMER);
1099 c = jj_consume_token(ID);
1100 jj_consume_token(CONSUMER_ID);
1101 cid = jj_consume_token(ID);
1102 jj_consume_token(USE_REF);
1103 uid = jj_consume_token(ID);
1104 jj_consume_token(COMMS_KEY);
1105 key = jj_consume_token(ID);
1106 jj_consume_token(RBRACKET);
1107 {if (true) return new RoutingRecord(p.image,pid.image,c.image,
1108 cid.image,uid.image,key.image);}
1109 throw new Error("Missing return statement in function");
1110 }
1111
1112 final public SuppliedDb suppliedDb(OntologyDb db) throws ParseException {
1113 SuppliedDb suppliedDb = new SuppliedDb(db);
1114 SuppliedItem item = null;
1115 label_26:
1116 while (true) {
1117 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1118 case LBRACKET:
1119 ;
1120 break;
1121 default:
1122 jj_la1[51] = jj_gen;
1123 break label_26;
1124 }
1125 item = suppliedItem(db);
1126 suppliedDb.add(item);
1127 }
1128 {if (true) return suppliedDb;}
1129 throw new Error("Missing return statement in function");
1130 }
1131
1132 final public SuppliedItem suppliedItem(OntologyDb db) throws ParseException {
1133 Token fid, lid, sid;
1134 Fact f = null;
1135 SuppliedItem item = null;
1136 ReservationEntry entry;
1137 jj_consume_token(LBRACKET);
1138 jj_consume_token(FID);
1139 fid = jj_consume_token(ID);
1140 jj_consume_token(LINK);
1141 lid = jj_consume_token(LITERAL);
1142 jj_consume_token(FACT);
1143 f = fact(db);
1144 jj_consume_token(SUPPLIER);
1145 sid = jj_consume_token(ID);
1146 item = new SuppliedItem(fid.image,Misc.literalToString(lid.image),sid.image,f);
1147 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1148 case RESERVATIONS:
1149 jj_consume_token(RESERVATIONS);
1150 jj_consume_token(LBRACKET);
1151 label_27:
1152 while (true) {
1153 entry = reservationEntry();
1154 Core.ERROR(item.reserve(entry),1,"Parser:suppliedItem");
1155 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1156 case LBRACKET:
1157 ;
1158 break;
1159 default:
1160 jj_la1[52] = jj_gen;
1161 break label_27;
1162 }
1163 }
1164 jj_consume_token(RBRACKET);
1165 break;
1166 default:
1167 jj_la1[53] = jj_gen;
1168 ;
1169 }
1170 jj_consume_token(RBRACKET);
1171 {if (true) return item;}
1172 throw new Error("Missing return statement in function");
1173 }
1174
1175 final public ResolutionContext resolutionContext(OntologyDb db) throws ParseException {
1176 Fact f = null;
1177 ResolutionContext context = new ResolutionContext();
1178 label_28:
1179 while (true) {
1180 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1181 case LBRACKET:
1182 ;
1183 break;
1184 default:
1185 jj_la1[54] = jj_gen;
1186 break label_28;
1187 }
1188 f = fact(db);
1189 context.add(f);
1190 }
1191 {if (true) return context;}
1192 throw new Error("Missing return statement in function");
1193 }
1194
1195 final public AbstractTask abstractTask(OntologyDb db) throws ParseException {
1196 AbstractTask t = null;
1197 if (jj_2_5(2)) {
1198 t = primitiveTask(db);
1199 } else if (jj_2_6(2)) {
1200 t = summaryTask(db);
1201 } else if (jj_2_7(2)) {
1202 t = reteKB(db);
1203 } else if (jj_2_8(2)) {
1204 t = planScript(db);
1205 } else {
1206 jj_consume_token(-1);
1207 throw new ParseException();
1208 }
1209 {if (true) return t;}
1210 throw new Error("Missing return statement in function");
1211 }
1212
1213 final public PrimitiveTask primitiveTask(OntologyDb db) throws ParseException {
1214 Token t;
1215 ValueFunction time = null, cost = null, fn = null;
1216 Vector produced = new Vector();
1217 Vector consumed = new Vector();
1218 Vector ordering = new Vector();
1219 Vector constraints = new Vector();
1220 Fact f = null;
1221 Ordering order = null;
1222 jj_consume_token(LBRACKET);
1223 jj_consume_token(PRIMITIVE);
1224 t = jj_consume_token(ID);
1225 jj_consume_token(TIME);
1226 jj_consume_token(LBRACKET);
1227 time = Expression(db);
1228 jj_consume_token(RBRACKET);
1229 jj_consume_token(COST);
1230 jj_consume_token(LBRACKET);
1231 cost = Expression(db);
1232 jj_consume_token(RBRACKET);
1233 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1234 case CONSUMED_FACTS:
1235 jj_consume_token(CONSUMED_FACTS);
1236 jj_consume_token(LBRACKET);
1237 label_29:
1238 while (true) {
1239 f = fact(db);
1240 consumed.addElement(f);
1241 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1242 case LBRACKET:
1243 ;
1244 break;
1245 default:
1246 jj_la1[55] = jj_gen;
1247 break label_29;
1248 }
1249 }
1250 jj_consume_token(RBRACKET);
1251 break;
1252 default:
1253 jj_la1[56] = jj_gen;
1254 ;
1255 }
1256 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1257 case PRODUCED_FACTS:
1258 jj_consume_token(PRODUCED_FACTS);
1259 jj_consume_token(LBRACKET);
1260 label_30:
1261 while (true) {
1262 f = fact(db);
1263 produced.addElement(f);
1264 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1265 case LBRACKET:
1266 ;
1267 break;
1268 default:
1269 jj_la1[57] = jj_gen;
1270 break label_30;
1271 }
1272 }
1273 jj_consume_token(RBRACKET);
1274 break;
1275 default:
1276 jj_la1[58] = jj_gen;
1277 ;
1278 }
1279 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1280 case CONSTRAINTS:
1281 jj_consume_token(CONSTRAINTS);
1282 jj_consume_token(LBRACKET);
1283 label_31:
1284 while (true) {
1285 jj_consume_token(LBRACKET);
1286 fn = Expression(db);
1287 jj_consume_token(RBRACKET);
1288 constraints.addElement(fn);
1289 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1290 case LBRACKET:
1291 ;
1292 break;
1293 default:
1294 jj_la1[59] = jj_gen;
1295 break label_31;
1296 }
1297 }
1298 jj_consume_token(RBRACKET);
1299 break;
1300 default:
1301 jj_la1[60] = jj_gen;
1302 ;
1303 }
1304 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1305 case ORDERING:
1306 jj_consume_token(ORDERING);
1307 jj_consume_token(LBRACKET);
1308 label_32:
1309 while (true) {
1310 order = ordering();
1311 ordering.addElement(order);
1312 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1313 case LBRACKET:
1314 ;
1315 break;
1316 default:
1317 jj_la1[61] = jj_gen;
1318 break label_32;
1319 }
1320 }
1321 jj_consume_token(RBRACKET);
1322 break;
1323 default:
1324 jj_la1[62] = jj_gen;
1325 ;
1326 }
1327 jj_consume_token(RBRACKET);
1328 {if (true) return new PrimitiveTask(t.image,time,cost,produced,
1329 consumed,constraints,ordering);}
1330 throw new Error("Missing return statement in function");
1331 }
1332
1333 final public SummaryTask summaryTask(OntologyDb db) throws ParseException {
1334 Token name;
1335 ValueFunction cost = null, time = null, fn = null;
1336 Vector nodes = new Vector();
1337 Vector links = new Vector();
1338 Vector constraints = new Vector();
1339 TaskNode node = null;
1340 TaskLink link = null;
1341 jj_consume_token(LBRACKET);
1342 jj_consume_token(SUMMARY);
1343 name = jj_consume_token(ID);
1344 jj_consume_token(IS_AUTORUN);
1345 jj_consume_token(BOOLEAN);
1346 jj_consume_token(TIME);
1347 jj_consume_token(LBRACKET);
1348 time = Expression(db);
1349 jj_consume_token(RBRACKET);
1350 jj_consume_token(COST);
1351 jj_consume_token(LBRACKET);
1352 cost = Expression(db);
1353 jj_consume_token(RBRACKET);
1354 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1355 case NODES:
1356 jj_consume_token(NODES);
1357 jj_consume_token(LBRACKET);
1358 label_33:
1359 while (true) {
1360 node = taskNode(db);
1361 nodes.addElement(node);
1362 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1363 case LBRACKET:
1364 ;
1365 break;
1366 default:
1367 jj_la1[63] = jj_gen;
1368 break label_33;
1369 }
1370 }
1371 jj_consume_token(RBRACKET);
1372 break;
1373 default:
1374 jj_la1[64] = jj_gen;
1375 ;
1376 }
1377 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1378 case LINKS:
1379 jj_consume_token(LINKS);
1380 jj_consume_token(LBRACKET);
1381 label_34:
1382 while (true) {
1383 link = taskLink();
1384 links.addElement(link);
1385 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1386 case LBRACKET:
1387 ;
1388 break;
1389 default:
1390 jj_la1[65] = jj_gen;
1391 break label_34;
1392 }
1393 }
1394 jj_consume_token(RBRACKET);
1395 break;
1396 default:
1397 jj_la1[66] = jj_gen;
1398 ;
1399 }
1400 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1401 case CONSTRAINTS:
1402 jj_consume_token(CONSTRAINTS);
1403 jj_consume_token(LBRACKET);
1404 label_35:
1405 while (true) {
1406 jj_consume_token(LBRACKET);
1407 fn = Expression(db);
1408 jj_consume_token(RBRACKET);
1409 constraints.addElement(fn);
1410 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1411 case LBRACKET:
1412 ;
1413 break;
1414 default:
1415 jj_la1[67] = jj_gen;
1416 break label_35;
1417 }
1418 }
1419 jj_consume_token(RBRACKET);
1420 break;
1421 default:
1422 jj_la1[68] = jj_gen;
1423 ;
1424 }
1425 jj_consume_token(RBRACKET);
1426 {if (true) return new SummaryTask(name.image, time, cost,
1427 nodes, links, constraints);}
1428 throw new Error("Missing return statement in function");
1429 }
1430
1431 final public PlanScript planScript(OntologyDb db) throws ParseException {
1432 Token name, autorun;
1433 ValueFunction cost = null, time = null, fn = null;
1434 Vector nodes = new Vector();
1435 Vector links = new Vector();
1436 Vector constraints = new Vector();
1437 TaskNode node = null;
1438 TaskLink link = null;
1439 jj_consume_token(LBRACKET);
1440 jj_consume_token(SCRIPT);
1441 name = jj_consume_token(ID);
1442 jj_consume_token(IS_AUTORUN);
1443 autorun = jj_consume_token(BOOLEAN);
1444 jj_consume_token(TIME);
1445 jj_consume_token(LBRACKET);
1446 time = Expression(db);
1447 jj_consume_token(RBRACKET);
1448 jj_consume_token(COST);
1449 jj_consume_token(LBRACKET);
1450 cost = Expression(db);
1451 jj_consume_token(RBRACKET);
1452 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1453 case NODES:
1454 jj_consume_token(NODES);
1455 jj_consume_token(LBRACKET);
1456 label_36:
1457 while (true) {
1458 node = taskNode(db);
1459 nodes.addElement(node);
1460 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1461 case LBRACKET:
1462 ;
1463 break;
1464 default:
1465 jj_la1[69] = jj_gen;
1466 break label_36;
1467 }
1468 }
1469 jj_consume_token(RBRACKET);
1470 break;
1471 default:
1472 jj_la1[70] = jj_gen;
1473 ;
1474 }
1475 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1476 case LINKS:
1477 jj_consume_token(LINKS);
1478 jj_consume_token(LBRACKET);
1479 label_37:
1480 while (true) {
1481 link = taskLink();
1482 links.addElement(link);
1483 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1484 case LBRACKET:
1485 ;
1486 break;
1487 default:
1488 jj_la1[71] = jj_gen;
1489 break label_37;
1490 }
1491 }
1492 jj_consume_token(RBRACKET);
1493 break;
1494 default:
1495 jj_la1[72] = jj_gen;
1496 ;
1497 }
1498 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1499 case CONSTRAINTS:
1500 jj_consume_token(CONSTRAINTS);
1501 jj_consume_token(LBRACKET);
1502 label_38:
1503 while (true) {
1504 jj_consume_token(LBRACKET);
1505 fn = Expression(db);
1506 jj_consume_token(RBRACKET);
1507 constraints.addElement(fn);
1508 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1509 case LBRACKET:
1510 ;
1511 break;
1512 default:
1513 jj_la1[73] = jj_gen;
1514 break label_38;
1515 }
1516 }
1517 jj_consume_token(RBRACKET);
1518 break;
1519 default:
1520 jj_la1[74] = jj_gen;
1521 ;
1522 }
1523 jj_consume_token(RBRACKET);
1524 {if (true) return new PlanScript(name.image, (Boolean.valueOf(autorun.image)).booleanValue(),
1525 time, cost, nodes, links, constraints);}
1526 throw new Error("Missing return statement in function");
1527 }
1528
1529 final public TaskLink taskLink() throws ParseException {
1530 Token lhs, rhs, larg, rarg, lgrp, rgrp;
1531 jj_consume_token(LBRACKET);
1532 jj_consume_token(LEFT_NODE);
1533 lhs = jj_consume_token(ID);
1534 jj_consume_token(LEFT_GROUP);
1535 lgrp = jj_consume_token(ID);
1536 jj_consume_token(LEFT_ARG);
1537 larg = jj_consume_token(VARIABLE);
1538 jj_consume_token(RIGHT_NODE);
1539 rhs = jj_consume_token(ID);
1540 jj_consume_token(RIGHT_GROUP);
1541 rgrp = jj_consume_token(ID);
1542 jj_consume_token(RIGHT_ARG);
1543 rarg = jj_consume_token(VARIABLE);
1544 jj_consume_token(RBRACKET);
1545 {if (true) return new TaskLink(lhs.image,lgrp.image,larg.image,
1546 rhs.image,rgrp.image,rarg.image);}
1547 throw new Error("Missing return statement in function");
1548 }
1549
1550 final public TaskNode taskNode(OntologyDb db) throws ParseException {
1551 Token id, type;
1552 Fact f;
1553 Vector data = new Vector();
1554 TaskNode node = null;
1555 jj_consume_token(LBRACKET);
1556 jj_consume_token(NAME);
1557 id = jj_consume_token(ID);
1558 jj_consume_token(IS_CONDITIONAL);
1559 type = jj_consume_token(BOOLEAN);
1560 if ( (Boolean.valueOf(type.image)).booleanValue() )
1561 node = new ConditionalNode(id.image);
1562 else
1563 node = new TaskNode(id.image);
1564 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1565 case CONSUMED_FACTS:
1566 jj_consume_token(CONSUMED_FACTS);
1567 jj_consume_token(LBRACKET);
1568 label_39:
1569 while (true) {
1570 jj_consume_token(LBRACKET);
1571 jj_consume_token(GROUP);
1572 id = jj_consume_token(ID);
1573 data.removeAllElements();
1574 jj_consume_token(LBRACKET);
1575 label_40:
1576 while (true) {
1577 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1578 case LBRACKET:
1579 ;
1580 break;
1581 default:
1582 jj_la1[75] = jj_gen;
1583 break label_40;
1584 }
1585 f = fact(db);
1586 data.addElement(f);
1587 }
1588 jj_consume_token(RBRACKET);
1589 node.setPreconditions(id.image,data);
1590 jj_consume_token(RBRACKET);
1591 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1592 case LBRACKET:
1593 ;
1594 break;
1595 default:
1596 jj_la1[76] = jj_gen;
1597 break label_39;
1598 }
1599 }
1600 jj_consume_token(RBRACKET);
1601 break;
1602 default:
1603 jj_la1[77] = jj_gen;
1604 ;
1605 }
1606 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1607 case PRODUCED_FACTS:
1608 jj_consume_token(PRODUCED_FACTS);
1609 jj_consume_token(LBRACKET);
1610 label_41:
1611 while (true) {
1612 jj_consume_token(LBRACKET);
1613 jj_consume_token(GROUP);
1614 id = jj_consume_token(ID);
1615 data.removeAllElements();
1616 jj_consume_token(LBRACKET);
1617 label_42:
1618 while (true) {
1619 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1620 case LBRACKET:
1621 ;
1622 break;
1623 default:
1624 jj_la1[78] = jj_gen;
1625 break label_42;
1626 }
1627 f = fact(db);
1628 data.addElement(f);
1629 }
1630 jj_consume_token(RBRACKET);
1631 node.setPostconditions(id.image,data);
1632 jj_consume_token(RBRACKET);
1633 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1634 case LBRACKET:
1635 ;
1636 break;
1637 default:
1638 jj_la1[79] = jj_gen;
1639 break label_41;
1640 }
1641 }
1642 jj_consume_token(RBRACKET);
1643 break;
1644 default:
1645 jj_la1[80] = jj_gen;
1646 ;
1647 }
1648 jj_consume_token(RBRACKET);
1649 {if (true) return node;}
1650 throw new Error("Missing return statement in function");
1651 }
1652
1653 final public AbstractTask reteKB(OntologyDb db) throws ParseException {
1654 ReteKB kb;
1655 Token t;
1656 Rule r;
1657 jj_consume_token(LBRACKET);
1658 jj_consume_token(BEHAVIOUR);
1659 t = jj_consume_token(ID);
1660 kb = new ReteKB(t.image);
1661 label_43:
1662 while (true) {
1663 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1664 case LBRACKET:
1665 ;
1666 break;
1667 default:
1668 jj_la1[81] = jj_gen;
1669 break label_43;
1670 }
1671 r = reteRule(db);
1672 kb.addRule(r);
1673 }
1674 jj_consume_token(RBRACKET);
1675 {if (true) return kb;}
1676 throw new Error("Missing return statement in function");
1677 }
1678
1679 final public Rule reteRule(OntologyDb db) throws ParseException {
1680 Token t;
1681 Rule r;
1682 Pattern p;
1683 Action a;
1684 jj_consume_token(LBRACKET);
1685 t = jj_consume_token(ID);
1686 r = new Rule(t.image);
1687 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1688 case INTEGER:
1689 t = jj_consume_token(INTEGER);
1690 r.setSalience(Integer.parseInt(t.image));
1691 break;
1692 default:
1693 jj_la1[82] = jj_gen;
1694 ;
1695 }
1696 label_44:
1697 while (true) {
1698 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1699 case LBRACKET:
1700 case VARIABLE:
1701 ;
1702 break;
1703 default:
1704 jj_la1[83] = jj_gen;
1705 break label_44;
1706 }
1707 p = retePattern(db);
1708 r.addPattern(p);
1709 }
1710 jj_consume_token(IMPLIES);
1711 label_45:
1712 while (true) {
1713 a = reteAction(db);
1714 r.addAction(a);
1715 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1716 case LBRACKET:
1717 ;
1718 break;
1719 default:
1720 jj_la1[84] = jj_gen;
1721 break label_45;
1722 }
1723 }
1724 jj_consume_token(RBRACKET);
1725 {if (true) return r;}
1726 throw new Error("Missing return statement in function");
1727 }
1728
1729 final public Pattern retePattern(OntologyDb db) throws ParseException {
1730 VarFn id = null;
1731 Pattern p = null;
1732 ValueFunction value = null;
1733 ReteFact rete_fact;
1734 Token t;
1735 if (jj_2_9(2)) {
1736 jj_consume_token(LBRACKET);
1737 jj_consume_token(TEST);
1738 value = ConditionalOrExpression(db);
1739 jj_consume_token(RBRACKET);
1740 if ( !(value instanceof LogicalFn) && !(value instanceof DefinedFn) &&
1741 !(value instanceof MethodCallFn) )
1742 {if (true) throw new ParseException("Non-logical value in rete-test pattern");}
1743 p = new Pattern(Pattern.TEST,value);
1744 } else if (jj_2_10(2)) {
1745 jj_consume_token(LBRACKET);
1746 jj_consume_token(NEGATION);
1747 rete_fact = reteFact(db);
1748 jj_consume_token(RBRACKET);
1749 p = new Pattern(Pattern.NOT,rete_fact);
1750 } else {
1751 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1752 case LBRACKET:
1753 case VARIABLE:
1754 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1755 case VARIABLE:
1756 t = jj_consume_token(VARIABLE);
1757 jj_consume_token(FACT_MARKER);
1758 id = new VarFn(t.image);
1759 break;
1760 default:
1761 jj_la1[85] = jj_gen;
1762 ;
1763 }
1764 rete_fact = reteFact(db);
1765 p = new Pattern(rete_fact);
1766 if ( id != null ) p.setId(id);
1767 break;
1768 default:
1769 jj_la1[86] = jj_gen;
1770 jj_consume_token(-1);
1771 throw new ParseException();
1772 }
1773 }
1774 {if (true) return p;}
1775 throw new Error("Missing return statement in function");
1776 }
1777
1778 final public Vector reteFactList(OntologyDb db) throws ParseException {
1779 Vector result = new Vector();
1780 ReteFact f;
1781 label_46:
1782 while (true) {
1783 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1784 case LBRACKET:
1785 ;
1786 break;
1787 default:
1788 jj_la1[87] = jj_gen;
1789 break label_46;
1790 }
1791 f = reteFact(db);
1792 result.addElement(f);
1793 }
1794 {if (true) return result;}
1795 throw new Error("Missing return statement in function");
1796 }
1797
1798 final public ReteFact reteFact(OntologyDb db) throws ParseException {
1799 Token t;
1800 ReteFact f;
1801 ValueFunction value;
1802 String[] attributes = null;
1803 jj_consume_token(LBRACKET);
1804 t = jj_consume_token(ID);
1805 if ( !db.hasFact(t.image) )
1806 {if (true) throw new ParseException("Rete pattern - fact type " + t.image +
1807 " not present in current ontology");}
1808 f = new ReteFact(t.image);
1809 attributes = db.getNetAttributesOnlyFor(t.image);
1810 label_47:
1811 while (true) {
1812 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1813 case LBRACKET:
1814 ;
1815 break;
1816 default:
1817 jj_la1[88] = jj_gen;
1818 break label_47;
1819 }
1820 jj_consume_token(LBRACKET);
1821 t = jj_consume_token(ID);
1822 value = Expression(db);
1823 jj_consume_token(RBRACKET);
1824 if ( !Misc.member(t.image,attributes) )
1825 {if (true) throw new ParseException("Rete pattern: " + t.image +
1826 " is not an attribute of " + f);}
1827 f.setValue(t.image,value);
1828 }
1829 jj_consume_token(RBRACKET);
1830 {if (true) return f;}
1831 throw new Error("Missing return statement in function");
1832 }
1833
1834 final public void reteGoal(OntologyDb db, Action a) throws ParseException {
1835 Token t;
1836 ReteFact f;
1837 ValueFunction value;
1838 boolean found = false;
1839 label_48:
1840 while (true) {
1841 jj_consume_token(LBRACKET);
1842 t = jj_consume_token(ID);
1843 if ( !Misc.member(t.image,OntologyDb.GOAL_ATTRIBUTES) )
1844 {if (true) throw new ParseException("Rete goal - attribute " +
1845 t.image + " not present in current ontology");}
1846 if (getToken(0).image.equals(OntologyDb.GOAL_FACT)) {
1847 f = reteFact(db);
1848 if ( found )
1849 {if (true) throw new ParseException("Rete goal - attribute " +
1850 t.image + " can only be used once");}
1851 found = true;
1852 a.head = f;
1853 } else {
1854 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1855 case LE:
1856 case GE:
1857 case NE:
1858 case GT:
1859 case LT:
1860 case PLUS:
1861 case MINUS:
1862 case NOT:
1863 case UNOT:
1864 case LBRACKET:
1865 case LCURLY:
1866 case IF:
1867 case BOOLEAN:
1868 case ID:
1869 case INTEGER:
1870 case REAL:
1871 case DATE:
1872 case TIMEFN:
1873 case LITERAL:
1874 case VARIABLE:
1875 case OBJECT:
1876 case FIELD:
1877 value = Expression(db);
1878 a.table.put(t.image,value);
1879 break;
1880 default:
1881 jj_la1[89] = jj_gen;
1882 jj_consume_token(-1);
1883 throw new ParseException();
1884 }
1885 }
1886 jj_consume_token(RBRACKET);
1887 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1888 case LBRACKET:
1889 ;
1890 break;
1891 default:
1892 jj_la1[90] = jj_gen;
1893 break label_48;
1894 }
1895 }
1896 }
1897
1898 final public String messageAttribute() throws ParseException {
1899 String attribute = "";
1900 Token t = null;
1901 t = jj_consume_token(ID);
1902 attribute = t.image;
1903 label_49:
1904 while (true) {
1905 if (jj_2_11(2)) {
1906 ;
1907 } else {
1908 break label_49;
1909 }
1910 jj_consume_token(MINUS);
1911 t = jj_consume_token(ID);
1912 attribute += "-" + t.image;
1913 }
1914 {if (true) return attribute;}
1915 throw new Error("Missing return statement in function");
1916 }
1917
1918 final public Action reteAction(OntologyDb db) throws ParseException {
1919 Token t;
1920 Action a = null;
1921 ValueFunction value, value1, value2;
1922 Vector items = null;
1923 ReteFact rete_fact;
1924 String attribute = null;
1925 jj_consume_token(LBRACKET);
1926 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1927 case ASSERT:
1928 jj_consume_token(ASSERT);
1929 rete_fact = reteFact(db);
1930 a = new Action(Action.ASSERT);
1931 a.head = rete_fact;
1932 break;
1933 case SEND_MESSAGE:
1934 jj_consume_token(SEND_MESSAGE);
1935 a = new Action(Action.MESSAGE);
1936 label_50:
1937 while (true) {
1938 jj_consume_token(LBRACKET);
1939 attribute = messageAttribute();
1940 value = Expression(db);
1941 jj_consume_token(RBRACKET);
1942 if ( !Misc.member(attribute,Performative.ATTRIBUTE_TYPES) )
1943 {if (true) throw new ParseException("Illegal message attribute: " + attribute);}
1944
1945 a.table.put(attribute,value);
1946 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1947 case LBRACKET:
1948 ;
1949 break;
1950 default:
1951 jj_la1[91] = jj_gen;
1952 break label_50;
1953 }
1954 }
1955 break;
1956 case ACHIEVE:
1957 case BUY:
1958 case SELL:
1959 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1960 case ACHIEVE:
1961 t = jj_consume_token(ACHIEVE);
1962 a = new Action(Action.ACHIEVE);
1963 break;
1964 case BUY:
1965 t = jj_consume_token(BUY);
1966 a = new Action(Action.BUY);
1967 break;
1968 case SELL:
1969 t = jj_consume_token(SELL);
1970 a = new Action(Action.SELL);
1971 break;
1972 default:
1973 jj_la1[92] = jj_gen;
1974 jj_consume_token(-1);
1975 throw new ParseException();
1976 }
1977 reteGoal(db,a);
1978 break;
1979 case RETRACT:
1980 t = jj_consume_token(RETRACT);
1981 a = new Action(t.image);
1982 label_51:
1983 while (true) {
1984 t = jj_consume_token(VARIABLE);
1985 a.items.addElement(new VarFn(t.image));
1986 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1987 case VARIABLE:
1988 ;
1989 break;
1990 default:
1991 jj_la1[93] = jj_gen;
1992 break label_51;
1993 }
1994 }
1995 break;
1996 case MODIFY:
1997 jj_consume_token(MODIFY);
1998 t = jj_consume_token(VARIABLE);
1999 a = new Action(Action.MODIFY);
2000 a.head = new VarFn(t.image);
2001 label_52:
2002 while (true) {
2003 jj_consume_token(LBRACKET);
2004 t = jj_consume_token(ID);
2005 value = Expression(db);
2006 jj_consume_token(RBRACKET);
2007 a.table.put(t.image,value);
2008 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2009 case LBRACKET:
2010 ;
2011 break;
2012 default:
2013 jj_la1[94] = jj_gen;
2014 break label_52;
2015 }
2016 }
2017 break;
2018 case PRINT:
2019 case PRINTLN:
2020 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2021 case PRINT:
2022 t = jj_consume_token(PRINT);
2023 break;
2024 case PRINTLN:
2025 t = jj_consume_token(PRINTLN);
2026 break;
2027 default:
2028 jj_la1[95] = jj_gen;
2029 jj_consume_token(-1);
2030 throw new ParseException();
2031 }
2032 value = Expression(db);
2033 a = new Action(t.image);
2034 a.head = value;
2035 label_53:
2036 while (true) {
2037 value = Expression(db);
2038 a.items.addElement(value);
2039 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2040 case LE:
2041 case GE:
2042 case NE:
2043 case GT:
2044 case LT:
2045 case PLUS:
2046 case MINUS:
2047 case NOT:
2048 case UNOT:
2049 case LBRACKET:
2050 case LCURLY:
2051 case IF:
2052 case BOOLEAN:
2053 case ID:
2054 case INTEGER:
2055 case REAL:
2056 case DATE:
2057 case TIMEFN:
2058 case LITERAL:
2059 case VARIABLE:
2060 case OBJECT:
2061 case FIELD:
2062 ;
2063 break;
2064 default:
2065 jj_la1[96] = jj_gen;
2066 break label_53;
2067 }
2068 }
2069 break;
2070 case EXECUTE:
2071 case CLOSE:
2072 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2073 case EXECUTE:
2074 t = jj_consume_token(EXECUTE);
2075 break;
2076 case CLOSE:
2077 t = jj_consume_token(CLOSE);
2078 break;
2079 default:
2080 jj_la1[97] = jj_gen;
2081 jj_consume_token(-1);
2082 throw new ParseException();
2083 }
2084 value = Expression(db);
2085 a = new Action(t.image);
2086 a.head = value;
2087 break;
2088 case BIND:
2089 jj_consume_token(BIND);
2090 t = jj_consume_token(VARIABLE);
2091 value = Expression(db);
2092 a = new Action(Action.BIND);
2093 a.head = new VarFn(t.image);
2094 a.sub_head = value;
2095 break;
2096 case IF:
2097 jj_consume_token(IF);
2098 value = ConditionalOrExpression(db);
2099 jj_consume_token(THEN);
2100 items = reteActionList(db);
2101 if ( !(value instanceof LogicalFn) )
2102 {if (true) throw new ParseException("Non-logical value in \'if\' expression");}
2103
2104 a = new Action(Action.IF);
2105 a.head = value;
2106 a.items = items;
2107 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2108 case ELSE:
2109 jj_consume_token(ELSE);
2110 items = reteActionList(db);
2111 a.sub_items = items;
2112 break;
2113 default:
2114 jj_la1[98] = jj_gen;
2115 ;
2116 }
2117 break;
2118 case WHILE:
2119 jj_consume_token(WHILE);
2120 value = ConditionalOrExpression(db);
2121 jj_consume_token(DO);
2122 items = reteActionList(db);
2123 if ( !(value instanceof LogicalFn) )
2124 {if (true) throw new ParseException("Non-logical value in \'while\' expression");}
2125
2126 a = new Action(Action.WHILE);
2127 a.head = value;
2128 a.items = items;
2129 break;
2130 case OPEN:
2131 jj_consume_token(OPEN);
2132 value = Expression(db);
2133 value1 = Expression(db);
2134 value2 = Expression(db);
2135 a = new Action(Action.OPEN);
2136 a.head = value;
2137 a.sub_head = value1;
2138 a.sub_sub_head = value2;
2139 break;
2140 case READ:
2141 case READLN:
2142 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2143 case READ:
2144 t = jj_consume_token(READ);
2145 break;
2146 case READLN:
2147 t = jj_consume_token(READLN);
2148 break;
2149 default:
2150 jj_la1[99] = jj_gen;
2151 jj_consume_token(-1);
2152 throw new ParseException();
2153 }
2154 value = Expression(db);
2155 value1 = Expression(db);
2156 a = new Action(t.image);
2157 a.head = value;
2158 a.sub_head = value1;
2159 break;
2160 case SYSTEM_CALL:
2161 jj_consume_token(SYSTEM_CALL);
2162 a = new Action(Action.SYSTEM);
2163 label_54:
2164 while (true) {
2165 value = Expression(db);
2166 a.items.addElement(value);
2167 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2168 case LE:
2169 case GE:
2170 case NE:
2171 case GT:
2172 case LT:
2173 case PLUS:
2174 case MINUS:
2175 case NOT:
2176 case UNOT:
2177 case LBRACKET:
2178 case LCURLY:
2179 case IF:
2180 case BOOLEAN:
2181 case ID:
2182 case INTEGER:
2183 case REAL:
2184 case DATE:
2185 case TIMEFN:
2186 case LITERAL:
2187 case VARIABLE:
2188 case OBJECT:
2189 case FIELD:
2190 ;
2191 break;
2192 default:
2193 jj_la1[100] = jj_gen;
2194 break label_54;
2195 }
2196 }
2197 break;
2198 default:
2199 jj_la1[101] = jj_gen;
2200 jj_consume_token(-1);
2201 throw new ParseException();
2202 }
2203 jj_consume_token(RBRACKET);
2204 {if (true) return a;}
2205 throw new Error("Missing return statement in function");
2206 }
2207
2208 final public Vector retePatternList(OntologyDb db) throws ParseException {
2209 Vector result = new Vector();
2210 Pattern p;
2211 label_55:
2212 while (true) {
2213 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2214 case LBRACKET:
2215 case VARIABLE:
2216 ;
2217 break;
2218 default:
2219 jj_la1[102] = jj_gen;
2220 break label_55;
2221 }
2222 p = retePattern(db);
2223 result.addElement(p);
2224 }
2225 {if (true) return result;}
2226 throw new Error("Missing return statement in function");
2227 }
2228
2229 final public Vector reteActionList(OntologyDb db) throws ParseException {
2230 Vector result = new Vector();
2231 Action a;
2232 label_56:
2233 while (true) {
2234 a = reteAction(db);
2235 result.addElement(a);
2236 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2237 case LBRACKET:
2238 ;
2239 break;
2240 default:
2241 jj_la1[103] = jj_gen;
2242 break label_56;
2243 }
2244 }
2245 {if (true) return result;}
2246 throw new Error("Missing return statement in function");
2247 }
2248
2249 final public TaskSummary taskSummary(OntologyDb db) throws ParseException {
2250 AbstractTask t = null;
2251 Token id;
2252 jj_consume_token(LBRACKET);
2253 jj_consume_token(TASK);
2254 t = abstractTask(db);
2255 jj_consume_token(STATUS);
2256 id = jj_consume_token(ID);
2257 jj_consume_token(RBRACKET);
2258 {if (true) return new TaskSummary(t,id.image);}
2259 throw new Error("Missing return statement in function");
2260 }
2261
2262 final public Ordering ordering() throws ParseException {
2263 Token lhs = null, rhs = null;
2264 jj_consume_token(LBRACKET);
2265 jj_consume_token(LHS);
2266 lhs = jj_consume_token(VARIABLE);
2267 jj_consume_token(RHS);
2268 rhs = jj_consume_token(VARIABLE);
2269 jj_consume_token(RBRACKET);
2270 {if (true) return new Ordering(lhs.image,rhs.image);}
2271 throw new Error("Missing return statement in function");
2272 }
2273
2274 final public AgentInfo agentInfo(GeneratorModel genmodel,
2275 GenerationPlan genplan) throws ParseException {
2276 AgentInfo info = null;
2277 Token id, generate, status, gui, tok;
2278 jj_consume_token(LBRACKET);
2279 jj_consume_token(FID);
2280 id = jj_consume_token(ID);
2281 jj_consume_token(GENERATE);
2282 generate = jj_consume_token(BOOLEAN);
2283 jj_consume_token(STATUS);
2284 status = jj_consume_token(ID);
2285 jj_consume_token(HAS_GUI);
2286 gui = jj_consume_token(BOOLEAN);
2287 String file = genplan.getOntologyFilename();
2288 String name = genmodel.getAgentName(id.image);
2289 info = new AgentInfo(id.image,name,file);
2290 info.generate = (Boolean.valueOf(generate.image)).booleanValue();
2291 info.status = status.image;
2292 info.has_gui = (Boolean.valueOf(gui.image)).booleanValue();
2293 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2294 case HOST:
2295 jj_consume_token(HOST);
2296 tok = jj_consume_token(LITERAL);
2297 info.host = Misc.literalToString(tok.image);
2298 break;
2299 default:
2300 jj_la1[104] = jj_gen;
2301 ;
2302 }
2303 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2304 case DATABASE:
2305 jj_consume_token(DATABASE);
2306 tok = jj_consume_token(LITERAL);
2307 info.database = Misc.literalToString(tok.image);
2308 break;
2309 default:
2310 jj_la1[105] = jj_gen;
2311 ;
2312 }
2313 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2314 case ZEUS_EXTERNAL:
2315 jj_consume_token(ZEUS_EXTERNAL);
2316 tok = jj_consume_token(LITERAL);
2317 info.zeus_external = Misc.literalToString(tok.image);
2318 break;
2319 default:
2320 jj_la1[106] = jj_gen;
2321 ;
2322 }
2323 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2324 case DNS_FILE:
2325 jj_consume_token(DNS_FILE);
2326 tok = jj_consume_token(LITERAL);
2327 info.dns_file = Misc.literalToString(tok.image);
2328 break;
2329 default:
2330 jj_la1[107] = jj_gen;
2331 ;
2332 }
2333 jj_consume_token(RBRACKET);
2334 {if (true) return info;}
2335 throw new Error("Missing return statement in function");
2336 }
2337
2338 final public DbProxyInfo dbProxyInfo() throws ParseException {
2339 DbProxyInfo info = null;
2340 Token id, gui, tok;
2341 jj_consume_token(LBRACKET);
2342 jj_consume_token(NAME);
2343 id = jj_consume_token(ID);
2344 jj_consume_token(HAS_GUI);
2345 gui = jj_consume_token(BOOLEAN);
2346 info = new DbProxyInfo(id.image);
2347 info.has_gui = (Boolean.valueOf(gui.image)).booleanValue();
2348 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2349 case HOST:
2350 jj_consume_token(HOST);
2351 tok = jj_consume_token(LITERAL);
2352 info.host = Misc.literalToString(tok.image);
2353 break;
2354 default:
2355 jj_la1[108] = jj_gen;
2356 ;
2357 }
2358 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2359 case ZEUS_EXTERNAL:
2360 jj_consume_token(ZEUS_EXTERNAL);
2361 tok = jj_consume_token(LITERAL);
2362 info.zeus_external = Misc.literalToString(tok.image);
2363 break;
2364 default:
2365 jj_la1[109] = jj_gen;
2366 ;
2367 }
2368 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2369 case DNS_FILE:
2370 jj_consume_token(DNS_FILE);
2371 tok = jj_consume_token(LITERAL);
2372 info.dns_file = Misc.literalToString(tok.image);
2373 break;
2374 default:
2375 jj_la1[110] = jj_gen;
2376 ;
2377 }
2378 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2379 case PATH:
2380 jj_consume_token(PATH);
2381 tok = jj_consume_token(LITERAL);
2382 info.path = Misc.literalToString(tok.image);
2383 break;
2384 default:
2385 jj_la1[111] = jj_gen;
2386 ;
2387 }
2388 jj_consume_token(RBRACKET);
2389 {if (true) return info;}
2390 throw new Error("Missing return statement in function");
2391 }
2392
2393 final public FacilitatorInfo facilitatorInfo(GenerationPlan genplan) throws ParseException {
2394 FacilitatorInfo info = null;
2395 Token id, gui, tok;
2396 double period;
2397 jj_consume_token(LBRACKET);
2398 jj_consume_token(NAME);
2399 id = jj_consume_token(ID);
2400 jj_consume_token(PERIOD);
2401 period = Real();
2402 jj_consume_token(HAS_GUI);
2403 gui = jj_consume_token(BOOLEAN);
2404 String file = genplan.getOntologyFilename();
2405 info = new FacilitatorInfo(id.image,file);
2406 info.period = Double.toString(period);
2407 info.has_gui = (Boolean.valueOf(gui.image)).booleanValue();
2408 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2409 case HOST:
2410 jj_consume_token(HOST);
2411 tok = jj_consume_token(LITERAL);
2412 info.host = Misc.literalToString(tok.image);
2413 break;
2414 default:
2415 jj_la1[112] = jj_gen;
2416 ;
2417 }
2418 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2419 case ZEUS_EXTERNAL:
2420 jj_consume_token(ZEUS_EXTERNAL);
2421 tok = jj_consume_token(LITERAL);
2422 info.zeus_external = Misc.literalToString(tok.image);
2423 break;
2424 default:
2425 jj_la1[113] = jj_gen;
2426 ;
2427 }
2428 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2429 case DNS_FILE:
2430 jj_consume_token(DNS_FILE);
2431 tok = jj_consume_token(LITERAL);
2432 info.dns_file = Misc.literalToString(tok.image);
2433 break;
2434 default:
2435 jj_la1[114] = jj_gen;
2436 ;
2437 }
2438 jj_consume_token(RBRACKET);
2439 {if (true) return info;}
2440 throw new Error("Missing return statement in function");
2441 }
2442
2443 final public VisualiserInfo visualiserInfo(GenerationPlan genplan) throws ParseException {
2444 VisualiserInfo info = null;
2445 Token id, period, gui, tok;
2446 jj_consume_token(LBRACKET);
2447 jj_consume_token(NAME);
2448 id = jj_consume_token(ID);
2449 jj_consume_token(HAS_GUI);
2450 gui = jj_consume_token(BOOLEAN);
2451 String file = genplan.getOntologyFilename();
2452 info = new VisualiserInfo(id.image,file);
2453 info.has_gui = (Boolean.valueOf(gui.image)).booleanValue();
2454 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2455 case HOST:
2456 jj_consume_token(HOST);
2457 tok = jj_consume_token(LITERAL);
2458 info.host = Misc.literalToString(tok.image);
2459 break;
2460 default:
2461 jj_la1[115] = jj_gen;
2462 ;
2463 }
2464 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2465 case ZEUS_EXTERNAL:
2466 jj_consume_token(ZEUS_EXTERNAL);
2467 tok = jj_consume_token(LITERAL);
2468 info.zeus_external = Misc.literalToString(tok.image);
2469 break;
2470 default:
2471 jj_la1[116] = jj_gen;
2472 ;
2473 }
2474 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2475 case DNS_FILE:
2476 jj_consume_token(DNS_FILE);
2477 tok = jj_consume_token(LITERAL);
2478 info.dns_file = Misc.literalToString(tok.image);
2479 break;
2480 default:
2481 jj_la1[117] = jj_gen;
2482 ;
2483 }
2484 jj_consume_token(RBRACKET);
2485 {if (true) return info;}
2486 throw new Error("Missing return statement in function");
2487 }
2488
2489 final public NameserverInfo nameserverInfo() throws ParseException {
2490 NameserverInfo info = null;
2491 Token id, root, gui, tok;
2492 double grain;
2493 jj_consume_token(LBRACKET);
2494 jj_consume_token(NAME);
2495 id = jj_consume_token(ID);
2496 jj_consume_token(IS_ROOT);
2497 root = jj_consume_token(BOOLEAN);
2498 jj_consume_token(HAS_GUI);
2499 gui = jj_consume_token(BOOLEAN);
2500 info = new NameserverInfo(id.image,
2501 (Boolean.valueOf(root.image)).booleanValue());
2502 info.has_gui = (Boolean.valueOf(gui.image)).booleanValue();
2503 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2504 case HOST:
2505 jj_consume_token(HOST);
2506 tok = jj_consume_token(LITERAL);
2507 info.host = Misc.literalToString(tok.image);
2508 break;
2509 default:
2510 jj_la1[118] = jj_gen;
2511 ;
2512 }
2513 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2514 case ZEUS_EXTERNAL:
2515 jj_consume_token(ZEUS_EXTERNAL);
2516 tok = jj_consume_token(LITERAL);
2517 info.zeus_external = Misc.literalToString(tok.image);
2518 break;
2519 default:
2520 jj_la1[119] = jj_gen;
2521 ;
2522 }
2523 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2524 case DNS_FILE:
2525 jj_consume_token(DNS_FILE);
2526 tok = jj_consume_token(LITERAL);
2527 info.dns_file = Misc.literalToString(tok.image);
2528 break;
2529 default:
2530 jj_la1[120] = jj_gen;
2531 ;
2532 }
2533 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2534 case ADDRESS_OUTPUT_FILE:
2535 jj_consume_token(ADDRESS_OUTPUT_FILE);
2536 tok = jj_consume_token(LITERAL);
2537 info.address_output_file = Misc.literalToString(tok.image);
2538 break;
2539 default:
2540 jj_la1[121] = jj_gen;
2541 ;
2542 }
2543 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2544 case TIME_GRAIN:
2545 jj_consume_token(TIME_GRAIN);
2546 grain = Real();
2547 info.time_grain = Double.toString(grain);
2548 break;
2549 default:
2550 jj_la1[122] = jj_gen;
2551 ;
2552 }
2553 jj_consume_token(RBRACKET);
2554 {if (true) return info;}
2555 throw new Error("Missing return statement in function");
2556 }
2557
2558 final public Vector taskList(OntologyDb db) throws ParseException {
2559 Vector result = new Vector();
2560 AbstractTask t = null;
2561 label_57:
2562 while (true) {
2563 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2564 case LBRACKET:
2565 ;
2566 break;
2567 default:
2568 jj_la1[123] = jj_gen;
2569 break label_57;
2570 }
2571 t = abstractTask(db);
2572 result.addElement(t);
2573 }
2574 {if (true) return result;}
2575 throw new Error("Missing return statement in function");
2576 }
2577
2578 final public TaskInfo taskInfo(GeneratorModel genmodel) throws ParseException {
2579 TaskInfo info = null;
2580 Token id, generate, status,external;
2581 jj_consume_token(LBRACKET);
2582 jj_consume_token(FID);
2583 id = jj_consume_token(ID);
2584 jj_consume_token(GENERATE);
2585 generate = jj_consume_token(BOOLEAN);
2586 jj_consume_token(STATUS);
2587 status = jj_consume_token(ID);
2588 String name = genmodel.getTaskName(id.image);
2589 info = new TaskInfo(id.image,name);
2590 info.generate = (Boolean.valueOf(generate.image)).booleanValue();
2591 info.status = status.image;
2592 label_58:
2593 while (true) {
2594 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2595 case EXTERNAL:
2596 ;
2597 break;
2598 default:
2599 jj_la1[124] = jj_gen;
2600 break label_58;
2601 }
2602 jj_consume_token(EXTERNAL);
2603 external = jj_consume_token(ID);
2604 info.task_external = external.image;
2605 }
2606 jj_consume_token(RBRACKET);
2607 {if (true) return info;}
2608 throw new Error("Missing return statement in function");
2609 }
2610
2611 final public void generator(FileHandler filer, GeneratorModel genmodel,
2612 GenerationPlan genplan, OntologyDb db, String dir) throws ParseException {
2613 AgentDescription agent = null;
2614 AbstractTask task = null;
2615 Token version, file, id, name, platform, directory;
2616 AgentInfo agentInfo = null;
2617 TaskInfo taskInfo = null;
2618 NameserverInfo nameserverInfo = null;
2619 FacilitatorInfo facilitatorInfo = null;
2620 VisualiserInfo visualiserInfo = null;
2621 DbProxyInfo dbProxyInfo = null;
2622 String filename;
2623 char sys_char = File.separatorChar;
2624 char zeus_char = SystemProps.getProperty("file.separator").charAt(0);
2625 jj_consume_token(BEGIN_GENERATOR);
2626 jj_consume_token(BEGIN_PREAMBLE);
2627 jj_consume_token(SYSTEM);
2628 jj_consume_token(LITERAL);
2629 jj_consume_token(VERSION);
2630 version = jj_consume_token(LITERAL);
2631 jj_consume_token(ONTOLOGY);
2632 file = jj_consume_token(LITERAL);
2633 jj_consume_token(END_PREAMBLE);
2634 String ver = Misc.literalToString(version.image);
2635 if ( !ver.equals(SystemProps.getProperty("version.id")) )
2636 filer.__setWarning("File and system versions are different");
2637
2638 filename = Misc.literalToString(file.image);
2639 filename = filename.replace(zeus_char,sys_char);
2640 if ( filename.startsWith(".") )
2641 filename = dir + File.separator + filename;
2642
2643 int status = db.openFile(new File(filename));
2644 if ( (status & OntologyDb.ERROR_MASK) != 0 ) {
2645 filer.__setError("File I/O Error: " + db.getError());
2646 {if (true) throw new ParseException("Error reading ontology database: " + filename +
2647 "\n" + db.getError());}
2648 }
2649 else if ( (status & OntologyDb.WARNING_MASK) != 0 ) {
2650 filer.__setWarning(db.getWarning());
2651 }
2652 jj_consume_token(BEGIN_AGENT_NAME_INDEX);
2653 label_59:
2654 while (true) {
2655 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2656 case ID:
2657 ;
2658 break;
2659 default:
2660 jj_la1[125] = jj_gen;
2661 break label_59;
2662 }
2663 id = jj_consume_token(ID);
2664 name = jj_consume_token(ID);
2665 genmodel.addAgentName(id.image,name.image);
2666 }
2667 jj_consume_token(END_AGENT_NAME_INDEX);
2668 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2669 case BEGIN_AGENT_ICON_INDEX:
2670 jj_consume_token(BEGIN_AGENT_ICON_INDEX);
2671 label_60:
2672 while (true) {
2673 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2674 case ID:
2675 ;
2676 break;
2677 default:
2678 jj_la1[126] = jj_gen;
2679 break label_60;
2680 }
2681 id = jj_consume_token(ID);
2682 name = jj_consume_token(LITERAL);
2683 filename = Misc.literalToString(name.image);
2684 filename = filename.replace(zeus_char,sys_char);
2685 if ( filename.startsWith(".") )
2686 filename = dir + File.separator + filename;
2687
2688 genmodel.setAgentIcon(id.image,filename);
2689 }
2690 jj_consume_token(END_AGENT_ICON_INDEX);
2691 break;
2692 default:
2693 jj_la1[127] = jj_gen;
2694 ;
2695 }
2696 jj_consume_token(BEGIN_TASK_NAME_INDEX);
2697 label_61:
2698 while (true) {
2699 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2700 case ID:
2701 ;
2702 break;
2703 default:
2704 jj_la1[128] = jj_gen;
2705 break label_61;
2706 }
2707 id = jj_consume_token(ID);
2708 name = jj_consume_token(ID);
2709 genmodel.addTaskName(id.image,name.image);
2710 }
2711 jj_consume_token(END_TASK_NAME_INDEX);
2712 jj_consume_token(BEGIN_AGENT_LIST);
2713 label_62:
2714 while (true) {
2715 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2716 case LBRACKET:
2717 ;
2718 break;
2719 default:
2720 jj_la1[129] = jj_gen;
2721 break label_62;
2722 }
2723 agent = agentDescription(db);
2724 genmodel.addAgent(agent);
2725 }
2726 jj_consume_token(END_AGENT_LIST);
2727 jj_consume_token(BEGIN_TASK_LIST);
2728 label_63:
2729 while (true) {
2730 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2731 case LBRACKET:
2732 ;
2733 break;
2734 default:
2735 jj_la1[130] = jj_gen;
2736 break label_63;
2737 }
2738 task = abstractTask(db);
2739 genmodel.addTask(task);
2740 }
2741 jj_consume_token(END_TASK_LIST);
2742 jj_consume_token(BEGIN_GENERATIONPLAN);
2743 jj_consume_token(BEGIN_PREAMBLE);
2744 jj_consume_token(PLATFORM);
2745 platform = jj_consume_token(LITERAL);
2746 jj_consume_token(DIRECTORY);
2747 directory = jj_consume_token(LITERAL);
2748 jj_consume_token(END_PREAMBLE);
2749 filename = Misc.literalToString(directory.image);
2750 filename = filename.replace(zeus_char,sys_char);
2751 if ( filename.startsWith(".") )
2752 filename = dir + File.separator + filename;
2753
2754 genplan.setPlatform(Misc.literalToString(platform.image));
2755 genplan.setDirectory(filename);
2756 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2757 case BEGIN_AGENT_LIST:
2758 jj_consume_token(BEGIN_AGENT_LIST);
2759 label_64:
2760 while (true) {
2761 agentInfo = agentInfo(genmodel,genplan);
2762 genplan.setAgent(agentInfo);
2763 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2764 case LBRACKET:
2765 ;
2766 break;
2767 default:
2768 jj_la1[131] = jj_gen;
2769 break label_64;
2770 }
2771 }
2772 jj_consume_token(END_AGENT_LIST);
2773 break;
2774 default:
2775 jj_la1[132] = jj_gen;
2776 ;
2777 }
2778 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2779 case BEGIN_TASK_LIST:
2780 jj_consume_token(BEGIN_TASK_LIST);
2781 label_65:
2782 while (true) {
2783 taskInfo = taskInfo(genmodel);
2784 genplan.setTask(taskInfo);
2785 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2786 case LBRACKET:
2787 ;
2788 break;
2789 default:
2790 jj_la1[133] = jj_gen;
2791 break label_65;
2792 }
2793 }
2794 jj_consume_token(END_TASK_LIST);
2795 break;
2796 default:
2797 jj_la1[134] = jj_gen;
2798 ;
2799 }
2800 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2801 case BEGIN_NAMESERVER_LIST:
2802 jj_consume_token(BEGIN_NAMESERVER_LIST);
2803 label_66:
2804 while (true) {
2805 nameserverInfo = nameserverInfo();
2806 genplan.setNameserver(nameserverInfo);
2807 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2808 case LBRACKET:
2809 ;
2810 break;
2811 default:
2812 jj_la1[135] = jj_gen;
2813 break label_66;
2814 }
2815 }
2816 jj_consume_token(END_NAMESERVER_LIST);
2817 break;
2818 default:
2819 jj_la1[136] = jj_gen;
2820 ;
2821 }
2822 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2823 case BEGIN_FACILITATOR_LIST:
2824 jj_consume_token(BEGIN_FACILITATOR_LIST);
2825 label_67:
2826 while (true) {
2827 facilitatorInfo = facilitatorInfo(genplan);
2828 genplan.setFacilitator(facilitatorInfo);
2829 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2830 case LBRACKET:
2831 ;
2832 break;
2833 default:
2834 jj_la1[137] = jj_gen;
2835 break label_67;
2836 }
2837 }
2838 jj_consume_token(END_FACILITATOR_LIST);
2839 break;
2840 default:
2841 jj_la1[138] = jj_gen;
2842 ;
2843 }
2844 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2845 case BEGIN_VISUALISER_LIST:
2846 jj_consume_token(BEGIN_VISUALISER_LIST);
2847 label_68:
2848 while (true) {
2849 visualiserInfo = visualiserInfo(genplan);
2850 genplan.setVisualiser(visualiserInfo);
2851 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2852 case LBRACKET:
2853 ;
2854 break;
2855 default:
2856 jj_la1[139] = jj_gen;
2857 break label_68;
2858 }
2859 }
2860 jj_consume_token(END_VISUALISER_LIST);
2861 break;
2862 default:
2863 jj_la1[140] = jj_gen;
2864 ;
2865 }
2866 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2867 case BEGIN_DBPROXY_LIST:
2868 jj_consume_token(BEGIN_DBPROXY_LIST);
2869 label_69:
2870 while (true) {
2871 dbProxyInfo = dbProxyInfo();
2872 genplan.setDbProxy(dbProxyInfo);
2873 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2874 case LBRACKET:
2875 ;
2876 break;
2877 default:
2878 jj_la1[141] = jj_gen;
2879 break label_69;
2880 }
2881 }
2882 jj_consume_token(END_DBPROXY_LIST);
2883 break;
2884 default:
2885 jj_la1[142] = jj_gen;
2886 ;
2887 }
2888 jj_consume_token(END_GENERATIONPLAN);
2889 jj_consume_token(END_GENERATOR);
2890 }
2891
2892 final public ValueFunction Expression(OntologyDb db) throws ParseException {
2893 ValueFunction fn = null;
2894 fn = ConditionalOrExpression(db);
2895 if (jj_2_12(2147483647)) {
2896 jj_consume_token(TCOLON);
2897 fn = constraint(fn,db);
2898 } else {
2899 ;
2900 }
2901 {if (true) return fn;}
2902 throw new Error("Missing return statement in function");
2903 }
2904
2905 final public ValueFunction ConditionalOrExpression(OntologyDb db) throws ParseException {
2906 ValueFunction x = null, y = null;
2907 x = ConditionalAndExpression(db);
2908 label_70:
2909 while (true) {
2910 if (jj_2_13(2147483647)) {
2911 ;
2912 } else {
2913 break label_70;
2914 }
2915 jj_consume_token(OR);
2916 y = ConditionalAndExpression(db);
2917 x = new LogicalOrFn(x,y);
2918 }
2919 {if (true) return x;}
2920 throw new Error("Missing return statement in function");
2921 }
2922
2923 final public ValueFunction ConditionalAndExpression(OntologyDb db) throws ParseException {
2924 ValueFunction x = null, y = null;
2925 x = InclusiveOrExpression(db);
2926 label_71:
2927 while (true) {
2928 if (jj_2_14(2147483647)) {
2929 ;
2930 } else {
2931 break label_71;
2932 }
2933 jj_consume_token(AND);
2934 y = InclusiveOrExpression(db);
2935 x = new LogicalAndFn(x,y);
2936 }
2937 {if (true) return x;}
2938 throw new Error("Missing return statement in function");
2939 }
2940
2941 final public ValueFunction InclusiveOrExpression(OntologyDb db) throws ParseException {
2942 ValueFunction x = null, y = null;
2943 x = AndExpression(db);
2944 label_72:
2945 while (true) {
2946 if (jj_2_15(2147483647)) {
2947 ;
2948 } else {
2949 break label_72;
2950 }
2951 jj_consume_token(UOR);
2952 y = AndExpression(db);
2953 x = new OrFn(x,y);
2954 }
2955 {if (true) return x;}
2956 throw new Error("Missing return statement in function");
2957 }
2958
2959 final public ValueFunction AndExpression(OntologyDb db) throws ParseException {
2960 ValueFunction x = null, y = null;
2961 x = RelationalExpression(db);
2962 label_73:
2963 while (true) {
2964 if (jj_2_16(2147483647)) {
2965 ;
2966 } else {
2967 break label_73;
2968 }
2969 jj_consume_token(UAND);
2970 y = RelationalExpression(db);
2971 x = new AndFn(x,y);
2972 }
2973 {if (true) return x;}
2974 throw new Error("Missing return statement in function");
2975 }
2976
2977 final public ValueFunction RelationalExpression(OntologyDb db) throws ParseException {
2978 ValueFunction x = null, y = null;
2979 Token t;
2980 x = AdditiveExpression(db);
2981 label_74:
2982 while (true) {
2983 if (jj_2_17(2)) {
2984 ;
2985 } else {
2986 break label_74;
2987 }
2988 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2989 case EQ:
2990 t = jj_consume_token(EQ);
2991 break;
2992 case NE:
2993 t = jj_consume_token(NE);
2994 break;
2995 case LT:
2996 t = jj_consume_token(LT);
2997 break;
2998 case GT:
2999 t = jj_consume_token(GT);
3000 break;
3001 case LE:
3002 t = jj_consume_token(LE);
3003 break;
3004 case GE:
3005 t = jj_consume_token(GE);
3006 break;
3007 default:
3008 jj_la1[143] = jj_gen;
3009 jj_consume_token(-1);
3010 throw new ParseException();
3011 }
3012 y = AdditiveExpression(db);
3013 x= new ComparisonFn(x,y,t.image);
3014 }
3015 {if (true) return x;}
3016 throw new Error("Missing return statement in function");
3017 }
3018
3019 final public ValueFunction AdditiveExpression(OntologyDb db) throws ParseException {
3020 ValueFunction x = null, y = null;
3021 Token t;
3022 x = MultiplicativeExpression(db);
3023 label_75:
3024 while (true) {
3025 if (jj_2_18(2147483647)) {
3026 ;
3027 } else {
3028 break label_75;
3029 }
3030 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3031 case PLUS:
3032 t = jj_consume_token(PLUS);
3033 break;
3034 case MINUS:
3035 t = jj_consume_token(MINUS);
3036 break;
3037 default:
3038 jj_la1[144] = jj_gen;
3039 jj_consume_token(-1);
3040 throw new ParseException();
3041 }
3042 y = MultiplicativeExpression(db);
3043 x = new ArithmeticFn(x,y,t.image);
3044 }
3045 {if (true) return x;}
3046 throw new Error("Missing return statement in function");
3047 }
3048
3049 final public ValueFunction MultiplicativeExpression(OntologyDb db) throws ParseException {
3050 ValueFunction x = null, y = null;
3051 Token t;
3052 x = UnaryExpression(db);
3053 label_76:
3054 while (true) {
3055 if (jj_2_19(2147483647)) {
3056 ;
3057 } else {
3058 break label_76;
3059 }
3060 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3061 case MULTIPLY:
3062 t = jj_consume_token(MULTIPLY);
3063 break;
3064 case DIVIDE:
3065 t = jj_consume_token(DIVIDE);
3066 break;
3067 case REMAINDER:
3068 t = jj_consume_token(REMAINDER);
3069 break;
3070 default:
3071 jj_la1[145] = jj_gen;
3072 jj_consume_token(-1);
3073 throw new ParseException();
3074 }
3075 y = UnaryExpression(db);
3076 x = new ArithmeticFn(x,y,t.image);
3077 }
3078 {if (true) return x;}
3079 throw new Error("Missing return statement in function");
3080 }
3081
3082 final public ValueFunction UnaryExpression(OntologyDb db) throws ParseException {
3083 ValueFunction x = null, y = null;
3084 Token t;
3085 Fact f;
3086 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3087 case PLUS:
3088 case MINUS:
3089 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3090 case PLUS:
3091 t = jj_consume_token(PLUS);
3092 break;
3093 case MINUS:
3094 t = jj_consume_token(MINUS);
3095 break;
3096 default:
3097 jj_la1[146] = jj_gen;
3098 jj_consume_token(-1);
3099 throw new ParseException();
3100 }
3101 x = UnaryExpression(db);
3102 x = new ArithmeticFn(new IntFn("0"),x,t.image);
3103 break;
3104 case NOT:
3105 jj_consume_token(NOT);
3106 x = UnaryExpression(db);
3107 x = new LogicalNotFn(x);
3108 break;
3109 case LE:
3110 case GE:
3111 case NE:
3112 case GT:
3113 case LT:
3114 case UNOT:
3115 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3116 case LE:
3117 t = jj_consume_token(LE);
3118 break;
3119 case GE:
3120 t = jj_consume_token(GE);
3121 break;
3122 case NE:
3123 t = jj_consume_token(NE);
3124 break;
3125 case GT:
3126 t = jj_consume_token(GT);
3127 break;
3128 case LT:
3129 t = jj_consume_token(LT);
3130 break;
3131 case UNOT:
3132 t = jj_consume_token(UNOT);
3133 break;
3134 default:
3135 jj_la1[147] = jj_gen;
3136 jj_consume_token(-1);
3137 throw new ParseException();
3138 }
3139 x = UnaryExpression(db);
3140 x = new ConstraintFn(t.image,x);
3141 break;
3142 default:
3143 jj_la1[148] = jj_gen;
3144 if (jj_2_21(2)) {
3145 f = fact(db);
3146 x = new FactFn(f);
3147 } else {
3148 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3149 case LCURLY:
3150 case BOOLEAN:
3151 case ID:
3152 case INTEGER:
3153 case REAL:
3154 case DATE:
3155 case TIMEFN:
3156 case LITERAL:
3157 case VARIABLE:
3158 case OBJECT:
3159 case FIELD:
3160 x = Literal(db);
3161 break;
3162 case IF:
3163 jj_consume_token(IF);
3164 x = ConditionalOrExpression(db);
3165 jj_consume_token(THEN);
3166 y = Expression(db);
3167 x = new ImplyFn(x,y);
3168 if (jj_2_20(2147483647)) {
3169 jj_consume_token(ELSE);
3170 y = Expression(db);
3171 x = new ElseFn(x,y);
3172 } else {
3173 ;
3174 }
3175 break;
3176 case LBRACKET:
3177 jj_consume_token(LBRACKET);
3178 x = Expression(db);
3179 jj_consume_token(RBRACKET);
3180 break;
3181 default:
3182 jj_la1[149] = jj_gen;
3183 jj_consume_token(-1);
3184 throw new ParseException();
3185 }
3186 }
3187 }
3188 {if (true) return x;}
3189 throw new Error("Missing return statement in function");
3190 }
3191
3192 final public ValueFunction Literal(OntologyDb db) throws ParseException {
3193 Token t;
3194 ValueFunction x = null;
3195 Vector data = null;
3196 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3197 case INTEGER:
3198 t = jj_consume_token(INTEGER);
3199 x = new IntFn(t.image);
3200 break;
3201 case REAL:
3202 t = jj_consume_token(REAL);
3203 x = new RealFn(t.image);
3204 break;
3205 case DATE:
3206 t = jj_consume_token(DATE);
3207 x = new DateFn(t.image);
3208 break;
3209 case TIMEFN:
3210 t = jj_consume_token(TIMEFN);
3211 x = new TimeFn(t.image);
3212 break;
3213 case VARIABLE:
3214 t = jj_consume_token(VARIABLE);
3215 x = new VarFn(t.image);
3216 break;
3217 case OBJECT:
3218 t = jj_consume_token(OBJECT);
3219 x = new TypeFn(t.image);
3220 break;
3221 case LITERAL:
3222 t = jj_consume_token(LITERAL);
3223 x = new IdFn(Misc.literalToString(t.image));
3224 break;
3225 case BOOLEAN:
3226 t = jj_consume_token(BOOLEAN);
3227 x = BoolFn.newBoolFn(t.image);
3228 break;
3229 case LCURLY:
3230 jj_consume_token(LCURLY);
3231 data = expression_list(db);
3232 jj_consume_token(RCURLY);
3233 x = new VectorFn(data);
3234 break;
3235 default:
3236 jj_la1[150] = jj_gen;
3237 if (jj_2_22(2)) {
3238 x = method(db);
3239 } else if (jj_2_23(2)) {
3240 x = function(db);
3241 } else {
3242 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3243 case FIELD:
3244 t = jj_consume_token(FIELD);
3245 x = new FieldFn(t.image);
3246 break;
3247 case ID:
3248 t = jj_consume_token(ID);
3249 x = new IdFn(t.image);
3250 break;
3251 default:
3252 jj_la1[151] = jj_gen;
3253 jj_consume_token(-1);
3254 throw new ParseException();
3255 }
3256 }
3257 }
3258 {if (true) return x;}
3259 throw new Error("Missing return statement in function");
3260 }
3261
3262 final public Vector expression_list(OntologyDb db) throws ParseException {
3263 Vector data = new Vector();
3264 ValueFunction fn = null;
3265 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3266 case LE:
3267 case GE:
3268 case NE:
3269 case GT:
3270 case LT:
3271 case PLUS:
3272 case MINUS:
3273 case NOT:
3274 case UNOT:
3275 case LBRACKET:
3276 case LCURLY:
3277 case IF:
3278 case BOOLEAN:
3279 case ID:
3280 case INTEGER:
3281 case REAL:
3282 case DATE:
3283 case TIMEFN:
3284 case LITERAL:
3285 case VARIABLE:
3286 case OBJECT:
3287 case FIELD:
3288 fn = Expression(db);
3289 data.addElement(fn);
3290 label_77:
3291 while (true) {
3292 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3293 case COMMA:
3294 ;
3295 break;
3296 default:
3297 jj_la1[152] = jj_gen;
3298 break label_77;
3299 }
3300 jj_consume_token(COMMA);
3301 fn = Expression(db);
3302 data.addElement(fn);
3303 }
3304 break;
3305 default:
3306 jj_la1[153] = jj_gen;
3307 ;
3308 }
3309 {if (true) return data;}
3310 throw new Error("Missing return statement in function");
3311 }
3312
3313 final public ValueFunction function(OntologyDb db) throws ParseException {
3314 Vector data = null;
3315 Token id;
3316 id = jj_consume_token(ID);
3317 jj_consume_token(LBRACKET);
3318 data = expression_list(db);
3319 jj_consume_token(RBRACKET);
3320 {if (true) return new DefinedFn(id.image,data);}
3321 throw new Error("Missing return statement in function");
3322 }
3323
3324 final public ValueFunction method(OntologyDb db) throws ParseException {
3325 Vector data = null;
3326 Token id;
3327 id = jj_consume_token(FIELD);
3328 jj_consume_token(LBRACKET);
3329 data = expression_list(db);
3330 jj_consume_token(RBRACKET);
3331 {if (true) return new MethodCallFn(id.image,data);}
3332 throw new Error("Missing return statement in function");
3333 }
3334
3335 final public ValueFunction constraint(ValueFunction fn, OntologyDb db) throws ParseException {
3336 Vector data = null;
3337 Token id;
3338 id = jj_consume_token(ID);
3339 jj_consume_token(LBRACKET);
3340 data = expression_list(db);
3341 jj_consume_token(RBRACKET);
3342 {if (true) return new ConstraintBFn(fn,id.image,data);}
3343 throw new Error("Missing return statement in function");
3344 }
3345
3346 final public double Real() throws ParseException {
3347 Token t;
3348 double x = 0;
3349 switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3350 case INTEGER:
3351 t = jj_consume_token(INTEGER);
3352 x = (Double.valueOf(t.image)).doubleValue();
3353 break;
3354 case REAL:
3355 t = jj_consume_token(REAL);
3356 x = (Double.valueOf(t.image)).doubleValue();
3357 break;
3358 default:
3359 jj_la1[154] = jj_gen;
3360 jj_consume_token(-1);
3361 throw new ParseException();
3362 }
3363 {if (true) return x;}
3364 throw new Error("Missing return statement in function");
3365 }
3366
3367 final private boolean jj_2_1(int xla) {
3368 jj_la = xla; jj_lastpos = jj_scanpos = token;
3369 boolean retval = !jj_3_1();
3370 jj_save(0, xla);
3371 return retval;
3372 }
3373
3374 final private boolean jj_2_2(int xla) {
3375 jj_la = xla; jj_lastpos = jj_scanpos = token;
3376 boolean retval = !jj_3_2();
3377 jj_save(1, xla);
3378 return retval;
3379 }
3380
3381 final private boolean jj_2_3(int xla) {
3382 jj_la = xla; jj_lastpos = jj_scanpos = token;
3383 boolean retval = !jj_3_3();
3384 jj_save(2, xla);
3385 return retval;
3386 }
3387
3388 final private boolean jj_2_4(int xla) {
3389 jj_la = xla; jj_lastpos = jj_scanpos = token;
3390 boolean retval = !jj_3_4();
3391 jj_save(3, xla);
3392 return retval;
3393 }
3394
3395 final private boolean jj_2_5(int xla) {
3396 jj_la = xla; jj_lastpos = jj_scanpos = token;
3397 boolean retval = !jj_3_5();
3398 jj_save(4, xla);
3399 return retval;
3400 }
3401
3402 final private boolean jj_2_6(int xla) {
3403 jj_la = xla; jj_lastpos = jj_scanpos = token;
3404 boolean retval = !jj_3_6();
3405 jj_save(5, xla);
3406 return retval;
3407 }
3408
3409 final private boolean jj_2_7(int xla) {
3410 jj_la = xla; jj_lastpos = jj_scanpos = token;
3411 boolean retval = !jj_3_7();
3412 jj_save(6, xla);
3413 return retval;
3414 }
3415
3416 final private boolean jj_2_8(int xla) {
3417 jj_la = xla; jj_lastpos = jj_scanpos = token;
3418 boolean retval = !jj_3_8();
3419 jj_save(7, xla);
3420 return retval;
3421 }
3422
3423 final private boolean jj_2_9(int xla) {
3424 jj_la = xla; jj_lastpos = jj_scanpos = token;
3425 boolean retval = !jj_3_9();
3426 jj_save(8, xla);
3427 return retval;
3428 }
3429
3430 final private boolean jj_2_10(int xla) {
3431 jj_la = xla; jj_lastpos = jj_scanpos = token;
3432 boolean retval = !jj_3_10();
3433 jj_save(9, xla);
3434 return retval;
3435 }
3436
3437 final private boolean jj_2_11(int xla) {
3438 jj_la = xla; jj_lastpos = jj_scanpos = token;
3439 boolean retval = !jj_3_11();
3440 jj_save(10, xla);
3441 return retval;
3442 }
3443
3444 final private boolean jj_2_12(int xla) {
3445 jj_la = xla; jj_lastpos = jj_scanpos = token;
3446 boolean retval = !jj_3_12();
3447 jj_save(11, xla);
3448 return retval;
3449 }
3450
3451 final private boolean jj_2_13(int xla) {
3452 jj_la = xla; jj_lastpos = jj_scanpos = token;
3453 boolean retval = !jj_3_13();
3454 jj_save(12, xla);
3455 return retval;
3456 }
3457
3458 final private boolean jj_2_14(int xla) {
3459 jj_la = xla; jj_lastpos = jj_scanpos = token;
3460 boolean retval = !jj_3_14();
3461 jj_save(13, xla);
3462 return retval;
3463 }
3464
3465 final private boolean jj_2_15(int xla) {
3466 jj_la = xla; jj_lastpos = jj_scanpos = token;
3467 boolean retval = !jj_3_15();
3468 jj_save(14, xla);
3469 return retval;
3470 }
3471
3472 final private boolean jj_2_16(int xla) {
3473 jj_la = xla; jj_lastpos = jj_scanpos = token;
3474 boolean retval = !jj_3_16();
3475 jj_save(15, xla);
3476 return retval;
3477 }
3478
3479 final private boolean jj_2_17(int xla) {
3480 jj_la = xla; jj_lastpos = jj_scanpos = token;
3481 boolean retval = !jj_3_17();
3482 jj_save(16, xla);
3483 return retval;
3484 }
3485
3486 final private boolean jj_2_18(int xla) {
3487 jj_la = xla; jj_lastpos = jj_scanpos = token;
3488 boolean retval = !jj_3_18();
3489 jj_save(17, xla);
3490 return retval;
3491 }
3492
3493 final private boolean jj_2_19(int xla) {
3494 jj_la = xla; jj_lastpos = jj_scanpos = token;
3495 boolean retval = !jj_3_19();
3496 jj_save(18, xla);
3497 return retval;
3498 }
3499
3500 final private boolean jj_2_20(int xla) {
3501 jj_la = xla; jj_lastpos = jj_scanpos = token;
3502 boolean retval = !jj_3_20();
3503 jj_save(19, xla);
3504 return retval;
3505 }
3506
3507 final private boolean jj_2_21(int xla) {
3508 jj_la = xla; jj_lastpos = jj_scanpos = token;
3509 boolean retval = !jj_3_21();
3510 jj_save(20, xla);
3511 return retval;
3512 }
3513
3514 final private boolean jj_2_22(int xla) {
3515 jj_la = xla; jj_lastpos = jj_scanpos = token;
3516 boolean retval = !jj_3_22();
3517 jj_save(21, xla);
3518 return retval;
3519 }
3520
3521 final private boolean jj_2_23(int xla) {
3522 jj_la = xla; jj_lastpos = jj_scanpos = token;
3523 boolean retval = !jj_3_23();
3524 jj_save(22, xla);
3525 return retval;
3526 }
3527
3528 final private boolean jj_3R_101() {
3529 Token xsp;
3530 xsp = jj_scanpos;
3531 if (jj_3R_107()) {
3532 jj_scanpos = xsp;
3533 if (jj_3R_108()) {
3534 jj_scanpos = xsp;
3535 if (jj_3R_109()) {
3536 jj_scanpos = xsp;
3537 if (jj_3R_110()) {
3538 jj_scanpos = xsp;
3539 if (jj_3R_111()) {
3540 jj_scanpos = xsp;
3541 if (jj_3R_112()) return true;
3542 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3543 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3544 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3545 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3546 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3547 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3548 return false;
3549 }
3550
3551 final private boolean jj_3_13() {
3552 if (jj_scan_token(OR)) return true;
3553 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3554 return false;
3555 }
3556
3557 final private boolean jj_3_6() {
3558 if (jj_3R_79()) return true;
3559 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3560 return false;
3561 }
3562
3563 final private boolean jj_3R_86() {
3564 if (jj_scan_token(LE)) return true;
3565 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3566 return false;
3567 }
3568
3569 final private boolean jj_3R_100() {
3570 if (jj_scan_token(NOT)) return true;
3571 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3572 return false;
3573 }
3574
3575 final private boolean jj_3R_105() {
3576 if (jj_scan_token(PLUS)) return true;
3577 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3578 return false;
3579 }
3580
3581 final private boolean jj_3_5() {
3582 if (jj_3R_78()) return true;
3583 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3584 return false;
3585 }
3586
3587 final private boolean jj_3R_99() {
3588 Token xsp;
3589 xsp = jj_scanpos;
3590 if (jj_3R_105()) {
3591 jj_scanpos = xsp;
3592 if (jj_3R_106()) return true;
3593 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3594 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3595 return false;
3596 }
3597
3598 final private boolean jj_3R_79() {
3599 if (jj_scan_token(LBRACKET)) return true;
3600 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3601 if (jj_scan_token(SUMMARY)) return true;
3602 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3603 return false;
3604 }
3605
3606 final private boolean jj_3R_98() {
3607 Token xsp;
3608 xsp = jj_scanpos;
3609 if (jj_3R_99()) {
3610 jj_scanpos = xsp;
3611 if (jj_3R_100()) {
3612 jj_scanpos = xsp;
3613 if (jj_3R_101()) {
3614 jj_scanpos = xsp;
3615 if (jj_3_21()) {
3616 jj_scanpos = xsp;
3617 if (jj_3R_102()) {
3618 jj_scanpos = xsp;
3619 if (jj_3R_103()) {
3620 jj_scanpos = xsp;
3621 if (jj_3R_104()) return true;
3622 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3623 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3624 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3625 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3626 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3627 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3628 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3629 return false;
3630 }
3631
3632 final private boolean jj_3R_91() {
3633 if (jj_scan_token(MULTIPLY)) return true;
3634 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3635 return false;
3636 }
3637
3638 final private boolean jj_3_19() {
3639 Token xsp;
3640 xsp = jj_scanpos;
3641 if (jj_3R_91()) {
3642 jj_scanpos = xsp;
3643 if (jj_3R_92()) {
3644 jj_scanpos = xsp;
3645 if (jj_3R_93()) return true;
3646 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3647 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3648 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3649 return false;
3650 }
3651
3652 final private boolean jj_3R_96() {
3653 if (jj_scan_token(ID)) return true;
3654 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3655 if (jj_scan_token(LBRACKET)) return true;
3656 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3657 return false;
3658 }
3659
3660 final private boolean jj_3R_85() {
3661 if (jj_scan_token(GT)) return true;
3662 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3663 return false;
3664 }
3665
3666 final private boolean jj_3_11() {
3667 if (jj_scan_token(MINUS)) return true;
3668 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3669 if (jj_scan_token(ID)) return true;
3670 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3671 return false;
3672 }
3673
3674 final private boolean jj_3_12() {
3675 if (jj_scan_token(TCOLON)) return true;
3676 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3677 return false;
3678 }
3679
3680 final private boolean jj_3R_90() {
3681 if (jj_scan_token(MINUS)) return true;
3682 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3683 return false;
3684 }
3685
3686 final private boolean jj_3_4() {
3687 if (jj_scan_token(ACQUAINTANCES)) return true;
3688 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3689 if (jj_scan_token(LBRACKET)) return true;
3690 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3691 return false;
3692 }
3693
3694 final private boolean jj_3_18() {
3695 Token xsp;
3696 xsp = jj_scanpos;
3697 if (jj_3R_89()) {
3698 jj_scanpos = xsp;
3699 if (jj_3R_90()) return true;
3700 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3701 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3702 return false;
3703 }
3704
3705 final private boolean jj_3R_84() {
3706 if (jj_scan_token(LT)) return true;
3707 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3708 return false;
3709 }
3710
3711 final private boolean jj_3R_89() {
3712 if (jj_scan_token(PLUS)) return true;
3713 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3714 return false;
3715 }
3716
3717 final private boolean jj_3R_97() {
3718 if (jj_3R_98()) return true;
3719 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3720 return false;
3721 }
3722
3723 final private boolean jj_3_10() {
3724 if (jj_scan_token(LBRACKET)) return true;
3725 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3726 if (jj_scan_token(NEGATION)) return true;
3727 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3728 return false;
3729 }
3730
3731 final private boolean jj_3_3() {
3732 if (jj_scan_token(PROTOCOLS)) return true;
3733 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3734 if (jj_scan_token(LBRACKET)) return true;
3735 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3736 return false;
3737 }
3738
3739 final private boolean jj_3R_83() {
3740 if (jj_scan_token(NE)) return true;
3741 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3742 return false;
3743 }
3744
3745 final private boolean jj_3R_112() {
3746 if (jj_scan_token(UNOT)) return true;
3747 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3748 return false;
3749 }
3750
3751 final private boolean jj_3_9() {
3752 if (jj_scan_token(LBRACKET)) return true;
3753 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3754 if (jj_scan_token(TEST)) return true;
3755 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3756 return false;
3757 }
3758
3759 final private boolean jj_3R_88() {
3760 if (jj_3R_97()) return true;
3761 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3762 return false;
3763 }
3764
3765 final private boolean jj_3R_124() {
3766 if (jj_scan_token(ID)) return true;
3767 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3768 return false;
3769 }
3770
3771 final private boolean jj_3R_123() {
3772 if (jj_scan_token(FIELD)) return true;
3773 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3774 return false;
3775 }
3776
3777 final private boolean jj_3R_81() {
3778 if (jj_scan_token(LBRACKET)) return true;
3779 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3780 if (jj_scan_token(SCRIPT)) return true;
3781 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3782 return false;
3783 }
3784
3785 final private boolean jj_3_23() {
3786 if (jj_3R_96()) return true;
3787 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3788 return false;
3789 }
3790
3791 final private boolean jj_3_2() {
3792 if (jj_scan_token(INITIAL_FACTS)) return true;
3793 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3794 if (jj_scan_token(LBRACKET)) return true;
3795 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3796 return false;
3797 }
3798
3799 final private boolean jj_3R_82() {
3800 if (jj_scan_token(EQ)) return true;
3801 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3802 return false;
3803 }
3804
3805 final private boolean jj_3_22() {
3806 if (jj_3R_95()) return true;
3807 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3808 return false;
3809 }
3810
3811 final private boolean jj_3R_122() {
3812 if (jj_scan_token(LCURLY)) return true;
3813 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3814 return false;
3815 }
3816
3817 final private boolean jj_3R_111() {
3818 if (jj_scan_token(LT)) return true;
3819 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3820 return false;
3821 }
3822
3823 final private boolean jj_3_17() {
3824 Token xsp;
3825 xsp = jj_scanpos;
3826 if (jj_3R_82()) {
3827 jj_scanpos = xsp;
3828 if (jj_3R_83()) {
3829 jj_scanpos = xsp;
3830 if (jj_3R_84()) {
3831 jj_scanpos = xsp;
3832 if (jj_3R_85()) {
3833 jj_scanpos = xsp;
3834 if (jj_3R_86()) {
3835 jj_scanpos = xsp;
3836 if (jj_3R_87()) return true;
3837 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3838 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3839 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3840 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3841 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3842 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3843 if (jj_3R_88()) return true;
3844 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3845 return false;
3846 }
3847
3848 final private boolean jj_3R_121() {
3849 if (jj_scan_token(BOOLEAN)) return true;
3850 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3851 return false;
3852 }
3853
3854 final private boolean jj_3R_94() {
3855 if (jj_scan_token(LBRACKET)) return true;
3856 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3857 if (jj_scan_token(TYPE)) return true;
3858 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3859 return false;
3860 }
3861
3862 final private boolean jj_3R_120() {
3863 if (jj_scan_token(LITERAL)) return true;
3864 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3865 return false;
3866 }
3867
3868 final private boolean jj_3_16() {
3869 if (jj_scan_token(UAND)) return true;
3870 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3871 return false;
3872 }
3873
3874 final private boolean jj_3R_119() {
3875 if (jj_scan_token(OBJECT)) return true;
3876 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3877 return false;
3878 }
3879
3880 final private boolean jj_3R_118() {
3881 if (jj_scan_token(VARIABLE)) return true;
3882 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3883 return false;
3884 }
3885
3886 final private boolean jj_3R_117() {
3887 if (jj_scan_token(TIMEFN)) return true;
3888 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3889 return false;
3890 }
3891
3892 final private boolean jj_3_1() {
3893 if (jj_scan_token(TASKS)) return true;
3894 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3895 if (jj_scan_token(LBRACKET)) return true;
3896 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3897 return false;
3898 }
3899
3900 final private boolean jj_3R_110() {
3901 if (jj_scan_token(GT)) return true;
3902 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3903 return false;
3904 }
3905
3906 final private boolean jj_3R_116() {
3907 if (jj_scan_token(DATE)) return true;
3908 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3909 return false;
3910 }
3911
3912 final private boolean jj_3R_115() {
3913 if (jj_scan_token(REAL)) return true;
3914 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3915 return false;
3916 }
3917
3918 final private boolean jj_3R_114() {
3919 if (jj_scan_token(INTEGER)) return true;
3920 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3921 return false;
3922 }
3923
3924 final private boolean jj_3R_113() {
3925 Token xsp;
3926 xsp = jj_scanpos;
3927 if (jj_3R_114()) {
3928 jj_scanpos = xsp;
3929 if (jj_3R_115()) {
3930 jj_scanpos = xsp;
3931 if (jj_3R_116()) {
3932 jj_scanpos = xsp;
3933 if (jj_3R_117()) {
3934 jj_scanpos = xsp;
3935 if (jj_3R_118()) {
3936 jj_scanpos = xsp;
3937 if (jj_3R_119()) {
3938 jj_scanpos = xsp;
3939 if (jj_3R_120()) {
3940 jj_scanpos = xsp;
3941 if (jj_3R_121()) {
3942 jj_scanpos = xsp;
3943 if (jj_3R_122()) {
3944 jj_scanpos = xsp;
3945 if (jj_3_22()) {
3946 jj_scanpos = xsp;
3947 if (jj_3_23()) {
3948 jj_scanpos = xsp;
3949 if (jj_3R_123()) {
3950 jj_scanpos = xsp;
3951 if (jj_3R_124()) return true;
3952 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3953 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3954 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3955 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3956 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3957 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3958 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3959 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3960 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3961 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3962 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3963 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3964 } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3965 return false;
3966 }
3967
3968 final private boolean jj_3_15() {
3969 if (jj_scan_token(UOR)) return true;
3970 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3971 return false;
3972 }
3973
3974 final private boolean jj_3_20() {
3975 if (jj_scan_token(ELSE)) return true;
3976 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3977 return false;
3978 }
3979
3980 final private boolean jj_3R_109() {
3981 if (jj_scan_token(NE)) return true;
3982 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3983 return false;
3984 }
3985
3986 final private boolean jj_3R_78() {
3987 if (jj_scan_token(LBRACKET)) return true;
3988 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3989 if (jj_scan_token(PRIMITIVE)) return true;
3990 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3991 return false;
3992 }
3993
3994 final private boolean jj_3R_104() {
3995 if (jj_scan_token(LBRACKET)) return true;
3996 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3997 return false;
3998 }
3999
4000 final private boolean jj_3R_108() {
4001 if (jj_scan_token(GE)) return true;
4002 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4003 return false;
4004 }
4005
4006 final private boolean jj_3_14() {
4007 if (jj_scan_token(AND)) return true;
4008 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4009 return false;
4010 }
4011
4012 final private boolean jj_3R_93() {
4013 if (jj_scan_token(REMAINDER)) return true;
4014 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4015 return false;
4016 }
4017
4018 final private boolean jj_3R_106() {
4019 if (jj_scan_token(MINUS)) return true;
4020 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4021 return false;
4022 }
4023
4024 final private boolean jj_3R_87() {
4025 if (jj_scan_token(GE)) return true;
4026 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4027 return false;
4028 }
4029
4030 final private boolean jj_3R_103() {
4031 if (jj_scan_token(IF)) return true;
4032 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4033 return false;
4034 }
4035
4036 final private boolean jj_3R_102() {
4037 if (jj_3R_113()) return true;
4038 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4039 return false;
4040 }
4041
4042 final private boolean jj_3_8() {
4043 if (jj_3R_81()) return true;
4044 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4045 return false;
4046 }
4047
4048 final private boolean jj_3_21() {
4049 if (jj_3R_94()) return true;
4050 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4051 return false;
4052 }
4053
4054 final private boolean jj_3R_80() {
4055 if (jj_scan_token(LBRACKET)) return true;
4056 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4057 if (jj_scan_token(BEHAVIOUR)) return true;
4058 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4059 return false;
4060 }
4061
4062 final private boolean jj_3R_107() {
4063 if (jj_scan_token(LE)) return true;
4064 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4065 return false;
4066 }
4067
4068 final private boolean jj_3R_92() {
4069 if (jj_scan_token(DIVIDE)) return true;
4070 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4071 return false;
4072 }
4073
4074 final private boolean jj_3R_95() {
4075 if (jj_scan_token(FIELD)) return true;
4076 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4077 if (jj_scan_token(LBRACKET)) return true;
4078 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4079 return false;
4080 }
4081
4082 final private boolean jj_3_7() {
4083 if (jj_3R_80()) return true;
4084 if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
4085 return false;
4086 }
4087
4088 public ParserTokenManager token_source;
4089 SimpleCharStream jj_input_stream;
4090 public Token token, jj_nt;
4091 private int jj_ntk;
4092 private Token jj_scanpos, jj_lastpos;
4093 private int jj_la;
4094 public boolean lookingAhead = false;
4095 private boolean jj_semLA;
4096 private int jj_gen;
4097 final private int[] jj_la1 = new int[155];
4098 final private int[] jj_la1_0 = {0x80000000,0x80000000,0x80000000,0x0,0x80000000,0x0,0x80000000,0x80000000,0x80000000,0x80000000,0x0,0x80000000,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x80000000,0x0,0x80000000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x80000000,0x0,0x80000000,0x80000000,0x0,0x80000000,0x80000000,0x0,0x80000000,0x0,0x80000000,0x0,0x80000000,0x0,0x80000000,0x0,0x80000000,0x0,0x80000000,0x0,0x80000000,0x0,0x80000000,0x0,0x80000000,0x0,0x80000000,0x80000000,0x0,0x80000000,0x80000000,0x0,0x80000000,0x0,0x80000000,0x80000000,0x0,0x80000000,0x80000000,0x80000000,0x981fc000,0x80000000,0x80000000,0x0,0x0,0x80000000,0x0,0x981fc000,0x0,0x0,0x0,0x981fc000,0x0,0x80000000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x80000000,0x80000000,0x80000000,0x0,0x80000000,0x0,0x80000000,0x0,0x80000000,0x0,0x80000000,0x0,0x80000000,0x0,0x7e000,0x180000,0xe00000,0x180000,0x1007c000,0x181fc000,0x80000000,0x0,0x0,0x0,0x981fc000,0x0,};
4099 final private int[] jj_la1_1 = {0x0,0x0,0x0,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x0,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x402,0x0,0x0,0x0,0x0,0x0,0x0,0x402,0x0,0x1000,0x0,0x402,0x400,0x0,0x0,0x10000000,0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x10000000,0x0,0x0,0x10000000,0x0,0x0,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x402,0x2,0x0,0x8,0x402,0x0,};
4100 final private int[] jj_la1_2 = {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x20000000,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x200,0x0,0x800,0x0,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
4101 final private int[] jj_la1_3 = {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x4,0x8,0x20,0x10,0x40,0x80,0x0,0x100,0x0,0x200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x0,0x4000000,0x0,0x0,0x0,0x0,0x0,0x2000000,0x0,0x4000000,0x0,0x8000000,0x0,0x10000000,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x2000000,0x0,0x0,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
4102 final private int[] jj_la1_4 = {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x10,0x0,0x20,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x1000,0x0,0x0,0x0,0x800,0x0,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7000000,0x0,0x0,0x60000000,0x0,0x800000,0x0,0x0,0x0,0xffe00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
4103 final private int[] jj_la1_5 = {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x60,0x0,0x7d,0x0,0x0,0x0,0x200,0x800,0x1000,0x0,0x800,0x1000,0x40000,0x0,0x800,0x1000,0x0,0x800,0x1000,0x0,0x800,0x1000,0x4000,0x8000,0x0,0x0,0x0,0x0,0x4000000,0x0,0x0,0x0,0x0,0x40000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
4104 final private int[] jj_la1_6 = {0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x0,0x20000,0x0,0x20000,0x0,0x0,0x0,0x20000,0x0,0x20000,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x800000,0x0,0x800000,0x800000,0x0,0x0,0x3ff0000,0x0,0x0,0x0,0x800000,0x0,0x0,0x3ff0000,0x0,0x0,0x0,0x3ff0000,0x0,0x800000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x40,0x0,0x100,0x0,0x400,0x0,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x3ff0000,0x1fd0000,0x2020000,0x0,0x3ff0000,0xc0000,};
4105 final private JJCalls[] jj_2_rtns = new JJCalls[23];
4106 private boolean jj_rescan = false;
4107 private int jj_gc = 0;
4108
4109 public Parser(java.io.InputStream stream) {
4110 jj_input_stream = new SimpleCharStream(stream, 1, 1);
4111 token_source = new ParserTokenManager(jj_input_stream);
4112 token = new Token();
4113 jj_ntk = -1;
4114 jj_gen = 0;
4115 for (int i = 0; i < 155; i++) jj_la1[i] = -1;
4116 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
4117 }
4118
4119 public void ReInit(java.io.InputStream stream) {
4120 jj_input_stream.ReInit(stream, 1, 1);
4121 token_source.ReInit(jj_input_stream);
4122 token = new Token();
4123 jj_ntk = -1;
4124 jj_gen = 0;
4125 for (int i = 0; i < 155; i++) jj_la1[i] = -1;
4126 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
4127 }
4128
4129 public Parser(java.io.Reader stream) {
4130 jj_input_stream = new SimpleCharStream(stream, 1, 1);
4131 token_source = new ParserTokenManager(jj_input_stream);
4132 token = new Token();
4133 jj_ntk = -1;
4134 jj_gen = 0;
4135 for (int i = 0; i < 155; i++) jj_la1[i] = -1;
4136 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
4137 }
4138
4139 public void ReInit(java.io.Reader stream) {
4140 jj_input_stream.ReInit(stream, 1, 1);
4141 token_source.ReInit(jj_input_stream);
4142 token = new Token();
4143 jj_ntk = -1;
4144 jj_gen = 0;
4145 for (int i = 0; i < 155; i++) jj_la1[i] = -1;
4146 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
4147 }
4148
4149 public Parser(ParserTokenManager tm) {
4150 token_source = tm;
4151 token = new Token();
4152 jj_ntk = -1;
4153 jj_gen = 0;
4154 for (int i = 0; i < 155; i++) jj_la1[i] = -1;
4155 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
4156 }
4157
4158 public void ReInit(ParserTokenManager tm) {
4159 token_source = tm;
4160 token = new Token();
4161 jj_ntk = -1;
4162 jj_gen = 0;
4163 for (int i = 0; i < 155; i++) jj_la1[i] = -1;
4164 for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
4165 }
4166
4167 final private Token jj_consume_token(int kind) throws ParseException {
4168 Token oldToken;
4169 if ((oldToken = token).next != null) token = token.next;
4170 else token = token.next = token_source.getNextToken();
4171 jj_ntk = -1;
4172 if (token.kind == kind) {
4173 jj_gen++;
4174 if (++jj_gc > 100) {
4175 jj_gc = 0;
4176 for (int i = 0; i < jj_2_rtns.length; i++) {
4177 JJCalls c = jj_2_rtns[i];
4178 while (c != null) {
4179 if (c.gen < jj_gen) c.first = null;
4180 c = c.next;
4181 }
4182 }
4183 }
4184 return token;
4185 }
4186 token = oldToken;
4187 jj_kind = kind;
4188 throw generateParseException();
4189 }
4190
4191 final private boolean jj_scan_token(int kind) {
4192 if (jj_scanpos == jj_lastpos) {
4193 jj_la--;
4194 if (jj_scanpos.next == null) {
4195 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
4196 } else {
4197 jj_lastpos = jj_scanpos = jj_scanpos.next;
4198 }
4199 } else {
4200 jj_scanpos = jj_scanpos.next;
4201 }
4202 if (jj_rescan) {
4203 int i = 0; Token tok = token;
4204 while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
4205 if (tok != null) jj_add_error_token(kind, i);
4206 }
4207 return (jj_scanpos.kind != kind);
4208 }
4209
4210 final public Token getNextToken() {
4211 if (token.next != null) token = token.next;
4212 else token = token.next = token_source.getNextToken();
4213 jj_ntk = -1;
4214 jj_gen++;
4215 return token;
4216 }
4217
4218 final public Token getToken(int index) {
4219 Token t = lookingAhead ? jj_scanpos : token;
4220 for (int i = 0; i < index; i++) {
4221 if (t.next != null) t = t.next;
4222 else t = t.next = token_source.getNextToken();
4223 }
4224 return t;
4225 }
4226
4227 final private int jj_ntk() {
4228 if ((jj_nt=token.next) == null)
4229 return (jj_ntk = (token.next=token_source.getNextToken()).kind);
4230 else
4231 return (jj_ntk = jj_nt.kind);
4232 }
4233
4234 private java.util.Vector jj_expentries = new java.util.Vector();
4235 private int[] jj_expentry;
4236 private int jj_kind = -1;
4237 private int[] jj_lasttokens = new int[100];
4238 private int jj_endpos;
4239
4240 private void jj_add_error_token(int kind, int pos) {
4241 if (pos >= 100) return;
4242 if (pos == jj_endpos + 1) {
4243 jj_lasttokens[jj_endpos++] = kind;
4244 } else if (jj_endpos != 0) {
4245 jj_expentry = new int[jj_endpos];
4246 for (int i = 0; i < jj_endpos; i++) {
4247 jj_expentry[i] = jj_lasttokens[i];
4248 }
4249 boolean exists = false;
4250 for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
4251 int[] oldentry = (int[])(enum.nextElement());
4252 if (oldentry.length == jj_expentry.length) {
4253 exists = true;
4254 for (int i = 0; i < jj_expentry.length; i++) {
4255 if (oldentry[i] != jj_expentry[i]) {
4256 exists = false;
4257 break;
4258 }
4259 }
4260 if (exists) break;
4261 }
4262 }
4263 if (!exists) jj_expentries.addElement(jj_expentry);
4264 if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
4265 }
4266 }
4267
4268 final public ParseException generateParseException() {
4269 jj_expentries.removeAllElements();
4270 boolean[] la1tokens = new boolean[222];
4271 for (int i = 0; i < 222; i++) {
4272 la1tokens[i] = false;
4273 }
4274 if (jj_kind >= 0) {
4275 la1tokens[jj_kind] = true;
4276 jj_kind = -1;
4277 }
4278 for (int i = 0; i < 155; i++) {
4279 if (jj_la1[i] == jj_gen) {
4280 for (int j = 0; j < 32; j++) {
4281 if ((jj_la1_0[i] & (1<<j)) != 0) {
4282 la1tokens[j] = true;
4283 }
4284 if ((jj_la1_1[i] & (1<<j)) != 0) {
4285 la1tokens[32+j] = true;
4286 }
4287 if ((jj_la1_2[i] & (1<<j)) != 0) {
4288 la1tokens[64+j] = true;
4289 }
4290 if ((jj_la1_3[i] & (1<<j)) != 0) {
4291 la1tokens[96+j] = true;
4292 }
4293 if ((jj_la1_4[i] & (1<<j)) != 0) {
4294 la1tokens[128+j] = true;
4295 }
4296 if ((jj_la1_5[i] & (1<<j)) != 0) {
4297 la1tokens[160+j] = true;
4298 }
4299 if ((jj_la1_6[i] & (1<<j)) != 0) {
4300 la1tokens[192+j] = true;
4301 }
4302 }
4303 }
4304 }
4305 for (int i = 0; i < 222; i++) {
4306 if (la1tokens[i]) {
4307 jj_expentry = new int[1];
4308 jj_expentry[0] = i;
4309 jj_expentries.addElement(jj_expentry);
4310 }
4311 }
4312 jj_endpos = 0;
4313 jj_rescan_token();
4314 jj_add_error_token(0, 0);
4315 int[][] exptokseq = new int[jj_expentries.size()][];
4316 for (int i = 0; i < jj_expentries.size(); i++) {
4317 exptokseq[i] = (int[])jj_expentries.elementAt(i);
4318 }
4319 return new ParseException(token, exptokseq, tokenImage);
4320 }
4321
4322 final public void enable_tracing() {
4323 }
4324
4325 final public void disable_tracing() {
4326 }
4327
4328 final private void jj_rescan_token() {
4329 jj_rescan = true;
4330 for (int i = 0; i < 23; i++) {
4331 JJCalls p = jj_2_rtns[i];
4332 do {
4333 if (p.gen > jj_gen) {
4334 jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
4335 switch (i) {
4336 case 0: jj_3_1(); break;
4337 case 1: jj_3_2(); break;
4338 case 2: jj_3_3(); break;
4339 case 3: jj_3_4(); break;
4340 case 4: jj_3_5(); break;
4341 case 5: jj_3_6(); break;
4342 case 6: jj_3_7(); break;
4343 case 7: jj_3_8(); break;
4344 case 8: jj_3_9(); break;
4345 case 9: jj_3_10(); break;
4346 case 10: jj_3_11(); break;
4347 case 11: jj_3_12(); break;
4348 case 12: jj_3_13(); break;
4349 case 13: jj_3_14(); break;
4350 case 14: jj_3_15(); break;
4351 case 15: jj_3_16(); break;
4352 case 16: jj_3_17(); break;
4353 case 17: jj_3_18(); break;
4354 case 18: jj_3_19(); break;
4355 case 19: jj_3_20(); break;
4356 case 20: jj_3_21(); break;
4357 case 21: jj_3_22(); break;
4358 case 22: jj_3_23(); break;
4359 }
4360 }
4361 p = p.next;
4362 } while (p != null);
4363 }
4364 jj_rescan = false;
4365 }
4366
4367 final private void jj_save(int index, int xla) {
4368 JJCalls p = jj_2_rtns[index];
4369 while (p.gen > jj_gen) {
4370 if (p.next == null) { p = p.next = new JJCalls(); break; }
4371 p = p.next;
4372 }
4373 p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
4374 }
4375
4376 static final class JJCalls {
4377 int gen;
4378 Token first;
4379 int arg;
4380 JJCalls next;
4381 }
4382
4383 }