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

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

# Line 30 | Line 30 | void MDLexer::initLiterals()
30  
31   void MDLexer::initLiterals()
32   {
33 +        literals["Quartic"] = 29;
34 +        literals["UreyBradley"] = 33;
35 +        literals["Harmonic"] = 27;
36          literals["flucQ"] = 23;
37          literals["satellites"] = 20;
38 +        literals["Opls"] = 37;
39          literals["cutoffGroup"] = 14;
40          literals["RNEMD"] = 24;
41          literals["constraint"] = 15;
42 +        literals["Trappe"] = 38;
43          literals["distance"] = 16;
44 +        literals["Cosine"] = 34;
45          literals["rigidBody"] = 13;
46          literals["fragment"] = 17;
47 +        literals["charge"] = 43;
48          literals["zconstraint"] = 6;
49          literals["minimizer"] = 25;
50 +        literals["Cubic"] = 28;
51          literals["component"] = 4;
52 +        literals["GhostBend"] = 32;
53          literals["center"] = 19;
54          literals["members"] = 18;
55          literals["position"] = 21;
56 +        literals["Charmm"] = 36;
57 +        literals["AmberImproper"] = 39;
58 +        literals["Fixed"] = 26;
59 +        literals["Polynomial"] = 30;
60          literals["orientation"] = 22;
61          literals["bend"] = 10;
62          literals["torsion"] = 11;
63          literals["atom"] = 8;
64          literals["molecule"] = 5;
65 +        literals["CentralAtomHeight"] = 41;
66 +        literals["Morse"] = 31;
67          literals["restraint"] = 7;
68          literals["inversion"] = 12;
69          literals["bond"] = 9;
70 +        literals["GhostTorsion"] = 35;
71 +        literals["ImproperCosine"] = 40;
72 +        literals["Dreiding"] = 42;
73   }
74  
75   ANTLR_USE_NAMESPACE(antlr)RefToken MDLexer::nextToken()
# Line 482 | Line 500 | void MDLexer::mWhitespace(bool _createToken) {
500                  
501                  }
502                  if ( inputState->guessing==0 ) {
503 < #line 274 "MDParser.g"
503 > #line 321 "MDParser.g"
504                          newline();
505 < #line 488 "MDLexer.cpp"
505 > #line 506 "MDLexer.cpp"
506                  }
507                  break;
508          }
# Line 510 | Line 528 | void MDLexer::mWhitespace(bool _createToken) {
528                  
529                  }
530                  if ( inputState->guessing==0 ) {
531 < #line 279 "MDParser.g"
531 > #line 326 "MDParser.g"
532                          printf("CPP_parser.g continuation line detected\n");
533                          deferredNewline();
534 < #line 517 "MDLexer.cpp"
534 > #line 535 "MDLexer.cpp"
535                  }
536                  break;
537          }
# Line 524 | Line 542 | void MDLexer::mWhitespace(bool _createToken) {
542          }
543          }
544          if ( inputState->guessing==0 ) {
545 < #line 282 "MDParser.g"
545 > #line 329 "MDParser.g"
546                  _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP;
547 < #line 530 "MDLexer.cpp"
547 > #line 548 "MDLexer.cpp"
548          }
549          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
550             _token = makeToken(_ttype);
# Line 550 | Line 568 | void MDLexer::mComment(bool _createToken) {
568                  else if ((LA(1) == 0xa /* '\n' */  || LA(1) == 0xd /* '\r' */ )) {
569                          mEndOfLine(false);
570                          if ( inputState->guessing==0 ) {
571 < #line 289 "MDParser.g"
571 > #line 336 "MDParser.g"
572                                  deferredNewline();
573 < #line 556 "MDLexer.cpp"
573 > #line 574 "MDLexer.cpp"
574                          }
575                  }
576                  else if ((_tokenSet_0.member(LA(1)))) {
# Line 569 | Line 587 | void MDLexer::mComment(bool _createToken) {
587          } // ( ... )*
588          match("*/");
589          if ( inputState->guessing==0 ) {
590 < #line 292 "MDParser.g"
590 > #line 339 "MDParser.g"
591                  _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP;
592 < #line 575 "MDLexer.cpp"
592 > #line 593 "MDLexer.cpp"
593          }
594          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
595             _token = makeToken(_ttype);
# Line 631 | Line 649 | void MDLexer::mCPPComment(bool _createToken) {
649          } // ( ... )*
650          mEndOfLine(false);
651          if ( inputState->guessing==0 ) {
652 < #line 298 "MDParser.g"
652 > #line 345 "MDParser.g"
653                  _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP; newline();
654 < #line 637 "MDLexer.cpp"
654 > #line 655 "MDLexer.cpp"
655          }
656          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
657             _token = makeToken(_ttype);
# Line 651 | Line 669 | void MDLexer::mPREPROC_DIRECTIVE(bool _createToken) {
669          match('#' /* charlit */ );
670          mLineDirective(false);
671          if ( inputState->guessing==0 ) {
672 < #line 305 "MDParser.g"
672 > #line 352 "MDParser.g"
673                  _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP; newline();
674 < #line 657 "MDLexer.cpp"
674 > #line 675 "MDLexer.cpp"
675          }
676          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
677             _token = makeToken(_ttype);
# Line 671 | Line 689 | void MDLexer::mLineDirective(bool _createToken) {
689          ANTLR_USE_NAMESPACE(antlr)RefToken sl;
690          
691          if ( inputState->guessing==0 ) {
692 < #line 311 "MDParser.g"
692 > #line 358 "MDParser.g"
693                  
694                  deferredLineCount = 0;
695                  
696 < #line 679 "MDLexer.cpp"
696 > #line 697 "MDLexer.cpp"
697          }
698          {
699          switch ( LA(1)) {
# Line 713 | Line 731 | void MDLexer::mLineDirective(bool _createToken) {
731          mDecimal(true);
732          n=_returnToken;
733          if ( inputState->guessing==0 ) {
734 < #line 316 "MDParser.g"
734 > #line 363 "MDParser.g"
735                  setLine(OpenMD::lexi_cast<int>(n->getText()) - 1);
736 < #line 719 "MDLexer.cpp"
736 > #line 737 "MDLexer.cpp"
737          }
738          { // ( ... )+
739          int _cnt112=0;
# Line 736 | Line 754 | void MDLexer::mLineDirective(bool _createToken) {
754          sl=_returnToken;
755          }
756          if ( inputState->guessing==0 ) {
757 < #line 318 "MDParser.g"
757 > #line 365 "MDParser.g"
758                  std::string filename = sl->getText().substr(1,sl->getText().length()-2); observer->notify(filename);
759 < #line 742 "MDLexer.cpp"
759 > #line 760 "MDLexer.cpp"
760          }
761          { // ( ... )*
762          for (;;) {
# Line 866 | Line 884 | void MDLexer::mStringLiteral(bool _createToken) {
884                          
885                          }
886                          if ( inputState->guessing==0 ) {
887 < #line 358 "MDParser.g"
887 > #line 405 "MDParser.g"
888                                  deferredNewline();
889 < #line 872 "MDLexer.cpp"
889 > #line 890 "MDLexer.cpp"
890                          }
891                  }
892                  else if ((_tokenSet_3.member(LA(1)))) {
# Line 1344 | Line 1362 | void MDLexer::mNUM_INT(bool _createToken) {
1362          ANTLR_USE_NAMESPACE(antlr)RefToken f2;
1363          ANTLR_USE_NAMESPACE(antlr)RefToken f3;
1364          ANTLR_USE_NAMESPACE(antlr)RefToken f4;
1365 < #line 451 "MDParser.g"
1365 > #line 498 "MDParser.g"
1366          
1367                          bool isDecimal = false;
1368                          ANTLR_USE_NAMESPACE(antlr)RefToken t = ANTLR_USE_NAMESPACE(antlr)nullToken;
1369                  
1370 < #line 1353 "MDLexer.cpp"
1370 > #line 1371 "MDLexer.cpp"
1371          
1372          {
1373          switch ( LA(1)) {
# Line 1389 | Line 1407 | void MDLexer::mNUM_INT(bool _createToken) {
1407          {
1408                  match('.' /* charlit */ );
1409                  if ( inputState->guessing==0 ) {
1410 < #line 458 "MDParser.g"
1410 > #line 505 "MDParser.g"
1411                          _ttype = DOT;
1412 < #line 1395 "MDLexer.cpp"
1412 > #line 1413 "MDLexer.cpp"
1413                  }
1414                  {
1415                  if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
# Line 1422 | Line 1440 | void MDLexer::mNUM_INT(bool _createToken) {
1440                                  mFLOAT_SUFFIX(true);
1441                                  f1=_returnToken;
1442                                  if ( inputState->guessing==0 ) {
1443 < #line 459 "MDParser.g"
1443 > #line 506 "MDParser.g"
1444                                          t=f1;
1445 < #line 1428 "MDLexer.cpp"
1445 > #line 1446 "MDLexer.cpp"
1446                                  }
1447                          }
1448                          else {
# Line 1432 | Line 1450 | void MDLexer::mNUM_INT(bool _createToken) {
1450                          
1451                          }
1452                          if ( inputState->guessing==0 ) {
1453 < #line 460 "MDParser.g"
1453 > #line 507 "MDParser.g"
1454                                  
1455                                                                          if ( t &&
1456                                                                                    (t->getText().find('f') != ANTLR_USE_NAMESPACE(std)string::npos ||
# Line 1443 | Line 1461 | void MDLexer::mNUM_INT(bool _createToken) {
1461                                                                                  _ttype = NUM_DOUBLE; // assume double
1462                                                                          }
1463                                                                  
1464 < #line 1447 "MDLexer.cpp"
1464 > #line 1465 "MDLexer.cpp"
1465                          }
1466                  }
1467                  else {
# Line 1469 | Line 1487 | void MDLexer::mNUM_INT(bool _createToken) {
1487                  {
1488                          match('0' /* charlit */ );
1489                          if ( inputState->guessing==0 ) {
1490 < #line 472 "MDParser.g"
1490 > #line 519 "MDParser.g"
1491                                  isDecimal = true;
1492 < #line 1475 "MDLexer.cpp"
1492 > #line 1493 "MDLexer.cpp"
1493                          }
1494                          {
1495                          if ((LA(1) == 0x58 /* 'X' */  || LA(1) == 0x78 /* 'x' */ )) {
# Line 1617 | Line 1635 | void MDLexer::mNUM_INT(bool _createToken) {
1635                          _loop174:;
1636                          } // ( ... )*
1637                          if ( inputState->guessing==0 ) {
1638 < #line 489 "MDParser.g"
1638 > #line 536 "MDParser.g"
1639                                  isDecimal=true;
1640 < #line 1623 "MDLexer.cpp"
1640 > #line 1641 "MDLexer.cpp"
1641                          }
1642                          break;
1643                  }
# Line 1650 | Line 1668 | void MDLexer::mNUM_INT(bool _createToken) {
1668                          }
1669                          }
1670                          if ( inputState->guessing==0 ) {
1671 < #line 491 "MDParser.g"
1671 > #line 538 "MDParser.g"
1672                                  _ttype = NUM_LONG;
1673 < #line 1656 "MDLexer.cpp"
1673 > #line 1674 "MDLexer.cpp"
1674                          }
1675                  }
1676                  else if (((_tokenSet_10.member(LA(1))))&&(isDecimal)) {
# Line 1664 | Line 1682 | void MDLexer::mNUM_INT(bool _createToken) {
1682                                          mFLOAT_SUFFIX(true);
1683                                          f3=_returnToken;
1684                                          if ( inputState->guessing==0 ) {
1685 < #line 496 "MDParser.g"
1685 > #line 543 "MDParser.g"
1686                                                  t=f3;
1687 < #line 1670 "MDLexer.cpp"
1687 > #line 1688 "MDLexer.cpp"
1688                                          }
1689                                  }
1690                                  else {
# Line 1701 | Line 1719 | void MDLexer::mNUM_INT(bool _createToken) {
1719                                          mFLOAT_SUFFIX(true);
1720                                          f2=_returnToken;
1721                                          if ( inputState->guessing==0 ) {
1722 < #line 495 "MDParser.g"
1722 > #line 542 "MDParser.g"
1723                                                  t=f2;
1724 < #line 1707 "MDLexer.cpp"
1724 > #line 1725 "MDLexer.cpp"
1725                                          }
1726                                  }
1727                                  else {
# Line 1715 | Line 1733 | void MDLexer::mNUM_INT(bool _createToken) {
1733                                  mFLOAT_SUFFIX(true);
1734                                  f4=_returnToken;
1735                                  if ( inputState->guessing==0 ) {
1736 < #line 497 "MDParser.g"
1736 > #line 544 "MDParser.g"
1737                                          t=f4;
1738 < #line 1721 "MDLexer.cpp"
1738 > #line 1739 "MDLexer.cpp"
1739                                  }
1740                          }
1741                          else {
# Line 1726 | Line 1744 | void MDLexer::mNUM_INT(bool _createToken) {
1744                          
1745                          }
1746                          if ( inputState->guessing==0 ) {
1747 < #line 499 "MDParser.g"
1747 > #line 546 "MDParser.g"
1748                                  
1749                                                                          if ( t &&
1750                                                                                    (t->getText().find('f') != ANTLR_USE_NAMESPACE(std)string::npos ||
# Line 1737 | Line 1755 | void MDLexer::mNUM_INT(bool _createToken) {
1755                                                                                  _ttype = NUM_DOUBLE; // assume double
1756                                                                          }
1757                                                                  
1758 < #line 1741 "MDLexer.cpp"
1758 > #line 1759 "MDLexer.cpp"
1759                          }
1760                  }
1761                  else {
# Line 1889 | Line 1907 | const unsigned long MDLexer::_tokenSet_0_data_[] = { 4
1907   const unsigned long MDLexer::_tokenSet_0_data_[] = { 4294958079UL, 4294966271UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1908   // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12
1909   // 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f   !
1910 < // \" # $ % & \' ( ) + , - . / 0 1 2 3 4 5 6 7 8 9 : ;
1910 > // \" # $ % & \' ( ) + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C
1911 > // D E F G H I J K L M
1912   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_0(_tokenSet_0_data_,16);
1913   const unsigned long MDLexer::_tokenSet_1_data_[] = { 4294958079UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1914   // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12
1915   // 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f   !
1916 < // \" # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ;
1916 > // \" # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B
1917 > // C D E F G H I J K L M
1918   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_1(_tokenSet_1_data_,16);
1919   const unsigned long MDLexer::_tokenSet_2_data_[] = { 0UL, 2164195460UL, 268435456UL, 22298694UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1920 < // \" \' 0 1 2 3 4 5 6 7
1920 > // \" \' 0 1 2 3 4 5 6 7 ?
1921   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_2(_tokenSet_2_data_,10);
1922   const unsigned long MDLexer::_tokenSet_3_data_[] = { 4294958079UL, 4294967291UL, 4026531839UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1923   // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12
1924   // 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f   !
1925 < // # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ;
1925 > // # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D
1926 > // E F G H I J K L M
1927   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_3(_tokenSet_3_data_,16);
1928   const unsigned long MDLexer::_tokenSet_4_data_[] = { 0UL, 67043456UL, 126UL, 126UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1929 < // \' 0 1 2 3 4 5 6 7 8 9
1929 > // \' 0 1 2 3 4 5 6 7 8 9 A B C D E F
1930   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_4(_tokenSet_4_data_,10);
1931   const unsigned long MDLexer::_tokenSet_5_data_[] = { 4294967295UL, 4294967167UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1932   // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10
1933   // 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e
1934 < // 0x1f   ! \" # $ % & ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ;
1934 > // 0x1f   ! \" # $ % & ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
1935 > // @ A B C D E F G H I J K L M
1936   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_5(_tokenSet_5_data_,16);
1937   const unsigned long MDLexer::_tokenSet_6_data_[] = { 0UL, 0UL, 48UL, 48UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1938 + // D E
1939   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_6(_tokenSet_6_data_,10);
1940   const unsigned long MDLexer::_tokenSet_7_data_[] = { 0UL, 67053568UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1941   // + - 0 1 2 3 4 5 6 7 8 9
1942   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_7(_tokenSet_7_data_,10);
1943   const unsigned long MDLexer::_tokenSet_8_data_[] = { 0UL, 0UL, 80UL, 80UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1944 + // D F
1945   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_8(_tokenSet_8_data_,10);
1946   const unsigned long MDLexer::_tokenSet_9_data_[] = { 0UL, 67043328UL, 126UL, 126UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1947 < // 0 1 2 3 4 5 6 7 8 9
1947 > // 0 1 2 3 4 5 6 7 8 9 A B C D E F
1948   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_9(_tokenSet_9_data_,10);
1949   const unsigned long MDLexer::_tokenSet_10_data_[] = { 0UL, 16384UL, 112UL, 112UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1950 < // .
1950 > // . D E F
1951   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_10(_tokenSet_10_data_,10);
1952  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines