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

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 1746 by gezelter, Wed Jun 6 02:18:54 2012 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines