ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/mdParser/MDParser.cpp
Revision: 1360
Committed: Mon Sep 7 16:31:51 2009 UTC (15 years, 7 months ago) by cli2
Original Path: trunk/src/mdParser/MDParser.cpp
File size: 39188 byte(s)
Log Message:
Added new restraint infrastructure
Added MolecularRestraints
Added ObjectRestraints
Added RestraintStamp
Updated thermodynamic integration to use ObjectRestraints
Added Quaternion mathematics for twist swing decompositions
Significantly updated RestWriter and RestReader to use dump-like files
Added selections for x, y, and z coordinates of atoms
Removed monolithic Restraints class
Fixed a few bugs in gradients of Euler angles in DirectionalAtom and RigidBody
Added some rotational capabilities to prinicpalAxisCalculator

File Contents

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