ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/mdParser/MDParser.cpp
(Generate patch)

Comparing trunk/src/mdParser/MDParser.cpp (file contents):
Revision 1277 by gezelter, Mon Jul 14 12:35:58 2008 UTC vs.
Revision 1979 by gezelter, Sat Apr 5 20:56:01 2014 UTC

# Line 1 | Line 1
1 < /* $ANTLR 2.7.7 (20080702): "MDParser.g" -> "MDParser.cpp"$ */
1 > /* $ANTLR 2.7.7 (20140107): "MDParser.g" -> "MDParser.cpp"$ */
2   #include "MDParser.hpp"
3   #include <antlr/NoViableAltException.hpp>
4   #include <antlr/SemanticException.hpp>
# Line 89 | Line 89 | void MDParser::statement() {
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 +                case FLUCQ:
104 +                {
105 +                        flucqblock();
106 +                        astFactory->addASTChild( currentAST, returnAST );
107 +                        statement_AST = currentAST.root;
108 +                        break;
109 +                }
110 +                case RNEMD:
111 +                {
112 +                        rnemdblock();
113 +                        astFactory->addASTChild( currentAST, returnAST );
114 +                        statement_AST = currentAST.root;
115 +                        break;
116 +                }
117 +                case MINIMIZER:
118 +                {
119 +                        minimizerblock();
120                          astFactory->addASTChild( currentAST, returnAST );
121                          statement_AST = currentAST.root;
122                          break;
# Line 160 | Line 188 | void MDParser::componentblock() {
188                  tmp6_AST = astFactory->create(LT(1));
189                  astFactory->addASTChild(currentAST, tmp6_AST);
190                  match(RCURLY);
191 < #line 65 "MDParser.g"
191 > #line 77 "MDParser.g"
192                  tmp6_AST->setType(ENDBLOCK);
193 < #line 166 "MDParser.cpp"
193 > #line 194 "MDParser.cpp"
194                  componentblock_AST = currentAST.root;
195          }
196          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 190 | Line 218 | void MDParser::moleculeblock() {
218                                  astFactory->addASTChild( currentAST, returnAST );
219                          }
220                          else {
221 <                                goto _loop15;
221 >                                goto _loop27;
222                          }
223                          
224                  }
225 <                _loop15:;
225 >                _loop27:;
226                  } // ( ... )*
227                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp9_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
228                  tmp9_AST = astFactory->create(LT(1));
229                  astFactory->addASTChild(currentAST, tmp9_AST);
230                  match(RCURLY);
231 < #line 71 "MDParser.g"
231 > #line 95 "MDParser.g"
232                  tmp9_AST->setType(ENDBLOCK);
233 < #line 206 "MDParser.cpp"
233 > #line 234 "MDParser.cpp"
234                  moleculeblock_AST = currentAST.root;
235          }
236          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 240 | Line 268 | void MDParser::zconstraintblock() {
268                  tmp12_AST = astFactory->create(LT(1));
269                  astFactory->addASTChild(currentAST, tmp12_AST);
270                  match(RCURLY);
271 < #line 68 "MDParser.g"
271 > #line 80 "MDParser.g"
272                  tmp12_AST->setType(ENDBLOCK);
273 < #line 246 "MDParser.cpp"
273 > #line 274 "MDParser.cpp"
274                  zconstraintblock_AST = currentAST.root;
275          }
276          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 252 | Line 280 | void MDParser::zconstraintblock() {
280          returnAST = zconstraintblock_AST;
281   }
282  
283 + void MDParser::restraintblock() {
284 +        returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST;
285 +        ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST;
286 +        ANTLR_USE_NAMESPACE(antlr)RefAST restraintblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
287 +        
288 +        try {      // for error handling
289 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp13_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
290 +                tmp13_AST = astFactory->create(LT(1));
291 +                astFactory->makeASTRoot(currentAST, tmp13_AST);
292 +                match(RESTRAINT);
293 +                match(LCURLY);
294 +                { // ( ... )*
295 +                for (;;) {
296 +                        if ((LA(1) == ID)) {
297 +                                assignment();
298 +                                astFactory->addASTChild( currentAST, returnAST );
299 +                        }
300 +                        else {
301 +                                goto _loop15;
302 +                        }
303 +                        
304 +                }
305 +                _loop15:;
306 +                } // ( ... )*
307 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp15_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
308 +                tmp15_AST = astFactory->create(LT(1));
309 +                astFactory->addASTChild(currentAST, tmp15_AST);
310 +                match(RCURLY);
311 + #line 83 "MDParser.g"
312 +                tmp15_AST->setType(ENDBLOCK);
313 + #line 314 "MDParser.cpp"
314 +                restraintblock_AST = currentAST.root;
315 +        }
316 +        catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
317 +                reportError(ex);
318 +                recover(ex,_tokenSet_2);
319 +        }
320 +        returnAST = restraintblock_AST;
321 + }
322 +
323 + void MDParser::flucqblock() {
324 +        returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST;
325 +        ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST;
326 +        ANTLR_USE_NAMESPACE(antlr)RefAST flucqblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
327 +        
328 +        try {      // for error handling
329 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp16_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
330 +                tmp16_AST = astFactory->create(LT(1));
331 +                astFactory->makeASTRoot(currentAST, tmp16_AST);
332 +                match(FLUCQ);
333 +                match(LCURLY);
334 +                { // ( ... )*
335 +                for (;;) {
336 +                        if ((LA(1) == ID)) {
337 +                                assignment();
338 +                                astFactory->addASTChild( currentAST, returnAST );
339 +                        }
340 +                        else {
341 +                                goto _loop18;
342 +                        }
343 +                        
344 +                }
345 +                _loop18:;
346 +                } // ( ... )*
347 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp18_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
348 +                tmp18_AST = astFactory->create(LT(1));
349 +                astFactory->addASTChild(currentAST, tmp18_AST);
350 +                match(RCURLY);
351 + #line 86 "MDParser.g"
352 +                tmp18_AST->setType(ENDBLOCK);
353 + #line 354 "MDParser.cpp"
354 +                flucqblock_AST = currentAST.root;
355 +        }
356 +        catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
357 +                reportError(ex);
358 +                recover(ex,_tokenSet_2);
359 +        }
360 +        returnAST = flucqblock_AST;
361 + }
362 +
363 + void MDParser::rnemdblock() {
364 +        returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST;
365 +        ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST;
366 +        ANTLR_USE_NAMESPACE(antlr)RefAST rnemdblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
367 +        
368 +        try {      // for error handling
369 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp19_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
370 +                tmp19_AST = astFactory->create(LT(1));
371 +                astFactory->makeASTRoot(currentAST, tmp19_AST);
372 +                match(RNEMD);
373 +                match(LCURLY);
374 +                { // ( ... )*
375 +                for (;;) {
376 +                        if ((LA(1) == ID)) {
377 +                                assignment();
378 +                                astFactory->addASTChild( currentAST, returnAST );
379 +                        }
380 +                        else {
381 +                                goto _loop21;
382 +                        }
383 +                        
384 +                }
385 +                _loop21:;
386 +                } // ( ... )*
387 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp21_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
388 +                tmp21_AST = astFactory->create(LT(1));
389 +                astFactory->addASTChild(currentAST, tmp21_AST);
390 +                match(RCURLY);
391 + #line 89 "MDParser.g"
392 +                tmp21_AST->setType(ENDBLOCK);
393 + #line 394 "MDParser.cpp"
394 +                rnemdblock_AST = currentAST.root;
395 +        }
396 +        catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
397 +                reportError(ex);
398 +                recover(ex,_tokenSet_2);
399 +        }
400 +        returnAST = rnemdblock_AST;
401 + }
402 +
403 + void MDParser::minimizerblock() {
404 +        returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST;
405 +        ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST;
406 +        ANTLR_USE_NAMESPACE(antlr)RefAST minimizerblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
407 +        
408 +        try {      // for error handling
409 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp22_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
410 +                tmp22_AST = astFactory->create(LT(1));
411 +                astFactory->makeASTRoot(currentAST, tmp22_AST);
412 +                match(MINIMIZER);
413 +                match(LCURLY);
414 +                { // ( ... )*
415 +                for (;;) {
416 +                        if ((LA(1) == ID)) {
417 +                                assignment();
418 +                                astFactory->addASTChild( currentAST, returnAST );
419 +                        }
420 +                        else {
421 +                                goto _loop24;
422 +                        }
423 +                        
424 +                }
425 +                _loop24:;
426 +                } // ( ... )*
427 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp24_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
428 +                tmp24_AST = astFactory->create(LT(1));
429 +                astFactory->addASTChild(currentAST, tmp24_AST);
430 +                match(RCURLY);
431 + #line 92 "MDParser.g"
432 +                tmp24_AST->setType(ENDBLOCK);
433 + #line 434 "MDParser.cpp"
434 +                minimizerblock_AST = currentAST.root;
435 +        }
436 +        catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
437 +                reportError(ex);
438 +                recover(ex,_tokenSet_2);
439 +        }
440 +        returnAST = minimizerblock_AST;
441 + }
442 +
443   void MDParser::constant() {
444          returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST;
445          ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST;
# Line 275 | Line 463 | void MDParser::constant() {
463                          constant_AST = currentAST.root;
464                          break;
465                  }
466 +                case LPAREN:
467 +                {
468 +                        vectorConst();
469 +                        astFactory->addASTChild( currentAST, returnAST );
470 +                        constant_AST = currentAST.root;
471 +                        break;
472 +                }
473                  case ID:
474                  {
475 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp13_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
476 <                        tmp13_AST = astFactory->create(LT(1));
477 <                        astFactory->addASTChild(currentAST, tmp13_AST);
475 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp25_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
476 >                        tmp25_AST = astFactory->create(LT(1));
477 >                        astFactory->addASTChild(currentAST, tmp25_AST);
478                          match(ID);
479                          constant_AST = currentAST.root;
480                          break;
481                  }
482                  case StringLiteral:
483                  {
484 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp14_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
485 <                        tmp14_AST = astFactory->create(LT(1));
486 <                        astFactory->addASTChild(currentAST, tmp14_AST);
484 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp26_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
485 >                        tmp26_AST = astFactory->create(LT(1));
486 >                        astFactory->addASTChild(currentAST, tmp26_AST);
487                          match(StringLiteral);
488                          constant_AST = currentAST.root;
489                          break;
# Line 315 | Line 510 | void MDParser::intConst() {
510                  switch ( LA(1)) {
511                  case NUM_INT:
512                  {
513 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp15_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
514 <                        tmp15_AST = astFactory->create(LT(1));
515 <                        astFactory->addASTChild(currentAST, tmp15_AST);
513 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp27_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
514 >                        tmp27_AST = astFactory->create(LT(1));
515 >                        astFactory->addASTChild(currentAST, tmp27_AST);
516                          match(NUM_INT);
517                          intConst_AST = currentAST.root;
518                          break;
519                  }
520                  case NUM_LONG:
521                  {
522 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp16_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
523 <                        tmp16_AST = astFactory->create(LT(1));
524 <                        astFactory->addASTChild(currentAST, tmp16_AST);
522 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp28_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
523 >                        tmp28_AST = astFactory->create(LT(1));
524 >                        astFactory->addASTChild(currentAST, tmp28_AST);
525                          match(NUM_LONG);
526                          intConst_AST = currentAST.root;
527                          break;
# Line 353 | Line 548 | void MDParser::floatConst() {
548                  switch ( LA(1)) {
549                  case NUM_FLOAT:
550                  {
551 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp17_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
552 <                        tmp17_AST = astFactory->create(LT(1));
553 <                        astFactory->addASTChild(currentAST, tmp17_AST);
551 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp29_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
552 >                        tmp29_AST = astFactory->create(LT(1));
553 >                        astFactory->addASTChild(currentAST, tmp29_AST);
554                          match(NUM_FLOAT);
555                          floatConst_AST = currentAST.root;
556                          break;
557                  }
558                  case NUM_DOUBLE:
559                  {
560 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp18_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
561 <                        tmp18_AST = astFactory->create(LT(1));
562 <                        astFactory->addASTChild(currentAST, tmp18_AST);
560 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp30_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
561 >                        tmp30_AST = astFactory->create(LT(1));
562 >                        astFactory->addASTChild(currentAST, tmp30_AST);
563                          match(NUM_DOUBLE);
564                          floatConst_AST = currentAST.root;
565                          break;
# Line 380 | Line 575 | void MDParser::floatConst() {
575                  recover(ex,_tokenSet_7);
576          }
577          returnAST = floatConst_AST;
578 + }
579 +
580 + void MDParser::vectorConst() {
581 +        returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST;
582 +        ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST;
583 +        ANTLR_USE_NAMESPACE(antlr)RefAST vectorConst_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
584 +        
585 +        try {      // for error handling
586 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp31_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
587 +                tmp31_AST = astFactory->create(LT(1));
588 +                astFactory->makeASTRoot(currentAST, tmp31_AST);
589 +                match(LPAREN);
590 +                doubleNumber();
591 +                astFactory->addASTChild( currentAST, returnAST );
592 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp32_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
593 +                tmp32_AST = astFactory->create(LT(1));
594 +                astFactory->addASTChild(currentAST, tmp32_AST);
595 +                match(COMMA);
596 +                doubleNumber();
597 +                astFactory->addASTChild( currentAST, returnAST );
598 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp33_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
599 +                tmp33_AST = astFactory->create(LT(1));
600 +                astFactory->addASTChild(currentAST, tmp33_AST);
601 +                match(COMMA);
602 +                doubleNumber();
603 +                astFactory->addASTChild( currentAST, returnAST );
604 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp34_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
605 +                tmp34_AST = astFactory->create(LT(1));
606 +                astFactory->addASTChild(currentAST, tmp34_AST);
607 +                match(RPAREN);
608 +                vectorConst_AST = currentAST.root;
609 +        }
610 +        catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
611 +                reportError(ex);
612 +                recover(ex,_tokenSet_5);
613 +        }
614 +        returnAST = vectorConst_AST;
615   }
616  
617   void MDParser::moleculestatement() {
# Line 452 | Line 684 | void MDParser::moleculestatement() {
684                          moleculestatement_AST = currentAST.root;
685                          break;
686                  }
687 +                case CONSTRAINT:
688 +                {
689 +                        constraintblock();
690 +                        astFactory->addASTChild( currentAST, returnAST );
691 +                        moleculestatement_AST = currentAST.root;
692 +                        break;
693 +                }
694                  default:
695                  {
696                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
# Line 471 | Line 710 | void MDParser::atomblock() {
710          ANTLR_USE_NAMESPACE(antlr)RefAST atomblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
711          
712          try {      // for error handling
713 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp19_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
714 <                tmp19_AST = astFactory->create(LT(1));
715 <                astFactory->makeASTRoot(currentAST, tmp19_AST);
713 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp35_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
714 >                tmp35_AST = astFactory->create(LT(1));
715 >                astFactory->makeASTRoot(currentAST, tmp35_AST);
716                  match(ATOM);
717                  match(LBRACKET);
718                  intConst();
# Line 487 | Line 726 | void MDParser::atomblock() {
726                                  astFactory->addASTChild( currentAST, returnAST );
727                          }
728                          else {
729 <                                goto _loop19;
729 >                                goto _loop31;
730                          }
731                          
732                  }
733 <                _loop19:;
733 >                _loop31:;
734                  } // ( ... )*
735 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp23_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
736 <                tmp23_AST = astFactory->create(LT(1));
737 <                astFactory->addASTChild(currentAST, tmp23_AST);
735 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp39_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
736 >                tmp39_AST = astFactory->create(LT(1));
737 >                astFactory->addASTChild(currentAST, tmp39_AST);
738                  match(RCURLY);
739 < #line 85 "MDParser.g"
740 <                tmp23_AST->setType(ENDBLOCK);
741 < #line 503 "MDParser.cpp"
739 > #line 110 "MDParser.g"
740 >                tmp39_AST->setType(ENDBLOCK);
741 > #line 742 "MDParser.cpp"
742                  atomblock_AST = currentAST.root;
743          }
744          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 515 | Line 754 | void MDParser::bondblock() {
754          ANTLR_USE_NAMESPACE(antlr)RefAST bondblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
755          
756          try {      // for error handling
757 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp24_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
758 <                tmp24_AST = astFactory->create(LT(1));
759 <                astFactory->makeASTRoot(currentAST, tmp24_AST);
757 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp40_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
758 >                tmp40_AST = astFactory->create(LT(1));
759 >                astFactory->makeASTRoot(currentAST, tmp40_AST);
760                  match(BOND);
761                  {
762                  switch ( LA(1)) {
# Line 546 | Line 785 | void MDParser::bondblock() {
785                                  astFactory->addASTChild( currentAST, returnAST );
786                          }
787                          else {
788 <                                goto _loop24;
788 >                                goto _loop36;
789                          }
790                          
791                  }
792 <                _loop24:;
792 >                _loop36:;
793                  } // ( ... )*
794 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp28_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
795 <                tmp28_AST = astFactory->create(LT(1));
796 <                astFactory->addASTChild(currentAST, tmp28_AST);
794 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp44_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
795 >                tmp44_AST = astFactory->create(LT(1));
796 >                astFactory->addASTChild(currentAST, tmp44_AST);
797                  match(RCURLY);
798 < #line 94 "MDParser.g"
799 <                tmp28_AST->setType(ENDBLOCK);
800 < #line 562 "MDParser.cpp"
798 > #line 119 "MDParser.g"
799 >                tmp44_AST->setType(ENDBLOCK);
800 > #line 801 "MDParser.cpp"
801                  bondblock_AST = currentAST.root;
802          }
803          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 574 | Line 813 | void MDParser::bendblock() {
813          ANTLR_USE_NAMESPACE(antlr)RefAST bendblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
814          
815          try {      // for error handling
816 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp29_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
817 <                tmp29_AST = astFactory->create(LT(1));
818 <                astFactory->makeASTRoot(currentAST, tmp29_AST);
816 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp45_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
817 >                tmp45_AST = astFactory->create(LT(1));
818 >                astFactory->makeASTRoot(currentAST, tmp45_AST);
819                  match(BEND);
820                  {
821                  switch ( LA(1)) {
# Line 605 | Line 844 | void MDParser::bendblock() {
844                                  astFactory->addASTChild( currentAST, returnAST );
845                          }
846                          else {
847 <                                goto _loop29;
847 >                                goto _loop41;
848                          }
849                          
850                  }
851 <                _loop29:;
851 >                _loop41:;
852                  } // ( ... )*
853 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp33_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
854 <                tmp33_AST = astFactory->create(LT(1));
855 <                astFactory->addASTChild(currentAST, tmp33_AST);
853 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp49_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
854 >                tmp49_AST = astFactory->create(LT(1));
855 >                astFactory->addASTChild(currentAST, tmp49_AST);
856                  match(RCURLY);
857 < #line 101 "MDParser.g"
858 <                tmp33_AST->setType(ENDBLOCK);
859 < #line 621 "MDParser.cpp"
857 > #line 126 "MDParser.g"
858 >                tmp49_AST->setType(ENDBLOCK);
859 > #line 860 "MDParser.cpp"
860                  bendblock_AST = currentAST.root;
861          }
862          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 633 | Line 872 | void MDParser::torsionblock() {
872          ANTLR_USE_NAMESPACE(antlr)RefAST torsionblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
873          
874          try {      // for error handling
875 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp34_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
876 <                tmp34_AST = astFactory->create(LT(1));
877 <                astFactory->makeASTRoot(currentAST, tmp34_AST);
875 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp50_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
876 >                tmp50_AST = astFactory->create(LT(1));
877 >                astFactory->makeASTRoot(currentAST, tmp50_AST);
878                  match(TORSION);
879                  {
880                  switch ( LA(1)) {
# Line 664 | Line 903 | void MDParser::torsionblock() {
903                                  astFactory->addASTChild( currentAST, returnAST );
904                          }
905                          else {
906 <                                goto _loop34;
906 >                                goto _loop46;
907                          }
908                          
909                  }
910 <                _loop34:;
910 >                _loop46:;
911                  } // ( ... )*
912 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp38_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
913 <                tmp38_AST = astFactory->create(LT(1));
914 <                astFactory->addASTChild(currentAST, tmp38_AST);
912 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp54_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
913 >                tmp54_AST = astFactory->create(LT(1));
914 >                astFactory->addASTChild(currentAST, tmp54_AST);
915                  match(RCURLY);
916 < #line 108 "MDParser.g"
917 <                tmp38_AST->setType(ENDBLOCK);
918 < #line 680 "MDParser.cpp"
916 > #line 133 "MDParser.g"
917 >                tmp54_AST->setType(ENDBLOCK);
918 > #line 919 "MDParser.cpp"
919                  torsionblock_AST = currentAST.root;
920          }
921          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 692 | Line 931 | void MDParser::inversionblock() {
931          ANTLR_USE_NAMESPACE(antlr)RefAST inversionblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
932          
933          try {      // for error handling
934 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp39_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
935 <                tmp39_AST = astFactory->create(LT(1));
936 <                astFactory->makeASTRoot(currentAST, tmp39_AST);
934 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp55_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
935 >                tmp55_AST = astFactory->create(LT(1));
936 >                astFactory->makeASTRoot(currentAST, tmp55_AST);
937                  match(INVERSION);
938                  {
939                  switch ( LA(1)) {
# Line 718 | Line 957 | void MDParser::inversionblock() {
957                  match(LCURLY);
958                  { // ( ... )*
959                  for (;;) {
960 <                        if ((LA(1) == CENTER || LA(1) == ID)) {
960 >                        if ((_tokenSet_10.member(LA(1)))) {
961                                  inversionstatement();
962                                  astFactory->addASTChild( currentAST, returnAST );
963                          }
964                          else {
965 <                                goto _loop39;
965 >                                goto _loop51;
966                          }
967                          
968                  }
969 <                _loop39:;
969 >                _loop51:;
970                  } // ( ... )*
971 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp43_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
972 <                tmp43_AST = astFactory->create(LT(1));
973 <                astFactory->addASTChild(currentAST, tmp43_AST);
971 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp59_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
972 >                tmp59_AST = astFactory->create(LT(1));
973 >                astFactory->addASTChild(currentAST, tmp59_AST);
974                  match(RCURLY);
975 < #line 115 "MDParser.g"
976 <                tmp43_AST->setType(ENDBLOCK);
977 < #line 739 "MDParser.cpp"
975 > #line 140 "MDParser.g"
976 >                tmp59_AST->setType(ENDBLOCK);
977 > #line 978 "MDParser.cpp"
978                  inversionblock_AST = currentAST.root;
979          }
980          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 751 | Line 990 | void MDParser::rigidbodyblock() {
990          ANTLR_USE_NAMESPACE(antlr)RefAST rigidbodyblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
991          
992          try {      // for error handling
993 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp44_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
994 <                tmp44_AST = astFactory->create(LT(1));
995 <                astFactory->makeASTRoot(currentAST, tmp44_AST);
993 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp60_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
994 >                tmp60_AST = astFactory->create(LT(1));
995 >                astFactory->makeASTRoot(currentAST, tmp60_AST);
996                  match(RIGIDBODY);
997                  match(LBRACKET);
998                  intConst();
# Line 767 | Line 1006 | void MDParser::rigidbodyblock() {
1006                                  astFactory->addASTChild( currentAST, returnAST );
1007                          }
1008                          else {
1009 <                                goto _loop43;
1009 >                                goto _loop55;
1010                          }
1011                          
1012                  }
1013 <                _loop43:;
1013 >                _loop55:;
1014                  } // ( ... )*
1015 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp48_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1016 <                tmp48_AST = astFactory->create(LT(1));
1017 <                astFactory->addASTChild(currentAST, tmp48_AST);
1015 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp64_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1016 >                tmp64_AST = astFactory->create(LT(1));
1017 >                astFactory->addASTChild(currentAST, tmp64_AST);
1018                  match(RCURLY);
1019 < #line 122 "MDParser.g"
1020 <                tmp48_AST->setType(ENDBLOCK);
1021 < #line 783 "MDParser.cpp"
1019 > #line 148 "MDParser.g"
1020 >                tmp64_AST->setType(ENDBLOCK);
1021 > #line 1022 "MDParser.cpp"
1022                  rigidbodyblock_AST = currentAST.root;
1023          }
1024          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 795 | Line 1034 | void MDParser::cutoffgroupblock() {
1034          ANTLR_USE_NAMESPACE(antlr)RefAST cutoffgroupblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1035          
1036          try {      // for error handling
1037 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp49_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1038 <                tmp49_AST = astFactory->create(LT(1));
1039 <                astFactory->makeASTRoot(currentAST, tmp49_AST);
1037 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp65_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1038 >                tmp65_AST = astFactory->create(LT(1));
1039 >                astFactory->makeASTRoot(currentAST, tmp65_AST);
1040                  match(CUTOFFGROUP);
1041                  {
1042                  switch ( LA(1)) {
# Line 826 | Line 1065 | void MDParser::cutoffgroupblock() {
1065                                  astFactory->addASTChild( currentAST, returnAST );
1066                          }
1067                          else {
1068 <                                goto _loop48;
1068 >                                goto _loop60;
1069                          }
1070                          
1071                  }
1072 <                _loop48:;
1072 >                _loop60:;
1073                  } // ( ... )*
1074 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp53_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1075 <                tmp53_AST = astFactory->create(LT(1));
1076 <                astFactory->addASTChild(currentAST, tmp53_AST);
1074 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp69_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1075 >                tmp69_AST = astFactory->create(LT(1));
1076 >                astFactory->addASTChild(currentAST, tmp69_AST);
1077                  match(RCURLY);
1078 < #line 129 "MDParser.g"
1079 <                tmp53_AST->setType(ENDBLOCK);
1080 < #line 842 "MDParser.cpp"
1078 > #line 155 "MDParser.g"
1079 >                tmp69_AST->setType(ENDBLOCK);
1080 > #line 1081 "MDParser.cpp"
1081                  cutoffgroupblock_AST = currentAST.root;
1082          }
1083          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 854 | Line 1093 | void MDParser::fragmentblock() {
1093          ANTLR_USE_NAMESPACE(antlr)RefAST fragmentblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1094          
1095          try {      // for error handling
1096 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp54_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1097 <                tmp54_AST = astFactory->create(LT(1));
1098 <                astFactory->makeASTRoot(currentAST, tmp54_AST);
1096 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp70_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1097 >                tmp70_AST = astFactory->create(LT(1));
1098 >                astFactory->makeASTRoot(currentAST, tmp70_AST);
1099                  match(FRAGMENT);
1100                  match(LBRACKET);
1101                  intConst();
# Line 870 | Line 1109 | void MDParser::fragmentblock() {
1109                                  astFactory->addASTChild( currentAST, returnAST );
1110                          }
1111                          else {
1112 <                                goto _loop52;
1112 >                                goto _loop64;
1113                          }
1114                          
1115                  }
1116 <                _loop52:;
1116 >                _loop64:;
1117                  } // ( ... )*
1118 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp58_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1119 <                tmp58_AST = astFactory->create(LT(1));
1120 <                astFactory->addASTChild(currentAST, tmp58_AST);
1118 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp74_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1119 >                tmp74_AST = astFactory->create(LT(1));
1120 >                astFactory->addASTChild(currentAST, tmp74_AST);
1121                  match(RCURLY);
1122 < #line 136 "MDParser.g"
1123 <                tmp58_AST->setType(ENDBLOCK);
1124 < #line 886 "MDParser.cpp"
1122 > #line 162 "MDParser.g"
1123 >                tmp74_AST->setType(ENDBLOCK);
1124 > #line 1125 "MDParser.cpp"
1125                  fragmentblock_AST = currentAST.root;
1126          }
1127          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 892 | Line 1131 | void MDParser::fragmentblock() {
1131          returnAST = fragmentblock_AST;
1132   }
1133  
1134 + void MDParser::constraintblock() {
1135 +        returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1136 +        ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST;
1137 +        ANTLR_USE_NAMESPACE(antlr)RefAST constraintblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1138 +        
1139 +        try {      // for error handling
1140 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp75_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1141 +                tmp75_AST = astFactory->create(LT(1));
1142 +                astFactory->makeASTRoot(currentAST, tmp75_AST);
1143 +                match(CONSTRAINT);
1144 +                {
1145 +                switch ( LA(1)) {
1146 +                case LBRACKET:
1147 +                {
1148 +                        match(LBRACKET);
1149 +                        intConst();
1150 +                        match(RBRACKET);
1151 +                        break;
1152 +                }
1153 +                case LCURLY:
1154 +                {
1155 +                        break;
1156 +                }
1157 +                default:
1158 +                {
1159 +                        throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
1160 +                }
1161 +                }
1162 +                }
1163 +                match(LCURLY);
1164 +                { // ( ... )*
1165 +                for (;;) {
1166 +                        if ((LA(1) == MEMBERS || LA(1) == ID)) {
1167 +                                constraintstatement();
1168 +                                astFactory->addASTChild( currentAST, returnAST );
1169 +                        }
1170 +                        else {
1171 +                                goto _loop69;
1172 +                        }
1173 +                        
1174 +                }
1175 +                _loop69:;
1176 +                } // ( ... )*
1177 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp79_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1178 +                tmp79_AST = astFactory->create(LT(1));
1179 +                astFactory->addASTChild(currentAST, tmp79_AST);
1180 +                match(RCURLY);
1181 + #line 168 "MDParser.g"
1182 +                tmp79_AST->setType(ENDBLOCK);
1183 + #line 1184 "MDParser.cpp"
1184 +                constraintblock_AST = currentAST.root;
1185 +        }
1186 +        catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1187 +                reportError(ex);
1188 +                recover(ex,_tokenSet_8);
1189 +        }
1190 +        returnAST = constraintblock_AST;
1191 + }
1192 +
1193   void MDParser::atomstatement() {
1194          returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1195          ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST;
# Line 908 | Line 1206 | void MDParser::atomstatement() {
1206                  }
1207                  case POSITION:
1208                  {
1209 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp59_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1210 <                        tmp59_AST = astFactory->create(LT(1));
1211 <                        astFactory->makeASTRoot(currentAST, tmp59_AST);
1209 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp80_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1210 >                        tmp80_AST = astFactory->create(LT(1));
1211 >                        astFactory->makeASTRoot(currentAST, tmp80_AST);
1212                          match(POSITION);
1213                          match(LPAREN);
1214                          doubleNumberTuple();
# Line 922 | Line 1220 | void MDParser::atomstatement() {
1220                  }
1221                  case ORIENTATION:
1222                  {
1223 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp63_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1224 <                        tmp63_AST = astFactory->create(LT(1));
1225 <                        astFactory->makeASTRoot(currentAST, tmp63_AST);
1223 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp84_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1224 >                        tmp84_AST = astFactory->create(LT(1));
1225 >                        astFactory->makeASTRoot(currentAST, tmp84_AST);
1226                          match(ORIENTATION);
1227                          match(LPAREN);
1228                          doubleNumberTuple();
# Line 942 | Line 1240 | void MDParser::atomstatement() {
1240          }
1241          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1242                  reportError(ex);
1243 <                recover(ex,_tokenSet_10);
1243 >                recover(ex,_tokenSet_11);
1244          }
1245          returnAST = atomstatement_AST;
1246   }
# Line 963 | Line 1261 | void MDParser::doubleNumberTuple() {
1261                                  astFactory->addASTChild( currentAST, returnAST );
1262                          }
1263                          else {
1264 <                                goto _loop56;
1264 >                                goto _loop73;
1265                          }
1266                          
1267                  }
1268 <                _loop56:;
1268 >                _loop73:;
1269                  } // ( ... )*
1270                  doubleNumberTuple_AST = currentAST.root;
1271          }
1272          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1273                  reportError(ex);
1274 <                recover(ex,_tokenSet_11);
1274 >                recover(ex,_tokenSet_12);
1275          }
1276          returnAST = doubleNumberTuple_AST;
1277   }
# Line 994 | Line 1292 | void MDParser::bondstatement() {
1292                  }
1293                  case MEMBERS:
1294                  {
1295 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp68_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1296 <                        tmp68_AST = astFactory->create(LT(1));
1297 <                        astFactory->makeASTRoot(currentAST, tmp68_AST);
1295 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp89_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1296 >                        tmp89_AST = astFactory->create(LT(1));
1297 >                        astFactory->makeASTRoot(currentAST, tmp89_AST);
1298                          match(MEMBERS);
1299                          match(LPAREN);
1300                          inttuple();
# Line 1014 | Line 1312 | void MDParser::bondstatement() {
1312          }
1313          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1314                  reportError(ex);
1315 <                recover(ex,_tokenSet_12);
1315 >                recover(ex,_tokenSet_13);
1316          }
1317          returnAST = bondstatement_AST;
1318   }
# Line 1035 | Line 1333 | void MDParser::inttuple() {
1333                                  astFactory->addASTChild( currentAST, returnAST );
1334                          }
1335                          else {
1336 <                                goto _loop59;
1336 >                                goto _loop76;
1337                          }
1338                          
1339                  }
1340 <                _loop59:;
1340 >                _loop76:;
1341                  } // ( ... )*
1342                  inttuple_AST = currentAST.root;
1343          }
1344          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1345                  reportError(ex);
1346 <                recover(ex,_tokenSet_11);
1346 >                recover(ex,_tokenSet_12);
1347          }
1348          returnAST = inttuple_AST;
1349   }
# Line 1066 | Line 1364 | void MDParser::bendstatement() {
1364                  }
1365                  case MEMBERS:
1366                  {
1367 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp73_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1368 <                        tmp73_AST = astFactory->create(LT(1));
1369 <                        astFactory->makeASTRoot(currentAST, tmp73_AST);
1367 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp94_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1368 >                        tmp94_AST = astFactory->create(LT(1));
1369 >                        astFactory->makeASTRoot(currentAST, tmp94_AST);
1370                          match(MEMBERS);
1371                          match(LPAREN);
1372                          inttuple();
# Line 1086 | Line 1384 | void MDParser::bendstatement() {
1384          }
1385          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1386                  reportError(ex);
1387 <                recover(ex,_tokenSet_12);
1387 >                recover(ex,_tokenSet_13);
1388          }
1389          returnAST = bendstatement_AST;
1390   }
# Line 1107 | Line 1405 | void MDParser::torsionstatement() {
1405                  }
1406                  case MEMBERS:
1407                  {
1408 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp77_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1409 <                        tmp77_AST = astFactory->create(LT(1));
1410 <                        astFactory->makeASTRoot(currentAST, tmp77_AST);
1408 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp98_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1409 >                        tmp98_AST = astFactory->create(LT(1));
1410 >                        astFactory->makeASTRoot(currentAST, tmp98_AST);
1411                          match(MEMBERS);
1412                          match(LPAREN);
1413                          inttuple();
# Line 1127 | Line 1425 | void MDParser::torsionstatement() {
1425          }
1426          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1427                  reportError(ex);
1428 <                recover(ex,_tokenSet_12);
1428 >                recover(ex,_tokenSet_13);
1429          }
1430          returnAST = torsionstatement_AST;
1431   }
# Line 1148 | Line 1446 | void MDParser::inversionstatement() {
1446                  }
1447                  case CENTER:
1448                  {
1449 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp81_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1450 <                        tmp81_AST = astFactory->create(LT(1));
1451 <                        astFactory->makeASTRoot(currentAST, tmp81_AST);
1449 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp102_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1450 >                        tmp102_AST = astFactory->create(LT(1));
1451 >                        astFactory->makeASTRoot(currentAST, tmp102_AST);
1452                          match(CENTER);
1453                          match(LPAREN);
1454                          intConst();
# Line 1160 | Line 1458 | void MDParser::inversionstatement() {
1458                          inversionstatement_AST = currentAST.root;
1459                          break;
1460                  }
1461 +                case SATELLITES:
1462 +                {
1463 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp106_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1464 +                        tmp106_AST = astFactory->create(LT(1));
1465 +                        astFactory->makeASTRoot(currentAST, tmp106_AST);
1466 +                        match(SATELLITES);
1467 +                        match(LPAREN);
1468 +                        inttuple();
1469 +                        astFactory->addASTChild( currentAST, returnAST );
1470 +                        match(RPAREN);
1471 +                        match(SEMICOLON);
1472 +                        inversionstatement_AST = currentAST.root;
1473 +                        break;
1474 +                }
1475                  default:
1476                  {
1477                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
# Line 1168 | Line 1480 | void MDParser::inversionstatement() {
1480          }
1481          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1482                  reportError(ex);
1483 <                recover(ex,_tokenSet_13);
1483 >                recover(ex,_tokenSet_14);
1484          }
1485          returnAST = inversionstatement_AST;
1486   }
# Line 1189 | Line 1501 | void MDParser::rigidbodystatement() {
1501                  }
1502                  case MEMBERS:
1503                  {
1504 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp85_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1505 <                        tmp85_AST = astFactory->create(LT(1));
1506 <                        astFactory->makeASTRoot(currentAST, tmp85_AST);
1504 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp110_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1505 >                        tmp110_AST = astFactory->create(LT(1));
1506 >                        astFactory->makeASTRoot(currentAST, tmp110_AST);
1507                          match(MEMBERS);
1508                          match(LPAREN);
1509                          inttuple();
# Line 1209 | Line 1521 | void MDParser::rigidbodystatement() {
1521          }
1522          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1523                  reportError(ex);
1524 <                recover(ex,_tokenSet_12);
1524 >                recover(ex,_tokenSet_13);
1525          }
1526          returnAST = rigidbodystatement_AST;
1527   }
# Line 1230 | Line 1542 | void MDParser::cutoffgroupstatement() {
1542                  }
1543                  case MEMBERS:
1544                  {
1545 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp89_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1546 <                        tmp89_AST = astFactory->create(LT(1));
1547 <                        astFactory->makeASTRoot(currentAST, tmp89_AST);
1545 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp114_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1546 >                        tmp114_AST = astFactory->create(LT(1));
1547 >                        astFactory->makeASTRoot(currentAST, tmp114_AST);
1548                          match(MEMBERS);
1549                          match(LPAREN);
1550                          inttuple();
# Line 1250 | Line 1562 | void MDParser::cutoffgroupstatement() {
1562          }
1563          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1564                  reportError(ex);
1565 <                recover(ex,_tokenSet_12);
1565 >                recover(ex,_tokenSet_13);
1566          }
1567          returnAST = cutoffgroupstatement_AST;
1568   }
# Line 1267 | Line 1579 | void MDParser::fragmentstatement() {
1579          }
1580          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1581                  reportError(ex);
1582 <                recover(ex,_tokenSet_14);
1582 >                recover(ex,_tokenSet_15);
1583          }
1584          returnAST = fragmentstatement_AST;
1585   }
1586  
1587 + void MDParser::constraintstatement() {
1588 +        returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1589 +        ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST;
1590 +        ANTLR_USE_NAMESPACE(antlr)RefAST constraintstatement_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1591 +        
1592 +        try {      // for error handling
1593 +                switch ( LA(1)) {
1594 +                case ID:
1595 +                {
1596 +                        assignment();
1597 +                        astFactory->addASTChild( currentAST, returnAST );
1598 +                        constraintstatement_AST = currentAST.root;
1599 +                        break;
1600 +                }
1601 +                case MEMBERS:
1602 +                {
1603 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp118_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1604 +                        tmp118_AST = astFactory->create(LT(1));
1605 +                        astFactory->makeASTRoot(currentAST, tmp118_AST);
1606 +                        match(MEMBERS);
1607 +                        match(LPAREN);
1608 +                        inttuple();
1609 +                        astFactory->addASTChild( currentAST, returnAST );
1610 +                        match(RPAREN);
1611 +                        match(SEMICOLON);
1612 +                        constraintstatement_AST = currentAST.root;
1613 +                        break;
1614 +                }
1615 +                default:
1616 +                {
1617 +                        throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
1618 +                }
1619 +                }
1620 +        }
1621 +        catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1622 +                reportError(ex);
1623 +                recover(ex,_tokenSet_13);
1624 +        }
1625 +        returnAST = constraintstatement_AST;
1626 + }
1627 +
1628   void MDParser::doubleNumber() {
1629          returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1630          ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST;
# Line 1304 | Line 1657 | void MDParser::doubleNumber() {
1657          }
1658          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1659                  reportError(ex);
1660 <                recover(ex,_tokenSet_15);
1660 >                recover(ex,_tokenSet_16);
1661          }
1662          returnAST = doubleNumber_AST;
1663   }
1664  
1665   void MDParser::initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& factory )
1666   {
1667 <        factory.setMaxNodeType(52);
1667 >        factory.setMaxNodeType(59);
1668   }
1669   const char* MDParser::tokenNames[] = {
1670          "<0>",
# Line 1321 | Line 1674 | const char* MDParser::tokenNames[] = {
1674          "\"component\"",
1675          "\"molecule\"",
1676          "\"zconstraint\"",
1677 +        "\"restraint\"",
1678          "\"atom\"",
1679          "\"bond\"",
1680          "\"bend\"",
# Line 1328 | Line 1682 | const char* MDParser::tokenNames[] = {
1682          "\"inversion\"",
1683          "\"rigidBody\"",
1684          "\"cutoffGroup\"",
1685 +        "\"constraint\"",
1686 +        "\"distance\"",
1687          "\"fragment\"",
1688          "\"members\"",
1689          "\"center\"",
1690 +        "\"satellites\"",
1691          "\"position\"",
1692          "\"orientation\"",
1693 +        "\"flucQ\"",
1694 +        "\"RNEMD\"",
1695 +        "\"minimizer\"",
1696          "ENDBLOCK",
1697          "ID",
1698          "ASSIGNEQUAL",
# Line 1370 | Line 1730 | const char* MDParser::tokenNames[] = {
1730          0
1731   };
1732  
1733 < const unsigned long MDParser::_tokenSet_0_data_[] = { 1048688UL, 0UL, 0UL, 0UL };
1734 < // "component" "molecule" "zconstraint" ID
1733 > const unsigned long MDParser::_tokenSet_0_data_[] = { 192938224UL, 0UL, 0UL, 0UL };
1734 > // "component" "molecule" "zconstraint" "restraint" "flucQ" "RNEMD" "minimizer"
1735 > // ID
1736   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_0(_tokenSet_0_data_,4);
1737   const unsigned long MDParser::_tokenSet_1_data_[] = { 2UL, 0UL, 0UL, 0UL };
1738   // EOF
1739   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_1(_tokenSet_1_data_,4);
1740 < const unsigned long MDParser::_tokenSet_2_data_[] = { 1048690UL, 0UL, 0UL, 0UL };
1741 < // EOF "component" "molecule" "zconstraint" ID
1740 > const unsigned long MDParser::_tokenSet_2_data_[] = { 192938226UL, 0UL, 0UL, 0UL };
1741 > // EOF "component" "molecule" "zconstraint" "restraint" "flucQ" "RNEMD"
1742 > // "minimizer" ID
1743   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_2(_tokenSet_2_data_,4);
1744 < const unsigned long MDParser::_tokenSet_3_data_[] = { 35127282UL, 0UL, 0UL, 0UL };
1745 < // EOF "component" "molecule" "zconstraint" "atom" "bond" "bend" "torsion"
1746 < // "inversion" "rigidBody" "cutoffGroup" "fragment" "members" "center"
1747 < // "position" "orientation" ID RCURLY
1744 > const unsigned long MDParser::_tokenSet_3_data_[] = { 201261042UL, 1UL, 0UL, 0UL };
1745 > // EOF "component" "molecule" "zconstraint" "restraint" "atom" "bond" "bend"
1746 > // "torsion" "inversion" "rigidBody" "cutoffGroup" "constraint" "fragment"
1747 > // "members" "center" "satellites" "position" "orientation" "flucQ" "RNEMD"
1748 > // "minimizer" ID RCURLY
1749   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_3(_tokenSet_3_data_,4);
1750 < const unsigned long MDParser::_tokenSet_4_data_[] = { 1081216UL, 0UL, 0UL, 0UL };
1750 > const unsigned long MDParser::_tokenSet_4_data_[] = { 134414080UL, 0UL, 0UL, 0UL };
1751   // "atom" "bond" "bend" "torsion" "inversion" "rigidBody" "cutoffGroup"
1752 < // "fragment" ID
1752 > // "constraint" "fragment" ID
1753   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_4(_tokenSet_4_data_,4);
1754 < const unsigned long MDParser::_tokenSet_5_data_[] = { 4194304UL, 0UL, 0UL, 0UL };
1754 > const unsigned long MDParser::_tokenSet_5_data_[] = { 536870912UL, 0UL, 0UL, 0UL };
1755   // SEMICOLON
1756   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_5(_tokenSet_5_data_,4);
1757 < const unsigned long MDParser::_tokenSet_6_data_[] = { 1749024768UL, 0UL, 0UL, 0UL };
1757 > const unsigned long MDParser::_tokenSet_6_data_[] = { 536870912UL, 52UL, 0UL, 0UL };
1758   // SEMICOLON RBRACKET RPAREN COMMA
1759   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_6(_tokenSet_6_data_,4);
1760 < const unsigned long MDParser::_tokenSet_7_data_[] = { 1614807040UL, 0UL, 0UL, 0UL };
1760 > const unsigned long MDParser::_tokenSet_7_data_[] = { 536870912UL, 48UL, 0UL, 0UL };
1761   // SEMICOLON RPAREN COMMA
1762   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_7(_tokenSet_7_data_,4);
1763 < const unsigned long MDParser::_tokenSet_8_data_[] = { 34635648UL, 0UL, 0UL, 0UL };
1763 > const unsigned long MDParser::_tokenSet_8_data_[] = { 134414080UL, 1UL, 0UL, 0UL };
1764   // "atom" "bond" "bend" "torsion" "inversion" "rigidBody" "cutoffGroup"
1765 < // "fragment" ID RCURLY
1765 > // "constraint" "fragment" ID RCURLY
1766   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_8(_tokenSet_8_data_,4);
1767 < const unsigned long MDParser::_tokenSet_9_data_[] = { 1441792UL, 0UL, 0UL, 0UL };
1767 > const unsigned long MDParser::_tokenSet_9_data_[] = { 140509184UL, 0UL, 0UL, 0UL };
1768   // "position" "orientation" ID
1769   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_9(_tokenSet_9_data_,4);
1770 < const unsigned long MDParser::_tokenSet_10_data_[] = { 34996224UL, 0UL, 0UL, 0UL };
1771 < // "position" "orientation" ID RCURLY
1770 > const unsigned long MDParser::_tokenSet_10_data_[] = { 135790592UL, 0UL, 0UL, 0UL };
1771 > // "center" "satellites" ID
1772   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_10(_tokenSet_10_data_,4);
1773 < const unsigned long MDParser::_tokenSet_11_data_[] = { 536870912UL, 0UL, 0UL, 0UL };
1774 < // RPAREN
1773 > const unsigned long MDParser::_tokenSet_11_data_[] = { 140509184UL, 1UL, 0UL, 0UL };
1774 > // "position" "orientation" ID RCURLY
1775   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_11(_tokenSet_11_data_,4);
1776 < const unsigned long MDParser::_tokenSet_12_data_[] = { 34635776UL, 0UL, 0UL, 0UL };
1777 < // "members" ID RCURLY
1776 > const unsigned long MDParser::_tokenSet_12_data_[] = { 0UL, 16UL, 0UL, 0UL };
1777 > // RPAREN
1778   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_12(_tokenSet_12_data_,4);
1779 < const unsigned long MDParser::_tokenSet_13_data_[] = { 34668544UL, 0UL, 0UL, 0UL };
1780 < // "center" ID RCURLY
1779 > const unsigned long MDParser::_tokenSet_13_data_[] = { 134479872UL, 1UL, 0UL, 0UL };
1780 > // "members" ID RCURLY
1781   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_13(_tokenSet_13_data_,4);
1782 < const unsigned long MDParser::_tokenSet_14_data_[] = { 34603008UL, 0UL, 0UL, 0UL };
1783 < // ID RCURLY
1782 > const unsigned long MDParser::_tokenSet_14_data_[] = { 135790592UL, 1UL, 0UL, 0UL };
1783 > // "center" "satellites" ID RCURLY
1784   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_14(_tokenSet_14_data_,4);
1785 < const unsigned long MDParser::_tokenSet_15_data_[] = { 1610612736UL, 0UL, 0UL, 0UL };
1786 < // RPAREN COMMA
1785 > const unsigned long MDParser::_tokenSet_15_data_[] = { 134217728UL, 1UL, 0UL, 0UL };
1786 > // ID RCURLY
1787   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_15(_tokenSet_15_data_,4);
1788 + const unsigned long MDParser::_tokenSet_16_data_[] = { 0UL, 48UL, 0UL, 0UL };
1789 + // RPAREN COMMA
1790 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_16(_tokenSet_16_data_,4);
1791  
1792  

Comparing trunk/src/mdParser/MDParser.cpp (property svn:keywords):
Revision 1277 by gezelter, Mon Jul 14 12:35:58 2008 UTC vs.
Revision 1979 by gezelter, Sat Apr 5 20:56:01 2014 UTC

# Line 0 | Line 1
1 + Author Id Revision Date

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines