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

Comparing trunk/src/mdParser/MDTreeParser.cpp (file contents):
Revision 2045 by gezelter, Thu Nov 13 17:49:44 2014 UTC vs.
Revision 2046 by gezelter, Tue Dec 2 22:11:04 2014 UTC

# Line 534 | Line 534 | int  MDTreeParser::intConst(ANTLR_USE_NAMESPACE(antlr)
534   }
535  
536   int  MDTreeParser::intConst(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
537 < #line 312 "MDTreeParser.g"
537 > #line 349 "MDTreeParser.g"
538          int ival;
539   #line 540 "MDTreeParser.cpp"
540          ANTLR_USE_NAMESPACE(antlr)RefAST intConst_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
# Line 550 | Line 550 | int  MDTreeParser::intConst(ANTLR_USE_NAMESPACE(antlr)
550                          i1 = _t;
551                          match(_t,NUM_INT);
552                          _t = _t->getNextSibling();
553 < #line 313 "MDTreeParser.g"
553 > #line 350 "MDTreeParser.g"
554                          ival = lexi_cast<int>(i1->getText());
555   #line 556 "MDTreeParser.cpp"
556                          break;
# Line 560 | Line 560 | int  MDTreeParser::intConst(ANTLR_USE_NAMESPACE(antlr)
560                          i2 = _t;
561                          match(_t,NUM_LONG);
562                          _t = _t->getNextSibling();
563 < #line 314 "MDTreeParser.g"
563 > #line 351 "MDTreeParser.g"
564                          ival = lexi_cast<int>(i2->getText());
565   #line 566 "MDTreeParser.cpp"
566                          break;
# Line 581 | Line 581 | RealType  MDTreeParser::floatConst(ANTLR_USE_NAMESPACE
581   }
582  
583   RealType  MDTreeParser::floatConst(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
584 < #line 324 "MDTreeParser.g"
584 > #line 361 "MDTreeParser.g"
585          RealType dval;
586   #line 587 "MDTreeParser.cpp"
587          ANTLR_USE_NAMESPACE(antlr)RefAST floatConst_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
# Line 597 | Line 597 | RealType  MDTreeParser::floatConst(ANTLR_USE_NAMESPACE
597                          d1 = _t;
598                          match(_t,NUM_FLOAT);
599                          _t = _t->getNextSibling();
600 < #line 325 "MDTreeParser.g"
600 > #line 362 "MDTreeParser.g"
601                          dval = lexi_cast<RealType>(d1->getText());
602   #line 603 "MDTreeParser.cpp"
603                          break;
# Line 607 | Line 607 | RealType  MDTreeParser::floatConst(ANTLR_USE_NAMESPACE
607                          d2 = _t;
608                          match(_t,NUM_DOUBLE);
609                          _t = _t->getNextSibling();
610 < #line 326 "MDTreeParser.g"
610 > #line 363 "MDTreeParser.g"
611                          dval = lexi_cast<RealType>(d2->getText());
612   #line 613 "MDTreeParser.cpp"
613                          break;
# Line 628 | Line 628 | vector<RealType>  MDTreeParser::doubleNumberTuple(ANTL
628   }
629  
630   vector<RealType>  MDTreeParser::doubleNumberTuple(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
631 < #line 296 "MDTreeParser.g"
631 > #line 333 "MDTreeParser.g"
632          vector<RealType> dvec;
633   #line 634 "MDTreeParser.cpp"
634          ANTLR_USE_NAMESPACE(antlr)RefAST doubleNumberTuple_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
635 < #line 296 "MDTreeParser.g"
635 > #line 333 "MDTreeParser.g"
636          
637          RealType dval;
638          
# Line 640 | Line 640 | vector<RealType>  MDTreeParser::doubleNumberTuple(ANTL
640          
641          try {      // for error handling
642                  { // ( ... )+
643 <                int _cnt95=0;
643 >                int _cnt122=0;
644                  for (;;) {
645                          if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
646                                  _t = ASTNULL;
647                          if (((_t->getType() >= NUM_INT && _t->getType() <= NUM_DOUBLE))) {
648                                  dval=doubleNumber(_t);
649                                  _t = _retTree;
650 < #line 300 "MDTreeParser.g"
650 > #line 337 "MDTreeParser.g"
651                                  dvec.push_back(dval);
652   #line 653 "MDTreeParser.cpp"
653                          }
654                          else {
655 <                                if ( _cnt95>=1 ) { goto _loop95; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);}
655 >                                if ( _cnt122>=1 ) { goto _loop122; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);}
656                          }
657                          
658 <                        _cnt95++;
658 >                        _cnt122++;
659                  }
660 <                _loop95:;
660 >                _loop122:;
661                  }  // ( ... )+
662          }
663          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 772 | Line 772 | void MDTreeParser::atomblock(ANTLR_USE_NAMESPACE(antlr
772                  for (;;) {
773                          if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
774                                  _t = ASTNULL;
775 <                        if ((_t->getType() == POSITION || _t->getType() == ORIENTATION || _t->getType() == ASSIGNEQUAL)) {
775 >                        if ((_tokenSet_2.member(_t->getType()))) {
776                                  atomstatement(_t);
777                                  _t = _retTree;
778                          }
# Line 809 | Line 809 | void MDTreeParser::bondblock(ANTLR_USE_NAMESPACE(antlr
809          ANTLR_USE_NAMESPACE(antlr)RefAST bondblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
810          
811          try {      // for error handling
812 <                ANTLR_USE_NAMESPACE(antlr)RefAST __t46 = _t;
812 >                ANTLR_USE_NAMESPACE(antlr)RefAST __t47 = _t;
813                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp20_AST_in = _t;
814                  match(_t,BOND);
815                  _t = _t->getFirstChild();
816 < #line 144 "MDTreeParser.g"
816 > #line 147 "MDTreeParser.g"
817                  BondStamp* currBondStamp = new BondStamp(); blockStack.push(currBondStamp);
818   #line 819 "MDTreeParser.cpp"
819                  { // ( ... )*
820                  for (;;) {
821                          if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
822                                  _t = ASTNULL;
823 <                        if ((_t->getType() == MEMBERS || _t->getType() == ASSIGNEQUAL)) {
823 >                        if ((_tokenSet_3.member(_t->getType()))) {
824                                  bondstatement(_t);
825                                  _t = _retTree;
826                          }
827                          else {
828 <                                goto _loop48;
828 >                                goto _loop49;
829                          }
830                          
831                  }
832 <                _loop48:;
832 >                _loop49:;
833                  } // ( ... )*
834                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp21_AST_in = _t;
835                  match(_t,ENDBLOCK);
836                  _t = _t->getNextSibling();
837 <                _t = __t46;
837 >                _t = __t47;
838                  _t = _t->getNextSibling();
839 < #line 146 "MDTreeParser.g"
839 > #line 149 "MDTreeParser.g"
840                  
841 +                blockStack.top()->validate();
842                  blockStack.pop();
843                  MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
844                  currMoleculeStamp->addBondStamp(currBondStamp);
845                  
846 < #line 846 "MDTreeParser.cpp"
846 > #line 847 "MDTreeParser.cpp"
847          }
848          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
849                  reportError(ex);
# Line 856 | Line 857 | void MDTreeParser::bendblock(ANTLR_USE_NAMESPACE(antlr
857          ANTLR_USE_NAMESPACE(antlr)RefAST bendblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
858          
859          try {      // for error handling
860 <                ANTLR_USE_NAMESPACE(antlr)RefAST __t52 = _t;
860 >                ANTLR_USE_NAMESPACE(antlr)RefAST __t59 = _t;
861                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp22_AST_in = _t;
862                  match(_t,BEND);
863                  _t = _t->getFirstChild();
864 < #line 162 "MDTreeParser.g"
864 > #line 174 "MDTreeParser.g"
865                  BendStamp* currBendStamp = new BendStamp(); blockStack.push(currBendStamp);
866 < #line 866 "MDTreeParser.cpp"
866 > #line 867 "MDTreeParser.cpp"
867                  { // ( ... )*
868                  for (;;) {
869                          if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
870                                  _t = ASTNULL;
871 <                        if ((_t->getType() == MEMBERS || _t->getType() == ASSIGNEQUAL)) {
871 >                        if ((_tokenSet_4.member(_t->getType()))) {
872                                  bendstatement(_t);
873                                  _t = _retTree;
874                          }
875                          else {
876 <                                goto _loop54;
876 >                                goto _loop61;
877                          }
878                          
879                  }
880 <                _loop54:;
880 >                _loop61:;
881                  } // ( ... )*
882                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp23_AST_in = _t;
883                  match(_t,ENDBLOCK);
884                  _t = _t->getNextSibling();
885 <                _t = __t52;
885 >                _t = __t59;
886                  _t = _t->getNextSibling();
887 < #line 164 "MDTreeParser.g"
887 > #line 176 "MDTreeParser.g"
888                  
889                  blockStack.top()->validate();
890                  blockStack.pop();
891                  MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
892                  currMoleculeStamp->addBendStamp(currBendStamp);
893                  
894 < #line 894 "MDTreeParser.cpp"
894 > #line 895 "MDTreeParser.cpp"
895          }
896          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
897                  reportError(ex);
# Line 904 | Line 905 | void MDTreeParser::torsionblock(ANTLR_USE_NAMESPACE(an
905          ANTLR_USE_NAMESPACE(antlr)RefAST torsionblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
906          
907          try {      // for error handling
908 <                ANTLR_USE_NAMESPACE(antlr)RefAST __t58 = _t;
908 >                ANTLR_USE_NAMESPACE(antlr)RefAST __t72 = _t;
909                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp24_AST_in = _t;
910                  match(_t,TORSION);
911                  _t = _t->getFirstChild();
912 < #line 181 "MDTreeParser.g"
912 > #line 201 "MDTreeParser.g"
913                  TorsionStamp* currTorsionStamp = new TorsionStamp(); blockStack.push(currTorsionStamp);
914 < #line 914 "MDTreeParser.cpp"
914 > #line 915 "MDTreeParser.cpp"
915                  { // ( ... )*
916                  for (;;) {
917                          if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
918                                  _t = ASTNULL;
919 <                        if ((_t->getType() == MEMBERS || _t->getType() == ASSIGNEQUAL)) {
919 >                        if ((_tokenSet_5.member(_t->getType()))) {
920                                  torsionstatement(_t);
921                                  _t = _retTree;
922                          }
923                          else {
924 <                                goto _loop60;
924 >                                goto _loop74;
925                          }
926                          
927                  }
928 <                _loop60:;
928 >                _loop74:;
929                  } // ( ... )*
930                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp25_AST_in = _t;
931                  match(_t,ENDBLOCK);
932                  _t = _t->getNextSibling();
933 <                _t = __t58;
933 >                _t = __t72;
934                  _t = _t->getNextSibling();
935 < #line 183 "MDTreeParser.g"
935 > #line 203 "MDTreeParser.g"
936                  
937                  blockStack.top()->validate();
938                  blockStack.pop();
939                  MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
940                  currMoleculeStamp->addTorsionStamp(currTorsionStamp);
941                  
942 < #line 942 "MDTreeParser.cpp"
942 > #line 943 "MDTreeParser.cpp"
943          }
944          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
945                  reportError(ex);
# Line 952 | Line 953 | void MDTreeParser::inversionblock(ANTLR_USE_NAMESPACE(
953          ANTLR_USE_NAMESPACE(antlr)RefAST inversionblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
954          
955          try {      // for error handling
956 <                ANTLR_USE_NAMESPACE(antlr)RefAST __t64 = _t;
956 >                ANTLR_USE_NAMESPACE(antlr)RefAST __t86 = _t;
957                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp26_AST_in = _t;
958                  match(_t,INVERSION);
959                  _t = _t->getFirstChild();
960 < #line 200 "MDTreeParser.g"
960 > #line 230 "MDTreeParser.g"
961                  InversionStamp* currInversionStamp = new InversionStamp(); blockStack.push(currInversionStamp);
962 < #line 962 "MDTreeParser.cpp"
962 > #line 963 "MDTreeParser.cpp"
963                  { // ( ... )*
964                  for (;;) {
965                          if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
966                                  _t = ASTNULL;
967 <                        if ((_t->getType() == CENTER || _t->getType() == SATELLITES || _t->getType() == ASSIGNEQUAL)) {
967 >                        if ((_tokenSet_6.member(_t->getType()))) {
968                                  inversionstatement(_t);
969                                  _t = _retTree;
970                          }
971                          else {
972 <                                goto _loop66;
972 >                                goto _loop88;
973                          }
974                          
975                  }
976 <                _loop66:;
976 >                _loop88:;
977                  } // ( ... )*
978                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp27_AST_in = _t;
979                  match(_t,ENDBLOCK);
980                  _t = _t->getNextSibling();
981 <                _t = __t64;
981 >                _t = __t86;
982                  _t = _t->getNextSibling();
983 < #line 202 "MDTreeParser.g"
983 > #line 232 "MDTreeParser.g"
984                  
985                  blockStack.top()->validate();
986                  blockStack.pop();
987                  MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
988                  currMoleculeStamp->addInversionStamp(currInversionStamp);
989                  
990 < #line 990 "MDTreeParser.cpp"
990 > #line 991 "MDTreeParser.cpp"
991          }
992          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
993                  reportError(ex);
# Line 998 | Line 999 | void MDTreeParser::rigidbodyblock(ANTLR_USE_NAMESPACE(
999  
1000   void MDTreeParser::rigidbodyblock(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1001          ANTLR_USE_NAMESPACE(antlr)RefAST rigidbodyblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1002 < #line 221 "MDTreeParser.g"
1002 > #line 258 "MDTreeParser.g"
1003          
1004          int index;
1005          
1006 < #line 1006 "MDTreeParser.cpp"
1006 > #line 1007 "MDTreeParser.cpp"
1007          
1008          try {      // for error handling
1009 <                ANTLR_USE_NAMESPACE(antlr)RefAST __t71 = _t;
1009 >                ANTLR_USE_NAMESPACE(antlr)RefAST __t98 = _t;
1010                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp28_AST_in = _t;
1011                  match(_t,RIGIDBODY);
1012                  _t = _t->getFirstChild();
1013                  index=intConst(_t);
1014                  _t = _retTree;
1015 < #line 225 "MDTreeParser.g"
1015 > #line 262 "MDTreeParser.g"
1016                  RigidBodyStamp* currRigidBodyStamp = new RigidBodyStamp(index); blockStack.push(currRigidBodyStamp);
1017 < #line 1017 "MDTreeParser.cpp"
1017 > #line 1018 "MDTreeParser.cpp"
1018                  { // ( ... )*
1019                  for (;;) {
1020                          if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
# Line 1023 | Line 1024 | void MDTreeParser::rigidbodyblock(ANTLR_USE_NAMESPACE(
1024                                  _t = _retTree;
1025                          }
1026                          else {
1027 <                                goto _loop73;
1027 >                                goto _loop100;
1028                          }
1029                          
1030                  }
1031 <                _loop73:;
1031 >                _loop100:;
1032                  } // ( ... )*
1033                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp29_AST_in = _t;
1034                  match(_t,ENDBLOCK);
1035                  _t = _t->getNextSibling();
1036 <                _t = __t71;
1036 >                _t = __t98;
1037                  _t = _t->getNextSibling();
1038 < #line 227 "MDTreeParser.g"
1038 > #line 264 "MDTreeParser.g"
1039                  
1040                  blockStack.top()->validate();
1041                  blockStack.pop();
1042                  MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
1043                  currMoleculeStamp->addRigidBodyStamp(currRigidBodyStamp);
1044                  
1045 < #line 1045 "MDTreeParser.cpp"
1045 > #line 1046 "MDTreeParser.cpp"
1046          }
1047          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1048                  reportError(ex);
# Line 1055 | Line 1056 | void MDTreeParser::cutoffgroupblock(ANTLR_USE_NAMESPAC
1056          ANTLR_USE_NAMESPACE(antlr)RefAST cutoffgroupblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1057          
1058          try {      // for error handling
1059 <                ANTLR_USE_NAMESPACE(antlr)RefAST __t77 = _t;
1059 >                ANTLR_USE_NAMESPACE(antlr)RefAST __t104 = _t;
1060                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp30_AST_in = _t;
1061                  match(_t,CUTOFFGROUP);
1062                  _t = _t->getFirstChild();
1063 < #line 244 "MDTreeParser.g"
1063 > #line 281 "MDTreeParser.g"
1064                  CutoffGroupStamp* currCutoffGroupStamp = new CutoffGroupStamp(); blockStack.push(currCutoffGroupStamp);
1065 < #line 1065 "MDTreeParser.cpp"
1065 > #line 1066 "MDTreeParser.cpp"
1066                  { // ( ... )*
1067                  for (;;) {
1068                          if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
# Line 1071 | Line 1072 | void MDTreeParser::cutoffgroupblock(ANTLR_USE_NAMESPAC
1072                                  _t = _retTree;
1073                          }
1074                          else {
1075 <                                goto _loop79;
1075 >                                goto _loop106;
1076                          }
1077                          
1078                  }
1079 <                _loop79:;
1079 >                _loop106:;
1080                  } // ( ... )*
1081                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp31_AST_in = _t;
1082                  match(_t,ENDBLOCK);
1083                  _t = _t->getNextSibling();
1084 <                _t = __t77;
1084 >                _t = __t104;
1085                  _t = _t->getNextSibling();
1086 < #line 246 "MDTreeParser.g"
1086 > #line 283 "MDTreeParser.g"
1087                  
1088                  blockStack.top()->validate();
1089                  blockStack.pop();
1090                  MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
1091                  currMoleculeStamp->addCutoffGroupStamp(currCutoffGroupStamp);
1092                  
1093 < #line 1093 "MDTreeParser.cpp"
1093 > #line 1094 "MDTreeParser.cpp"
1094          }
1095          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1096                  reportError(ex);
# Line 1101 | Line 1102 | void MDTreeParser::fragmentblock(ANTLR_USE_NAMESPACE(a
1102  
1103   void MDTreeParser::fragmentblock(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1104          ANTLR_USE_NAMESPACE(antlr)RefAST fragmentblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1105 < #line 263 "MDTreeParser.g"
1105 > #line 300 "MDTreeParser.g"
1106          int ival;
1107 < #line 1107 "MDTreeParser.cpp"
1107 > #line 1108 "MDTreeParser.cpp"
1108          
1109          try {      // for error handling
1110 <                ANTLR_USE_NAMESPACE(antlr)RefAST __t83 = _t;
1110 >                ANTLR_USE_NAMESPACE(antlr)RefAST __t110 = _t;
1111                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp32_AST_in = _t;
1112                  match(_t,FRAGMENT);
1113                  _t = _t->getFirstChild();
1114                  ival=intConst(_t);
1115                  _t = _retTree;
1116 < #line 264 "MDTreeParser.g"
1116 > #line 301 "MDTreeParser.g"
1117                  FragmentStamp* currFragmentStamp = new FragmentStamp(ival); blockStack.push(currFragmentStamp);
1118 < #line 1118 "MDTreeParser.cpp"
1118 > #line 1119 "MDTreeParser.cpp"
1119                  { // ( ... )*
1120                  for (;;) {
1121                          if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
# Line 1124 | Line 1125 | void MDTreeParser::fragmentblock(ANTLR_USE_NAMESPACE(a
1125                                  _t = _retTree;
1126                          }
1127                          else {
1128 <                                goto _loop85;
1128 >                                goto _loop112;
1129                          }
1130                          
1131                  }
1132 <                _loop85:;
1132 >                _loop112:;
1133                  } // ( ... )*
1134                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp33_AST_in = _t;
1135                  match(_t,ENDBLOCK);
1136                  _t = _t->getNextSibling();
1137 <                _t = __t83;
1137 >                _t = __t110;
1138                  _t = _t->getNextSibling();
1139 < #line 266 "MDTreeParser.g"
1139 > #line 303 "MDTreeParser.g"
1140                  
1141                  blockStack.top()->validate();
1142                  blockStack.pop();
1143                  MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
1144                  currMoleculeStamp->addFragmentStamp(currFragmentStamp);
1145                  
1146 < #line 1146 "MDTreeParser.cpp"
1146 > #line 1147 "MDTreeParser.cpp"
1147          }
1148          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1149                  reportError(ex);
# Line 1156 | Line 1157 | void MDTreeParser::constraintblock(ANTLR_USE_NAMESPACE
1157          ANTLR_USE_NAMESPACE(antlr)RefAST constraintblock_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1158          
1159          try {      // for error handling
1160 <                ANTLR_USE_NAMESPACE(antlr)RefAST __t88 = _t;
1160 >                ANTLR_USE_NAMESPACE(antlr)RefAST __t115 = _t;
1161                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp34_AST_in = _t;
1162                  match(_t,CONSTRAINT);
1163                  _t = _t->getFirstChild();
1164 < #line 277 "MDTreeParser.g"
1164 > #line 314 "MDTreeParser.g"
1165                  ConstraintStamp* currConstraintStamp = new ConstraintStamp(); blockStack.push(currConstraintStamp);
1166 < #line 1166 "MDTreeParser.cpp"
1166 > #line 1167 "MDTreeParser.cpp"
1167                  { // ( ... )*
1168                  for (;;) {
1169                          if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
# Line 1172 | Line 1173 | void MDTreeParser::constraintblock(ANTLR_USE_NAMESPACE
1173                                  _t = _retTree;
1174                          }
1175                          else {
1176 <                                goto _loop90;
1176 >                                goto _loop117;
1177                          }
1178                          
1179                  }
1180 <                _loop90:;
1180 >                _loop117:;
1181                  } // ( ... )*
1182                  ANTLR_USE_NAMESPACE(antlr)RefAST tmp35_AST_in = _t;
1183                  match(_t,ENDBLOCK);
1184                  _t = _t->getNextSibling();
1185 <                _t = __t88;
1185 >                _t = __t115;
1186                  _t = _t->getNextSibling();
1187 < #line 279 "MDTreeParser.g"
1187 > #line 316 "MDTreeParser.g"
1188                  
1189                  blockStack.pop();
1190                  MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
1191                  currMoleculeStamp->addConstraintStamp(currConstraintStamp);
1192                  
1193 < #line 1193 "MDTreeParser.cpp"
1193 > #line 1194 "MDTreeParser.cpp"
1194          }
1195          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1196                  reportError(ex);
# Line 1204 | Line 1205 | void MDTreeParser::atomstatement(ANTLR_USE_NAMESPACE(a
1205   #line 132 "MDTreeParser.g"
1206          
1207          vector<RealType> dvec;
1208 +        RealType rval;
1209          AtomStamp* currAtomStamp =  static_cast<AtomStamp*>(blockStack.top());
1210          
1211          
1212 < #line 1211 "MDTreeParser.cpp"
1212 > #line 1213 "MDTreeParser.cpp"
1213          
1214          try {      // for error handling
1215                  if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
# Line 1229 | Line 1231 | void MDTreeParser::atomstatement(ANTLR_USE_NAMESPACE(a
1231                          _t = _retTree;
1232                          _t = __t43;
1233                          _t = _t->getNextSibling();
1234 < #line 139 "MDTreeParser.g"
1234 > #line 140 "MDTreeParser.g"
1235                          currAtomStamp->setPosition(dvec);
1236 < #line 1235 "MDTreeParser.cpp"
1236 > #line 1237 "MDTreeParser.cpp"
1237                          break;
1238                  }
1239                  case ORIENTATION:
# Line 1244 | Line 1246 | void MDTreeParser::atomstatement(ANTLR_USE_NAMESPACE(a
1246                          _t = _retTree;
1247                          _t = __t44;
1248                          _t = _t->getNextSibling();
1249 < #line 140 "MDTreeParser.g"
1249 > #line 141 "MDTreeParser.g"
1250                          currAtomStamp->setOrientation(dvec);
1251 < #line 1250 "MDTreeParser.cpp"
1251 > #line 1252 "MDTreeParser.cpp"
1252                          break;
1253                  }
1254 +                case CHARGE:
1255 +                {
1256 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t45 = _t;
1257 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp38_AST_in = _t;
1258 +                        match(_t,CHARGE);
1259 +                        _t = _t->getFirstChild();
1260 +                        rval=doubleNumber(_t);
1261 +                        _t = _retTree;
1262 +                        _t = __t45;
1263 +                        _t = _t->getNextSibling();
1264 + #line 142 "MDTreeParser.g"
1265 +                        currAtomStamp->overrideCharge(rval);
1266 + #line 1267 "MDTreeParser.cpp"
1267 +                        break;
1268 +                }
1269                  default:
1270                  {
1271                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
# Line 1263 | Line 1280 | void MDTreeParser::atomstatement(ANTLR_USE_NAMESPACE(a
1280          _retTree = _t;
1281   }
1282  
1283 + RealType  MDTreeParser::doubleNumber(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1284 + #line 355 "MDTreeParser.g"
1285 +        RealType dval;
1286 + #line 1287 "MDTreeParser.cpp"
1287 +        ANTLR_USE_NAMESPACE(antlr)RefAST doubleNumber_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1288 +        ANTLR_USE_NAMESPACE(antlr)RefAST ic = ANTLR_USE_NAMESPACE(antlr)nullAST;
1289 +        ANTLR_USE_NAMESPACE(antlr)RefAST fc = ANTLR_USE_NAMESPACE(antlr)nullAST;
1290 +        
1291 +        try {      // for error handling
1292 +                if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
1293 +                        _t = ASTNULL;
1294 +                switch ( _t->getType()) {
1295 +                case NUM_INT:
1296 +                case NUM_LONG:
1297 +                {
1298 +                        ic = (_t == ASTNULL) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1299 +                        intConst(_t);
1300 +                        _t = _retTree;
1301 + #line 356 "MDTreeParser.g"
1302 +                        dval = lexi_cast<RealType>(ic->getText());
1303 + #line 1304 "MDTreeParser.cpp"
1304 +                        break;
1305 +                }
1306 +                case NUM_FLOAT:
1307 +                case NUM_DOUBLE:
1308 +                {
1309 +                        fc = (_t == ASTNULL) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1310 +                        floatConst(_t);
1311 +                        _t = _retTree;
1312 + #line 357 "MDTreeParser.g"
1313 +                        dval = lexi_cast<RealType>(fc->getText());
1314 + #line 1315 "MDTreeParser.cpp"
1315 +                        break;
1316 +                }
1317 +                default:
1318 +                {
1319 +                        throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
1320 +                }
1321 +                }
1322 +        }
1323 +        catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1324 +                reportError(ex);
1325 +                if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
1326 +                        _t = _t->getNextSibling();
1327 +        }
1328 +        _retTree = _t;
1329 +        return dval;
1330 + }
1331 +
1332   void MDTreeParser::bondstatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1333          ANTLR_USE_NAMESPACE(antlr)RefAST bondstatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1334 < #line 153 "MDTreeParser.g"
1334 > #line 157 "MDTreeParser.g"
1335          
1336          vector<int> ivec;
1337 +        RealType rval;
1338 +        vector<RealType> dvec;
1339          BondStamp* currBondStamp = static_cast<BondStamp*>(blockStack.top());
1340          
1341 < #line 1274 "MDTreeParser.cpp"
1341 > #line 1342 "MDTreeParser.cpp"
1342          
1343          try {      // for error handling
1344                  if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
# Line 1284 | Line 1352 | void MDTreeParser::bondstatement(ANTLR_USE_NAMESPACE(a
1352                  }
1353                  case MEMBERS:
1354                  {
1355 <                        ANTLR_USE_NAMESPACE(antlr)RefAST __t50 = _t;
1356 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp38_AST_in = _t;
1355 >                        ANTLR_USE_NAMESPACE(antlr)RefAST __t51 = _t;
1356 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp39_AST_in = _t;
1357                          match(_t,MEMBERS);
1358                          _t = _t->getFirstChild();
1359                          ivec=inttuple(_t);
1360                          _t = _retTree;
1361 <                        _t = __t50;
1361 >                        _t = __t51;
1362                          _t = _t->getNextSibling();
1363 < #line 159 "MDTreeParser.g"
1363 > #line 165 "MDTreeParser.g"
1364                          currBondStamp->setMembers(ivec);
1365 < #line 1298 "MDTreeParser.cpp"
1365 > #line 1366 "MDTreeParser.cpp"
1366                          break;
1367                  }
1368 +                case FIXED:
1369 +                {
1370 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t52 = _t;
1371 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp40_AST_in = _t;
1372 +                        match(_t,FIXED);
1373 +                        _t = _t->getFirstChild();
1374 +                        rval=doubleNumber(_t);
1375 +                        _t = _retTree;
1376 +                        _t = __t52;
1377 +                        _t = _t->getNextSibling();
1378 + #line 166 "MDTreeParser.g"
1379 +                        currBondStamp->overrideType("Fixed", rval);
1380 + #line 1381 "MDTreeParser.cpp"
1381 +                        break;
1382 +                }
1383 +                case HARMONIC:
1384 +                {
1385 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t53 = _t;
1386 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp41_AST_in = _t;
1387 +                        match(_t,HARMONIC);
1388 +                        _t = _t->getFirstChild();
1389 +                        dvec=doubleNumberTuple(_t);
1390 +                        _t = _retTree;
1391 +                        _t = __t53;
1392 +                        _t = _t->getNextSibling();
1393 + #line 167 "MDTreeParser.g"
1394 +                        currBondStamp->overrideType("Harmonic", dvec);
1395 + #line 1396 "MDTreeParser.cpp"
1396 +                        break;
1397 +                }
1398 +                case CUBIC:
1399 +                {
1400 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t54 = _t;
1401 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp42_AST_in = _t;
1402 +                        match(_t,CUBIC);
1403 +                        _t = _t->getFirstChild();
1404 +                        dvec=doubleNumberTuple(_t);
1405 +                        _t = _retTree;
1406 +                        _t = __t54;
1407 +                        _t = _t->getNextSibling();
1408 + #line 168 "MDTreeParser.g"
1409 +                        currBondStamp->overrideType("Cubic", dvec);
1410 + #line 1411 "MDTreeParser.cpp"
1411 +                        break;
1412 +                }
1413 +                case QUARTIC:
1414 +                {
1415 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t55 = _t;
1416 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp43_AST_in = _t;
1417 +                        match(_t,QUARTIC);
1418 +                        _t = _t->getFirstChild();
1419 +                        dvec=doubleNumberTuple(_t);
1420 +                        _t = _retTree;
1421 +                        _t = __t55;
1422 +                        _t = _t->getNextSibling();
1423 + #line 169 "MDTreeParser.g"
1424 +                        currBondStamp->overrideType("Quartic", dvec);
1425 + #line 1426 "MDTreeParser.cpp"
1426 +                        break;
1427 +                }
1428 +                case POLYNOMIAL:
1429 +                {
1430 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t56 = _t;
1431 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp44_AST_in = _t;
1432 +                        match(_t,POLYNOMIAL);
1433 +                        _t = _t->getFirstChild();
1434 +                        dvec=doubleNumberTuple(_t);
1435 +                        _t = _retTree;
1436 +                        _t = __t56;
1437 +                        _t = _t->getNextSibling();
1438 + #line 170 "MDTreeParser.g"
1439 +                        currBondStamp->overrideType("Polynomial", dvec);
1440 + #line 1441 "MDTreeParser.cpp"
1441 +                        break;
1442 +                }
1443 +                case MORSE:
1444 +                {
1445 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t57 = _t;
1446 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp45_AST_in = _t;
1447 +                        match(_t,MORSE);
1448 +                        _t = _t->getFirstChild();
1449 +                        dvec=doubleNumberTuple(_t);
1450 +                        _t = _retTree;
1451 +                        _t = __t57;
1452 +                        _t = _t->getNextSibling();
1453 + #line 171 "MDTreeParser.g"
1454 +                        currBondStamp->overrideType("Morse", dvec);
1455 + #line 1456 "MDTreeParser.cpp"
1456 +                        break;
1457 +                }
1458                  default:
1459                  {
1460                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
# Line 1312 | Line 1470 | vector<int>  MDTreeParser::inttuple(ANTLR_USE_NAMESPAC
1470   }
1471  
1472   vector<int>  MDTreeParser::inttuple(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1473 < #line 304 "MDTreeParser.g"
1473 > #line 341 "MDTreeParser.g"
1474          vector<int> ivec;
1475 < #line 1318 "MDTreeParser.cpp"
1475 > #line 1476 "MDTreeParser.cpp"
1476          ANTLR_USE_NAMESPACE(antlr)RefAST inttuple_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1477 < #line 304 "MDTreeParser.g"
1477 > #line 341 "MDTreeParser.g"
1478          
1479          int ival;
1480          
1481 < #line 1324 "MDTreeParser.cpp"
1481 > #line 1482 "MDTreeParser.cpp"
1482          
1483          try {      // for error handling
1484                  { // ( ... )+
1485 <                int _cnt98=0;
1485 >                int _cnt125=0;
1486                  for (;;) {
1487                          if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
1488                                  _t = ASTNULL;
1489                          if ((_t->getType() == NUM_INT || _t->getType() == NUM_LONG)) {
1490                                  ival=intConst(_t);
1491                                  _t = _retTree;
1492 < #line 308 "MDTreeParser.g"
1492 > #line 345 "MDTreeParser.g"
1493                                  ivec.push_back(ival);
1494 < #line 1337 "MDTreeParser.cpp"
1494 > #line 1495 "MDTreeParser.cpp"
1495                          }
1496                          else {
1497 <                                if ( _cnt98>=1 ) { goto _loop98; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);}
1497 >                                if ( _cnt125>=1 ) { goto _loop125; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);}
1498                          }
1499                          
1500 <                        _cnt98++;
1500 >                        _cnt125++;
1501                  }
1502 <                _loop98:;
1502 >                _loop125:;
1503                  }  // ( ... )+
1504          }
1505          catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
# Line 1355 | Line 1513 | void MDTreeParser::bendstatement(ANTLR_USE_NAMESPACE(a
1513  
1514   void MDTreeParser::bendstatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1515          ANTLR_USE_NAMESPACE(antlr)RefAST bendstatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1516 < #line 172 "MDTreeParser.g"
1516 > #line 184 "MDTreeParser.g"
1517          
1518          vector<int> ivec;
1519 +        vector<RealType> dvec;
1520          BendStamp* currBendStamp = static_cast<BendStamp*>(blockStack.top());
1521          
1522 < #line 1364 "MDTreeParser.cpp"
1522 > #line 1523 "MDTreeParser.cpp"
1523          
1524          try {      // for error handling
1525                  if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
# Line 1374 | Line 1533 | void MDTreeParser::bendstatement(ANTLR_USE_NAMESPACE(a
1533                  }
1534                  case MEMBERS:
1535                  {
1536 <                        ANTLR_USE_NAMESPACE(antlr)RefAST __t56 = _t;
1537 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp39_AST_in = _t;
1536 >                        ANTLR_USE_NAMESPACE(antlr)RefAST __t63 = _t;
1537 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp46_AST_in = _t;
1538                          match(_t,MEMBERS);
1539                          _t = _t->getFirstChild();
1540                          ivec=inttuple(_t);
1541                          _t = _retTree;
1542 <                        _t = __t56;
1542 >                        _t = __t63;
1543                          _t = _t->getNextSibling();
1544 < #line 178 "MDTreeParser.g"
1544 > #line 191 "MDTreeParser.g"
1545                          currBendStamp->setMembers(ivec);
1546 < #line 1388 "MDTreeParser.cpp"
1546 > #line 1547 "MDTreeParser.cpp"
1547                          break;
1548                  }
1549 +                case HARMONIC:
1550 +                {
1551 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t64 = _t;
1552 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp47_AST_in = _t;
1553 +                        match(_t,HARMONIC);
1554 +                        _t = _t->getFirstChild();
1555 +                        dvec=doubleNumberTuple(_t);
1556 +                        _t = _retTree;
1557 +                        _t = __t64;
1558 +                        _t = _t->getNextSibling();
1559 + #line 192 "MDTreeParser.g"
1560 +                        currBendStamp->overrideType("Harmonic", dvec);
1561 + #line 1562 "MDTreeParser.cpp"
1562 +                        break;
1563 +                }
1564 +                case GHOSTBEND:
1565 +                {
1566 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t65 = _t;
1567 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp48_AST_in = _t;
1568 +                        match(_t,GHOSTBEND);
1569 +                        _t = _t->getFirstChild();
1570 +                        dvec=doubleNumberTuple(_t);
1571 +                        _t = _retTree;
1572 +                        _t = __t65;
1573 +                        _t = _t->getNextSibling();
1574 + #line 193 "MDTreeParser.g"
1575 +                        currBendStamp->overrideType("GhostBend", dvec);
1576 + #line 1577 "MDTreeParser.cpp"
1577 +                        break;
1578 +                }
1579 +                case UREYBRADLEY:
1580 +                {
1581 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t66 = _t;
1582 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp49_AST_in = _t;
1583 +                        match(_t,UREYBRADLEY);
1584 +                        _t = _t->getFirstChild();
1585 +                        dvec=doubleNumberTuple(_t);
1586 +                        _t = _retTree;
1587 +                        _t = __t66;
1588 +                        _t = _t->getNextSibling();
1589 + #line 194 "MDTreeParser.g"
1590 +                        currBendStamp->overrideType("UreyBradley", dvec);
1591 + #line 1592 "MDTreeParser.cpp"
1592 +                        break;
1593 +                }
1594 +                case CUBIC:
1595 +                {
1596 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t67 = _t;
1597 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp50_AST_in = _t;
1598 +                        match(_t,CUBIC);
1599 +                        _t = _t->getFirstChild();
1600 +                        dvec=doubleNumberTuple(_t);
1601 +                        _t = _retTree;
1602 +                        _t = __t67;
1603 +                        _t = _t->getNextSibling();
1604 + #line 195 "MDTreeParser.g"
1605 +                        currBendStamp->overrideType("Cubic", dvec);
1606 + #line 1607 "MDTreeParser.cpp"
1607 +                        break;
1608 +                }
1609 +                case QUARTIC:
1610 +                {
1611 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t68 = _t;
1612 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp51_AST_in = _t;
1613 +                        match(_t,QUARTIC);
1614 +                        _t = _t->getFirstChild();
1615 +                        dvec=doubleNumberTuple(_t);
1616 +                        _t = _retTree;
1617 +                        _t = __t68;
1618 +                        _t = _t->getNextSibling();
1619 + #line 196 "MDTreeParser.g"
1620 +                        currBendStamp->overrideType("Quartic", dvec);
1621 + #line 1622 "MDTreeParser.cpp"
1622 +                        break;
1623 +                }
1624 +                case POLYNOMIAL:
1625 +                {
1626 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t69 = _t;
1627 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp52_AST_in = _t;
1628 +                        match(_t,POLYNOMIAL);
1629 +                        _t = _t->getFirstChild();
1630 +                        dvec=doubleNumberTuple(_t);
1631 +                        _t = _retTree;
1632 +                        _t = __t69;
1633 +                        _t = _t->getNextSibling();
1634 + #line 197 "MDTreeParser.g"
1635 +                        currBendStamp->overrideType("Polynomial", dvec);
1636 + #line 1637 "MDTreeParser.cpp"
1637 +                        break;
1638 +                }
1639 +                case COSINE:
1640 +                {
1641 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t70 = _t;
1642 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp53_AST_in = _t;
1643 +                        match(_t,COSINE);
1644 +                        _t = _t->getFirstChild();
1645 +                        dvec=doubleNumberTuple(_t);
1646 +                        _t = _retTree;
1647 +                        _t = __t70;
1648 +                        _t = _t->getNextSibling();
1649 + #line 198 "MDTreeParser.g"
1650 +                        currBendStamp->overrideType("Cosine", dvec);
1651 + #line 1652 "MDTreeParser.cpp"
1652 +                        break;
1653 +                }
1654                  default:
1655                  {
1656                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
# Line 1403 | Line 1667 | void MDTreeParser::torsionstatement(ANTLR_USE_NAMESPAC
1667  
1668   void MDTreeParser::torsionstatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1669          ANTLR_USE_NAMESPACE(antlr)RefAST torsionstatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1670 < #line 191 "MDTreeParser.g"
1670 > #line 211 "MDTreeParser.g"
1671          
1672          vector<int> ivec;
1673 +        vector<RealType> dvec;
1674          TorsionStamp* currTorsionStamp = static_cast<TorsionStamp*>(blockStack.top());
1675          
1676 < #line 1412 "MDTreeParser.cpp"
1676 > #line 1677 "MDTreeParser.cpp"
1677          
1678          try {      // for error handling
1679                  if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
# Line 1422 | Line 1687 | void MDTreeParser::torsionstatement(ANTLR_USE_NAMESPAC
1687                  }
1688                  case MEMBERS:
1689                  {
1690 <                        ANTLR_USE_NAMESPACE(antlr)RefAST __t62 = _t;
1691 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp40_AST_in = _t;
1690 >                        ANTLR_USE_NAMESPACE(antlr)RefAST __t76 = _t;
1691 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp54_AST_in = _t;
1692                          match(_t,MEMBERS);
1693                          _t = _t->getFirstChild();
1694                          ivec=inttuple(_t);
1695                          _t = _retTree;
1696 <                        _t = __t62;
1696 >                        _t = __t76;
1697                          _t = _t->getNextSibling();
1698 < #line 197 "MDTreeParser.g"
1698 > #line 218 "MDTreeParser.g"
1699                          currTorsionStamp->setMembers(ivec);
1700 < #line 1436 "MDTreeParser.cpp"
1700 > #line 1701 "MDTreeParser.cpp"
1701                          break;
1702                  }
1703 +                case GHOSTTORSION:
1704 +                {
1705 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t77 = _t;
1706 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp55_AST_in = _t;
1707 +                        match(_t,GHOSTTORSION);
1708 +                        _t = _t->getFirstChild();
1709 +                        dvec=doubleNumberTuple(_t);
1710 +                        _t = _retTree;
1711 +                        _t = __t77;
1712 +                        _t = _t->getNextSibling();
1713 + #line 219 "MDTreeParser.g"
1714 +                        currTorsionStamp->overrideType("GhostTorsion", dvec);
1715 + #line 1716 "MDTreeParser.cpp"
1716 +                        break;
1717 +                }
1718 +                case CUBIC:
1719 +                {
1720 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t78 = _t;
1721 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp56_AST_in = _t;
1722 +                        match(_t,CUBIC);
1723 +                        _t = _t->getFirstChild();
1724 +                        dvec=doubleNumberTuple(_t);
1725 +                        _t = _retTree;
1726 +                        _t = __t78;
1727 +                        _t = _t->getNextSibling();
1728 + #line 220 "MDTreeParser.g"
1729 +                        currTorsionStamp->overrideType("Cubic", dvec);
1730 + #line 1731 "MDTreeParser.cpp"
1731 +                        break;
1732 +                }
1733 +                case QUARTIC:
1734 +                {
1735 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t79 = _t;
1736 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp57_AST_in = _t;
1737 +                        match(_t,QUARTIC);
1738 +                        _t = _t->getFirstChild();
1739 +                        dvec=doubleNumberTuple(_t);
1740 +                        _t = _retTree;
1741 +                        _t = __t79;
1742 +                        _t = _t->getNextSibling();
1743 + #line 221 "MDTreeParser.g"
1744 +                        currTorsionStamp->overrideType("Quartic", dvec);
1745 + #line 1746 "MDTreeParser.cpp"
1746 +                        break;
1747 +                }
1748 +                case POLYNOMIAL:
1749 +                {
1750 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t80 = _t;
1751 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp58_AST_in = _t;
1752 +                        match(_t,POLYNOMIAL);
1753 +                        _t = _t->getFirstChild();
1754 +                        dvec=doubleNumberTuple(_t);
1755 +                        _t = _retTree;
1756 +                        _t = __t80;
1757 +                        _t = _t->getNextSibling();
1758 + #line 222 "MDTreeParser.g"
1759 +                        currTorsionStamp->overrideType("Polynomial", dvec);
1760 + #line 1761 "MDTreeParser.cpp"
1761 +                        break;
1762 +                }
1763 +                case CHARMM:
1764 +                {
1765 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t81 = _t;
1766 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp59_AST_in = _t;
1767 +                        match(_t,CHARMM);
1768 +                        _t = _t->getFirstChild();
1769 +                        dvec=doubleNumberTuple(_t);
1770 +                        _t = _retTree;
1771 +                        _t = __t81;
1772 +                        _t = _t->getNextSibling();
1773 + #line 223 "MDTreeParser.g"
1774 +                        currTorsionStamp->overrideType("Charmm", dvec);
1775 + #line 1776 "MDTreeParser.cpp"
1776 +                        break;
1777 +                }
1778 +                case OPLS:
1779 +                {
1780 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t82 = _t;
1781 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp60_AST_in = _t;
1782 +                        match(_t,OPLS);
1783 +                        _t = _t->getFirstChild();
1784 +                        dvec=doubleNumberTuple(_t);
1785 +                        _t = _retTree;
1786 +                        _t = __t82;
1787 +                        _t = _t->getNextSibling();
1788 + #line 224 "MDTreeParser.g"
1789 +                        currTorsionStamp->overrideType("Opls", dvec);
1790 + #line 1791 "MDTreeParser.cpp"
1791 +                        break;
1792 +                }
1793 +                case TRAPPE:
1794 +                {
1795 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t83 = _t;
1796 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp61_AST_in = _t;
1797 +                        match(_t,TRAPPE);
1798 +                        _t = _t->getFirstChild();
1799 +                        dvec=doubleNumberTuple(_t);
1800 +                        _t = _retTree;
1801 +                        _t = __t83;
1802 +                        _t = _t->getNextSibling();
1803 + #line 225 "MDTreeParser.g"
1804 +                        currTorsionStamp->overrideType("Trappe", dvec);
1805 + #line 1806 "MDTreeParser.cpp"
1806 +                        break;
1807 +                }
1808 +                case HARMONIC:
1809 +                {
1810 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t84 = _t;
1811 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp62_AST_in = _t;
1812 +                        match(_t,HARMONIC);
1813 +                        _t = _t->getFirstChild();
1814 +                        dvec=doubleNumberTuple(_t);
1815 +                        _t = _retTree;
1816 +                        _t = __t84;
1817 +                        _t = _t->getNextSibling();
1818 + #line 226 "MDTreeParser.g"
1819 +                        currTorsionStamp->overrideType("Harmonic", dvec);
1820 + #line 1821 "MDTreeParser.cpp"
1821 +                        break;
1822 +                }
1823                  default:
1824                  {
1825                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
# Line 1451 | Line 1836 | void MDTreeParser::inversionstatement(ANTLR_USE_NAMESP
1836  
1837   void MDTreeParser::inversionstatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1838          ANTLR_USE_NAMESPACE(antlr)RefAST inversionstatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1839 < #line 210 "MDTreeParser.g"
1839 > #line 240 "MDTreeParser.g"
1840          
1841          int icent;
1842          vector<int> ivec;
1843 +        vector<RealType> dvec;
1844          InversionStamp* currInversionStamp = static_cast<InversionStamp*>(blockStack.top());
1845          
1846 < #line 1461 "MDTreeParser.cpp"
1846 > #line 1847 "MDTreeParser.cpp"
1847          
1848          try {      // for error handling
1849                  if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
# Line 1471 | Line 1857 | void MDTreeParser::inversionstatement(ANTLR_USE_NAMESP
1857                  }
1858                  case CENTER:
1859                  {
1860 <                        ANTLR_USE_NAMESPACE(antlr)RefAST __t68 = _t;
1861 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp41_AST_in = _t;
1860 >                        ANTLR_USE_NAMESPACE(antlr)RefAST __t90 = _t;
1861 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp63_AST_in = _t;
1862                          match(_t,CENTER);
1863                          _t = _t->getFirstChild();
1864                          icent=intConst(_t);
1865                          _t = _retTree;
1866 <                        _t = __t68;
1866 >                        _t = __t90;
1867                          _t = _t->getNextSibling();
1868 < #line 217 "MDTreeParser.g"
1868 > #line 248 "MDTreeParser.g"
1869                          currInversionStamp->setCenter(icent);
1870 < #line 1485 "MDTreeParser.cpp"
1870 > #line 1871 "MDTreeParser.cpp"
1871                          break;
1872                  }
1873                  case SATELLITES:
1874                  {
1875 <                        ANTLR_USE_NAMESPACE(antlr)RefAST __t69 = _t;
1876 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp42_AST_in = _t;
1875 >                        ANTLR_USE_NAMESPACE(antlr)RefAST __t91 = _t;
1876 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp64_AST_in = _t;
1877                          match(_t,SATELLITES);
1878                          _t = _t->getFirstChild();
1879                          ivec=inttuple(_t);
1880                          _t = _retTree;
1881 <                        _t = __t69;
1881 >                        _t = __t91;
1882                          _t = _t->getNextSibling();
1883 < #line 218 "MDTreeParser.g"
1883 > #line 249 "MDTreeParser.g"
1884                          currInversionStamp->setSatellites(ivec);
1885 < #line 1500 "MDTreeParser.cpp"
1885 > #line 1886 "MDTreeParser.cpp"
1886                          break;
1887                  }
1888 +                case AMBERIMPROPER:
1889 +                {
1890 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t92 = _t;
1891 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp65_AST_in = _t;
1892 +                        match(_t,AMBERIMPROPER);
1893 +                        _t = _t->getFirstChild();
1894 +                        dvec=doubleNumberTuple(_t);
1895 +                        _t = _retTree;
1896 +                        _t = __t92;
1897 +                        _t = _t->getNextSibling();
1898 + #line 250 "MDTreeParser.g"
1899 +                        currInversionStamp->overrideType("AmberImproper", dvec);
1900 + #line 1901 "MDTreeParser.cpp"
1901 +                        break;
1902 +                }
1903 +                case IMPROPERCOSINE:
1904 +                {
1905 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t93 = _t;
1906 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp66_AST_in = _t;
1907 +                        match(_t,IMPROPERCOSINE);
1908 +                        _t = _t->getFirstChild();
1909 +                        dvec=doubleNumberTuple(_t);
1910 +                        _t = _retTree;
1911 +                        _t = __t93;
1912 +                        _t = _t->getNextSibling();
1913 + #line 251 "MDTreeParser.g"
1914 +                        currInversionStamp->overrideType("ImproperCosine", dvec);
1915 + #line 1916 "MDTreeParser.cpp"
1916 +                        break;
1917 +                }
1918 +                case HARMONIC:
1919 +                {
1920 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t94 = _t;
1921 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp67_AST_in = _t;
1922 +                        match(_t,HARMONIC);
1923 +                        _t = _t->getFirstChild();
1924 +                        dvec=doubleNumberTuple(_t);
1925 +                        _t = _retTree;
1926 +                        _t = __t94;
1927 +                        _t = _t->getNextSibling();
1928 + #line 252 "MDTreeParser.g"
1929 +                        currInversionStamp->overrideType("Harmonic", dvec);
1930 + #line 1931 "MDTreeParser.cpp"
1931 +                        break;
1932 +                }
1933 +                case CENTRALATOMHEIGHT:
1934 +                {
1935 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t95 = _t;
1936 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp68_AST_in = _t;
1937 +                        match(_t,CENTRALATOMHEIGHT);
1938 +                        _t = _t->getFirstChild();
1939 +                        dvec=doubleNumberTuple(_t);
1940 +                        _t = _retTree;
1941 +                        _t = __t95;
1942 +                        _t = _t->getNextSibling();
1943 + #line 253 "MDTreeParser.g"
1944 +                        currInversionStamp->overrideType("CentralAtomHeight", dvec);
1945 + #line 1946 "MDTreeParser.cpp"
1946 +                        break;
1947 +                }
1948 +                case DREIDING:
1949 +                {
1950 +                        ANTLR_USE_NAMESPACE(antlr)RefAST __t96 = _t;
1951 +                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp69_AST_in = _t;
1952 +                        match(_t,DREIDING);
1953 +                        _t = _t->getFirstChild();
1954 +                        dvec=doubleNumberTuple(_t);
1955 +                        _t = _retTree;
1956 +                        _t = __t96;
1957 +                        _t = _t->getNextSibling();
1958 + #line 254 "MDTreeParser.g"
1959 +                        currInversionStamp->overrideType("Dreiding", dvec);
1960 + #line 1961 "MDTreeParser.cpp"
1961 +                        break;
1962 +                }
1963                  default:
1964                  {
1965                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
# Line 1515 | Line 1976 | void MDTreeParser::rigidbodystatement(ANTLR_USE_NAMESP
1976  
1977   void MDTreeParser::rigidbodystatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1978          ANTLR_USE_NAMESPACE(antlr)RefAST rigidbodystatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1979 < #line 235 "MDTreeParser.g"
1979 > #line 272 "MDTreeParser.g"
1980          
1981          vector<int> ivec;
1982          RigidBodyStamp* currRigidBodyStamp = static_cast<RigidBodyStamp*>(blockStack.top());
1983          
1984 < #line 1524 "MDTreeParser.cpp"
1984 > #line 1985 "MDTreeParser.cpp"
1985          
1986          try {      // for error handling
1987                  if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
# Line 1534 | Line 1995 | void MDTreeParser::rigidbodystatement(ANTLR_USE_NAMESP
1995                  }
1996                  case MEMBERS:
1997                  {
1998 <                        ANTLR_USE_NAMESPACE(antlr)RefAST __t75 = _t;
1999 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp43_AST_in = _t;
1998 >                        ANTLR_USE_NAMESPACE(antlr)RefAST __t102 = _t;
1999 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp70_AST_in = _t;
2000                          match(_t,MEMBERS);
2001                          _t = _t->getFirstChild();
2002                          ivec=inttuple(_t);
2003                          _t = _retTree;
2004 <                        _t = __t75;
2004 >                        _t = __t102;
2005                          _t = _t->getNextSibling();
2006 < #line 241 "MDTreeParser.g"
2006 > #line 278 "MDTreeParser.g"
2007                          currRigidBodyStamp->setMembers(ivec);
2008 < #line 1548 "MDTreeParser.cpp"
2008 > #line 2009 "MDTreeParser.cpp"
2009                          break;
2010                  }
2011                  default:
# Line 1563 | Line 2024 | void MDTreeParser::cutoffgroupstatement(ANTLR_USE_NAME
2024  
2025   void MDTreeParser::cutoffgroupstatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
2026          ANTLR_USE_NAMESPACE(antlr)RefAST cutoffgroupstatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
2027 < #line 254 "MDTreeParser.g"
2027 > #line 291 "MDTreeParser.g"
2028          
2029          vector<int> ivec;
2030          CutoffGroupStamp* currCutoffGroupStamp = static_cast<CutoffGroupStamp*>(blockStack.top());
2031          
2032 < #line 1572 "MDTreeParser.cpp"
2032 > #line 2033 "MDTreeParser.cpp"
2033          
2034          try {      // for error handling
2035                  if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
# Line 1582 | Line 2043 | void MDTreeParser::cutoffgroupstatement(ANTLR_USE_NAME
2043                  }
2044                  case MEMBERS:
2045                  {
2046 <                        ANTLR_USE_NAMESPACE(antlr)RefAST __t81 = _t;
2047 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp44_AST_in = _t;
2046 >                        ANTLR_USE_NAMESPACE(antlr)RefAST __t108 = _t;
2047 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp71_AST_in = _t;
2048                          match(_t,MEMBERS);
2049                          _t = _t->getFirstChild();
2050                          ivec=inttuple(_t);
2051                          _t = _retTree;
2052 <                        _t = __t81;
2052 >                        _t = __t108;
2053                          _t = _t->getNextSibling();
2054 < #line 260 "MDTreeParser.g"
2054 > #line 297 "MDTreeParser.g"
2055                          currCutoffGroupStamp->setMembers(ivec);
2056 < #line 1596 "MDTreeParser.cpp"
2056 > #line 2057 "MDTreeParser.cpp"
2057                          break;
2058                  }
2059                  default:
# Line 1626 | Line 2087 | void MDTreeParser::constraintstatement(ANTLR_USE_NAMES
2087  
2088   void MDTreeParser::constraintstatement(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
2089          ANTLR_USE_NAMESPACE(antlr)RefAST constraintstatement_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
2090 < #line 286 "MDTreeParser.g"
2090 > #line 323 "MDTreeParser.g"
2091          
2092          vector<int> ivec;
2093          ConstraintStamp* currConstraintStamp = static_cast<ConstraintStamp*>(blockStack.top());
2094          
2095 < #line 1635 "MDTreeParser.cpp"
2095 > #line 2096 "MDTreeParser.cpp"
2096          
2097          try {      // for error handling
2098                  if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
# Line 1645 | Line 2106 | void MDTreeParser::constraintstatement(ANTLR_USE_NAMES
2106                  }
2107                  case MEMBERS:
2108                  {
2109 <                        ANTLR_USE_NAMESPACE(antlr)RefAST __t92 = _t;
2110 <                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp45_AST_in = _t;
2109 >                        ANTLR_USE_NAMESPACE(antlr)RefAST __t119 = _t;
2110 >                        ANTLR_USE_NAMESPACE(antlr)RefAST tmp72_AST_in = _t;
2111                          match(_t,MEMBERS);
2112                          _t = _t->getFirstChild();
2113                          ivec=inttuple(_t);
2114                          _t = _retTree;
2115 <                        _t = __t92;
2115 >                        _t = __t119;
2116                          _t = _t->getNextSibling();
2117 < #line 292 "MDTreeParser.g"
2117 > #line 329 "MDTreeParser.g"
2118                          currConstraintStamp->setMembers(ivec);
2119 < #line 1659 "MDTreeParser.cpp"
2119 > #line 2120 "MDTreeParser.cpp"
2120                          break;
2121                  }
2122                  default:
# Line 1672 | Line 2133 | void MDTreeParser::constraintstatement(ANTLR_USE_NAMES
2133          _retTree = _t;
2134   }
2135  
1675 RealType  MDTreeParser::doubleNumber(ANTLR_USE_NAMESPACE(antlr)RefAST _t) {
1676 #line 318 "MDTreeParser.g"
1677        RealType dval;
1678 #line 1679 "MDTreeParser.cpp"
1679        ANTLR_USE_NAMESPACE(antlr)RefAST doubleNumber_AST_in = (_t == ANTLR_USE_NAMESPACE(antlr)RefAST(ASTNULL)) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1680        ANTLR_USE_NAMESPACE(antlr)RefAST ic = ANTLR_USE_NAMESPACE(antlr)nullAST;
1681        ANTLR_USE_NAMESPACE(antlr)RefAST fc = ANTLR_USE_NAMESPACE(antlr)nullAST;
1682        
1683        try {      // for error handling
1684                if (_t == ANTLR_USE_NAMESPACE(antlr)nullAST )
1685                        _t = ASTNULL;
1686                switch ( _t->getType()) {
1687                case NUM_INT:
1688                case NUM_LONG:
1689                {
1690                        ic = (_t == ASTNULL) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1691                        intConst(_t);
1692                        _t = _retTree;
1693 #line 319 "MDTreeParser.g"
1694                        dval = lexi_cast<RealType>(ic->getText());
1695 #line 1696 "MDTreeParser.cpp"
1696                        break;
1697                }
1698                case NUM_FLOAT:
1699                case NUM_DOUBLE:
1700                {
1701                        fc = (_t == ASTNULL) ? ANTLR_USE_NAMESPACE(antlr)nullAST : _t;
1702                        floatConst(_t);
1703                        _t = _retTree;
1704 #line 320 "MDTreeParser.g"
1705                        dval = lexi_cast<RealType>(fc->getText());
1706 #line 1707 "MDTreeParser.cpp"
1707                        break;
1708                }
1709                default:
1710                {
1711                        throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(_t);
1712                }
1713                }
1714        }
1715        catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
1716                reportError(ex);
1717                if ( _t != ANTLR_USE_NAMESPACE(antlr)nullAST )
1718                        _t = _t->getNextSibling();
1719        }
1720        _retTree = _t;
1721        return dval;
1722 }
1723
2136   void MDTreeParser::initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& )
2137   {
2138   }
# Line 1751 | Line 2163 | const char* MDTreeParser::tokenNames[] = {
2163          "\"flucQ\"",
2164          "\"RNEMD\"",
2165          "\"minimizer\"",
2166 +        "\"Fixed\"",
2167 +        "\"Harmonic\"",
2168 +        "\"Cubic\"",
2169 +        "\"Quartic\"",
2170 +        "\"Polynomial\"",
2171 +        "\"Morse\"",
2172 +        "\"GhostBend\"",
2173 +        "\"UreyBradley\"",
2174 +        "\"Cosine\"",
2175 +        "\"GhostTorsion\"",
2176 +        "\"Charmm\"",
2177 +        "\"Opls\"",
2178 +        "\"Trappe\"",
2179 +        "\"AmberImproper\"",
2180 +        "\"ImproperCosine\"",
2181 +        "\"CentralAtomHeight\"",
2182 +        "\"Dreiding\"",
2183 +        "\"charge\"",
2184          "ENDBLOCK",
2185          "ID",
2186          "ASSIGNEQUAL",
# Line 1788 | Line 2218 | const char* MDTreeParser::tokenNames[] = {
2218          0
2219   };
2220  
2221 < const unsigned long MDTreeParser::_tokenSet_0_data_[] = { 327155952UL, 0UL, 0UL, 0UL };
2221 > const unsigned long MDTreeParser::_tokenSet_0_data_[] = { 58720496UL, 16384UL, 0UL, 0UL };
2222   // "component" "molecule" "zconstraint" "restraint" "flucQ" "RNEMD" "minimizer"
2223   // ASSIGNEQUAL
2224   const ANTLR_USE_NAMESPACE(antlr)BitSet MDTreeParser::_tokenSet_0(_tokenSet_0_data_,4);
2225 < const unsigned long MDTreeParser::_tokenSet_1_data_[] = { 268631808UL, 0UL, 0UL, 0UL };
2225 > const unsigned long MDTreeParser::_tokenSet_1_data_[] = { 196352UL, 16384UL, 0UL, 0UL };
2226   // "atom" "bond" "bend" "torsion" "inversion" "rigidBody" "cutoffGroup"
2227   // "constraint" "fragment" ASSIGNEQUAL
2228   const ANTLR_USE_NAMESPACE(antlr)BitSet MDTreeParser::_tokenSet_1(_tokenSet_1_data_,4);
2229 + const unsigned long MDTreeParser::_tokenSet_2_data_[] = { 6291456UL, 18432UL, 0UL, 0UL };
2230 + // "position" "orientation" "charge" ASSIGNEQUAL
2231 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDTreeParser::_tokenSet_2(_tokenSet_2_data_,4);
2232 + const unsigned long MDTreeParser::_tokenSet_3_data_[] = { 4228120576UL, 16384UL, 0UL, 0UL };
2233 + // "members" "Fixed" "Harmonic" "Cubic" "Quartic" "Polynomial" "Morse"
2234 + // ASSIGNEQUAL
2235 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDTreeParser::_tokenSet_3(_tokenSet_3_data_,4);
2236 + const unsigned long MDTreeParser::_tokenSet_4_data_[] = { 2013528064UL, 16391UL, 0UL, 0UL };
2237 + // "members" "Harmonic" "Cubic" "Quartic" "Polynomial" "GhostBend" "UreyBradley"
2238 + // "Cosine" ASSIGNEQUAL
2239 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDTreeParser::_tokenSet_4(_tokenSet_4_data_,4);
2240 + const unsigned long MDTreeParser::_tokenSet_5_data_[] = { 2013528064UL, 16504UL, 0UL, 0UL };
2241 + // "members" "Harmonic" "Cubic" "Quartic" "Polynomial" "GhostTorsion" "Charmm"
2242 + // "Opls" "Trappe" ASSIGNEQUAL
2243 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDTreeParser::_tokenSet_5(_tokenSet_5_data_,4);
2244 + const unsigned long MDTreeParser::_tokenSet_6_data_[] = { 135790592UL, 18304UL, 0UL, 0UL };
2245 + // "center" "satellites" "Harmonic" "AmberImproper" "ImproperCosine" "CentralAtomHeight"
2246 + // "Dreiding" ASSIGNEQUAL
2247 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDTreeParser::_tokenSet_6(_tokenSet_6_data_,4);
2248  
2249  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines