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

Comparing:
trunk/src/mdParser/MDLexer.cpp (file contents), Revision 770 by tim, Fri Dec 2 15:38:03 2005 UTC vs.
branches/development/src/mdParser/MDLexer.cpp (file contents), Revision 1731 by gezelter, Thu May 31 12:25:30 2012 UTC

# Line 1 | Line 1
1 < /* $ANTLR 2.7.5 (20050406): "MDParser.g" -> "MDLexer.cpp"$ */
1 > /* $ANTLR 2.7.7 (20110725): "MDParser.g" -> "MDLexer.cpp"$ */
2   #include "MDLexer.hpp"
3   #include <antlr/CharBuffer.hpp>
4   #include <antlr/TokenStreamException.hpp>
# Line 30 | Line 30 | void MDLexer::initLiterals()
30  
31   void MDLexer::initLiterals()
32   {
33 <        literals["members"] = 14;
34 <        literals["position"] = 15;
35 <        literals["torsion"] = 10;
33 >        literals["members"] = 16;
34 >        literals["position"] = 18;
35 >        literals["torsion"] = 11;
36          literals["component"] = 4;
37 <        literals["rigidBody"] = 11;
37 >        literals["restraint"] = 7;
38 >        literals["rigidBody"] = 13;
39 >        literals["center"] = 17;
40 >        literals["inversion"] = 12;
41          literals["zconstraint"] = 6;
42 <        literals["cutoffGroup"] = 12;
43 <        literals["bend"] = 9;
44 <        literals["orientation"] = 16;
45 <        literals["fragment"] = 13;
46 <        literals["bond"] = 8;
42 >        literals["cutoffGroup"] = 14;
43 >        literals["bend"] = 10;
44 >        literals["orientation"] = 19;
45 >        literals["fragment"] = 15;
46 >        literals["bond"] = 9;
47          literals["molecule"] = 5;
48 <        literals["atom"] = 7;
48 >        literals["atom"] = 8;
49 >        literals["RNEMD"] = 21;
50 >        literals["flucQ"] = 20;
51   }
52  
53   ANTLR_USE_NAMESPACE(antlr)RefToken MDLexer::nextToken()
# Line 120 | Line 125 | ANTLR_USE_NAMESPACE(antlr)RefToken MDLexer::nextToken(
125                                  theRetToken=_returnToken;
126                                  break;
127                          }
123                        case 0x2b /* '+' */ :
124                        {
125                                mPLUS(true);
126                                theRetToken=_returnToken;
127                                break;
128                        }
129                        case 0x2d /* '-' */ :
130                        {
131                                mMINUS(true);
132                                theRetToken=_returnToken;
133                                break;
134                        }
128                          case 0x9 /* '\t' */ :
129                          case 0xa /* '\n' */ :
130                          case 0xc /* '\14' */ :
# Line 161 | Line 154 | ANTLR_USE_NAMESPACE(antlr)RefToken MDLexer::nextToken(
154                                  theRetToken=_returnToken;
155                                  break;
156                          }
164                        case 0x2e /* '.' */ :
165                        case 0x30 /* '0' */ :
166                        case 0x31 /* '1' */ :
167                        case 0x32 /* '2' */ :
168                        case 0x33 /* '3' */ :
169                        case 0x34 /* '4' */ :
170                        case 0x35 /* '5' */ :
171                        case 0x36 /* '6' */ :
172                        case 0x37 /* '7' */ :
173                        case 0x38 /* '8' */ :
174                        case 0x39 /* '9' */ :
175                        {
176                                mNumber(true);
177                                theRetToken=_returnToken;
178                                break;
179                        }
157                          case 0x41 /* 'A' */ :
158                          case 0x42 /* 'B' */ :
159                          case 0x43 /* 'C' */ :
# Line 235 | Line 212 | ANTLR_USE_NAMESPACE(antlr)RefToken MDLexer::nextToken(
212                                  theRetToken=_returnToken;
213                                  break;
214                          }
215 +                        case 0x2b /* '+' */ :
216 +                        case 0x2d /* '-' */ :
217 +                        case 0x2e /* '.' */ :
218 +                        case 0x30 /* '0' */ :
219 +                        case 0x31 /* '1' */ :
220 +                        case 0x32 /* '2' */ :
221 +                        case 0x33 /* '3' */ :
222 +                        case 0x34 /* '4' */ :
223 +                        case 0x35 /* '5' */ :
224 +                        case 0x36 /* '6' */ :
225 +                        case 0x37 /* '7' */ :
226 +                        case 0x38 /* '8' */ :
227 +                        case 0x39 /* '9' */ :
228 +                        {
229 +                                mNUM_INT(true);
230 +                                theRetToken=_returnToken;
231 +                                break;
232 +                        }
233                          default:
234                                  if ((LA(1) == 0x2f /* '/' */ ) && (LA(2) == 0x2a /* '*' */ )) {
235                                          mComment(true);
# Line 427 | Line 422 | void MDLexer::mRCURLY(bool _createToken) {
422          _saveIndex=0;
423   }
424  
430 void MDLexer::mPLUS(bool _createToken) {
431        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
432        _ttype = PLUS;
433        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
434        
435        match('+' /* charlit */ );
436        if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
437           _token = makeToken(_ttype);
438           _token->setText(text.substr(_begin, text.length()-_begin));
439        }
440        _returnToken = _token;
441        _saveIndex=0;
442 }
443
444 void MDLexer::mMINUS(bool _createToken) {
445        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
446        _ttype = MINUS;
447        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
448        
449        match('-' /* charlit */ );
450        if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
451           _token = makeToken(_ttype);
452           _token->setText(text.substr(_begin, text.length()-_begin));
453        }
454        _returnToken = _token;
455        _saveIndex=0;
456 }
457
425   void MDLexer::mWhitespace(bool _createToken) {
426          int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
427          _ttype = Whitespace;
# Line 511 | Line 478 | void MDLexer::mWhitespace(bool _createToken) {
478                  
479                  }
480                  if ( inputState->guessing==0 ) {
481 < #line 262 "MDParser.g"
481 > #line 243 "MDParser.g"
482                          newline();
483 < #line 517 "MDLexer.cpp"
483 > #line 484 "MDLexer.cpp"
484                  }
485                  break;
486          }
# Line 539 | Line 506 | void MDLexer::mWhitespace(bool _createToken) {
506                  
507                  }
508                  if ( inputState->guessing==0 ) {
509 < #line 267 "MDParser.g"
509 > #line 248 "MDParser.g"
510                          printf("CPP_parser.g continuation line detected\n");
511                          deferredNewline();
512 < #line 546 "MDLexer.cpp"
512 > #line 513 "MDLexer.cpp"
513                  }
514                  break;
515          }
# Line 553 | Line 520 | void MDLexer::mWhitespace(bool _createToken) {
520          }
521          }
522          if ( inputState->guessing==0 ) {
523 < #line 270 "MDParser.g"
523 > #line 251 "MDParser.g"
524                  _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP;
525 < #line 559 "MDLexer.cpp"
525 > #line 526 "MDLexer.cpp"
526          }
527          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
528             _token = makeToken(_ttype);
# Line 579 | Line 546 | void MDLexer::mComment(bool _createToken) {
546                  else if ((LA(1) == 0xa /* '\n' */  || LA(1) == 0xd /* '\r' */ )) {
547                          mEndOfLine(false);
548                          if ( inputState->guessing==0 ) {
549 < #line 277 "MDParser.g"
549 > #line 258 "MDParser.g"
550                                  deferredNewline();
551 < #line 585 "MDLexer.cpp"
551 > #line 552 "MDLexer.cpp"
552                          }
553                  }
554                  else if ((_tokenSet_0.member(LA(1)))) {
# Line 590 | Line 557 | void MDLexer::mComment(bool _createToken) {
557                          }
558                  }
559                  else {
560 <                        goto _loop81;
560 >                        goto _loop92;
561                  }
562                  
563          }
564 <        _loop81:;
564 >        _loop92:;
565          } // ( ... )*
566          match("*/");
567          if ( inputState->guessing==0 ) {
568 < #line 280 "MDParser.g"
568 > #line 261 "MDParser.g"
569                  _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP;
570 < #line 604 "MDLexer.cpp"
570 > #line 571 "MDLexer.cpp"
571          }
572          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
573             _token = makeToken(_ttype);
# Line 652 | Line 619 | void MDLexer::mCPPComment(bool _createToken) {
619                          }
620                  }
621                  else {
622 <                        goto _loop85;
622 >                        goto _loop96;
623                  }
624                  
625          }
626 <        _loop85:;
626 >        _loop96:;
627          } // ( ... )*
628          mEndOfLine(false);
629          if ( inputState->guessing==0 ) {
630 < #line 286 "MDParser.g"
630 > #line 267 "MDParser.g"
631                  _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP; newline();
632 < #line 666 "MDLexer.cpp"
632 > #line 633 "MDLexer.cpp"
633          }
634          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
635             _token = makeToken(_ttype);
# Line 680 | Line 647 | void MDLexer::mPREPROC_DIRECTIVE(bool _createToken) {
647          match('#' /* charlit */ );
648          mLineDirective(false);
649          if ( inputState->guessing==0 ) {
650 < #line 293 "MDParser.g"
650 > #line 274 "MDParser.g"
651                  _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP; newline();
652 < #line 686 "MDLexer.cpp"
652 > #line 653 "MDLexer.cpp"
653          }
654          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
655             _token = makeToken(_ttype);
# Line 700 | Line 667 | void MDLexer::mLineDirective(bool _createToken) {
667          ANTLR_USE_NAMESPACE(antlr)RefToken sl;
668          
669          if ( inputState->guessing==0 ) {
670 < #line 299 "MDParser.g"
670 > #line 280 "MDParser.g"
671                  
672                  deferredLineCount = 0;
673                  
674 < #line 708 "MDLexer.cpp"
674 > #line 675 "MDLexer.cpp"
675          }
676          {
677          switch ( LA(1)) {
# Line 726 | Line 693 | void MDLexer::mLineDirective(bool _createToken) {
693          }
694          }
695          { // ( ... )+
696 <        int _cnt90=0;
696 >        int _cnt101=0;
697          for (;;) {
698                  if ((LA(1) == 0x9 /* '\t' */  || LA(1) == 0xc /* '\14' */  || LA(1) == 0x20 /* ' ' */ )) {
699                          mSpace(false);
700                  }
701                  else {
702 <                        if ( _cnt90>=1 ) { goto _loop90; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
702 >                        if ( _cnt101>=1 ) { goto _loop101; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
703                  }
704                  
705 <                _cnt90++;
705 >                _cnt101++;
706          }
707 <        _loop90:;
707 >        _loop101:;
708          }  // ( ... )+
709          mDecimal(true);
710          n=_returnToken;
711          if ( inputState->guessing==0 ) {
712 < #line 304 "MDParser.g"
713 <                setLine(oopse::lexi_cast<int>(n->getText()) - 1);
714 < #line 748 "MDLexer.cpp"
712 > #line 285 "MDParser.g"
713 >                setLine(OpenMD::lexi_cast<int>(n->getText()) - 1);
714 > #line 715 "MDLexer.cpp"
715          }
716          { // ( ... )+
717 <        int _cnt92=0;
717 >        int _cnt103=0;
718          for (;;) {
719                  if ((LA(1) == 0x9 /* '\t' */  || LA(1) == 0xc /* '\14' */  || LA(1) == 0x20 /* ' ' */ )) {
720                          mSpace(false);
721                  }
722                  else {
723 <                        if ( _cnt92>=1 ) { goto _loop92; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
723 >                        if ( _cnt103>=1 ) { goto _loop103; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
724                  }
725                  
726 <                _cnt92++;
726 >                _cnt103++;
727          }
728 <        _loop92:;
728 >        _loop103:;
729          }  // ( ... )+
730          {
731          mStringLiteral(true);
732          sl=_returnToken;
733          }
734          if ( inputState->guessing==0 ) {
735 < #line 306 "MDParser.g"
735 > #line 287 "MDParser.g"
736                  std::string filename = sl->getText().substr(1,sl->getText().length()-2); observer->notify(filename);
737 < #line 771 "MDLexer.cpp"
737 > #line 738 "MDLexer.cpp"
738          }
739          { // ( ... )*
740          for (;;) {
741                  if ((LA(1) == 0x9 /* '\t' */  || LA(1) == 0xc /* '\14' */  || LA(1) == 0x20 /* ' ' */ )) {
742                          { // ( ... )+
743 <                        int _cnt96=0;
743 >                        int _cnt107=0;
744                          for (;;) {
745                                  if ((LA(1) == 0x9 /* '\t' */  || LA(1) == 0xc /* '\14' */  || LA(1) == 0x20 /* ' ' */ )) {
746                                          mSpace(false);
747                                  }
748                                  else {
749 <                                        if ( _cnt96>=1 ) { goto _loop96; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
749 >                                        if ( _cnt107>=1 ) { goto _loop107; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
750                                  }
751                                  
752 <                                _cnt96++;
752 >                                _cnt107++;
753                          }
754 <                        _loop96:;
754 >                        _loop107:;
755                          }  // ( ... )+
756                          mDecimal(false);
757                  }
758                  else {
759 <                        goto _loop97;
759 >                        goto _loop108;
760                  }
761                  
762          }
763 <        _loop97:;
763 >        _loop108:;
764          } // ( ... )*
765          mEndOfLine(false);
766          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
# Line 846 | Line 813 | void MDLexer::mDecimal(bool _createToken) {
813          ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
814          
815          { // ( ... )+
816 <        int _cnt122=0;
816 >        int _cnt138=0;
817          for (;;) {
818                  if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
819                          matchRange('0','9');
820                  }
821                  else {
822 <                        if ( _cnt122>=1 ) { goto _loop122; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
822 >                        if ( _cnt138>=1 ) { goto _loop138; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
823                  }
824                  
825 <                _cnt122++;
825 >                _cnt138++;
826          }
827 <        _loop122:;
827 >        _loop138:;
828          }  // ( ... )+
829          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
830             _token = makeToken(_ttype);
# Line 895 | Line 862 | void MDLexer::mStringLiteral(bool _createToken) {
862                          
863                          }
864                          if ( inputState->guessing==0 ) {
865 < #line 346 "MDParser.g"
865 > #line 327 "MDParser.g"
866                                  deferredNewline();
867 < #line 901 "MDLexer.cpp"
867 > #line 868 "MDLexer.cpp"
868                          }
869                  }
870                  else if ((_tokenSet_3.member(LA(1)))) {
# Line 906 | Line 873 | void MDLexer::mStringLiteral(bool _createToken) {
873                          }
874                  }
875                  else {
876 <                        goto _loop107;
876 >                        goto _loop118;
877                  }
878                  
879          }
880 <        _loop107:;
880 >        _loop118:;
881          } // ( ... )*
882          match('\"' /* charlit */ );
883          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
# Line 1070 | Line 1037 | void MDLexer::mEscape(bool _createToken) {
1037          {
1038                  match('x' /* charlit */ );
1039                  { // ( ... )+
1040 <                int _cnt118=0;
1040 >                int _cnt129=0;
1041                  for (;;) {
1042                          if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ )) && (_tokenSet_1.member(LA(2))) && (true)) {
1043                                  mDigit(false);
# Line 1082 | Line 1049 | void MDLexer::mEscape(bool _createToken) {
1049                                  matchRange('A','F');
1050                          }
1051                          else {
1052 <                                if ( _cnt118>=1 ) { goto _loop118; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1052 >                                if ( _cnt129>=1 ) { goto _loop129; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1053                          }
1054                          
1055 <                        _cnt118++;
1055 >                        _cnt129++;
1056                  }
1057 <                _loop118:;
1057 >                _loop129:;
1058                  }  // ( ... )+
1059                  break;
1060          }
# Line 1119 | Line 1086 | void MDLexer::mDigit(bool _createToken) {
1086          _saveIndex=0;
1087   }
1088  
1089 < void MDLexer::mLongSuffix(bool _createToken) {
1089 > void MDLexer::mVocabulary(bool _createToken) {
1090          int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
1091 <        _ttype = LongSuffix;
1091 >        _ttype = Vocabulary;
1092          ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
1093          
1094 <        switch ( LA(1)) {
1128 <        case 0x6c /* 'l' */ :
1129 <        {
1130 <                match('l' /* charlit */ );
1131 <                break;
1132 <        }
1133 <        case 0x4c /* 'L' */ :
1134 <        {
1135 <                match('L' /* charlit */ );
1136 <                break;
1137 <        }
1138 <        default:
1139 <        {
1140 <                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1141 <        }
1142 <        }
1094 >        matchRange('\3',static_cast<unsigned char>('\377'));
1095          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
1096             _token = makeToken(_ttype);
1097             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 1148 | Line 1100 | void MDLexer::mLongSuffix(bool _createToken) {
1100          _saveIndex=0;
1101   }
1102  
1103 < void MDLexer::mUnsignedSuffix(bool _createToken) {
1103 > void MDLexer::mID(bool _createToken) {
1104          int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
1105 <        _ttype = UnsignedSuffix;
1105 >        _ttype = ID;
1106          ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
1107          
1108 +        {
1109          switch ( LA(1)) {
1110 +        case 0x61 /* 'a' */ :
1111 +        case 0x62 /* 'b' */ :
1112 +        case 0x63 /* 'c' */ :
1113 +        case 0x64 /* 'd' */ :
1114 +        case 0x65 /* 'e' */ :
1115 +        case 0x66 /* 'f' */ :
1116 +        case 0x67 /* 'g' */ :
1117 +        case 0x68 /* 'h' */ :
1118 +        case 0x69 /* 'i' */ :
1119 +        case 0x6a /* 'j' */ :
1120 +        case 0x6b /* 'k' */ :
1121 +        case 0x6c /* 'l' */ :
1122 +        case 0x6d /* 'm' */ :
1123 +        case 0x6e /* 'n' */ :
1124 +        case 0x6f /* 'o' */ :
1125 +        case 0x70 /* 'p' */ :
1126 +        case 0x71 /* 'q' */ :
1127 +        case 0x72 /* 'r' */ :
1128 +        case 0x73 /* 's' */ :
1129 +        case 0x74 /* 't' */ :
1130          case 0x75 /* 'u' */ :
1131 +        case 0x76 /* 'v' */ :
1132 +        case 0x77 /* 'w' */ :
1133 +        case 0x78 /* 'x' */ :
1134 +        case 0x79 /* 'y' */ :
1135 +        case 0x7a /* 'z' */ :
1136          {
1137 <                match('u' /* charlit */ );
1137 >                matchRange('a','z');
1138                  break;
1139          }
1140 +        case 0x41 /* 'A' */ :
1141 +        case 0x42 /* 'B' */ :
1142 +        case 0x43 /* 'C' */ :
1143 +        case 0x44 /* 'D' */ :
1144 +        case 0x45 /* 'E' */ :
1145 +        case 0x46 /* 'F' */ :
1146 +        case 0x47 /* 'G' */ :
1147 +        case 0x48 /* 'H' */ :
1148 +        case 0x49 /* 'I' */ :
1149 +        case 0x4a /* 'J' */ :
1150 +        case 0x4b /* 'K' */ :
1151 +        case 0x4c /* 'L' */ :
1152 +        case 0x4d /* 'M' */ :
1153 +        case 0x4e /* 'N' */ :
1154 +        case 0x4f /* 'O' */ :
1155 +        case 0x50 /* 'P' */ :
1156 +        case 0x51 /* 'Q' */ :
1157 +        case 0x52 /* 'R' */ :
1158 +        case 0x53 /* 'S' */ :
1159 +        case 0x54 /* 'T' */ :
1160          case 0x55 /* 'U' */ :
1161 +        case 0x56 /* 'V' */ :
1162 +        case 0x57 /* 'W' */ :
1163 +        case 0x58 /* 'X' */ :
1164 +        case 0x59 /* 'Y' */ :
1165 +        case 0x5a /* 'Z' */ :
1166          {
1167 <                match('U' /* charlit */ );
1167 >                matchRange('A','Z');
1168                  break;
1169          }
1170 <        default:
1170 >        case 0x5f /* '_' */ :
1171          {
1172 <                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1170 <        }
1171 <        }
1172 <        if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
1173 <           _token = makeToken(_ttype);
1174 <           _token->setText(text.substr(_begin, text.length()-_begin));
1175 <        }
1176 <        _returnToken = _token;
1177 <        _saveIndex=0;
1178 < }
1179 <
1180 < void MDLexer::mFloatSuffix(bool _createToken) {
1181 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
1182 <        _ttype = FloatSuffix;
1183 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
1184 <        
1185 <        switch ( LA(1)) {
1186 <        case 0x66 /* 'f' */ :
1187 <        {
1188 <                match('f' /* charlit */ );
1172 >                match('_' /* charlit */ );
1173                  break;
1174          }
1191        case 0x46 /* 'F' */ :
1192        {
1193                match('F' /* charlit */ );
1194                break;
1195        }
1175          default:
1176          {
1177                  throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1178          }
1179 +        }
1180 +        }
1181 +        { // ( ... )*
1182 +        for (;;) {
1183 +                switch ( LA(1)) {
1184 +                case 0x61 /* 'a' */ :
1185 +                case 0x62 /* 'b' */ :
1186 +                case 0x63 /* 'c' */ :
1187 +                case 0x64 /* 'd' */ :
1188 +                case 0x65 /* 'e' */ :
1189 +                case 0x66 /* 'f' */ :
1190 +                case 0x67 /* 'g' */ :
1191 +                case 0x68 /* 'h' */ :
1192 +                case 0x69 /* 'i' */ :
1193 +                case 0x6a /* 'j' */ :
1194 +                case 0x6b /* 'k' */ :
1195 +                case 0x6c /* 'l' */ :
1196 +                case 0x6d /* 'm' */ :
1197 +                case 0x6e /* 'n' */ :
1198 +                case 0x6f /* 'o' */ :
1199 +                case 0x70 /* 'p' */ :
1200 +                case 0x71 /* 'q' */ :
1201 +                case 0x72 /* 'r' */ :
1202 +                case 0x73 /* 's' */ :
1203 +                case 0x74 /* 't' */ :
1204 +                case 0x75 /* 'u' */ :
1205 +                case 0x76 /* 'v' */ :
1206 +                case 0x77 /* 'w' */ :
1207 +                case 0x78 /* 'x' */ :
1208 +                case 0x79 /* 'y' */ :
1209 +                case 0x7a /* 'z' */ :
1210 +                {
1211 +                        matchRange('a','z');
1212 +                        break;
1213 +                }
1214 +                case 0x41 /* 'A' */ :
1215 +                case 0x42 /* 'B' */ :
1216 +                case 0x43 /* 'C' */ :
1217 +                case 0x44 /* 'D' */ :
1218 +                case 0x45 /* 'E' */ :
1219 +                case 0x46 /* 'F' */ :
1220 +                case 0x47 /* 'G' */ :
1221 +                case 0x48 /* 'H' */ :
1222 +                case 0x49 /* 'I' */ :
1223 +                case 0x4a /* 'J' */ :
1224 +                case 0x4b /* 'K' */ :
1225 +                case 0x4c /* 'L' */ :
1226 +                case 0x4d /* 'M' */ :
1227 +                case 0x4e /* 'N' */ :
1228 +                case 0x4f /* 'O' */ :
1229 +                case 0x50 /* 'P' */ :
1230 +                case 0x51 /* 'Q' */ :
1231 +                case 0x52 /* 'R' */ :
1232 +                case 0x53 /* 'S' */ :
1233 +                case 0x54 /* 'T' */ :
1234 +                case 0x55 /* 'U' */ :
1235 +                case 0x56 /* 'V' */ :
1236 +                case 0x57 /* 'W' */ :
1237 +                case 0x58 /* 'X' */ :
1238 +                case 0x59 /* 'Y' */ :
1239 +                case 0x5a /* 'Z' */ :
1240 +                {
1241 +                        matchRange('A','Z');
1242 +                        break;
1243 +                }
1244 +                case 0x5f /* '_' */ :
1245 +                {
1246 +                        match('_' /* charlit */ );
1247 +                        break;
1248 +                }
1249 +                case 0x30 /* '0' */ :
1250 +                case 0x31 /* '1' */ :
1251 +                case 0x32 /* '2' */ :
1252 +                case 0x33 /* '3' */ :
1253 +                case 0x34 /* '4' */ :
1254 +                case 0x35 /* '5' */ :
1255 +                case 0x36 /* '6' */ :
1256 +                case 0x37 /* '7' */ :
1257 +                case 0x38 /* '8' */ :
1258 +                case 0x39 /* '9' */ :
1259 +                {
1260 +                        matchRange('0','9');
1261 +                        break;
1262 +                }
1263 +                default:
1264 +                {
1265 +                        goto _loop134;
1266 +                }
1267 +                }
1268          }
1269 +        _loop134:;
1270 +        } // ( ... )*
1271 +        _ttype = testLiteralsTable(_ttype);
1272          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
1273             _token = makeToken(_ttype);
1274             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 1206 | Line 1277 | void MDLexer::mFloatSuffix(bool _createToken) {
1277          _saveIndex=0;
1278   }
1279  
1280 < void MDLexer::mExponent(bool _createToken) {
1280 > void MDLexer::mHEX_DIGIT(bool _createToken) {
1281          int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
1282 <        _ttype = Exponent;
1282 >        _ttype = HEX_DIGIT;
1283          ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
1284          
1285          {
1286          switch ( LA(1)) {
1287 <        case 0x65 /* 'e' */ :
1287 >        case 0x30 /* '0' */ :
1288 >        case 0x31 /* '1' */ :
1289 >        case 0x32 /* '2' */ :
1290 >        case 0x33 /* '3' */ :
1291 >        case 0x34 /* '4' */ :
1292 >        case 0x35 /* '5' */ :
1293 >        case 0x36 /* '6' */ :
1294 >        case 0x37 /* '7' */ :
1295 >        case 0x38 /* '8' */ :
1296 >        case 0x39 /* '9' */ :
1297          {
1298 <                match('e' /* charlit */ );
1298 >                matchRange('0','9');
1299                  break;
1300          }
1301 +        case 0x41 /* 'A' */ :
1302 +        case 0x42 /* 'B' */ :
1303 +        case 0x43 /* 'C' */ :
1304 +        case 0x44 /* 'D' */ :
1305          case 0x45 /* 'E' */ :
1306 +        case 0x46 /* 'F' */ :
1307          {
1308 <                match('E' /* charlit */ );
1308 >                matchRange('A','F');
1309                  break;
1310          }
1311 +        case 0x61 /* 'a' */ :
1312 +        case 0x62 /* 'b' */ :
1313 +        case 0x63 /* 'c' */ :
1314          case 0x64 /* 'd' */ :
1315 +        case 0x65 /* 'e' */ :
1316 +        case 0x66 /* 'f' */ :
1317          {
1318 <                match('d' /* charlit */ );
1318 >                matchRange('a','f');
1319                  break;
1320          }
1231        case 0x44 /* 'D' */ :
1232        {
1233                match('D' /* charlit */ );
1234                break;
1235        }
1321          default:
1322          {
1323                  throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1324          }
1325          }
1326          }
1327 +        if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
1328 +           _token = makeToken(_ttype);
1329 +           _token->setText(text.substr(_begin, text.length()-_begin));
1330 +        }
1331 +        _returnToken = _token;
1332 +        _saveIndex=0;
1333 + }
1334 +
1335 + void MDLexer::mNUM_INT(bool _createToken) {
1336 +        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
1337 +        _ttype = NUM_INT;
1338 +        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
1339 +        ANTLR_USE_NAMESPACE(antlr)RefToken f1;
1340 +        ANTLR_USE_NAMESPACE(antlr)RefToken f2;
1341 +        ANTLR_USE_NAMESPACE(antlr)RefToken f3;
1342 +        ANTLR_USE_NAMESPACE(antlr)RefToken f4;
1343 + #line 420 "MDParser.g"
1344 +        
1345 +                        bool isDecimal = false;
1346 +                        ANTLR_USE_NAMESPACE(antlr)RefToken t = ANTLR_USE_NAMESPACE(antlr)nullToken;
1347 +                
1348 + #line 1349 "MDLexer.cpp"
1349 +        
1350          {
1351          switch ( LA(1)) {
1352          case 0x2b /* '+' */ :
# Line 1251 | Line 1359 | void MDLexer::mExponent(bool _createToken) {
1359                  match('-' /* charlit */ );
1360                  break;
1361          }
1362 +        case 0x2e /* '.' */ :
1363          case 0x30 /* '0' */ :
1364          case 0x31 /* '1' */ :
1365          case 0x32 /* '2' */ :
# Line 1270 | Line 1379 | void MDLexer::mExponent(bool _createToken) {
1379          }
1380          }
1381          }
1382 <        { // ( ... )+
1383 <        int _cnt130=0;
1384 <        for (;;) {
1385 <                if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1386 <                        mDigit(false);
1382 >        {
1383 >        switch ( LA(1)) {
1384 >        case 0x2e /* '.' */ :
1385 >        {
1386 >                match('.' /* charlit */ );
1387 >                if ( inputState->guessing==0 ) {
1388 > #line 427 "MDParser.g"
1389 >                        _ttype = DOT;
1390 > #line 1391 "MDLexer.cpp"
1391                  }
1392 <                else {
1393 <                        if ( _cnt130>=1 ) { goto _loop130; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1281 <                }
1282 <                
1283 <                _cnt130++;
1284 <        }
1285 <        _loop130:;
1286 <        }  // ( ... )+
1287 <        if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
1288 <           _token = makeToken(_ttype);
1289 <           _token->setText(text.substr(_begin, text.length()-_begin));
1290 <        }
1291 <        _returnToken = _token;
1292 <        _saveIndex=0;
1293 < }
1294 <
1295 < void MDLexer::mVocabulary(bool _createToken) {
1296 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
1297 <        _ttype = Vocabulary;
1298 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
1299 <        
1300 <        matchRange('\3',static_cast<unsigned char>('\377'));
1301 <        if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
1302 <           _token = makeToken(_ttype);
1303 <           _token->setText(text.substr(_begin, text.length()-_begin));
1304 <        }
1305 <        _returnToken = _token;
1306 <        _saveIndex=0;
1307 < }
1308 <
1309 < void MDLexer::mNumber(bool _createToken) {
1310 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
1311 <        _ttype = Number;
1312 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
1313 <        
1314 <        bool synPredMatched137 = false;
1315 <        if ((((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ )) && (_tokenSet_6.member(LA(2))) && (true))) {
1316 <                int _m137 = mark();
1317 <                synPredMatched137 = true;
1318 <                inputState->guessing++;
1319 <                try {
1320 <                        {
1392 >                {
1393 >                if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1394                          { // ( ... )+
1395 <                        int _cnt135=0;
1395 >                        int _cnt146=0;
1396                          for (;;) {
1397                                  if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1398 <                                        mDigit(false);
1398 >                                        matchRange('0','9');
1399                                  }
1400                                  else {
1401 <                                        if ( _cnt135>=1 ) { goto _loop135; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1401 >                                        if ( _cnt146>=1 ) { goto _loop146; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1402                                  }
1403                                  
1404 <                                _cnt135++;
1404 >                                _cnt146++;
1405                          }
1406 <                        _loop135:;
1406 >                        _loop146:;
1407                          }  // ( ... )+
1408                          {
1409 <                        switch ( LA(1)) {
1410 <                        case 0x2e /* '.' */ :
1338 <                        {
1339 <                                match('.' /* charlit */ );
1340 <                                break;
1409 >                        if ((_tokenSet_6.member(LA(1))) && (_tokenSet_7.member(LA(2)))) {
1410 >                                mEXPONENT(false);
1411                          }
1412 <                        case 0x65 /* 'e' */ :
1343 <                        {
1344 <                                match('e' /* charlit */ );
1345 <                                break;
1412 >                        else {
1413                          }
1414 <                        case 0x45 /* 'E' */ :
1348 <                        {
1349 <                                match('E' /* charlit */ );
1350 <                                break;
1414 >                        
1415                          }
1352                        case 0x64 /* 'd' */ :
1416                          {
1417 <                                match('d' /* charlit */ );
1418 <                                break;
1417 >                        if ((_tokenSet_8.member(LA(1)))) {
1418 >                                mFLOAT_SUFFIX(true);
1419 >                                f1=_returnToken;
1420 >                                if ( inputState->guessing==0 ) {
1421 > #line 428 "MDParser.g"
1422 >                                        t=f1;
1423 > #line 1424 "MDLexer.cpp"
1424 >                                }
1425                          }
1426 <                        case 0x44 /* 'D' */ :
1358 <                        {
1359 <                                match('D' /* charlit */ );
1360 <                                break;
1426 >                        else {
1427                          }
1428 <                        default:
1363 <                        {
1364 <                                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1428 >                        
1429                          }
1430 +                        if ( inputState->guessing==0 ) {
1431 + #line 429 "MDParser.g"
1432 +                                
1433 +                                                                        if ( t &&
1434 +                                                                                  (t->getText().find('f') != ANTLR_USE_NAMESPACE(std)string::npos ||
1435 +                                                                                        t->getText().find('F') != ANTLR_USE_NAMESPACE(std)string::npos ) ) {
1436 +                                                                                _ttype = NUM_FLOAT;
1437 +                                                                        }
1438 +                                                                        else {
1439 +                                                                                _ttype = NUM_DOUBLE; // assume double
1440 +                                                                        }
1441 +                                                                
1442 + #line 1443 "MDLexer.cpp"
1443                          }
1367                        }
1368                        }
1444                  }
1445 <                catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
1371 <                        synPredMatched137 = false;
1445 >                else {
1446                  }
1447 <                rewind(_m137);
1374 <                inputState->guessing--;
1375 <        }
1376 <        if ( synPredMatched137 ) {
1377 <                { // ( ... )+
1378 <                int _cnt139=0;
1379 <                for (;;) {
1380 <                        if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1381 <                                mDigit(false);
1382 <                        }
1383 <                        else {
1384 <                                if ( _cnt139>=1 ) { goto _loop139; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1385 <                        }
1386 <                        
1387 <                        _cnt139++;
1447 >                
1448                  }
1449 <                _loop139:;
1450 <                }  // ( ... )+
1449 >                break;
1450 >        }
1451 >        case 0x30 /* '0' */ :
1452 >        case 0x31 /* '1' */ :
1453 >        case 0x32 /* '2' */ :
1454 >        case 0x33 /* '3' */ :
1455 >        case 0x34 /* '4' */ :
1456 >        case 0x35 /* '5' */ :
1457 >        case 0x36 /* '6' */ :
1458 >        case 0x37 /* '7' */ :
1459 >        case 0x38 /* '8' */ :
1460 >        case 0x39 /* '9' */ :
1461 >        {
1462                  {
1463                  switch ( LA(1)) {
1464 <                case 0x2e /* '.' */ :
1464 >                case 0x30 /* '0' */ :
1465                  {
1466 <                        match('.' /* charlit */ );
1467 <                        { // ( ... )*
1468 <                        for (;;) {
1469 <                                if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1470 <                                        mDigit(false);
1466 >                        match('0' /* charlit */ );
1467 >                        if ( inputState->guessing==0 ) {
1468 > #line 441 "MDParser.g"
1469 >                                isDecimal = true;
1470 > #line 1471 "MDLexer.cpp"
1471 >                        }
1472 >                        {
1473 >                        if ((LA(1) == 0x58 /* 'X' */  || LA(1) == 0x78 /* 'x' */ )) {
1474 >                                {
1475 >                                switch ( LA(1)) {
1476 >                                case 0x78 /* 'x' */ :
1477 >                                {
1478 >                                        match('x' /* charlit */ );
1479 >                                        break;
1480                                  }
1481 <                                else {
1482 <                                        goto _loop142;
1481 >                                case 0x58 /* 'X' */ :
1482 >                                {
1483 >                                        match('X' /* charlit */ );
1484 >                                        break;
1485                                  }
1486 <                                
1486 >                                default:
1487 >                                {
1488 >                                        throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1489 >                                }
1490 >                                }
1491 >                                }
1492 >                                { // ( ... )+
1493 >                                int _cnt153=0;
1494 >                                for (;;) {
1495 >                                        if ((_tokenSet_9.member(LA(1))) && (true) && (true)) {
1496 >                                                mHEX_DIGIT(false);
1497 >                                        }
1498 >                                        else {
1499 >                                                if ( _cnt153>=1 ) { goto _loop153; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1500 >                                        }
1501 >                                        
1502 >                                        _cnt153++;
1503 >                                }
1504 >                                _loop153:;
1505 >                                }  // ( ... )+
1506                          }
1406                        _loop142:;
1407                        } // ( ... )*
1408                        {
1409                        if ((_tokenSet_7.member(LA(1)))) {
1410                                mExponent(false);
1411                        }
1507                          else {
1508 <                        }
1509 <                        
1508 >                                bool synPredMatched158 = false;
1509 >                                if ((((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ )) && (true) && (true))) {
1510 >                                        int _m158 = mark();
1511 >                                        synPredMatched158 = true;
1512 >                                        inputState->guessing++;
1513 >                                        try {
1514 >                                                {
1515 >                                                { // ( ... )+
1516 >                                                int _cnt156=0;
1517 >                                                for (;;) {
1518 >                                                        if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1519 >                                                                matchRange('0','9');
1520 >                                                        }
1521 >                                                        else {
1522 >                                                                if ( _cnt156>=1 ) { goto _loop156; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1523 >                                                        }
1524 >                                                        
1525 >                                                        _cnt156++;
1526 >                                                }
1527 >                                                _loop156:;
1528 >                                                }  // ( ... )+
1529 >                                                {
1530 >                                                if ((_tokenSet_6.member(LA(1))) && (_tokenSet_7.member(LA(2)))) {
1531 >                                                        mEXPONENT(false);
1532 >                                                }
1533 >                                                else if ((LA(1) == 0x2e /* '.' */ )) {
1534 >                                                        match('.' /* charlit */ );
1535 >                                                }
1536 >                                                else if ((_tokenSet_8.member(LA(1))) && (true)) {
1537 >                                                        mFLOAT_SUFFIX(false);
1538 >                                                }
1539 >                                                else {
1540 >                                                        throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1541 >                                                }
1542 >                                                
1543 >                                                }
1544 >                                                }
1545 >                                        }
1546 >                                        catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
1547 >                                                synPredMatched158 = false;
1548 >                                        }
1549 >                                        rewind(_m158);
1550 >                                        inputState->guessing--;
1551 >                                }
1552 >                                if ( synPredMatched158 ) {
1553 >                                        { // ( ... )+
1554 >                                        int _cnt160=0;
1555 >                                        for (;;) {
1556 >                                                if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1557 >                                                        matchRange('0','9');
1558 >                                                }
1559 >                                                else {
1560 >                                                        if ( _cnt160>=1 ) { goto _loop160; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1561 >                                                }
1562 >                                                
1563 >                                                _cnt160++;
1564 >                                        }
1565 >                                        _loop160:;
1566 >                                        }  // ( ... )+
1567 >                                }
1568 >                                else if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x37 /* '7' */ )) && (true) && (true)) {
1569 >                                        { // ( ... )+
1570 >                                        int _cnt162=0;
1571 >                                        for (;;) {
1572 >                                                if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x37 /* '7' */ ))) {
1573 >                                                        matchRange('0','7');
1574 >                                                }
1575 >                                                else {
1576 >                                                        if ( _cnt162>=1 ) { goto _loop162; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1577 >                                                }
1578 >                                                
1579 >                                                _cnt162++;
1580 >                                        }
1581 >                                        _loop162:;
1582 >                                        }  // ( ... )+
1583 >                                }
1584 >                                else {
1585 >                                }
1586                          }
1416                        if ( inputState->guessing==0 ) {
1417 #line 451 "MDParser.g"
1418                                _ttype = FLOATONE;
1419 #line 1420 "MDLexer.cpp"
1587                          }
1588                          break;
1589                  }
1590 <                case 0x44 /* 'D' */ :
1591 <                case 0x45 /* 'E' */ :
1592 <                case 0x64 /* 'd' */ :
1593 <                case 0x65 /* 'e' */ :
1590 >                case 0x31 /* '1' */ :
1591 >                case 0x32 /* '2' */ :
1592 >                case 0x33 /* '3' */ :
1593 >                case 0x34 /* '4' */ :
1594 >                case 0x35 /* '5' */ :
1595 >                case 0x36 /* '6' */ :
1596 >                case 0x37 /* '7' */ :
1597 >                case 0x38 /* '8' */ :
1598 >                case 0x39 /* '9' */ :
1599                  {
1600 <                        mExponent(false);
1600 >                        {
1601 >                        matchRange('1','9');
1602 >                        }
1603 >                        { // ( ... )*
1604 >                        for (;;) {
1605 >                                if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1606 >                                        matchRange('0','9');
1607 >                                }
1608 >                                else {
1609 >                                        goto _loop165;
1610 >                                }
1611 >                                
1612 >                        }
1613 >                        _loop165:;
1614 >                        } // ( ... )*
1615                          if ( inputState->guessing==0 ) {
1616 < #line 452 "MDParser.g"
1617 <                                _ttype = FLOATTWO;
1618 < #line 1433 "MDLexer.cpp"
1616 > #line 458 "MDParser.g"
1617 >                                isDecimal=true;
1618 > #line 1619 "MDLexer.cpp"
1619                          }
1620                          break;
1621                  }
# Line 1440 | Line 1626 | void MDLexer::mNumber(bool _createToken) {
1626                  }
1627                  }
1628                  {
1629 <                switch ( LA(1)) {
1444 <                case 0x46 /* 'F' */ :
1445 <                case 0x66 /* 'f' */ :
1446 <                {
1447 <                        mFloatSuffix(false);
1448 <                        break;
1449 <                }
1450 <                case 0x4c /* 'L' */ :
1451 <                case 0x6c /* 'l' */ :
1452 <                {
1453 <                        mLongSuffix(false);
1454 <                        break;
1455 <                }
1456 <                default:
1629 >                if ((LA(1) == 0x4c /* 'L' */  || LA(1) == 0x6c /* 'l' */ )) {
1630                          {
1458                        }
1459                }
1460                }
1461        }
1462        else if ((LA(1) == 0x30 /* '0' */ ) && (LA(2) == 0x58 /* 'X' */  || LA(2) == 0x78 /* 'x' */ )) {
1463                match('0' /* charlit */ );
1464                {
1465                switch ( LA(1)) {
1466                case 0x78 /* 'x' */ :
1467                {
1468                        match('x' /* charlit */ );
1469                        break;
1470                }
1471                case 0x58 /* 'X' */ :
1472                {
1473                        match('X' /* charlit */ );
1474                        break;
1475                }
1476                default:
1477                {
1478                        throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1479                }
1480                }
1481                }
1482                { // ( ... )+
1483                int _cnt160=0;
1484                for (;;) {
1631                          switch ( LA(1)) {
1632 <                        case 0x61 /* 'a' */ :
1487 <                        case 0x62 /* 'b' */ :
1488 <                        case 0x63 /* 'c' */ :
1489 <                        case 0x64 /* 'd' */ :
1490 <                        case 0x65 /* 'e' */ :
1491 <                        case 0x66 /* 'f' */ :
1632 >                        case 0x6c /* 'l' */ :
1633                          {
1634 <                                matchRange('a','f');
1634 >                                match('l' /* charlit */ );
1635                                  break;
1636                          }
1637 <                        case 0x41 /* 'A' */ :
1497 <                        case 0x42 /* 'B' */ :
1498 <                        case 0x43 /* 'C' */ :
1499 <                        case 0x44 /* 'D' */ :
1500 <                        case 0x45 /* 'E' */ :
1501 <                        case 0x46 /* 'F' */ :
1637 >                        case 0x4c /* 'L' */ :
1638                          {
1639 <                                matchRange('A','F');
1639 >                                match('L' /* charlit */ );
1640                                  break;
1641                          }
1506                        case 0x30 /* '0' */ :
1507                        case 0x31 /* '1' */ :
1508                        case 0x32 /* '2' */ :
1509                        case 0x33 /* '3' */ :
1510                        case 0x34 /* '4' */ :
1511                        case 0x35 /* '5' */ :
1512                        case 0x36 /* '6' */ :
1513                        case 0x37 /* '7' */ :
1514                        case 0x38 /* '8' */ :
1515                        case 0x39 /* '9' */ :
1516                        {
1517                                mDigit(false);
1518                                break;
1519                        }
1642                          default:
1643                          {
1644 <                                if ( _cnt160>=1 ) { goto _loop160; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1644 >                                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1645                          }
1646                          }
1525                        _cnt160++;
1526                }
1527                _loop160:;
1528                }  // ( ... )+
1529                { // ( ... )*
1530                for (;;) {
1531                        switch ( LA(1)) {
1532                        case 0x4c /* 'L' */ :
1533                        case 0x6c /* 'l' */ :
1534                        {
1535                                mLongSuffix(false);
1536                                break;
1647                          }
1648 <                        case 0x55 /* 'U' */ :
1649 <                        case 0x75 /* 'u' */ :
1650 <                        {
1651 <                                mUnsignedSuffix(false);
1542 <                                break;
1648 >                        if ( inputState->guessing==0 ) {
1649 > #line 460 "MDParser.g"
1650 >                                _ttype = NUM_LONG;
1651 > #line 1652 "MDLexer.cpp"
1652                          }
1653 <                        default:
1653 >                }
1654 >                else if (((_tokenSet_10.member(LA(1))))&&(isDecimal)) {
1655                          {
1656 <                                goto _loop162;
1656 >                        if ((_tokenSet_6.member(LA(1))) && (_tokenSet_7.member(LA(2)))) {
1657 >                                mEXPONENT(false);
1658 >                                {
1659 >                                if ((_tokenSet_8.member(LA(1)))) {
1660 >                                        mFLOAT_SUFFIX(true);
1661 >                                        f3=_returnToken;
1662 >                                        if ( inputState->guessing==0 ) {
1663 > #line 465 "MDParser.g"
1664 >                                                t=f3;
1665 > #line 1666 "MDLexer.cpp"
1666 >                                        }
1667 >                                }
1668 >                                else {
1669 >                                }
1670 >                                
1671 >                                }
1672                          }
1673 <                        }
1674 <                }
1675 <                _loop162:;
1676 <                } // ( ... )*
1677 <                if ( inputState->guessing==0 ) {
1678 < #line 480 "MDParser.g"
1679 <                        _ttype = HEXADECIMALINT;
1680 < #line 1556 "MDLexer.cpp"
1681 <                }
1682 <        }
1683 <        else if ((LA(1) == 0x2e /* '.' */ )) {
1559 <                match('.' /* charlit */ );
1560 <                if ( inputState->guessing==0 ) {
1561 < #line 458 "MDParser.g"
1562 <                        _ttype = DOT;
1563 < #line 1564 "MDLexer.cpp"
1564 <                }
1565 <                {
1566 <                if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1567 <                        { // ( ... )+
1568 <                        int _cnt147=0;
1569 <                        for (;;) {
1570 <                                if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1571 <                                        mDigit(false);
1673 >                        else if ((LA(1) == 0x2e /* '.' */ )) {
1674 >                                match('.' /* charlit */ );
1675 >                                { // ( ... )*
1676 >                                for (;;) {
1677 >                                        if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1678 >                                                matchRange('0','9');
1679 >                                        }
1680 >                                        else {
1681 >                                                goto _loop170;
1682 >                                        }
1683 >                                        
1684                                  }
1685 +                                _loop170:;
1686 +                                } // ( ... )*
1687 +                                {
1688 +                                if ((_tokenSet_6.member(LA(1))) && (_tokenSet_7.member(LA(2)))) {
1689 +                                        mEXPONENT(false);
1690 +                                }
1691                                  else {
1574                                        if ( _cnt147>=1 ) { goto _loop147; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1692                                  }
1693                                  
1694 <                                _cnt147++;
1694 >                                }
1695 >                                {
1696 >                                if ((_tokenSet_8.member(LA(1)))) {
1697 >                                        mFLOAT_SUFFIX(true);
1698 >                                        f2=_returnToken;
1699 >                                        if ( inputState->guessing==0 ) {
1700 > #line 464 "MDParser.g"
1701 >                                                t=f2;
1702 > #line 1703 "MDLexer.cpp"
1703 >                                        }
1704 >                                }
1705 >                                else {
1706 >                                }
1707 >                                
1708 >                                }
1709                          }
1710 <                        _loop147:;
1711 <                        }  // ( ... )+
1712 <                        {
1713 <                        if ((_tokenSet_7.member(LA(1)))) {
1714 <                                mExponent(false);
1710 >                        else if ((_tokenSet_8.member(LA(1))) && (true)) {
1711 >                                mFLOAT_SUFFIX(true);
1712 >                                f4=_returnToken;
1713 >                                if ( inputState->guessing==0 ) {
1714 > #line 466 "MDParser.g"
1715 >                                        t=f4;
1716 > #line 1717 "MDLexer.cpp"
1717 >                                }
1718                          }
1719                          else {
1720 +                                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1721                          }
1722                          
1723                          }
1724                          if ( inputState->guessing==0 ) {
1725 < #line 459 "MDParser.g"
1726 <                                _ttype = FLOATONE;
1727 < #line 1593 "MDLexer.cpp"
1725 > #line 468 "MDParser.g"
1726 >                                
1727 >                                                                        if ( t &&
1728 >                                                                                  (t->getText().find('f') != ANTLR_USE_NAMESPACE(std)string::npos ||
1729 >                                                                                        t->getText().find('F') != ANTLR_USE_NAMESPACE(std)string::npos ) ) {
1730 >                                                                                _ttype = NUM_FLOAT;
1731 >                                                                        }
1732 >                                                                        else {
1733 >                                                                                _ttype = NUM_DOUBLE; // assume double
1734 >                                                                        }
1735 >                                                                
1736 > #line 1737 "MDLexer.cpp"
1737                          }
1594                        {
1595                        switch ( LA(1)) {
1596                        case 0x46 /* 'F' */ :
1597                        case 0x66 /* 'f' */ :
1598                        {
1599                                mFloatSuffix(false);
1600                                break;
1601                        }
1602                        case 0x4c /* 'L' */ :
1603                        case 0x6c /* 'l' */ :
1604                        {
1605                                mLongSuffix(false);
1606                                break;
1607                        }
1608                        default:
1609                                {
1610                                }
1611                        }
1612                        }
1738                  }
1739                  else {
1740                  }
1741                  
1742                  }
1743 +                break;
1744          }
1745 <        else if ((LA(1) == 0x30 /* '0' */ ) && (true) && (true)) {
1746 <                match('0' /* charlit */ );
1747 <                { // ( ... )*
1622 <                for (;;) {
1623 <                        if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x37 /* '7' */ ))) {
1624 <                                matchRange('0','7');
1625 <                        }
1626 <                        else {
1627 <                                goto _loop151;
1628 <                        }
1629 <                        
1630 <                }
1631 <                _loop151:;
1632 <                } // ( ... )*
1633 <                { // ( ... )*
1634 <                for (;;) {
1635 <                        switch ( LA(1)) {
1636 <                        case 0x4c /* 'L' */ :
1637 <                        case 0x6c /* 'l' */ :
1638 <                        {
1639 <                                mLongSuffix(false);
1640 <                                break;
1641 <                        }
1642 <                        case 0x55 /* 'U' */ :
1643 <                        case 0x75 /* 'u' */ :
1644 <                        {
1645 <                                mUnsignedSuffix(false);
1646 <                                break;
1647 <                        }
1648 <                        default:
1649 <                        {
1650 <                                goto _loop153;
1651 <                        }
1652 <                        }
1653 <                }
1654 <                _loop153:;
1655 <                } // ( ... )*
1656 <                if ( inputState->guessing==0 ) {
1657 < #line 469 "MDParser.g"
1658 <                        _ttype = OCTALINT;
1659 < #line 1660 "MDLexer.cpp"
1660 <                }
1745 >        default:
1746 >        {
1747 >                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1748          }
1662        else if (((LA(1) >= 0x31 /* '1' */  && LA(1) <= 0x39 /* '9' */ )) && (true) && (true)) {
1663                matchRange('1','9');
1664                { // ( ... )*
1665                for (;;) {
1666                        if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1667                                mDigit(false);
1668                        }
1669                        else {
1670                                goto _loop155;
1671                        }
1672                        
1673                }
1674                _loop155:;
1675                } // ( ... )*
1676                { // ( ... )*
1677                for (;;) {
1678                        switch ( LA(1)) {
1679                        case 0x4c /* 'L' */ :
1680                        case 0x6c /* 'l' */ :
1681                        {
1682                                mLongSuffix(false);
1683                                break;
1684                        }
1685                        case 0x55 /* 'U' */ :
1686                        case 0x75 /* 'u' */ :
1687                        {
1688                                mUnsignedSuffix(false);
1689                                break;
1690                        }
1691                        default:
1692                        {
1693                                goto _loop157;
1694                        }
1695                        }
1696                }
1697                _loop157:;
1698                } // ( ... )*
1699                if ( inputState->guessing==0 ) {
1700 #line 474 "MDParser.g"
1701                        _ttype = DECIMALINT;
1702 #line 1703 "MDLexer.cpp"
1703                }
1749          }
1705        else {
1706                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1750          }
1708        
1751          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
1752             _token = makeToken(_ttype);
1753             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 1714 | Line 1756 | void MDLexer::mNumber(bool _createToken) {
1756          _saveIndex=0;
1757   }
1758  
1759 < void MDLexer::mID(bool _createToken) {
1759 > void MDLexer::mEXPONENT(bool _createToken) {
1760          int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
1761 <        _ttype = ID;
1761 >        _ttype = EXPONENT;
1762          ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
1763          
1764          {
1765          switch ( LA(1)) {
1724        case 0x61 /* 'a' */ :
1725        case 0x62 /* 'b' */ :
1726        case 0x63 /* 'c' */ :
1727        case 0x64 /* 'd' */ :
1766          case 0x65 /* 'e' */ :
1729        case 0x66 /* 'f' */ :
1730        case 0x67 /* 'g' */ :
1731        case 0x68 /* 'h' */ :
1732        case 0x69 /* 'i' */ :
1733        case 0x6a /* 'j' */ :
1734        case 0x6b /* 'k' */ :
1735        case 0x6c /* 'l' */ :
1736        case 0x6d /* 'm' */ :
1737        case 0x6e /* 'n' */ :
1738        case 0x6f /* 'o' */ :
1739        case 0x70 /* 'p' */ :
1740        case 0x71 /* 'q' */ :
1741        case 0x72 /* 'r' */ :
1742        case 0x73 /* 's' */ :
1743        case 0x74 /* 't' */ :
1744        case 0x75 /* 'u' */ :
1745        case 0x76 /* 'v' */ :
1746        case 0x77 /* 'w' */ :
1747        case 0x78 /* 'x' */ :
1748        case 0x79 /* 'y' */ :
1749        case 0x7a /* 'z' */ :
1767          {
1768 <                matchRange('a','z');
1768 >                match('e' /* charlit */ );
1769                  break;
1770          }
1754        case 0x41 /* 'A' */ :
1755        case 0x42 /* 'B' */ :
1756        case 0x43 /* 'C' */ :
1757        case 0x44 /* 'D' */ :
1771          case 0x45 /* 'E' */ :
1759        case 0x46 /* 'F' */ :
1760        case 0x47 /* 'G' */ :
1761        case 0x48 /* 'H' */ :
1762        case 0x49 /* 'I' */ :
1763        case 0x4a /* 'J' */ :
1764        case 0x4b /* 'K' */ :
1765        case 0x4c /* 'L' */ :
1766        case 0x4d /* 'M' */ :
1767        case 0x4e /* 'N' */ :
1768        case 0x4f /* 'O' */ :
1769        case 0x50 /* 'P' */ :
1770        case 0x51 /* 'Q' */ :
1771        case 0x52 /* 'R' */ :
1772        case 0x53 /* 'S' */ :
1773        case 0x54 /* 'T' */ :
1774        case 0x55 /* 'U' */ :
1775        case 0x56 /* 'V' */ :
1776        case 0x57 /* 'W' */ :
1777        case 0x58 /* 'X' */ :
1778        case 0x59 /* 'Y' */ :
1779        case 0x5a /* 'Z' */ :
1772          {
1773 <                matchRange('A','Z');
1773 >                match('E' /* charlit */ );
1774                  break;
1775          }
1776 <        case 0x5f /* '_' */ :
1776 >        case 0x64 /* 'd' */ :
1777          {
1778 <                match('_' /* charlit */ );
1778 >                match('d' /* charlit */ );
1779                  break;
1780          }
1781 +        case 0x44 /* 'D' */ :
1782 +        {
1783 +                match('D' /* charlit */ );
1784 +                break;
1785 +        }
1786          default:
1787          {
1788                  throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1789          }
1790          }
1791          }
1792 <        { // ( ... )*
1792 >        {
1793 >        switch ( LA(1)) {
1794 >        case 0x2b /* '+' */ :
1795 >        {
1796 >                match('+' /* charlit */ );
1797 >                break;
1798 >        }
1799 >        case 0x2d /* '-' */ :
1800 >        {
1801 >                match('-' /* charlit */ );
1802 >                break;
1803 >        }
1804 >        case 0x30 /* '0' */ :
1805 >        case 0x31 /* '1' */ :
1806 >        case 0x32 /* '2' */ :
1807 >        case 0x33 /* '3' */ :
1808 >        case 0x34 /* '4' */ :
1809 >        case 0x35 /* '5' */ :
1810 >        case 0x36 /* '6' */ :
1811 >        case 0x37 /* '7' */ :
1812 >        case 0x38 /* '8' */ :
1813 >        case 0x39 /* '9' */ :
1814 >        {
1815 >                break;
1816 >        }
1817 >        default:
1818 >        {
1819 >                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1820 >        }
1821 >        }
1822 >        }
1823 >        { // ( ... )+
1824 >        int _cnt178=0;
1825          for (;;) {
1826 <                switch ( LA(1)) {
1798 <                case 0x61 /* 'a' */ :
1799 <                case 0x62 /* 'b' */ :
1800 <                case 0x63 /* 'c' */ :
1801 <                case 0x64 /* 'd' */ :
1802 <                case 0x65 /* 'e' */ :
1803 <                case 0x66 /* 'f' */ :
1804 <                case 0x67 /* 'g' */ :
1805 <                case 0x68 /* 'h' */ :
1806 <                case 0x69 /* 'i' */ :
1807 <                case 0x6a /* 'j' */ :
1808 <                case 0x6b /* 'k' */ :
1809 <                case 0x6c /* 'l' */ :
1810 <                case 0x6d /* 'm' */ :
1811 <                case 0x6e /* 'n' */ :
1812 <                case 0x6f /* 'o' */ :
1813 <                case 0x70 /* 'p' */ :
1814 <                case 0x71 /* 'q' */ :
1815 <                case 0x72 /* 'r' */ :
1816 <                case 0x73 /* 's' */ :
1817 <                case 0x74 /* 't' */ :
1818 <                case 0x75 /* 'u' */ :
1819 <                case 0x76 /* 'v' */ :
1820 <                case 0x77 /* 'w' */ :
1821 <                case 0x78 /* 'x' */ :
1822 <                case 0x79 /* 'y' */ :
1823 <                case 0x7a /* 'z' */ :
1824 <                {
1825 <                        matchRange('a','z');
1826 <                        break;
1827 <                }
1828 <                case 0x41 /* 'A' */ :
1829 <                case 0x42 /* 'B' */ :
1830 <                case 0x43 /* 'C' */ :
1831 <                case 0x44 /* 'D' */ :
1832 <                case 0x45 /* 'E' */ :
1833 <                case 0x46 /* 'F' */ :
1834 <                case 0x47 /* 'G' */ :
1835 <                case 0x48 /* 'H' */ :
1836 <                case 0x49 /* 'I' */ :
1837 <                case 0x4a /* 'J' */ :
1838 <                case 0x4b /* 'K' */ :
1839 <                case 0x4c /* 'L' */ :
1840 <                case 0x4d /* 'M' */ :
1841 <                case 0x4e /* 'N' */ :
1842 <                case 0x4f /* 'O' */ :
1843 <                case 0x50 /* 'P' */ :
1844 <                case 0x51 /* 'Q' */ :
1845 <                case 0x52 /* 'R' */ :
1846 <                case 0x53 /* 'S' */ :
1847 <                case 0x54 /* 'T' */ :
1848 <                case 0x55 /* 'U' */ :
1849 <                case 0x56 /* 'V' */ :
1850 <                case 0x57 /* 'W' */ :
1851 <                case 0x58 /* 'X' */ :
1852 <                case 0x59 /* 'Y' */ :
1853 <                case 0x5a /* 'Z' */ :
1854 <                {
1855 <                        matchRange('A','Z');
1856 <                        break;
1857 <                }
1858 <                case 0x5f /* '_' */ :
1859 <                {
1860 <                        match('_' /* charlit */ );
1861 <                        break;
1862 <                }
1863 <                case 0x30 /* '0' */ :
1864 <                case 0x31 /* '1' */ :
1865 <                case 0x32 /* '2' */ :
1866 <                case 0x33 /* '3' */ :
1867 <                case 0x34 /* '4' */ :
1868 <                case 0x35 /* '5' */ :
1869 <                case 0x36 /* '6' */ :
1870 <                case 0x37 /* '7' */ :
1871 <                case 0x38 /* '8' */ :
1872 <                case 0x39 /* '9' */ :
1873 <                {
1826 >                if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1827                          matchRange('0','9');
1875                        break;
1828                  }
1829 <                default:
1830 <                {
1879 <                        goto _loop166;
1829 >                else {
1830 >                        if ( _cnt178>=1 ) { goto _loop178; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1831                  }
1832 <                }
1832 >                
1833 >                _cnt178++;
1834          }
1835 <        _loop166:;
1836 <        } // ( ... )*
1885 <        _ttype = testLiteralsTable(_ttype);
1835 >        _loop178:;
1836 >        }  // ( ... )+
1837          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
1838             _token = makeToken(_ttype);
1839             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 1891 | Line 1842 | void MDLexer::mID(bool _createToken) {
1842          _saveIndex=0;
1843   }
1844  
1845 + void MDLexer::mFLOAT_SUFFIX(bool _createToken) {
1846 +        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
1847 +        _ttype = FLOAT_SUFFIX;
1848 +        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
1849 +        
1850 +        switch ( LA(1)) {
1851 +        case 0x66 /* 'f' */ :
1852 +        {
1853 +                match('f' /* charlit */ );
1854 +                break;
1855 +        }
1856 +        case 0x46 /* 'F' */ :
1857 +        {
1858 +                match('F' /* charlit */ );
1859 +                break;
1860 +        }
1861 +        case 0x64 /* 'd' */ :
1862 +        {
1863 +                match('d' /* charlit */ );
1864 +                break;
1865 +        }
1866 +        case 0x44 /* 'D' */ :
1867 +        {
1868 +                match('D' /* charlit */ );
1869 +                break;
1870 +        }
1871 +        default:
1872 +        {
1873 +                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1874 +        }
1875 +        }
1876 +        if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
1877 +           _token = makeToken(_ttype);
1878 +           _token->setText(text.substr(_begin, text.length()-_begin));
1879 +        }
1880 +        _returnToken = _token;
1881 +        _saveIndex=0;
1882 + }
1883  
1884 +
1885   const unsigned long MDLexer::_tokenSet_0_data_[] = { 4294958079UL, 4294966271UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1886   // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12
1887   // 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f   !
# Line 1918 | Line 1908 | const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_token
1908   // 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e
1909   // 0x1f   ! \" # $ % & ( ) * + , - . / 0 1 2 3 4 5 6 7
1910   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_5(_tokenSet_5_data_,16);
1911 < const unsigned long MDLexer::_tokenSet_6_data_[] = { 0UL, 67059712UL, 48UL, 48UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1922 < // . 0 1 2 3 4 5 6 7
1911 > const unsigned long MDLexer::_tokenSet_6_data_[] = { 0UL, 0UL, 48UL, 48UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1912   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_6(_tokenSet_6_data_,10);
1913 < const unsigned long MDLexer::_tokenSet_7_data_[] = { 0UL, 0UL, 48UL, 48UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1913 > const unsigned long MDLexer::_tokenSet_7_data_[] = { 0UL, 67053568UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1914 > // + - 0 1 2 3 4 5 6 7
1915   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_7(_tokenSet_7_data_,10);
1916 + const unsigned long MDLexer::_tokenSet_8_data_[] = { 0UL, 0UL, 80UL, 80UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1917 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_8(_tokenSet_8_data_,10);
1918 + const unsigned long MDLexer::_tokenSet_9_data_[] = { 0UL, 67043328UL, 126UL, 126UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1919 + // 0 1 2 3 4 5 6 7
1920 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_9(_tokenSet_9_data_,10);
1921 + const unsigned long MDLexer::_tokenSet_10_data_[] = { 0UL, 16384UL, 112UL, 112UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1922 + // .
1923 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_10(_tokenSet_10_data_,10);
1924  

Comparing:
trunk/src/mdParser/MDLexer.cpp (property svn:keywords), Revision 770 by tim, Fri Dec 2 15:38:03 2005 UTC vs.
branches/development/src/mdParser/MDLexer.cpp (property svn:keywords), Revision 1731 by gezelter, Thu May 31 12:25:30 2012 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines