ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/mdParser/MDTreeParser.cpp
Revision: 1465
Committed: Fri Jul 9 23:08:25 2010 UTC (14 years, 9 months ago) by chuckv
File size: 39878 byte(s)
Log Message:
Creating busticated version of OpenMD

File Contents

# Content
1 /* $ANTLR 2.7.7 (20090623): "MDTreeParser.g" -> "MDTreeParser.cpp"$ */
2 #include "MDTreeParser.hpp"
3 #include <antlr/Token.hpp>
4 #include <antlr/AST.hpp>
5 #include <antlr/NoViableAltException.hpp>
6 #include <antlr/MismatchedTokenException.hpp>
7 #include <antlr/SemanticException.hpp>
8 #include <antlr/BitSet.hpp>
9 #line 1 "MDTreeParser.g"
10 #line 11 "MDTreeParser.cpp"
11 MDTreeParser::MDTreeParser()
12 : ANTLR_USE_NAMESPACE(antlr)TreeParser() {
13 }
14
15 void MDTreeParser::mdfile(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
16 ANTLR_USE_NAMESPACE(antlr)RefAST mdfile_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
17
18 try { // for error handling
19 { // ( ... )*
20 for (;;) {
21 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
22 _t = ASTNULL;
23 if ((_tokenSet_0.member(_t->getType()))) {
24 statement(_t);
25 _t = _retTree;
26 }
27 else {
28 goto _loop3;
29 }
30
31 }
32 _loop3:;
33 } // ( ... )*
34 #line 34 "MDTreeParser.g"
35 blockStack.top()->validate(); blockStack.pop();
36 #line 37 "MDTreeParser.cpp"
37 }
38 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
39 reportError(ex);
40 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
41 _t = _t->getNextSibling();
42 }
43 _retTree = _t;
44 }
45
46 void MDTreeParser::statement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
47 ANTLR_USE_NAMESPACE(antlr)RefAST statement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
48
49 try { // for error handling
50 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
51 _t = ASTNULL;
52 switch ( _t->getType()) {
53 case ASSIGNEQUAL:
54 {
55 assignment(_t);
56 _t = _retTree;
57 break;
58 }
59 case COMPONENT:
60 {
61 componentblock(_t);
62 _t = _retTree;
63 break;
64 }
65 case MOLECULE:
66 {
67 moleculeblock(_t);
68 _t = _retTree;
69 break;
70 }
71 case ZCONSTRAINT:
72 {
73 zconstraintblock(_t);
74 _t = _retTree;
75 break;
76 }
77 case RESTRAINT:
78 {
79 restraintblock(_t);
80 _t = _retTree;
81 break;
82 }
83 default:
84 {
85 throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
86 }
87 }
88 }
89 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
90 reportError(ex);
91 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
92 _t = _t->getNextSibling();
93 }
94 _retTree = _t;
95 }
96
97 void MDTreeParser::assignment(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
98 ANTLR_USE_NAMESPACE(antlr)RefAST assignment_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
99 ANTLR_USE_NAMESPACE(antlr)RefAST id = ANTLR_USE_NAMESPACE(antlr)nullAST;
100
101 try { // for error handling
102 ANTLR_USE_NAMESPACE(antlr)RefAST __t6 = _t;
103 ANTLR_USE_NAMESPACE(antlr)RefAST tmp1_AST_in = _t;
104 match(_t,ASSIGNEQUAL);
105 _t = _t->getFirstChild();
106 id = _t;
107 match(_t,ID);
108 _t = _t->getNextSibling();
109 constant(_t,id);
110 _t = _retTree;
111 _t = __t6;
112 _t = _t->getNextSibling();
113 }
114 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
115 reportError(ex);
116 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
117 _t = _t->getNextSibling();
118 }
119 _retTree = _t;
120 }
121
122 void MDTreeParser::componentblock(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
123 ANTLR_USE_NAMESPACE(antlr)RefAST componentblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
124
125 try { // for error handling
126 ANTLR_USE_NAMESPACE(antlr)RefAST __t9 = _t;
127 ANTLR_USE_NAMESPACE(antlr)RefAST tmp2_AST_in = _t;
128 match(_t,COMPONENT);
129 _t = _t->getFirstChild();
130 #line 63 "MDTreeParser.g"
131 Component* currComponet = new Component(); blockStack.push(currComponet);
132 #line 133 "MDTreeParser.cpp"
133 { // ( ... )*
134 for (;;) {
135 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
136 _t = ASTNULL;
137 if ((_t->getType() == ASSIGNEQUAL)) {
138 assignment(_t);
139 _t = _retTree;
140 }
141 else {
142 goto _loop11;
143 }
144
145 }
146 _loop11:;
147 } // ( ... )*
148 ANTLR_USE_NAMESPACE(antlr)RefAST tmp3_AST_in = _t;
149 match(_t,ENDBLOCK);
150 _t = _t->getNextSibling();
151 _t = __t9;
152 _t = _t->getNextSibling();
153 #line 65 "MDTreeParser.g"
154 blockStack.top()->validate();blockStack.pop(); currConf->addComponent(currComponet);
155 #line 156 "MDTreeParser.cpp"
156 }
157 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
158 reportError(ex);
159 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
160 _t = _t->getNextSibling();
161 }
162 _retTree = _t;
163 }
164
165 void MDTreeParser::moleculeblock(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
166 ANTLR_USE_NAMESPACE(antlr)RefAST moleculeblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
167
168 try { // for error handling
169 ANTLR_USE_NAMESPACE(antlr)RefAST __t21 = _t;
170 ANTLR_USE_NAMESPACE(antlr)RefAST tmp4_AST_in = _t;
171 match(_t,MOLECULE);
172 _t = _t->getFirstChild();
173 #line 78 "MDTreeParser.g"
174 MoleculeStamp* currMoleculeStamp = new MoleculeStamp(); blockStack.push(currMoleculeStamp);
175 #line 176 "MDTreeParser.cpp"
176 { // ( ... )*
177 for (;;) {
178 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
179 _t = ASTNULL;
180 if ((_tokenSet_1.member(_t->getType()))) {
181 moleculestatement(_t);
182 _t = _retTree;
183 }
184 else {
185 goto _loop23;
186 }
187
188 }
189 _loop23:;
190 } // ( ... )*
191 ANTLR_USE_NAMESPACE(antlr)RefAST tmp5_AST_in = _t;
192 match(_t,ENDBLOCK);
193 _t = _t->getNextSibling();
194 _t = __t21;
195 _t = _t->getNextSibling();
196 #line 80 "MDTreeParser.g"
197 blockStack.top()->validate(); blockStack.pop(); currConf->addMoleculeStamp(currMoleculeStamp);
198 #line 199 "MDTreeParser.cpp"
199 }
200 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
201 reportError(ex);
202 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
203 _t = _t->getNextSibling();
204 }
205 _retTree = _t;
206 }
207
208 void MDTreeParser::zconstraintblock(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
209 ANTLR_USE_NAMESPACE(antlr)RefAST zconstraintblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
210
211 try { // for error handling
212 ANTLR_USE_NAMESPACE(antlr)RefAST __t13 = _t;
213 ANTLR_USE_NAMESPACE(antlr)RefAST tmp6_AST_in = _t;
214 match(_t,ZCONSTRAINT);
215 _t = _t->getFirstChild();
216 #line 68 "MDTreeParser.g"
217 ZConsStamp* currZConsStamp = new ZConsStamp(); blockStack.push(currZConsStamp);
218 #line 219 "MDTreeParser.cpp"
219 { // ( ... )*
220 for (;;) {
221 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
222 _t = ASTNULL;
223 if ((_t->getType() == ASSIGNEQUAL)) {
224 assignment(_t);
225 _t = _retTree;
226 }
227 else {
228 goto _loop15;
229 }
230
231 }
232 _loop15:;
233 } // ( ... )*
234 ANTLR_USE_NAMESPACE(antlr)RefAST tmp7_AST_in = _t;
235 match(_t,ENDBLOCK);
236 _t = _t->getNextSibling();
237 _t = __t13;
238 _t = _t->getNextSibling();
239 #line 70 "MDTreeParser.g"
240 blockStack.top()->validate();blockStack.pop(); currConf->addZConsStamp(currZConsStamp);
241 #line 242 "MDTreeParser.cpp"
242 }
243 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
244 reportError(ex);
245 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
246 _t = _t->getNextSibling();
247 }
248 _retTree = _t;
249 }
250
251 void MDTreeParser::restraintblock(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
252 ANTLR_USE_NAMESPACE(antlr)RefAST restraintblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
253
254 try { // for error handling
255 ANTLR_USE_NAMESPACE(antlr)RefAST __t17 = _t;
256 ANTLR_USE_NAMESPACE(antlr)RefAST tmp8_AST_in = _t;
257 match(_t,RESTRAINT);
258 _t = _t->getFirstChild();
259 #line 73 "MDTreeParser.g"
260 RestraintStamp* currRestraintStamp = new RestraintStamp(); blockStack.push(currRestraintStamp);
261 #line 262 "MDTreeParser.cpp"
262 { // ( ... )*
263 for (;;) {
264 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
265 _t = ASTNULL;
266 if ((_t->getType() == ASSIGNEQUAL)) {
267 assignment(_t);
268 _t = _retTree;
269 }
270 else {
271 goto _loop19;
272 }
273
274 }
275 _loop19:;
276 } // ( ... )*
277 ANTLR_USE_NAMESPACE(antlr)RefAST tmp9_AST_in = _t;
278 match(_t,ENDBLOCK);
279 _t = _t->getNextSibling();
280 _t = __t17;
281 _t = _t->getNextSibling();
282 #line 75 "MDTreeParser.g"
283 blockStack.top()->validate();blockStack.pop(); currConf->addRestraintStamp(currRestraintStamp);
284 #line 285 "MDTreeParser.cpp"
285 }
286 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
287 reportError(ex);
288 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
289 _t = _t->getNextSibling();
290 }
291 _retTree = _t;
292 }
293
294 void MDTreeParser::constant(ANTLR_USE_NAMESPACE(antlr)RefAST _t,
295 ANTLR_USE_NAMESPACE(antlr)RefAST id
296 ) {
297 ANTLR_USE_NAMESPACE(antlr)RefAST constant_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
298 ANTLR_USE_NAMESPACE(antlr)RefAST str1 = ANTLR_USE_NAMESPACE(antlr)nullAST;
299 ANTLR_USE_NAMESPACE(antlr)RefAST str2 = ANTLR_USE_NAMESPACE(antlr)nullAST;
300 #line 48 "MDTreeParser.g"
301
302 int ival;
303 RealType dval;
304
305 #line 306 "MDTreeParser.cpp"
306
307 try { // for error handling
308 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
309 _t = ASTNULL;
310 switch ( _t->getType()) {
311 case NUM_INT:
312 case NUM_LONG:
313 {
314 ival=intConst(_t);
315 _t = _retTree;
316 #line 53 "MDTreeParser.g"
317 blockStack.top()->assign(id->getText(), ival);
318 #line 319 "MDTreeParser.cpp"
319 break;
320 }
321 case NUM_FLOAT:
322 case NUM_DOUBLE:
323 {
324 dval=floatConst(_t);
325 _t = _retTree;
326 #line 54 "MDTreeParser.g"
327 blockStack.top()->assign(id->getText(), dval);
328 #line 329 "MDTreeParser.cpp"
329 break;
330 }
331 case ID:
332 {
333 str1 = _t;
334 match(_t,ID);
335 _t = _t->getNextSibling();
336 #line 55 "MDTreeParser.g"
337 blockStack.top()->assign(id->getText(), str1->getText());
338 #line 339 "MDTreeParser.cpp"
339 break;
340 }
341 case StringLiteral:
342 {
343 str2 = _t;
344 match(_t,StringLiteral);
345 _t = _t->getNextSibling();
346 #line 56 "MDTreeParser.g"
347 std::string s = str2->getText();
348 s = s.substr(1, s.length()-2);
349 blockStack.top()->assign(id->getText(),s);
350
351 #line 352 "MDTreeParser.cpp"
352 break;
353 }
354 default:
355 {
356 throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
357 }
358 }
359 }
360 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
361 reportError(ex);
362 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
363 _t = _t->getNextSibling();
364 }
365 _retTree = _t;
366 }
367
368 int MDTreeParser::intConst(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
369 #line 268 "MDTreeParser.g"
370 int ival;
371 #line 372 "MDTreeParser.cpp"
372 ANTLR_USE_NAMESPACE(antlr)RefAST intConst_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
373 ANTLR_USE_NAMESPACE(antlr)RefAST i1 = ANTLR_USE_NAMESPACE(antlr)nullAST;
374 ANTLR_USE_NAMESPACE(antlr)RefAST i2 = ANTLR_USE_NAMESPACE(antlr)nullAST;
375
376 try { // for error handling
377 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
378 _t = ASTNULL;
379 switch ( _t->getType()) {
380 case NUM_INT:
381 {
382 i1 = _t;
383 match(_t,NUM_INT);
384 _t = _t->getNextSibling();
385 #line 269 "MDTreeParser.g"
386 ival = lexi_cast<int>(i1->getText());
387 #line 388 "MDTreeParser.cpp"
388 break;
389 }
390 case NUM_LONG:
391 {
392 i2 = _t;
393 match(_t,NUM_LONG);
394 _t = _t->getNextSibling();
395 #line 270 "MDTreeParser.g"
396 ival = lexi_cast<int>(i2->getText());
397 #line 398 "MDTreeParser.cpp"
398 break;
399 }
400 default:
401 {
402 throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
403 }
404 }
405 }
406 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
407 reportError(ex);
408 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
409 _t = _t->getNextSibling();
410 }
411 _retTree = _t;
412 return ival;
413 }
414
415 RealType MDTreeParser::floatConst(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
416 #line 282 "MDTreeParser.g"
417 RealType dval;
418 #line 419 "MDTreeParser.cpp"
419 ANTLR_USE_NAMESPACE(antlr)RefAST floatConst_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
420 ANTLR_USE_NAMESPACE(antlr)RefAST d1 = ANTLR_USE_NAMESPACE(antlr)nullAST;
421 ANTLR_USE_NAMESPACE(antlr)RefAST d2 = ANTLR_USE_NAMESPACE(antlr)nullAST;
422
423 try { // for error handling
424 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
425 _t = ASTNULL;
426 switch ( _t->getType()) {
427 case NUM_FLOAT:
428 {
429 d1 = _t;
430 match(_t,NUM_FLOAT);
431 _t = _t->getNextSibling();
432 #line 283 "MDTreeParser.g"
433 dval = lexi_cast<RealType>(d1->getText());
434 #line 435 "MDTreeParser.cpp"
435 break;
436 }
437 case NUM_DOUBLE:
438 {
439 d2 = _t;
440 match(_t,NUM_DOUBLE);
441 _t = _t->getNextSibling();
442 #line 284 "MDTreeParser.g"
443 dval = lexi_cast<RealType>(d2->getText());
444 #line 445 "MDTreeParser.cpp"
445 break;
446 }
447 default:
448 {
449 throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
450 }
451 }
452 }
453 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
454 reportError(ex);
455 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
456 _t = _t->getNextSibling();
457 }
458 _retTree = _t;
459 return dval;
460 }
461
462 void MDTreeParser::moleculestatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
463 ANTLR_USE_NAMESPACE(antlr)RefAST moleculestatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
464
465 try { // for error handling
466 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
467 _t = ASTNULL;
468 switch ( _t->getType()) {
469 case ASSIGNEQUAL:
470 {
471 assignment(_t);
472 _t = _retTree;
473 break;
474 }
475 case ATOM:
476 {
477 atomblock(_t);
478 _t = _retTree;
479 break;
480 }
481 case BOND:
482 {
483 bondblock(_t);
484 _t = _retTree;
485 break;
486 }
487 case BEND:
488 {
489 bendblock(_t);
490 _t = _retTree;
491 break;
492 }
493 case TORSION:
494 {
495 torsionblock(_t);
496 _t = _retTree;
497 break;
498 }
499 case INVERSION:
500 {
501 inversionblock(_t);
502 _t = _retTree;
503 break;
504 }
505 case RIGIDBODY:
506 {
507 rigidbodyblock(_t);
508 _t = _retTree;
509 break;
510 }
511 case CUTOFFGROUP:
512 {
513 cutoffgroupblock(_t);
514 _t = _retTree;
515 break;
516 }
517 case FRAGMENT:
518 {
519 fragmentblock(_t);
520 _t = _retTree;
521 break;
522 }
523 default:
524 {
525 throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
526 }
527 }
528 }
529 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
530 reportError(ex);
531 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
532 _t = _t->getNextSibling();
533 }
534 _retTree = _t;
535 }
536
537 void MDTreeParser::atomblock(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
538 ANTLR_USE_NAMESPACE(antlr)RefAST atomblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
539 #line 94 "MDTreeParser.g"
540
541 int index;
542
543 #line 544 "MDTreeParser.cpp"
544
545 try { // for error handling
546 ANTLR_USE_NAMESPACE(antlr)RefAST __t26 = _t;
547 ANTLR_USE_NAMESPACE(antlr)RefAST tmp10_AST_in = _t;
548 match(_t,ATOM);
549 _t = _t->getFirstChild();
550 index=intConst(_t);
551 _t = _retTree;
552 #line 98 "MDTreeParser.g"
553 AtomStamp* currAtomStamp = new AtomStamp(index); blockStack.push(currAtomStamp);
554 #line 555 "MDTreeParser.cpp"
555 { // ( ... )*
556 for (;;) {
557 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
558 _t = ASTNULL;
559 if ((_t->getType() == POSITION || _t->getType() == ORIENTATION || _t->getType() == ASSIGNEQUAL)) {
560 atomstatement(_t);
561 _t = _retTree;
562 }
563 else {
564 goto _loop28;
565 }
566
567 }
568 _loop28:;
569 } // ( ... )*
570 ANTLR_USE_NAMESPACE(antlr)RefAST tmp11_AST_in = _t;
571 match(_t,ENDBLOCK);
572 _t = _t->getNextSibling();
573 _t = __t26;
574 _t = _t->getNextSibling();
575 #line 100 "MDTreeParser.g"
576
577 blockStack.top()->validate();
578 blockStack.pop();
579 MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
580 currMoleculeStamp->addAtomStamp(currAtomStamp);
581
582 #line 583 "MDTreeParser.cpp"
583 }
584 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
585 reportError(ex);
586 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
587 _t = _t->getNextSibling();
588 }
589 _retTree = _t;
590 }
591
592 void MDTreeParser::bondblock(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
593 ANTLR_USE_NAMESPACE(antlr)RefAST bondblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
594
595 try { // for error handling
596 ANTLR_USE_NAMESPACE(antlr)RefAST __t33 = _t;
597 ANTLR_USE_NAMESPACE(antlr)RefAST tmp12_AST_in = _t;
598 match(_t,BOND);
599 _t = _t->getFirstChild();
600 #line 120 "MDTreeParser.g"
601 BondStamp* currBondStamp = new BondStamp(); blockStack.push(currBondStamp);
602 #line 603 "MDTreeParser.cpp"
603 { // ( ... )*
604 for (;;) {
605 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
606 _t = ASTNULL;
607 if ((_t->getType() == MEMBERS || _t->getType() == ASSIGNEQUAL)) {
608 bondstatement(_t);
609 _t = _retTree;
610 }
611 else {
612 goto _loop35;
613 }
614
615 }
616 _loop35:;
617 } // ( ... )*
618 ANTLR_USE_NAMESPACE(antlr)RefAST tmp13_AST_in = _t;
619 match(_t,ENDBLOCK);
620 _t = _t->getNextSibling();
621 _t = __t33;
622 _t = _t->getNextSibling();
623 #line 122 "MDTreeParser.g"
624
625 blockStack.pop();
626 MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
627 currMoleculeStamp->addBondStamp(currBondStamp);
628
629 #line 630 "MDTreeParser.cpp"
630 }
631 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
632 reportError(ex);
633 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
634 _t = _t->getNextSibling();
635 }
636 _retTree = _t;
637 }
638
639 void MDTreeParser::bendblock(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
640 ANTLR_USE_NAMESPACE(antlr)RefAST bendblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
641
642 try { // for error handling
643 ANTLR_USE_NAMESPACE(antlr)RefAST __t39 = _t;
644 ANTLR_USE_NAMESPACE(antlr)RefAST tmp14_AST_in = _t;
645 match(_t,BEND);
646 _t = _t->getFirstChild();
647 #line 138 "MDTreeParser.g"
648 BendStamp* currBendStamp = new BendStamp(); blockStack.push(currBendStamp);
649 #line 650 "MDTreeParser.cpp"
650 { // ( ... )*
651 for (;;) {
652 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
653 _t = ASTNULL;
654 if ((_t->getType() == MEMBERS || _t->getType() == ASSIGNEQUAL)) {
655 bendstatement(_t);
656 _t = _retTree;
657 }
658 else {
659 goto _loop41;
660 }
661
662 }
663 _loop41:;
664 } // ( ... )*
665 ANTLR_USE_NAMESPACE(antlr)RefAST tmp15_AST_in = _t;
666 match(_t,ENDBLOCK);
667 _t = _t->getNextSibling();
668 _t = __t39;
669 _t = _t->getNextSibling();
670 #line 140 "MDTreeParser.g"
671
672 blockStack.top()->validate();
673 blockStack.pop();
674 MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
675 currMoleculeStamp->addBendStamp(currBendStamp);
676
677 #line 678 "MDTreeParser.cpp"
678 }
679 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
680 reportError(ex);
681 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
682 _t = _t->getNextSibling();
683 }
684 _retTree = _t;
685 }
686
687 void MDTreeParser::torsionblock(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
688 ANTLR_USE_NAMESPACE(antlr)RefAST torsionblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
689
690 try { // for error handling
691 ANTLR_USE_NAMESPACE(antlr)RefAST __t45 = _t;
692 ANTLR_USE_NAMESPACE(antlr)RefAST tmp16_AST_in = _t;
693 match(_t,TORSION);
694 _t = _t->getFirstChild();
695 #line 157 "MDTreeParser.g"
696 TorsionStamp* currTorsionStamp = new TorsionStamp(); blockStack.push(currTorsionStamp);
697 #line 698 "MDTreeParser.cpp"
698 { // ( ... )*
699 for (;;) {
700 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
701 _t = ASTNULL;
702 if ((_t->getType() == MEMBERS || _t->getType() == ASSIGNEQUAL)) {
703 torsionstatement(_t);
704 _t = _retTree;
705 }
706 else {
707 goto _loop47;
708 }
709
710 }
711 _loop47:;
712 } // ( ... )*
713 ANTLR_USE_NAMESPACE(antlr)RefAST tmp17_AST_in = _t;
714 match(_t,ENDBLOCK);
715 _t = _t->getNextSibling();
716 _t = __t45;
717 _t = _t->getNextSibling();
718 #line 159 "MDTreeParser.g"
719
720 blockStack.top()->validate();
721 blockStack.pop();
722 MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
723 currMoleculeStamp->addTorsionStamp(currTorsionStamp);
724
725 #line 726 "MDTreeParser.cpp"
726 }
727 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
728 reportError(ex);
729 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
730 _t = _t->getNextSibling();
731 }
732 _retTree = _t;
733 }
734
735 void MDTreeParser::inversionblock(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
736 ANTLR_USE_NAMESPACE(antlr)RefAST inversionblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
737
738 try { // for error handling
739 ANTLR_USE_NAMESPACE(antlr)RefAST __t51 = _t;
740 ANTLR_USE_NAMESPACE(antlr)RefAST tmp18_AST_in = _t;
741 match(_t,INVERSION);
742 _t = _t->getFirstChild();
743 #line 176 "MDTreeParser.g"
744 InversionStamp* currInversionStamp = new InversionStamp(); blockStack.push(currInversionStamp);
745 #line 746 "MDTreeParser.cpp"
746 { // ( ... )*
747 for (;;) {
748 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
749 _t = ASTNULL;
750 if ((_t->getType() == CENTER || _t->getType() == ASSIGNEQUAL)) {
751 inversionstatement(_t);
752 _t = _retTree;
753 }
754 else {
755 goto _loop53;
756 }
757
758 }
759 _loop53:;
760 } // ( ... )*
761 ANTLR_USE_NAMESPACE(antlr)RefAST tmp19_AST_in = _t;
762 match(_t,ENDBLOCK);
763 _t = _t->getNextSibling();
764 _t = __t51;
765 _t = _t->getNextSibling();
766 #line 178 "MDTreeParser.g"
767
768 blockStack.top()->validate();
769 blockStack.pop();
770 MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
771 currMoleculeStamp->addInversionStamp(currInversionStamp);
772
773 #line 774 "MDTreeParser.cpp"
774 }
775 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
776 reportError(ex);
777 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
778 _t = _t->getNextSibling();
779 }
780 _retTree = _t;
781 }
782
783 void MDTreeParser::rigidbodyblock(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
784 ANTLR_USE_NAMESPACE(antlr)RefAST rigidbodyblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
785 #line 195 "MDTreeParser.g"
786
787 int index;
788
789 #line 790 "MDTreeParser.cpp"
790
791 try { // for error handling
792 ANTLR_USE_NAMESPACE(antlr)RefAST __t57 = _t;
793 ANTLR_USE_NAMESPACE(antlr)RefAST tmp20_AST_in = _t;
794 match(_t,RIGIDBODY);
795 _t = _t->getFirstChild();
796 index=intConst(_t);
797 _t = _retTree;
798 #line 199 "MDTreeParser.g"
799 RigidBodyStamp* currRigidBodyStamp = new RigidBodyStamp(index); blockStack.push(currRigidBodyStamp);
800 #line 801 "MDTreeParser.cpp"
801 { // ( ... )*
802 for (;;) {
803 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
804 _t = ASTNULL;
805 if ((_t->getType() == MEMBERS || _t->getType() == ASSIGNEQUAL)) {
806 rigidbodystatement(_t);
807 _t = _retTree;
808 }
809 else {
810 goto _loop59;
811 }
812
813 }
814 _loop59:;
815 } // ( ... )*
816 ANTLR_USE_NAMESPACE(antlr)RefAST tmp21_AST_in = _t;
817 match(_t,ENDBLOCK);
818 _t = _t->getNextSibling();
819 _t = __t57;
820 _t = _t->getNextSibling();
821 #line 201 "MDTreeParser.g"
822
823 blockStack.top()->validate();
824 blockStack.pop();
825 MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
826 currMoleculeStamp->addRigidBodyStamp(currRigidBodyStamp);
827
828 #line 829 "MDTreeParser.cpp"
829 }
830 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
831 reportError(ex);
832 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
833 _t = _t->getNextSibling();
834 }
835 _retTree = _t;
836 }
837
838 void MDTreeParser::cutoffgroupblock(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
839 ANTLR_USE_NAMESPACE(antlr)RefAST cutoffgroupblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
840
841 try { // for error handling
842 ANTLR_USE_NAMESPACE(antlr)RefAST __t63 = _t;
843 ANTLR_USE_NAMESPACE(antlr)RefAST tmp22_AST_in = _t;
844 match(_t,CUTOFFGROUP);
845 _t = _t->getFirstChild();
846 #line 218 "MDTreeParser.g"
847 CutoffGroupStamp* currCutoffGroupStamp = new CutoffGroupStamp(); blockStack.push(currCutoffGroupStamp);
848 #line 849 "MDTreeParser.cpp"
849 { // ( ... )*
850 for (;;) {
851 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
852 _t = ASTNULL;
853 if ((_t->getType() == MEMBERS || _t->getType() == ASSIGNEQUAL)) {
854 cutoffgroupstatement(_t);
855 _t = _retTree;
856 }
857 else {
858 goto _loop65;
859 }
860
861 }
862 _loop65:;
863 } // ( ... )*
864 ANTLR_USE_NAMESPACE(antlr)RefAST tmp23_AST_in = _t;
865 match(_t,ENDBLOCK);
866 _t = _t->getNextSibling();
867 _t = __t63;
868 _t = _t->getNextSibling();
869 #line 220 "MDTreeParser.g"
870
871 blockStack.top()->validate();
872 blockStack.pop();
873 MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
874 currMoleculeStamp->addCutoffGroupStamp(currCutoffGroupStamp);
875
876 #line 877 "MDTreeParser.cpp"
877 }
878 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
879 reportError(ex);
880 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
881 _t = _t->getNextSibling();
882 }
883 _retTree = _t;
884 }
885
886 void MDTreeParser::fragmentblock(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
887 ANTLR_USE_NAMESPACE(antlr)RefAST fragmentblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
888 #line 237 "MDTreeParser.g"
889 int ival;
890 #line 891 "MDTreeParser.cpp"
891
892 try { // for error handling
893 ANTLR_USE_NAMESPACE(antlr)RefAST __t69 = _t;
894 ANTLR_USE_NAMESPACE(antlr)RefAST tmp24_AST_in = _t;
895 match(_t,FRAGMENT);
896 _t = _t->getFirstChild();
897 ival=intConst(_t);
898 _t = _retTree;
899 #line 238 "MDTreeParser.g"
900 FragmentStamp* currFragmentStamp = new FragmentStamp(ival); blockStack.push(currFragmentStamp);
901 #line 902 "MDTreeParser.cpp"
902 { // ( ... )*
903 for (;;) {
904 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
905 _t = ASTNULL;
906 if ((_t->getType() == ASSIGNEQUAL)) {
907 fragmentstatement(_t);
908 _t = _retTree;
909 }
910 else {
911 goto _loop71;
912 }
913
914 }
915 _loop71:;
916 } // ( ... )*
917 ANTLR_USE_NAMESPACE(antlr)RefAST tmp25_AST_in = _t;
918 match(_t,ENDBLOCK);
919 _t = _t->getNextSibling();
920 _t = __t69;
921 _t = _t->getNextSibling();
922 #line 240 "MDTreeParser.g"
923
924 blockStack.top()->validate();
925 blockStack.pop();
926 MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
927 currMoleculeStamp->addFragmentStamp(currFragmentStamp);
928
929 #line 930 "MDTreeParser.cpp"
930 }
931 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
932 reportError(ex);
933 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
934 _t = _t->getNextSibling();
935 }
936 _retTree = _t;
937 }
938
939 void MDTreeParser::atomstatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
940 ANTLR_USE_NAMESPACE(antlr)RefAST atomstatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
941 #line 108 "MDTreeParser.g"
942
943 vector<RealType> dvec;
944 AtomStamp* currAtomStamp = static_cast<AtomStamp*>(blockStack.top());
945
946
947 #line 948 "MDTreeParser.cpp"
948
949 try { // for error handling
950 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
951 _t = ASTNULL;
952 switch ( _t->getType()) {
953 case ASSIGNEQUAL:
954 {
955 assignment(_t);
956 _t = _retTree;
957 break;
958 }
959 case POSITION:
960 {
961 ANTLR_USE_NAMESPACE(antlr)RefAST __t30 = _t;
962 ANTLR_USE_NAMESPACE(antlr)RefAST tmp26_AST_in = _t;
963 match(_t,POSITION);
964 _t = _t->getFirstChild();
965 dvec=doubleNumberTuple(_t);
966 _t = _retTree;
967 _t = __t30;
968 _t = _t->getNextSibling();
969 #line 115 "MDTreeParser.g"
970 currAtomStamp->setPosition(dvec);
971 #line 972 "MDTreeParser.cpp"
972 break;
973 }
974 case ORIENTATION:
975 {
976 ANTLR_USE_NAMESPACE(antlr)RefAST __t31 = _t;
977 ANTLR_USE_NAMESPACE(antlr)RefAST tmp27_AST_in = _t;
978 match(_t,ORIENTATION);
979 _t = _t->getFirstChild();
980 dvec=doubleNumberTuple(_t);
981 _t = _retTree;
982 _t = __t31;
983 _t = _t->getNextSibling();
984 #line 116 "MDTreeParser.g"
985 currAtomStamp->setOrientation(dvec);
986 #line 987 "MDTreeParser.cpp"
987 break;
988 }
989 default:
990 {
991 throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
992 }
993 }
994 }
995 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
996 reportError(ex);
997 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
998 _t = _t->getNextSibling();
999 }
1000 _retTree = _t;
1001 }
1002
1003 vector<RealType> MDTreeParser::doubleNumberTuple(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1004 #line 253 "MDTreeParser.g"
1005 vector<RealType> dvec;
1006 #line 1007 "MDTreeParser.cpp"
1007 ANTLR_USE_NAMESPACE(antlr)RefAST doubleNumberTuple_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1008 #line 253 "MDTreeParser.g"
1009
1010 RealType dval;
1011
1012 #line 1013 "MDTreeParser.cpp"
1013
1014 try { // for error handling
1015 { // ( ... )+
1016 int _cnt75=0;
1017 for (;;) {
1018 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
1019 _t = ASTNULL;
1020 if (((_t->getType() >= NUM_INT && _t->getType() <= NUM_DOUBLE))) {
1021 dval=doubleNumber(_t);
1022 _t = _retTree;
1023 #line 257 "MDTreeParser.g"
1024 dvec.push_back(dval);
1025 #line 1026 "MDTreeParser.cpp"
1026 }
1027 else {
1028 if ( _cnt75>=1 ) { goto _loop75; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);}
1029 }
1030
1031 _cnt75++;
1032 }
1033 _loop75:;
1034 } // ( ... )+
1035 }
1036 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1037 reportError(ex);
1038 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
1039 _t = _t->getNextSibling();
1040 }
1041 _retTree = _t;
1042 return dvec;
1043 }
1044
1045 void MDTreeParser::bondstatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1046 ANTLR_USE_NAMESPACE(antlr)RefAST bondstatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1047 #line 129 "MDTreeParser.g"
1048
1049 vector<int> ivec;
1050 BondStamp* currBondStamp = static_cast<BondStamp*>(blockStack.top());
1051
1052 #line 1053 "MDTreeParser.cpp"
1053
1054 try { // for error handling
1055 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
1056 _t = ASTNULL;
1057 switch ( _t->getType()) {
1058 case ASSIGNEQUAL:
1059 {
1060 assignment(_t);
1061 _t = _retTree;
1062 break;
1063 }
1064 case MEMBERS:
1065 {
1066 ANTLR_USE_NAMESPACE(antlr)RefAST __t37 = _t;
1067 ANTLR_USE_NAMESPACE(antlr)RefAST tmp28_AST_in = _t;
1068 match(_t,MEMBERS);
1069 _t = _t->getFirstChild();
1070 ivec=inttuple(_t);
1071 _t = _retTree;
1072 _t = __t37;
1073 _t = _t->getNextSibling();
1074 #line 135 "MDTreeParser.g"
1075 currBondStamp->setMembers(ivec);
1076 #line 1077 "MDTreeParser.cpp"
1077 break;
1078 }
1079 default:
1080 {
1081 throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
1082 }
1083 }
1084 }
1085 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1086 reportError(ex);
1087 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
1088 _t = _t->getNextSibling();
1089 }
1090 _retTree = _t;
1091 }
1092
1093 vector<int> MDTreeParser::inttuple(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1094 #line 260 "MDTreeParser.g"
1095 vector<int> ivec;
1096 #line 1097 "MDTreeParser.cpp"
1097 ANTLR_USE_NAMESPACE(antlr)RefAST inttuple_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1098 #line 260 "MDTreeParser.g"
1099
1100 int ival;
1101
1102 #line 1103 "MDTreeParser.cpp"
1103
1104 try { // for error handling
1105 { // ( ... )+
1106 int _cnt78=0;
1107 for (;;) {
1108 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
1109 _t = ASTNULL;
1110 if ((_t->getType() == NUM_INT || _t->getType() == NUM_LONG)) {
1111 ival=intConst(_t);
1112 _t = _retTree;
1113 #line 264 "MDTreeParser.g"
1114 ivec.push_back(ival);
1115 #line 1116 "MDTreeParser.cpp"
1116 }
1117 else {
1118 if ( _cnt78>=1 ) { goto _loop78; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);}
1119 }
1120
1121 _cnt78++;
1122 }
1123 _loop78:;
1124 } // ( ... )+
1125 }
1126 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1127 reportError(ex);
1128 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
1129 _t = _t->getNextSibling();
1130 }
1131 _retTree = _t;
1132 return ivec;
1133 }
1134
1135 void MDTreeParser::bendstatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1136 ANTLR_USE_NAMESPACE(antlr)RefAST bendstatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1137 #line 148 "MDTreeParser.g"
1138
1139 vector<int> ivec;
1140 BendStamp* currBendStamp = static_cast<BendStamp*>(blockStack.top());
1141
1142 #line 1143 "MDTreeParser.cpp"
1143
1144 try { // for error handling
1145 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
1146 _t = ASTNULL;
1147 switch ( _t->getType()) {
1148 case ASSIGNEQUAL:
1149 {
1150 assignment(_t);
1151 _t = _retTree;
1152 break;
1153 }
1154 case MEMBERS:
1155 {
1156 ANTLR_USE_NAMESPACE(antlr)RefAST __t43 = _t;
1157 ANTLR_USE_NAMESPACE(antlr)RefAST tmp29_AST_in = _t;
1158 match(_t,MEMBERS);
1159 _t = _t->getFirstChild();
1160 ivec=inttuple(_t);
1161 _t = _retTree;
1162 _t = __t43;
1163 _t = _t->getNextSibling();
1164 #line 154 "MDTreeParser.g"
1165 currBendStamp->setMembers(ivec);
1166 #line 1167 "MDTreeParser.cpp"
1167 break;
1168 }
1169 default:
1170 {
1171 throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
1172 }
1173 }
1174 }
1175 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1176 reportError(ex);
1177 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
1178 _t = _t->getNextSibling();
1179 }
1180 _retTree = _t;
1181 }
1182
1183 void MDTreeParser::torsionstatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1184 ANTLR_USE_NAMESPACE(antlr)RefAST torsionstatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1185 #line 167 "MDTreeParser.g"
1186
1187 vector<int> ivec;
1188 TorsionStamp* currTorsionStamp = static_cast<TorsionStamp*>(blockStack.top());
1189
1190 #line 1191 "MDTreeParser.cpp"
1191
1192 try { // for error handling
1193 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
1194 _t = ASTNULL;
1195 switch ( _t->getType()) {
1196 case ASSIGNEQUAL:
1197 {
1198 assignment(_t);
1199 _t = _retTree;
1200 break;
1201 }
1202 case MEMBERS:
1203 {
1204 ANTLR_USE_NAMESPACE(antlr)RefAST __t49 = _t;
1205 ANTLR_USE_NAMESPACE(antlr)RefAST tmp30_AST_in = _t;
1206 match(_t,MEMBERS);
1207 _t = _t->getFirstChild();
1208 ivec=inttuple(_t);
1209 _t = _retTree;
1210 _t = __t49;
1211 _t = _t->getNextSibling();
1212 #line 173 "MDTreeParser.g"
1213 currTorsionStamp->setMembers(ivec);
1214 #line 1215 "MDTreeParser.cpp"
1215 break;
1216 }
1217 default:
1218 {
1219 throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
1220 }
1221 }
1222 }
1223 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1224 reportError(ex);
1225 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
1226 _t = _t->getNextSibling();
1227 }
1228 _retTree = _t;
1229 }
1230
1231 void MDTreeParser::inversionstatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1232 ANTLR_USE_NAMESPACE(antlr)RefAST inversionstatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1233 #line 186 "MDTreeParser.g"
1234
1235 int icent;
1236 InversionStamp* currInversionStamp = static_cast<InversionStamp*>(blockStack.top());
1237
1238 #line 1239 "MDTreeParser.cpp"
1239
1240 try { // for error handling
1241 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
1242 _t = ASTNULL;
1243 switch ( _t->getType()) {
1244 case ASSIGNEQUAL:
1245 {
1246 assignment(_t);
1247 _t = _retTree;
1248 break;
1249 }
1250 case CENTER:
1251 {
1252 ANTLR_USE_NAMESPACE(antlr)RefAST __t55 = _t;
1253 ANTLR_USE_NAMESPACE(antlr)RefAST tmp31_AST_in = _t;
1254 match(_t,CENTER);
1255 _t = _t->getFirstChild();
1256 icent=intConst(_t);
1257 _t = _retTree;
1258 _t = __t55;
1259 _t = _t->getNextSibling();
1260 #line 192 "MDTreeParser.g"
1261 currInversionStamp->setCenter(icent);
1262 #line 1263 "MDTreeParser.cpp"
1263 break;
1264 }
1265 default:
1266 {
1267 throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
1268 }
1269 }
1270 }
1271 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1272 reportError(ex);
1273 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
1274 _t = _t->getNextSibling();
1275 }
1276 _retTree = _t;
1277 }
1278
1279 void MDTreeParser::rigidbodystatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1280 ANTLR_USE_NAMESPACE(antlr)RefAST rigidbodystatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1281 #line 209 "MDTreeParser.g"
1282
1283 vector<int> ivec;
1284 RigidBodyStamp* currRigidBodyStamp = static_cast<RigidBodyStamp*>(blockStack.top());
1285
1286 #line 1287 "MDTreeParser.cpp"
1287
1288 try { // for error handling
1289 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
1290 _t = ASTNULL;
1291 switch ( _t->getType()) {
1292 case ASSIGNEQUAL:
1293 {
1294 assignment(_t);
1295 _t = _retTree;
1296 break;
1297 }
1298 case MEMBERS:
1299 {
1300 ANTLR_USE_NAMESPACE(antlr)RefAST __t61 = _t;
1301 ANTLR_USE_NAMESPACE(antlr)RefAST tmp32_AST_in = _t;
1302 match(_t,MEMBERS);
1303 _t = _t->getFirstChild();
1304 ivec=inttuple(_t);
1305 _t = _retTree;
1306 _t = __t61;
1307 _t = _t->getNextSibling();
1308 #line 215 "MDTreeParser.g"
1309 currRigidBodyStamp->setMembers(ivec);
1310 #line 1311 "MDTreeParser.cpp"
1311 break;
1312 }
1313 default:
1314 {
1315 throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
1316 }
1317 }
1318 }
1319 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1320 reportError(ex);
1321 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
1322 _t = _t->getNextSibling();
1323 }
1324 _retTree = _t;
1325 }
1326
1327 void MDTreeParser::cutoffgroupstatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1328 ANTLR_USE_NAMESPACE(antlr)RefAST cutoffgroupstatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1329 #line 228 "MDTreeParser.g"
1330
1331 vector<int> ivec;
1332 CutoffGroupStamp* currCutoffGroupStamp = static_cast<CutoffGroupStamp*>(blockStack.top());
1333
1334 #line 1335 "MDTreeParser.cpp"
1335
1336 try { // for error handling
1337 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
1338 _t = ASTNULL;
1339 switch ( _t->getType()) {
1340 case ASSIGNEQUAL:
1341 {
1342 assignment(_t);
1343 _t = _retTree;
1344 break;
1345 }
1346 case MEMBERS:
1347 {
1348 ANTLR_USE_NAMESPACE(antlr)RefAST __t67 = _t;
1349 ANTLR_USE_NAMESPACE(antlr)RefAST tmp33_AST_in = _t;
1350 match(_t,MEMBERS);
1351 _t = _t->getFirstChild();
1352 ivec=inttuple(_t);
1353 _t = _retTree;
1354 _t = __t67;
1355 _t = _t->getNextSibling();
1356 #line 234 "MDTreeParser.g"
1357 currCutoffGroupStamp->setMembers(ivec);
1358 #line 1359 "MDTreeParser.cpp"
1359 break;
1360 }
1361 default:
1362 {
1363 throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
1364 }
1365 }
1366 }
1367 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1368 reportError(ex);
1369 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
1370 _t = _t->getNextSibling();
1371 }
1372 _retTree = _t;
1373 }
1374
1375 void MDTreeParser::fragmentstatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1376 ANTLR_USE_NAMESPACE(antlr)RefAST fragmentstatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1377
1378 try { // for error handling
1379 assignment(_t);
1380 _t = _retTree;
1381 }
1382 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1383 reportError(ex);
1384 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
1385 _t = _t->getNextSibling();
1386 }
1387 _retTree = _t;
1388 }
1389
1390 RealType MDTreeParser::doubleNumber(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1391 #line 274 "MDTreeParser.g"
1392 RealType dval;
1393 #line 1394 "MDTreeParser.cpp"
1394 ANTLR_USE_NAMESPACE(antlr)RefAST doubleNumber_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1395 ANTLR_USE_NAMESPACE(antlr)RefAST ic = ANTLR_USE_NAMESPACE(antlr)nullAST;
1396 ANTLR_USE_NAMESPACE(antlr)RefAST fc = ANTLR_USE_NAMESPACE(antlr)nullAST;
1397
1398 try { // for error handling
1399 if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
1400 _t = ASTNULL;
1401 switch ( _t->getType()) {
1402 case NUM_INT:
1403 case NUM_LONG:
1404 {
1405 ic = (_t == ASTNULL) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1406 intConst(_t);
1407 _t = _retTree;
1408 #line 276 "MDTreeParser.g"
1409 dval = lexi_cast<RealType>(ic->getText());
1410 #line 1411 "MDTreeParser.cpp"
1411 break;
1412 }
1413 case NUM_FLOAT:
1414 case NUM_DOUBLE:
1415 {
1416 fc = (_t == ASTNULL) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1417 floatConst(_t);
1418 _t = _retTree;
1419 #line 277 "MDTreeParser.g"
1420 dval = lexi_cast<RealType>(fc->getText());
1421 #line 1422 "MDTreeParser.cpp"
1422 break;
1423 }
1424 default:
1425 {
1426 throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
1427 }
1428 }
1429 }
1430 catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1431 reportError(ex);
1432 if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
1433 _t = _t->getNextSibling();
1434 }
1435 _retTree = _t;
1436 return dval;
1437 }
1438
1439 void MDTreeParser::initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& )
1440 {
1441 }
1442 const char* MDTreeParser::tokenNames[] = {
1443 "<0>",
1444 "EOF",
1445 "<2>",
1446 "NULL_TREE_LOOKAHEAD",
1447 "\"component\"",
1448 "\"molecule\"",
1449 "\"zconstraint\"",
1450 "\"restraint\"",
1451 "\"atom\"",
1452 "\"bond\"",
1453 "\"bend\"",
1454 "\"torsion\"",
1455 "\"inversion\"",
1456 "\"rigidBody\"",
1457 "\"cutoffGroup\"",
1458 "\"fragment\"",
1459 "\"members\"",
1460 "\"center\"",
1461 "\"position\"",
1462 "\"orientation\"",
1463 "ENDBLOCK",
1464 "ID",
1465 "ASSIGNEQUAL",
1466 "SEMICOLON",
1467 "StringLiteral",
1468 "LCURLY",
1469 "RCURLY",
1470 "LBRACKET",
1471 "RBRACKET",
1472 "LPAREN",
1473 "RPAREN",
1474 "COMMA",
1475 "NUM_INT",
1476 "NUM_LONG",
1477 "NUM_FLOAT",
1478 "NUM_DOUBLE",
1479 "DOT",
1480 "COLON",
1481 "QUESTIONMARK",
1482 "Whitespace",
1483 "Comment",
1484 "CPPComment",
1485 "a line directive",
1486 "LineDirective",
1487 "Space",
1488 "CharLiteral",
1489 "EndOfLine",
1490 "Escape",
1491 "Vocabulary",
1492 "Digit",
1493 "Decimal",
1494 "HEX_DIGIT",
1495 "EXPONENT",
1496 "FLOAT_SUFFIX",
1497 0
1498 };
1499
1500 const unsigned long MDTreeParser::_tokenSet_0_data_[] = { 4194544UL, 0UL, 0UL, 0UL };
1501 // "component" "molecule" "zconstraint" "restraint" ASSIGNEQUAL
1502 const ANTLR_USE_NAMESPACE(antlr)BitSet MDTreeParser::_tokenSet_0(_tokenSet_0_data_,4);
1503 const unsigned long MDTreeParser::_tokenSet_1_data_[] = { 4259584UL, 0UL, 0UL, 0UL };
1504 // "atom" "bond" "bend" "torsion" "inversion" "rigidBody" "cutoffGroup"
1505 // "fragment" ASSIGNEQUAL
1506 const ANTLR_USE_NAMESPACE(antlr)BitSet MDTreeParser::_tokenSet_1(_tokenSet_1_data_,4);
1507
1508

Properties

Name Value
svn:keywords Author Id Revision Date