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 1902 by gezelter, Tue Jul 16 17:16:45 2013 UTC vs.
Revision 2046 by gezelter, Tue Dec 2 22:11:04 2014 UTC

# Line 1 | Line 1
1 < /* $ANTLR 2.7.7 (20121118): "MDParser.g" -> "MDParser.cpp"$ */
1 > /* $ANTLR 2.7.7 (20141024): "MDParser.g" -> "MDParser.cpp"$ */
2   #include "MDParser.hpp"
3   #include <antlr/NoViableAltException.hpp>
4   #include <antlr/SemanticException.hpp>
# Line 188 | Line 188 | void MDParser::componentblock() {
188                  tmp6_AST = astFactory->create(LT(1));
189                  astFactory->addASTChild(currentAST, tmp6_AST);
190                  match(RCURLY);
191 < #line 75 "MDParser.g"
191 > #line 95 "MDParser.g"
192                  tmp6_AST->setType(ENDBLOCK);
193   #line 194 "MDParser.cpp"
194                  componentblock_AST = currentAST.root;
# Line 228 | Line 228 | void MDParser::moleculeblock() {
228                  tmp9_AST = astFactory->create(LT(1));
229                  astFactory->addASTChild(currentAST, tmp9_AST);
230                  match(RCURLY);
231 < #line 93 "MDParser.g"
231 > #line 113 "MDParser.g"
232                  tmp9_AST->setType(ENDBLOCK);
233   #line 234 "MDParser.cpp"
234                  moleculeblock_AST = currentAST.root;
# Line 268 | Line 268 | void MDParser::zconstraintblock() {
268                  tmp12_AST = astFactory->create(LT(1));
269                  astFactory->addASTChild(currentAST, tmp12_AST);
270                  match(RCURLY);
271 < #line 78 "MDParser.g"
271 > #line 98 "MDParser.g"
272                  tmp12_AST->setType(ENDBLOCK);
273   #line 274 "MDParser.cpp"
274                  zconstraintblock_AST = currentAST.root;
# Line 308 | Line 308 | void MDParser::restraintblock() {
308                  tmp15_AST = astFactory->create(LT(1));
309                  astFactory->addASTChild(currentAST, tmp15_AST);
310                  match(RCURLY);
311 < #line 81 "MDParser.g"
311 > #line 101 "MDParser.g"
312                  tmp15_AST->setType(ENDBLOCK);
313   #line 314 "MDParser.cpp"
314                  restraintblock_AST = currentAST.root;
# Line 348 | Line 348 | void MDParser::flucqblock() {
348                  tmp18_AST = astFactory->create(LT(1));
349                  astFactory->addASTChild(currentAST, tmp18_AST);
350                  match(RCURLY);
351 < #line 84 "MDParser.g"
351 > #line 104 "MDParser.g"
352                  tmp18_AST->setType(ENDBLOCK);
353   #line 354 "MDParser.cpp"
354                  flucqblock_AST = currentAST.root;
# Line 388 | Line 388 | void MDParser::rnemdblock() {
388                  tmp21_AST = astFactory->create(LT(1));
389                  astFactory->addASTChild(currentAST, tmp21_AST);
390                  match(RCURLY);
391 < #line 87 "MDParser.g"
391 > #line 107 "MDParser.g"
392                  tmp21_AST->setType(ENDBLOCK);
393   #line 394 "MDParser.cpp"
394                  rnemdblock_AST = currentAST.root;
# Line 428 | Line 428 | void MDParser::minimizerblock() {
428                  tmp24_AST = astFactory->create(LT(1));
429                  astFactory->addASTChild(currentAST, tmp24_AST);
430                  match(RCURLY);
431 < #line 90 "MDParser.g"
431 > #line 110 "MDParser.g"
432                  tmp24_AST->setType(ENDBLOCK);
433   #line 434 "MDParser.cpp"
434                  minimizerblock_AST = currentAST.root;
# Line 587 | Line 587 | void MDParser::vectorConst() {
587                  tmp31_AST = astFactory->create(LT(1));
588                  astFactory->makeASTRoot(currentAST, tmp31_AST);
589                  match(LPAREN);
590 <                doubleNumber();
590 >                doubleNumberTuple();
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);
595                  match(RPAREN);
596                  vectorConst_AST = currentAST.root;
597          }
# Line 684 | Line 672 | void MDParser::moleculestatement() {
672                          moleculestatement_AST = currentAST.root;
673                          break;
674                  }
675 +                case CONSTRAINT:
676 +                {
677 +                        constraintblock();
678 +                        astFactory->addASTChild( currentAST, returnAST );
679 +                        moleculestatement_AST = currentAST.root;
680 +                        break;
681 +                }
682                  default:
683                  {
684                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
# Line 703 | Line 698 | void MDParser::atomblock() {
698          ANTLR_USE_NAMESPACE(antlr)RefAST atomblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
699          
700          try {      // for error handling
701 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp35_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
702 <                tmp35_AST = astFactory->create(LT(1));
703 <                astFactory->makeASTRoot(currentAST, tmp35_AST);
701 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp33_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
702 >                tmp33_AST = astFactory->create(LT(1));
703 >                astFactory->makeASTRoot(currentAST, tmp33_AST);
704                  match(ATOM);
705                  match(LBRACKET);
706                  intConst();
# Line 725 | Line 720 | void MDParser::atomblock() {
720                  }
721                  _loop31:;
722                  } // ( ... )*
723 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp39_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
724 <                tmp39_AST = astFactory->create(LT(1));
725 <                astFactory->addASTChild(currentAST, tmp39_AST);
723 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp37_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
724 >                tmp37_AST = astFactory->create(LT(1));
725 >                astFactory->addASTChild(currentAST, tmp37_AST);
726                  match(RCURLY);
727 < #line 107 "MDParser.g"
728 <                tmp39_AST->setType(ENDBLOCK);
729 < #line 735 "MDParser.cpp"
727 > #line 128 "MDParser.g"
728 >                tmp37_AST->setType(ENDBLOCK);
729 > #line 730 "MDParser.cpp"
730                  atomblock_AST = currentAST.root;
731          }
732          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 747 | Line 742 | void MDParser::bondblock() {
742          ANTLR_USE_NAMESPACE(antlr)RefAST bondblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
743          
744          try {      // for error handling
745 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp40_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
746 <                tmp40_AST = astFactory->create(LT(1));
747 <                astFactory->makeASTRoot(currentAST, tmp40_AST);
745 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp38_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
746 >                tmp38_AST = astFactory->create(LT(1));
747 >                astFactory->makeASTRoot(currentAST, tmp38_AST);
748                  match(BOND);
749                  {
750                  switch ( LA(1)) {
# Line 773 | Line 768 | void MDParser::bondblock() {
768                  match(LCURLY);
769                  { // ( ... )*
770                  for (;;) {
771 <                        if ((LA(1) == MEMBERS || LA(1) == ID)) {
771 >                        if ((_tokenSet_10.member(LA(1)))) {
772                                  bondstatement();
773                                  astFactory->addASTChild( currentAST, returnAST );
774                          }
# Line 784 | Line 779 | void MDParser::bondblock() {
779                  }
780                  _loop36:;
781                  } // ( ... )*
782 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp44_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
783 <                tmp44_AST = astFactory->create(LT(1));
784 <                astFactory->addASTChild(currentAST, tmp44_AST);
782 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp42_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
783 >                tmp42_AST = astFactory->create(LT(1));
784 >                astFactory->addASTChild(currentAST, tmp42_AST);
785                  match(RCURLY);
786 < #line 116 "MDParser.g"
787 <                tmp44_AST->setType(ENDBLOCK);
788 < #line 794 "MDParser.cpp"
786 > #line 138 "MDParser.g"
787 >                tmp42_AST->setType(ENDBLOCK);
788 > #line 789 "MDParser.cpp"
789                  bondblock_AST = currentAST.root;
790          }
791          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 806 | Line 801 | void MDParser::bendblock() {
801          ANTLR_USE_NAMESPACE(antlr)RefAST bendblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
802          
803          try {      // for error handling
804 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp45_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
805 <                tmp45_AST = astFactory->create(LT(1));
806 <                astFactory->makeASTRoot(currentAST, tmp45_AST);
804 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp43_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
805 >                tmp43_AST = astFactory->create(LT(1));
806 >                astFactory->makeASTRoot(currentAST, tmp43_AST);
807                  match(BEND);
808                  {
809                  switch ( LA(1)) {
# Line 832 | Line 827 | void MDParser::bendblock() {
827                  match(LCURLY);
828                  { // ( ... )*
829                  for (;;) {
830 <                        if ((LA(1) == MEMBERS || LA(1) == ID)) {
830 >                        if ((_tokenSet_11.member(LA(1)))) {
831                                  bendstatement();
832                                  astFactory->addASTChild( currentAST, returnAST );
833                          }
# Line 843 | Line 838 | void MDParser::bendblock() {
838                  }
839                  _loop41:;
840                  } // ( ... )*
841 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp49_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
842 <                tmp49_AST = astFactory->create(LT(1));
843 <                astFactory->addASTChild(currentAST, tmp49_AST);
841 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp47_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
842 >                tmp47_AST = astFactory->create(LT(1));
843 >                astFactory->addASTChild(currentAST, tmp47_AST);
844                  match(RCURLY);
845 < #line 123 "MDParser.g"
846 <                tmp49_AST->setType(ENDBLOCK);
847 < #line 853 "MDParser.cpp"
845 > #line 151 "MDParser.g"
846 >                tmp47_AST->setType(ENDBLOCK);
847 > #line 848 "MDParser.cpp"
848                  bendblock_AST = currentAST.root;
849          }
850          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 865 | Line 860 | void MDParser::torsionblock() {
860          ANTLR_USE_NAMESPACE(antlr)RefAST torsionblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
861          
862          try {      // for error handling
863 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp50_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
864 <                tmp50_AST = astFactory->create(LT(1));
865 <                astFactory->makeASTRoot(currentAST, tmp50_AST);
863 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp48_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
864 >                tmp48_AST = astFactory->create(LT(1));
865 >                astFactory->makeASTRoot(currentAST, tmp48_AST);
866                  match(TORSION);
867                  {
868                  switch ( LA(1)) {
# Line 891 | Line 886 | void MDParser::torsionblock() {
886                  match(LCURLY);
887                  { // ( ... )*
888                  for (;;) {
889 <                        if ((LA(1) == MEMBERS || LA(1) == ID)) {
889 >                        if ((_tokenSet_12.member(LA(1)))) {
890                                  torsionstatement();
891                                  astFactory->addASTChild( currentAST, returnAST );
892                          }
# Line 902 | Line 897 | void MDParser::torsionblock() {
897                  }
898                  _loop46:;
899                  } // ( ... )*
900 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp54_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
901 <                tmp54_AST = astFactory->create(LT(1));
902 <                astFactory->addASTChild(currentAST, tmp54_AST);
900 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp52_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
901 >                tmp52_AST = astFactory->create(LT(1));
902 >                astFactory->addASTChild(currentAST, tmp52_AST);
903                  match(RCURLY);
904 < #line 130 "MDParser.g"
905 <                tmp54_AST->setType(ENDBLOCK);
906 < #line 912 "MDParser.cpp"
904 > #line 165 "MDParser.g"
905 >                tmp52_AST->setType(ENDBLOCK);
906 > #line 907 "MDParser.cpp"
907                  torsionblock_AST = currentAST.root;
908          }
909          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 924 | Line 919 | void MDParser::inversionblock() {
919          ANTLR_USE_NAMESPACE(antlr)RefAST inversionblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
920          
921          try {      // for error handling
922 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp55_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
923 <                tmp55_AST = astFactory->create(LT(1));
924 <                astFactory->makeASTRoot(currentAST, tmp55_AST);
922 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp53_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
923 >                tmp53_AST = astFactory->create(LT(1));
924 >                astFactory->makeASTRoot(currentAST, tmp53_AST);
925                  match(INVERSION);
926                  {
927                  switch ( LA(1)) {
# Line 950 | Line 945 | void MDParser::inversionblock() {
945                  match(LCURLY);
946                  { // ( ... )*
947                  for (;;) {
948 <                        if ((_tokenSet_10.member(LA(1)))) {
948 >                        if ((_tokenSet_13.member(LA(1)))) {
949                                  inversionstatement();
950                                  astFactory->addASTChild( currentAST, returnAST );
951                          }
# Line 961 | Line 956 | void MDParser::inversionblock() {
956                  }
957                  _loop51:;
958                  } // ( ... )*
959 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp59_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
960 <                tmp59_AST = astFactory->create(LT(1));
961 <                astFactory->addASTChild(currentAST, tmp59_AST);
959 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp57_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
960 >                tmp57_AST = astFactory->create(LT(1));
961 >                astFactory->addASTChild(currentAST, tmp57_AST);
962                  match(RCURLY);
963 < #line 137 "MDParser.g"
964 <                tmp59_AST->setType(ENDBLOCK);
965 < #line 971 "MDParser.cpp"
963 > #line 180 "MDParser.g"
964 >                tmp57_AST->setType(ENDBLOCK);
965 > #line 966 "MDParser.cpp"
966                  inversionblock_AST = currentAST.root;
967          }
968          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 983 | Line 978 | void MDParser::rigidbodyblock() {
978          ANTLR_USE_NAMESPACE(antlr)RefAST rigidbodyblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
979          
980          try {      // for error handling
981 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp60_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
982 <                tmp60_AST = astFactory->create(LT(1));
983 <                astFactory->makeASTRoot(currentAST, tmp60_AST);
981 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp58_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
982 >                tmp58_AST = astFactory->create(LT(1));
983 >                astFactory->makeASTRoot(currentAST, tmp58_AST);
984                  match(RIGIDBODY);
985                  match(LBRACKET);
986                  intConst();
# Line 1005 | Line 1000 | void MDParser::rigidbodyblock() {
1000                  }
1001                  _loop55:;
1002                  } // ( ... )*
1003 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp64_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1004 <                tmp64_AST = astFactory->create(LT(1));
1005 <                astFactory->addASTChild(currentAST, tmp64_AST);
1003 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp62_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1004 >                tmp62_AST = astFactory->create(LT(1));
1005 >                astFactory->addASTChild(currentAST, tmp62_AST);
1006                  match(RCURLY);
1007 < #line 145 "MDParser.g"
1008 <                tmp64_AST->setType(ENDBLOCK);
1009 < #line 1015 "MDParser.cpp"
1007 > #line 193 "MDParser.g"
1008 >                tmp62_AST->setType(ENDBLOCK);
1009 > #line 1010 "MDParser.cpp"
1010                  rigidbodyblock_AST = currentAST.root;
1011          }
1012          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 1027 | Line 1022 | void MDParser::cutoffgroupblock() {
1022          ANTLR_USE_NAMESPACE(antlr)RefAST cutoffgroupblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1023          
1024          try {      // for error handling
1025 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp65_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1026 <                tmp65_AST = astFactory->create(LT(1));
1027 <                astFactory->makeASTRoot(currentAST, tmp65_AST);
1025 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp63_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1026 >                tmp63_AST = astFactory->create(LT(1));
1027 >                astFactory->makeASTRoot(currentAST, tmp63_AST);
1028                  match(CUTOFFGROUP);
1029                  {
1030                  switch ( LA(1)) {
# Line 1064 | Line 1059 | void MDParser::cutoffgroupblock() {
1059                  }
1060                  _loop60:;
1061                  } // ( ... )*
1062 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp69_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1063 <                tmp69_AST = astFactory->create(LT(1));
1064 <                astFactory->addASTChild(currentAST, tmp69_AST);
1062 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp67_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1063 >                tmp67_AST = astFactory->create(LT(1));
1064 >                astFactory->addASTChild(currentAST, tmp67_AST);
1065                  match(RCURLY);
1066 < #line 152 "MDParser.g"
1067 <                tmp69_AST->setType(ENDBLOCK);
1068 < #line 1074 "MDParser.cpp"
1066 > #line 200 "MDParser.g"
1067 >                tmp67_AST->setType(ENDBLOCK);
1068 > #line 1069 "MDParser.cpp"
1069                  cutoffgroupblock_AST = currentAST.root;
1070          }
1071          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 1086 | Line 1081 | void MDParser::fragmentblock() {
1081          ANTLR_USE_NAMESPACE(antlr)RefAST fragmentblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1082          
1083          try {      // for error handling
1084 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp70_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1085 <                tmp70_AST = astFactory->create(LT(1));
1086 <                astFactory->makeASTRoot(currentAST, tmp70_AST);
1084 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp68_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1085 >                tmp68_AST = astFactory->create(LT(1));
1086 >                astFactory->makeASTRoot(currentAST, tmp68_AST);
1087                  match(FRAGMENT);
1088                  match(LBRACKET);
1089                  intConst();
# Line 1108 | Line 1103 | void MDParser::fragmentblock() {
1103                  }
1104                  _loop64:;
1105                  } // ( ... )*
1106 <                ANTLR_USE_NAMESPACE(antlr)RefAST tmp74_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1107 <                tmp74_AST = astFactory->create(LT(1));
1108 <                astFactory->addASTChild(currentAST, tmp74_AST);
1106 >                ANTLR_USE_NAMESPACE(antlr)RefAST tmp72_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1107 >                tmp72_AST = astFactory->create(LT(1));
1108 >                astFactory->addASTChild(currentAST, tmp72_AST);
1109                  match(RCURLY);
1110 < #line 159 "MDParser.g"
1111 <                tmp74_AST->setType(ENDBLOCK);
1112 < #line 1118 "MDParser.cpp"
1110 > #line 207 "MDParser.g"
1111 >                tmp72_AST->setType(ENDBLOCK);
1112 > #line 1113 "MDParser.cpp"
1113                  fragmentblock_AST = currentAST.root;
1114          }
1115          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 1122 | Line 1117 | void MDParser::fragmentblock() {
1117                  recover(ex,_tokenSet_8);
1118          }
1119          returnAST = fragmentblock_AST;
1120 + }
1121 +
1122 + void MDParser::constraintblock() {
1123 +        returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1124 +        ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST;
1125 +        ANTLR_USE_NAMESPACE(antlr)RefAST constraintblock_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1126 +        
1127 +        try {      // for error handling
1128 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp73_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1129 +                tmp73_AST = astFactory->create(LT(1));
1130 +                astFactory->makeASTRoot(currentAST, tmp73_AST);
1131 +                match(CONSTRAINT);
1132 +                {
1133 +                switch ( LA(1)) {
1134 +                case LBRACKET:
1135 +                {
1136 +                        match(LBRACKET);
1137 +                        intConst();
1138 +                        match(RBRACKET);
1139 +                        break;
1140 +                }
1141 +                case LCURLY:
1142 +                {
1143 +                        break;
1144 +                }
1145 +                default:
1146 +                {
1147 +                        throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
1148 +                }
1149 +                }
1150 +                }
1151 +                match(LCURLY);
1152 +                { // ( ... )*
1153 +                for (;;) {
1154 +                        if ((LA(1) == MEMBERS || LA(1) == ID)) {
1155 +                                constraintstatement();
1156 +                                astFactory->addASTChild( currentAST, returnAST );
1157 +                        }
1158 +                        else {
1159 +                                goto _loop69;
1160 +                        }
1161 +                        
1162 +                }
1163 +                _loop69:;
1164 +                } // ( ... )*
1165 +                ANTLR_USE_NAMESPACE(antlr)RefAST tmp77_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1166 +                tmp77_AST = astFactory->create(LT(1));
1167 +                astFactory->addASTChild(currentAST, tmp77_AST);
1168 +                match(RCURLY);
1169 + #line 213 "MDParser.g"
1170 +                tmp77_AST->setType(ENDBLOCK);
1171 + #line 1172 "MDParser.cpp"
1172 +                constraintblock_AST = currentAST.root;
1173 +        }
1174 +        catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1175 +                reportError(ex);
1176 +                recover(ex,_tokenSet_8);
1177 +        }
1178 +        returnAST = constraintblock_AST;
1179   }
1180  
1181   void MDParser::atomstatement() {
# Line 1140 | Line 1194 | void MDParser::atomstatement() {
1194                  }
1195                  case POSITION:
1196                  {
1197 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp75_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1198 <                        tmp75_AST = astFactory->create(LT(1));
1199 <                        astFactory->makeASTRoot(currentAST, tmp75_AST);
1197 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp78_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1198 >                        tmp78_AST = astFactory->create(LT(1));
1199 >                        astFactory->makeASTRoot(currentAST, tmp78_AST);
1200                          match(POSITION);
1201                          match(LPAREN);
1202                          doubleNumberTuple();
# Line 1154 | Line 1208 | void MDParser::atomstatement() {
1208                  }
1209                  case ORIENTATION:
1210                  {
1211 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp79_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1212 <                        tmp79_AST = astFactory->create(LT(1));
1213 <                        astFactory->makeASTRoot(currentAST, tmp79_AST);
1211 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp82_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1212 >                        tmp82_AST = astFactory->create(LT(1));
1213 >                        astFactory->makeASTRoot(currentAST, tmp82_AST);
1214                          match(ORIENTATION);
1215                          match(LPAREN);
1216                          doubleNumberTuple();
# Line 1166 | Line 1220 | void MDParser::atomstatement() {
1220                          atomstatement_AST = currentAST.root;
1221                          break;
1222                  }
1223 +                case CHARGE:
1224 +                {
1225 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp86_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1226 +                        tmp86_AST = astFactory->create(LT(1));
1227 +                        astFactory->makeASTRoot(currentAST, tmp86_AST);
1228 +                        match(CHARGE);
1229 +                        match(LPAREN);
1230 +                        floatConst();
1231 +                        astFactory->addASTChild( currentAST, returnAST );
1232 +                        match(RPAREN);
1233 +                        match(SEMICOLON);
1234 +                        atomstatement_AST = currentAST.root;
1235 +                        break;
1236 +                }
1237                  default:
1238                  {
1239                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
# Line 1174 | Line 1242 | void MDParser::atomstatement() {
1242          }
1243          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1244                  reportError(ex);
1245 <                recover(ex,_tokenSet_11);
1245 >                recover(ex,_tokenSet_14);
1246          }
1247          returnAST = atomstatement_AST;
1248   }
# Line 1195 | Line 1263 | void MDParser::doubleNumberTuple() {
1263                                  astFactory->addASTChild( currentAST, returnAST );
1264                          }
1265                          else {
1266 <                                goto _loop68;
1266 >                                goto _loop73;
1267                          }
1268                          
1269                  }
1270 <                _loop68:;
1270 >                _loop73:;
1271                  } // ( ... )*
1272                  doubleNumberTuple_AST = currentAST.root;
1273          }
1274          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1275                  reportError(ex);
1276 <                recover(ex,_tokenSet_12);
1276 >                recover(ex,_tokenSet_15);
1277          }
1278          returnAST = doubleNumberTuple_AST;
1279   }
# Line 1226 | Line 1294 | void MDParser::bondstatement() {
1294                  }
1295                  case MEMBERS:
1296                  {
1297 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp84_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1298 <                        tmp84_AST = astFactory->create(LT(1));
1299 <                        astFactory->makeASTRoot(currentAST, tmp84_AST);
1297 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp91_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1298 >                        tmp91_AST = astFactory->create(LT(1));
1299 >                        astFactory->makeASTRoot(currentAST, tmp91_AST);
1300                          match(MEMBERS);
1301                          match(LPAREN);
1302                          inttuple();
# Line 1238 | Line 1306 | void MDParser::bondstatement() {
1306                          bondstatement_AST = currentAST.root;
1307                          break;
1308                  }
1309 +                case FIXED:
1310 +                {
1311 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp95_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1312 +                        tmp95_AST = astFactory->create(LT(1));
1313 +                        astFactory->makeASTRoot(currentAST, tmp95_AST);
1314 +                        match(FIXED);
1315 +                        match(LPAREN);
1316 +                        floatConst();
1317 +                        astFactory->addASTChild( currentAST, returnAST );
1318 +                        match(RPAREN);
1319 +                        match(SEMICOLON);
1320 +                        bondstatement_AST = currentAST.root;
1321 +                        break;
1322 +                }
1323 +                case HARMONIC:
1324 +                {
1325 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp99_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1326 +                        tmp99_AST = astFactory->create(LT(1));
1327 +                        astFactory->makeASTRoot(currentAST, tmp99_AST);
1328 +                        match(HARMONIC);
1329 +                        match(LPAREN);
1330 +                        doubleNumberTuple();
1331 +                        astFactory->addASTChild( currentAST, returnAST );
1332 +                        match(RPAREN);
1333 +                        match(SEMICOLON);
1334 +                        bondstatement_AST = currentAST.root;
1335 +                        break;
1336 +                }
1337 +                case CUBIC:
1338 +                {
1339 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp103_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1340 +                        tmp103_AST = astFactory->create(LT(1));
1341 +                        astFactory->makeASTRoot(currentAST, tmp103_AST);
1342 +                        match(CUBIC);
1343 +                        match(LPAREN);
1344 +                        doubleNumberTuple();
1345 +                        astFactory->addASTChild( currentAST, returnAST );
1346 +                        match(RPAREN);
1347 +                        match(SEMICOLON);
1348 +                        bondstatement_AST = currentAST.root;
1349 +                        break;
1350 +                }
1351 +                case QUARTIC:
1352 +                {
1353 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp107_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1354 +                        tmp107_AST = astFactory->create(LT(1));
1355 +                        astFactory->makeASTRoot(currentAST, tmp107_AST);
1356 +                        match(QUARTIC);
1357 +                        match(LPAREN);
1358 +                        doubleNumberTuple();
1359 +                        astFactory->addASTChild( currentAST, returnAST );
1360 +                        match(RPAREN);
1361 +                        match(SEMICOLON);
1362 +                        bondstatement_AST = currentAST.root;
1363 +                        break;
1364 +                }
1365 +                case POLYNOMIAL:
1366 +                {
1367 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp111_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1368 +                        tmp111_AST = astFactory->create(LT(1));
1369 +                        astFactory->makeASTRoot(currentAST, tmp111_AST);
1370 +                        match(POLYNOMIAL);
1371 +                        match(LPAREN);
1372 +                        doubleNumberTuple();
1373 +                        astFactory->addASTChild( currentAST, returnAST );
1374 +                        match(RPAREN);
1375 +                        match(SEMICOLON);
1376 +                        bondstatement_AST = currentAST.root;
1377 +                        break;
1378 +                }
1379 +                case MORSE:
1380 +                {
1381 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp115_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1382 +                        tmp115_AST = astFactory->create(LT(1));
1383 +                        astFactory->makeASTRoot(currentAST, tmp115_AST);
1384 +                        match(MORSE);
1385 +                        match(LPAREN);
1386 +                        doubleNumberTuple();
1387 +                        astFactory->addASTChild( currentAST, returnAST );
1388 +                        match(RPAREN);
1389 +                        match(SEMICOLON);
1390 +                        bondstatement_AST = currentAST.root;
1391 +                        break;
1392 +                }
1393                  default:
1394                  {
1395                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
# Line 1246 | Line 1398 | void MDParser::bondstatement() {
1398          }
1399          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1400                  reportError(ex);
1401 <                recover(ex,_tokenSet_13);
1401 >                recover(ex,_tokenSet_16);
1402          }
1403          returnAST = bondstatement_AST;
1404   }
# Line 1267 | Line 1419 | void MDParser::inttuple() {
1419                                  astFactory->addASTChild( currentAST, returnAST );
1420                          }
1421                          else {
1422 <                                goto _loop71;
1422 >                                goto _loop76;
1423                          }
1424                          
1425                  }
1426 <                _loop71:;
1426 >                _loop76:;
1427                  } // ( ... )*
1428                  inttuple_AST = currentAST.root;
1429          }
1430          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1431                  reportError(ex);
1432 <                recover(ex,_tokenSet_12);
1432 >                recover(ex,_tokenSet_15);
1433          }
1434          returnAST = inttuple_AST;
1435   }
# Line 1298 | Line 1450 | void MDParser::bendstatement() {
1450                  }
1451                  case MEMBERS:
1452                  {
1453 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp89_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1454 <                        tmp89_AST = astFactory->create(LT(1));
1455 <                        astFactory->makeASTRoot(currentAST, tmp89_AST);
1453 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp120_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1454 >                        tmp120_AST = astFactory->create(LT(1));
1455 >                        astFactory->makeASTRoot(currentAST, tmp120_AST);
1456                          match(MEMBERS);
1457                          match(LPAREN);
1458                          inttuple();
1459 +                        astFactory->addASTChild( currentAST, returnAST );
1460 +                        match(RPAREN);
1461 +                        match(SEMICOLON);
1462 +                        bendstatement_AST = currentAST.root;
1463 +                        break;
1464 +                }
1465 +                case HARMONIC:
1466 +                {
1467 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp124_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1468 +                        tmp124_AST = astFactory->create(LT(1));
1469 +                        astFactory->makeASTRoot(currentAST, tmp124_AST);
1470 +                        match(HARMONIC);
1471 +                        match(LPAREN);
1472 +                        doubleNumberTuple();
1473 +                        astFactory->addASTChild( currentAST, returnAST );
1474 +                        match(RPAREN);
1475 +                        match(SEMICOLON);
1476 +                        bendstatement_AST = currentAST.root;
1477 +                        break;
1478 +                }
1479 +                case GHOSTBEND:
1480 +                {
1481 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp128_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1482 +                        tmp128_AST = astFactory->create(LT(1));
1483 +                        astFactory->makeASTRoot(currentAST, tmp128_AST);
1484 +                        match(GHOSTBEND);
1485 +                        match(LPAREN);
1486 +                        doubleNumberTuple();
1487 +                        astFactory->addASTChild( currentAST, returnAST );
1488 +                        match(RPAREN);
1489 +                        match(SEMICOLON);
1490 +                        bendstatement_AST = currentAST.root;
1491 +                        break;
1492 +                }
1493 +                case UREYBRADLEY:
1494 +                {
1495 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp132_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1496 +                        tmp132_AST = astFactory->create(LT(1));
1497 +                        astFactory->makeASTRoot(currentAST, tmp132_AST);
1498 +                        match(UREYBRADLEY);
1499 +                        match(LPAREN);
1500 +                        doubleNumberTuple();
1501 +                        astFactory->addASTChild( currentAST, returnAST );
1502 +                        match(RPAREN);
1503 +                        match(SEMICOLON);
1504 +                        bendstatement_AST = currentAST.root;
1505 +                        break;
1506 +                }
1507 +                case CUBIC:
1508 +                {
1509 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp136_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1510 +                        tmp136_AST = astFactory->create(LT(1));
1511 +                        astFactory->makeASTRoot(currentAST, tmp136_AST);
1512 +                        match(CUBIC);
1513 +                        match(LPAREN);
1514 +                        doubleNumberTuple();
1515 +                        astFactory->addASTChild( currentAST, returnAST );
1516 +                        match(RPAREN);
1517 +                        match(SEMICOLON);
1518 +                        bendstatement_AST = currentAST.root;
1519 +                        break;
1520 +                }
1521 +                case QUARTIC:
1522 +                {
1523 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp140_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1524 +                        tmp140_AST = astFactory->create(LT(1));
1525 +                        astFactory->makeASTRoot(currentAST, tmp140_AST);
1526 +                        match(QUARTIC);
1527 +                        match(LPAREN);
1528 +                        doubleNumberTuple();
1529                          astFactory->addASTChild( currentAST, returnAST );
1530                          match(RPAREN);
1531                          match(SEMICOLON);
1532                          bendstatement_AST = currentAST.root;
1533                          break;
1534                  }
1535 +                case POLYNOMIAL:
1536 +                {
1537 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp144_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1538 +                        tmp144_AST = astFactory->create(LT(1));
1539 +                        astFactory->makeASTRoot(currentAST, tmp144_AST);
1540 +                        match(POLYNOMIAL);
1541 +                        match(LPAREN);
1542 +                        doubleNumberTuple();
1543 +                        astFactory->addASTChild( currentAST, returnAST );
1544 +                        match(RPAREN);
1545 +                        match(SEMICOLON);
1546 +                        bendstatement_AST = currentAST.root;
1547 +                        break;
1548 +                }
1549 +                case COSINE:
1550 +                {
1551 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp148_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1552 +                        tmp148_AST = astFactory->create(LT(1));
1553 +                        astFactory->makeASTRoot(currentAST, tmp148_AST);
1554 +                        match(COSINE);
1555 +                        match(LPAREN);
1556 +                        doubleNumberTuple();
1557 +                        astFactory->addASTChild( currentAST, returnAST );
1558 +                        match(RPAREN);
1559 +                        match(SEMICOLON);
1560 +                        bendstatement_AST = currentAST.root;
1561 +                        break;
1562 +                }
1563                  default:
1564                  {
1565                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
# Line 1318 | Line 1568 | void MDParser::bendstatement() {
1568          }
1569          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1570                  reportError(ex);
1571 <                recover(ex,_tokenSet_13);
1571 >                recover(ex,_tokenSet_17);
1572          }
1573          returnAST = bendstatement_AST;
1574   }
# Line 1339 | Line 1589 | void MDParser::torsionstatement() {
1589                  }
1590                  case MEMBERS:
1591                  {
1592 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp93_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1593 <                        tmp93_AST = astFactory->create(LT(1));
1594 <                        astFactory->makeASTRoot(currentAST, tmp93_AST);
1592 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp152_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1593 >                        tmp152_AST = astFactory->create(LT(1));
1594 >                        astFactory->makeASTRoot(currentAST, tmp152_AST);
1595                          match(MEMBERS);
1596                          match(LPAREN);
1597                          inttuple();
# Line 1351 | Line 1601 | void MDParser::torsionstatement() {
1601                          torsionstatement_AST = currentAST.root;
1602                          break;
1603                  }
1604 +                case GHOSTTORSION:
1605 +                {
1606 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp156_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1607 +                        tmp156_AST = astFactory->create(LT(1));
1608 +                        astFactory->makeASTRoot(currentAST, tmp156_AST);
1609 +                        match(GHOSTTORSION);
1610 +                        match(LPAREN);
1611 +                        doubleNumberTuple();
1612 +                        astFactory->addASTChild( currentAST, returnAST );
1613 +                        match(RPAREN);
1614 +                        match(SEMICOLON);
1615 +                        torsionstatement_AST = currentAST.root;
1616 +                        break;
1617 +                }
1618 +                case CUBIC:
1619 +                {
1620 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp160_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1621 +                        tmp160_AST = astFactory->create(LT(1));
1622 +                        astFactory->makeASTRoot(currentAST, tmp160_AST);
1623 +                        match(CUBIC);
1624 +                        match(LPAREN);
1625 +                        doubleNumberTuple();
1626 +                        astFactory->addASTChild( currentAST, returnAST );
1627 +                        match(RPAREN);
1628 +                        match(SEMICOLON);
1629 +                        torsionstatement_AST = currentAST.root;
1630 +                        break;
1631 +                }
1632 +                case QUARTIC:
1633 +                {
1634 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp164_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1635 +                        tmp164_AST = astFactory->create(LT(1));
1636 +                        astFactory->makeASTRoot(currentAST, tmp164_AST);
1637 +                        match(QUARTIC);
1638 +                        match(LPAREN);
1639 +                        doubleNumberTuple();
1640 +                        astFactory->addASTChild( currentAST, returnAST );
1641 +                        match(RPAREN);
1642 +                        match(SEMICOLON);
1643 +                        torsionstatement_AST = currentAST.root;
1644 +                        break;
1645 +                }
1646 +                case POLYNOMIAL:
1647 +                {
1648 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp168_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1649 +                        tmp168_AST = astFactory->create(LT(1));
1650 +                        astFactory->makeASTRoot(currentAST, tmp168_AST);
1651 +                        match(POLYNOMIAL);
1652 +                        match(LPAREN);
1653 +                        doubleNumberTuple();
1654 +                        astFactory->addASTChild( currentAST, returnAST );
1655 +                        match(RPAREN);
1656 +                        match(SEMICOLON);
1657 +                        torsionstatement_AST = currentAST.root;
1658 +                        break;
1659 +                }
1660 +                case CHARMM:
1661 +                {
1662 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp172_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1663 +                        tmp172_AST = astFactory->create(LT(1));
1664 +                        astFactory->makeASTRoot(currentAST, tmp172_AST);
1665 +                        match(CHARMM);
1666 +                        match(LPAREN);
1667 +                        doubleNumberTuple();
1668 +                        astFactory->addASTChild( currentAST, returnAST );
1669 +                        match(RPAREN);
1670 +                        match(SEMICOLON);
1671 +                        torsionstatement_AST = currentAST.root;
1672 +                        break;
1673 +                }
1674 +                case OPLS:
1675 +                {
1676 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp176_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1677 +                        tmp176_AST = astFactory->create(LT(1));
1678 +                        astFactory->makeASTRoot(currentAST, tmp176_AST);
1679 +                        match(OPLS);
1680 +                        match(LPAREN);
1681 +                        doubleNumberTuple();
1682 +                        astFactory->addASTChild( currentAST, returnAST );
1683 +                        match(RPAREN);
1684 +                        match(SEMICOLON);
1685 +                        torsionstatement_AST = currentAST.root;
1686 +                        break;
1687 +                }
1688 +                case TRAPPE:
1689 +                {
1690 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp180_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1691 +                        tmp180_AST = astFactory->create(LT(1));
1692 +                        astFactory->makeASTRoot(currentAST, tmp180_AST);
1693 +                        match(TRAPPE);
1694 +                        match(LPAREN);
1695 +                        doubleNumberTuple();
1696 +                        astFactory->addASTChild( currentAST, returnAST );
1697 +                        match(RPAREN);
1698 +                        match(SEMICOLON);
1699 +                        torsionstatement_AST = currentAST.root;
1700 +                        break;
1701 +                }
1702 +                case HARMONIC:
1703 +                {
1704 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp184_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1705 +                        tmp184_AST = astFactory->create(LT(1));
1706 +                        astFactory->makeASTRoot(currentAST, tmp184_AST);
1707 +                        match(HARMONIC);
1708 +                        match(LPAREN);
1709 +                        doubleNumberTuple();
1710 +                        astFactory->addASTChild( currentAST, returnAST );
1711 +                        match(RPAREN);
1712 +                        match(SEMICOLON);
1713 +                        torsionstatement_AST = currentAST.root;
1714 +                        break;
1715 +                }
1716                  default:
1717                  {
1718                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
# Line 1359 | Line 1721 | void MDParser::torsionstatement() {
1721          }
1722          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1723                  reportError(ex);
1724 <                recover(ex,_tokenSet_13);
1724 >                recover(ex,_tokenSet_18);
1725          }
1726          returnAST = torsionstatement_AST;
1727   }
# Line 1380 | Line 1742 | void MDParser::inversionstatement() {
1742                  }
1743                  case CENTER:
1744                  {
1745 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp97_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1746 <                        tmp97_AST = astFactory->create(LT(1));
1747 <                        astFactory->makeASTRoot(currentAST, tmp97_AST);
1745 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp188_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1746 >                        tmp188_AST = astFactory->create(LT(1));
1747 >                        astFactory->makeASTRoot(currentAST, tmp188_AST);
1748                          match(CENTER);
1749                          match(LPAREN);
1750                          intConst();
# Line 1394 | Line 1756 | void MDParser::inversionstatement() {
1756                  }
1757                  case SATELLITES:
1758                  {
1759 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp101_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1760 <                        tmp101_AST = astFactory->create(LT(1));
1761 <                        astFactory->makeASTRoot(currentAST, tmp101_AST);
1759 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp192_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1760 >                        tmp192_AST = astFactory->create(LT(1));
1761 >                        astFactory->makeASTRoot(currentAST, tmp192_AST);
1762                          match(SATELLITES);
1763                          match(LPAREN);
1764                          inttuple();
# Line 1406 | Line 1768 | void MDParser::inversionstatement() {
1768                          inversionstatement_AST = currentAST.root;
1769                          break;
1770                  }
1771 +                case AMBERIMPROPER:
1772 +                {
1773 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp196_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1774 +                        tmp196_AST = astFactory->create(LT(1));
1775 +                        astFactory->makeASTRoot(currentAST, tmp196_AST);
1776 +                        match(AMBERIMPROPER);
1777 +                        match(LPAREN);
1778 +                        doubleNumberTuple();
1779 +                        astFactory->addASTChild( currentAST, returnAST );
1780 +                        match(RPAREN);
1781 +                        match(SEMICOLON);
1782 +                        inversionstatement_AST = currentAST.root;
1783 +                        break;
1784 +                }
1785 +                case IMPROPERCOSINE:
1786 +                {
1787 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp200_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1788 +                        tmp200_AST = astFactory->create(LT(1));
1789 +                        astFactory->makeASTRoot(currentAST, tmp200_AST);
1790 +                        match(IMPROPERCOSINE);
1791 +                        match(LPAREN);
1792 +                        doubleNumberTuple();
1793 +                        astFactory->addASTChild( currentAST, returnAST );
1794 +                        match(RPAREN);
1795 +                        match(SEMICOLON);
1796 +                        inversionstatement_AST = currentAST.root;
1797 +                        break;
1798 +                }
1799 +                case HARMONIC:
1800 +                {
1801 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp204_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1802 +                        tmp204_AST = astFactory->create(LT(1));
1803 +                        astFactory->makeASTRoot(currentAST, tmp204_AST);
1804 +                        match(HARMONIC);
1805 +                        match(LPAREN);
1806 +                        doubleNumberTuple();
1807 +                        astFactory->addASTChild( currentAST, returnAST );
1808 +                        match(RPAREN);
1809 +                        match(SEMICOLON);
1810 +                        inversionstatement_AST = currentAST.root;
1811 +                        break;
1812 +                }
1813 +                case CENTRALATOMHEIGHT:
1814 +                {
1815 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp208_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1816 +                        tmp208_AST = astFactory->create(LT(1));
1817 +                        astFactory->makeASTRoot(currentAST, tmp208_AST);
1818 +                        match(CENTRALATOMHEIGHT);
1819 +                        match(LPAREN);
1820 +                        doubleNumberTuple();
1821 +                        astFactory->addASTChild( currentAST, returnAST );
1822 +                        match(RPAREN);
1823 +                        match(SEMICOLON);
1824 +                        inversionstatement_AST = currentAST.root;
1825 +                        break;
1826 +                }
1827 +                case DREIDING:
1828 +                {
1829 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp212_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1830 +                        tmp212_AST = astFactory->create(LT(1));
1831 +                        astFactory->makeASTRoot(currentAST, tmp212_AST);
1832 +                        match(DREIDING);
1833 +                        match(LPAREN);
1834 +                        doubleNumberTuple();
1835 +                        astFactory->addASTChild( currentAST, returnAST );
1836 +                        match(RPAREN);
1837 +                        match(SEMICOLON);
1838 +                        inversionstatement_AST = currentAST.root;
1839 +                        break;
1840 +                }
1841                  default:
1842                  {
1843                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
# Line 1414 | Line 1846 | void MDParser::inversionstatement() {
1846          }
1847          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1848                  reportError(ex);
1849 <                recover(ex,_tokenSet_14);
1849 >                recover(ex,_tokenSet_19);
1850          }
1851          returnAST = inversionstatement_AST;
1852   }
# Line 1435 | Line 1867 | void MDParser::rigidbodystatement() {
1867                  }
1868                  case MEMBERS:
1869                  {
1870 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp105_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1871 <                        tmp105_AST = astFactory->create(LT(1));
1872 <                        astFactory->makeASTRoot(currentAST, tmp105_AST);
1870 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp216_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1871 >                        tmp216_AST = astFactory->create(LT(1));
1872 >                        astFactory->makeASTRoot(currentAST, tmp216_AST);
1873                          match(MEMBERS);
1874                          match(LPAREN);
1875                          inttuple();
# Line 1455 | Line 1887 | void MDParser::rigidbodystatement() {
1887          }
1888          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1889                  reportError(ex);
1890 <                recover(ex,_tokenSet_13);
1890 >                recover(ex,_tokenSet_20);
1891          }
1892          returnAST = rigidbodystatement_AST;
1893   }
# Line 1476 | Line 1908 | void MDParser::cutoffgroupstatement() {
1908                  }
1909                  case MEMBERS:
1910                  {
1911 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp109_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1912 <                        tmp109_AST = astFactory->create(LT(1));
1913 <                        astFactory->makeASTRoot(currentAST, tmp109_AST);
1911 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp220_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1912 >                        tmp220_AST = astFactory->create(LT(1));
1913 >                        astFactory->makeASTRoot(currentAST, tmp220_AST);
1914                          match(MEMBERS);
1915                          match(LPAREN);
1916                          inttuple();
# Line 1496 | Line 1928 | void MDParser::cutoffgroupstatement() {
1928          }
1929          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1930                  reportError(ex);
1931 <                recover(ex,_tokenSet_13);
1931 >                recover(ex,_tokenSet_20);
1932          }
1933          returnAST = cutoffgroupstatement_AST;
1934   }
# Line 1513 | Line 1945 | void MDParser::fragmentstatement() {
1945          }
1946          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1947                  reportError(ex);
1948 <                recover(ex,_tokenSet_15);
1948 >                recover(ex,_tokenSet_21);
1949          }
1950          returnAST = fragmentstatement_AST;
1951 + }
1952 +
1953 + void MDParser::constraintstatement() {
1954 +        returnAST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1955 +        ANTLR_USE_NAMESPACE(antlr)ASTPair currentAST;
1956 +        ANTLR_USE_NAMESPACE(antlr)RefAST constraintstatement_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1957 +        
1958 +        try {      // for error handling
1959 +                switch ( LA(1)) {
1960 +                case ID:
1961 +                {
1962 +                        assignment();
1963 +                        astFactory->addASTChild( currentAST, returnAST );
1964 +                        constraintstatement_AST = currentAST.root;
1965 +                        break;
1966 +                }
1967 +                case MEMBERS:
1968 +                {
1969 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp224_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
1970 +                        tmp224_AST = astFactory->create(LT(1));
1971 +                        astFactory->makeASTRoot(currentAST, tmp224_AST);
1972 +                        match(MEMBERS);
1973 +                        match(LPAREN);
1974 +                        inttuple();
1975 +                        astFactory->addASTChild( currentAST, returnAST );
1976 +                        match(RPAREN);
1977 +                        match(SEMICOLON);
1978 +                        constraintstatement_AST = currentAST.root;
1979 +                        break;
1980 +                }
1981 +                default:
1982 +                {
1983 +                        throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
1984 +                }
1985 +                }
1986 +        }
1987 +        catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1988 +                reportError(ex);
1989 +                recover(ex,_tokenSet_20);
1990 +        }
1991 +        returnAST = constraintstatement_AST;
1992   }
1993  
1994   void MDParser::doubleNumber() {
# Line 1550 | Line 2023 | void MDParser::doubleNumber() {
2023          }
2024          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
2025                  reportError(ex);
2026 <                recover(ex,_tokenSet_16);
2026 >                recover(ex,_tokenSet_22);
2027          }
2028          returnAST = doubleNumber_AST;
2029   }
2030  
2031   void MDParser::initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& factory )
2032   {
2033 <        factory.setMaxNodeType(57);
2033 >        factory.setMaxNodeType(77);
2034   }
2035   const char* MDParser::tokenNames[] = {
2036          "<0>",
# Line 1575 | Line 2048 | const char* MDParser::tokenNames[] = {
2048          "\"inversion\"",
2049          "\"rigidBody\"",
2050          "\"cutoffGroup\"",
2051 +        "\"constraint\"",
2052 +        "\"distance\"",
2053          "\"fragment\"",
2054          "\"members\"",
2055          "\"center\"",
# Line 1584 | Line 2059 | const char* MDParser::tokenNames[] = {
2059          "\"flucQ\"",
2060          "\"RNEMD\"",
2061          "\"minimizer\"",
2062 +        "\"Fixed\"",
2063 +        "\"Harmonic\"",
2064 +        "\"Cubic\"",
2065 +        "\"Quartic\"",
2066 +        "\"Polynomial\"",
2067 +        "\"Morse\"",
2068 +        "\"GhostBend\"",
2069 +        "\"UreyBradley\"",
2070 +        "\"Cosine\"",
2071 +        "\"GhostTorsion\"",
2072 +        "\"Charmm\"",
2073 +        "\"Opls\"",
2074 +        "\"Trappe\"",
2075 +        "\"AmberImproper\"",
2076 +        "\"ImproperCosine\"",
2077 +        "\"CentralAtomHeight\"",
2078 +        "\"Dreiding\"",
2079 +        "\"charge\"",
2080          "ENDBLOCK",
2081          "ID",
2082          "ASSIGNEQUAL",
# Line 1621 | Line 2114 | const char* MDParser::tokenNames[] = {
2114          0
2115   };
2116  
2117 < const unsigned long MDParser::_tokenSet_0_data_[] = { 48234736UL, 0UL, 0UL, 0UL };
2117 > const unsigned long MDParser::_tokenSet_0_data_[] = { 58720496UL, 8192UL, 0UL, 0UL };
2118   // "component" "molecule" "zconstraint" "restraint" "flucQ" "RNEMD" "minimizer"
2119   // ID
2120   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_0(_tokenSet_0_data_,4);
2121   const unsigned long MDParser::_tokenSet_1_data_[] = { 2UL, 0UL, 0UL, 0UL };
2122   // EOF
2123   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_1(_tokenSet_1_data_,4);
2124 < const unsigned long MDParser::_tokenSet_2_data_[] = { 48234738UL, 0UL, 0UL, 0UL };
2124 > const unsigned long MDParser::_tokenSet_2_data_[] = { 58720498UL, 8192UL, 0UL, 0UL };
2125   // EOF "component" "molecule" "zconstraint" "restraint" "flucQ" "RNEMD"
2126   // "minimizer" ID
2127   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_2(_tokenSet_2_data_,4);
2128 < const unsigned long MDParser::_tokenSet_3_data_[] = { 1124073458UL, 0UL, 0UL, 0UL };
2128 > const unsigned long MDParser::_tokenSet_3_data_[] = { 4294901746UL, 274431UL, 0UL, 0UL };
2129   // EOF "component" "molecule" "zconstraint" "restraint" "atom" "bond" "bend"
2130 < // "torsion" "inversion" "rigidBody" "cutoffGroup" "fragment" "members"
2131 < // "center" "satellites" "position" "orientation" "flucQ" "RNEMD" "minimizer"
2130 > // "torsion" "inversion" "rigidBody" "cutoffGroup" "constraint" "fragment"
2131 > // "members" "center" "satellites" "position" "orientation" "flucQ" "RNEMD"
2132 > // "minimizer" "Fixed" "Harmonic" "Cubic" "Quartic" "Polynomial" "Morse"
2133 > // "GhostBend" "UreyBradley" "Cosine" "GhostTorsion" "Charmm" "Opls" "Trappe"
2134 > // "AmberImproper" "ImproperCosine" "CentralAtomHeight" "Dreiding" "charge"
2135   // ID RCURLY
2136   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_3(_tokenSet_3_data_,4);
2137 < const unsigned long MDParser::_tokenSet_4_data_[] = { 33619712UL, 0UL, 0UL, 0UL };
2137 > const unsigned long MDParser::_tokenSet_4_data_[] = { 196352UL, 8192UL, 0UL, 0UL };
2138   // "atom" "bond" "bend" "torsion" "inversion" "rigidBody" "cutoffGroup"
2139 < // "fragment" ID
2139 > // "constraint" "fragment" ID
2140   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_4(_tokenSet_4_data_,4);
2141 < const unsigned long MDParser::_tokenSet_5_data_[] = { 134217728UL, 0UL, 0UL, 0UL };
2141 > const unsigned long MDParser::_tokenSet_5_data_[] = { 0UL, 32768UL, 0UL, 0UL };
2142   // SEMICOLON
2143   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_5(_tokenSet_5_data_,4);
2144 < const unsigned long MDParser::_tokenSet_6_data_[] = { 134217728UL, 13UL, 0UL, 0UL };
2144 > const unsigned long MDParser::_tokenSet_6_data_[] = { 0UL, 13664256UL, 0UL, 0UL };
2145   // SEMICOLON RBRACKET RPAREN COMMA
2146   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_6(_tokenSet_6_data_,4);
2147 < const unsigned long MDParser::_tokenSet_7_data_[] = { 134217728UL, 12UL, 0UL, 0UL };
2147 > const unsigned long MDParser::_tokenSet_7_data_[] = { 0UL, 12615680UL, 0UL, 0UL };
2148   // SEMICOLON RPAREN COMMA
2149   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_7(_tokenSet_7_data_,4);
2150 < const unsigned long MDParser::_tokenSet_8_data_[] = { 1107361536UL, 0UL, 0UL, 0UL };
2150 > const unsigned long MDParser::_tokenSet_8_data_[] = { 196352UL, 270336UL, 0UL, 0UL };
2151   // "atom" "bond" "bend" "torsion" "inversion" "rigidBody" "cutoffGroup"
2152 < // "fragment" ID RCURLY
2152 > // "constraint" "fragment" ID RCURLY
2153   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_8(_tokenSet_8_data_,4);
2154 < const unsigned long MDParser::_tokenSet_9_data_[] = { 35127296UL, 0UL, 0UL, 0UL };
2155 < // "position" "orientation" ID
2154 > const unsigned long MDParser::_tokenSet_9_data_[] = { 6291456UL, 10240UL, 0UL, 0UL };
2155 > // "position" "orientation" "charge" ID
2156   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_9(_tokenSet_9_data_,4);
2157 < const unsigned long MDParser::_tokenSet_10_data_[] = { 33947648UL, 0UL, 0UL, 0UL };
2158 < // "center" "satellites" ID
2157 > const unsigned long MDParser::_tokenSet_10_data_[] = { 4228120576UL, 8192UL, 0UL, 0UL };
2158 > // "members" "Fixed" "Harmonic" "Cubic" "Quartic" "Polynomial" "Morse"
2159 > // ID
2160   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_10(_tokenSet_10_data_,4);
2161 < const unsigned long MDParser::_tokenSet_11_data_[] = { 1108869120UL, 0UL, 0UL, 0UL };
2162 < // "position" "orientation" ID RCURLY
2161 > const unsigned long MDParser::_tokenSet_11_data_[] = { 2013528064UL, 8199UL, 0UL, 0UL };
2162 > // "members" "Harmonic" "Cubic" "Quartic" "Polynomial" "GhostBend" "UreyBradley"
2163 > // "Cosine" ID
2164   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_11(_tokenSet_11_data_,4);
2165 < const unsigned long MDParser::_tokenSet_12_data_[] = { 0UL, 4UL, 0UL, 0UL };
2166 < // RPAREN
2165 > const unsigned long MDParser::_tokenSet_12_data_[] = { 2013528064UL, 8312UL, 0UL, 0UL };
2166 > // "members" "Harmonic" "Cubic" "Quartic" "Polynomial" "GhostTorsion" "Charmm"
2167 > // "Opls" "Trappe" ID
2168   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_12(_tokenSet_12_data_,4);
2169 < const unsigned long MDParser::_tokenSet_13_data_[] = { 1107361792UL, 0UL, 0UL, 0UL };
2170 < // "members" ID RCURLY
2169 > const unsigned long MDParser::_tokenSet_13_data_[] = { 135790592UL, 10112UL, 0UL, 0UL };
2170 > // "center" "satellites" "Harmonic" "AmberImproper" "ImproperCosine" "CentralAtomHeight"
2171 > // "Dreiding" ID
2172   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_13(_tokenSet_13_data_,4);
2173 < const unsigned long MDParser::_tokenSet_14_data_[] = { 1107689472UL, 0UL, 0UL, 0UL };
2174 < // "center" "satellites" ID RCURLY
2173 > const unsigned long MDParser::_tokenSet_14_data_[] = { 6291456UL, 272384UL, 0UL, 0UL };
2174 > // "position" "orientation" "charge" ID RCURLY
2175   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_14(_tokenSet_14_data_,4);
2176 < const unsigned long MDParser::_tokenSet_15_data_[] = { 1107296256UL, 0UL, 0UL, 0UL };
2177 < // ID RCURLY
2176 > const unsigned long MDParser::_tokenSet_15_data_[] = { 0UL, 4194304UL, 0UL, 0UL };
2177 > // RPAREN
2178   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_15(_tokenSet_15_data_,4);
2179 < const unsigned long MDParser::_tokenSet_16_data_[] = { 0UL, 12UL, 0UL, 0UL };
2180 < // RPAREN COMMA
2179 > const unsigned long MDParser::_tokenSet_16_data_[] = { 4228120576UL, 270336UL, 0UL, 0UL };
2180 > // "members" "Fixed" "Harmonic" "Cubic" "Quartic" "Polynomial" "Morse"
2181 > // ID RCURLY
2182   const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_16(_tokenSet_16_data_,4);
2183 + const unsigned long MDParser::_tokenSet_17_data_[] = { 2013528064UL, 270343UL, 0UL, 0UL };
2184 + // "members" "Harmonic" "Cubic" "Quartic" "Polynomial" "GhostBend" "UreyBradley"
2185 + // "Cosine" ID RCURLY
2186 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_17(_tokenSet_17_data_,4);
2187 + const unsigned long MDParser::_tokenSet_18_data_[] = { 2013528064UL, 270456UL, 0UL, 0UL };
2188 + // "members" "Harmonic" "Cubic" "Quartic" "Polynomial" "GhostTorsion" "Charmm"
2189 + // "Opls" "Trappe" ID RCURLY
2190 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_18(_tokenSet_18_data_,4);
2191 + const unsigned long MDParser::_tokenSet_19_data_[] = { 135790592UL, 272256UL, 0UL, 0UL };
2192 + // "center" "satellites" "Harmonic" "AmberImproper" "ImproperCosine" "CentralAtomHeight"
2193 + // "Dreiding" ID RCURLY
2194 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_19(_tokenSet_19_data_,4);
2195 + const unsigned long MDParser::_tokenSet_20_data_[] = { 262144UL, 270336UL, 0UL, 0UL };
2196 + // "members" ID RCURLY
2197 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_20(_tokenSet_20_data_,4);
2198 + const unsigned long MDParser::_tokenSet_21_data_[] = { 0UL, 270336UL, 0UL, 0UL };
2199 + // ID RCURLY
2200 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_21(_tokenSet_21_data_,4);
2201 + const unsigned long MDParser::_tokenSet_22_data_[] = { 0UL, 12582912UL, 0UL, 0UL };
2202 + // RPAREN COMMA
2203 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDParser::_tokenSet_22(_tokenSet_22_data_,4);
2204  
2205  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines