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.
Revision 1275 by cli2, Fri Jul 4 20:54:29 2008 UTC

# Line 1 | Line 1
1 < /* $ANTLR 2.7.5 (20050406): "MDParser.g" -> "MDLexer.cpp"$ */
1 > /* $ANTLR 2.7.4: "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;
33          literals["torsion"] = 10;
34 <        literals["component"] = 4;
35 <        literals["rigidBody"] = 11;
36 <        literals["zconstraint"] = 6;
39 <        literals["cutoffGroup"] = 12;
34 >        literals["molecule"] = 5;
35 >        literals["inversion"] = 11;
36 >        literals["fragment"] = 14;
37          literals["bend"] = 9;
38 <        literals["orientation"] = 16;
39 <        literals["fragment"] = 13;
38 >        literals["orientation"] = 18;
39 >        literals["cutoffGroup"] = 13;
40 >        literals["zconstraint"] = 6;
41          literals["bond"] = 8;
42 <        literals["molecule"] = 5;
42 >        literals["rigidBody"] = 12;
43 >        literals["center"] = 16;
44 >        literals["component"] = 4;
45 >        literals["position"] = 17;
46          literals["atom"] = 7;
47 +        literals["members"] = 15;
48   }
49  
50   ANTLR_USE_NAMESPACE(antlr)RefToken MDLexer::nextToken()
# Line 120 | Line 122 | ANTLR_USE_NAMESPACE(antlr)RefToken MDLexer::nextToken(
122                                  theRetToken=_returnToken;
123                                  break;
124                          }
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                        }
125                          case 0x9 /* '\t' */ :
126                          case 0xa /* '\n' */ :
127                          case 0xc /* '\14' */ :
# Line 149 | Line 139 | ANTLR_USE_NAMESPACE(antlr)RefToken MDLexer::nextToken(
139                                  theRetToken=_returnToken;
140                                  break;
141                          }
142 <                        case 0x22 /* '\"' */ :
142 >                        case 0x22 /* '"' */ :
143                          {
144                                  mStringLiteral(true);
145                                  theRetToken=_returnToken;
# Line 158 | Line 148 | ANTLR_USE_NAMESPACE(antlr)RefToken MDLexer::nextToken(
148                          case 0x27 /* '\'' */ :
149                          {
150                                  mCharLiteral(true);
161                                theRetToken=_returnToken;
162                                break;
163                        }
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);
151                                  theRetToken=_returnToken;
152                                  break;
153                          }
# Line 235 | Line 209 | ANTLR_USE_NAMESPACE(antlr)RefToken MDLexer::nextToken(
209                                  theRetToken=_returnToken;
210                                  break;
211                          }
212 +                        case 0x2b /* '+' */ :
213 +                        case 0x2d /* '-' */ :
214 +                        case 0x2e /* '.' */ :
215 +                        case 0x30 /* '0' */ :
216 +                        case 0x31 /* '1' */ :
217 +                        case 0x32 /* '2' */ :
218 +                        case 0x33 /* '3' */ :
219 +                        case 0x34 /* '4' */ :
220 +                        case 0x35 /* '5' */ :
221 +                        case 0x36 /* '6' */ :
222 +                        case 0x37 /* '7' */ :
223 +                        case 0x38 /* '8' */ :
224 +                        case 0x39 /* '9' */ :
225 +                        {
226 +                                mNUM_INT(true);
227 +                                theRetToken=_returnToken;
228 +                                break;
229 +                        }
230                          default:
231                                  if ((LA(1) == 0x2f /* '/' */ ) && (LA(2) == 0x2a /* '*' */ )) {
232                                          mComment(true);
# Line 274 | Line 266 | void MDLexer::mASSIGNEQUAL(bool _createToken) {
266   }
267  
268   void MDLexer::mASSIGNEQUAL(bool _createToken) {
269 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
269 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
270          _ttype = ASSIGNEQUAL;
271 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
271 >        int _saveIndex;
272          
273 <        match('=' /* charlit */ );
273 >        match('=');
274          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
275             _token = makeToken(_ttype);
276             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 288 | Line 280 | void MDLexer::mCOLON(bool _createToken) {
280   }
281  
282   void MDLexer::mCOLON(bool _createToken) {
283 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
283 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
284          _ttype = COLON;
285 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
285 >        int _saveIndex;
286          
287 <        match(':' /* charlit */ );
287 >        match(':');
288          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
289             _token = makeToken(_ttype);
290             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 302 | Line 294 | void MDLexer::mCOMMA(bool _createToken) {
294   }
295  
296   void MDLexer::mCOMMA(bool _createToken) {
297 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
297 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
298          _ttype = COMMA;
299 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
299 >        int _saveIndex;
300          
301 <        match(',' /* charlit */ );
301 >        match(',');
302          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
303             _token = makeToken(_ttype);
304             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 316 | Line 308 | void MDLexer::mQUESTIONMARK(bool _createToken) {
308   }
309  
310   void MDLexer::mQUESTIONMARK(bool _createToken) {
311 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
311 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
312          _ttype = QUESTIONMARK;
313 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
313 >        int _saveIndex;
314          
315 <        match('?' /* charlit */ );
315 >        match('?');
316          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
317             _token = makeToken(_ttype);
318             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 330 | Line 322 | void MDLexer::mSEMICOLON(bool _createToken) {
322   }
323  
324   void MDLexer::mSEMICOLON(bool _createToken) {
325 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
325 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
326          _ttype = SEMICOLON;
327 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
327 >        int _saveIndex;
328          
329 <        match(';' /* charlit */ );
329 >        match(';');
330          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
331             _token = makeToken(_ttype);
332             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 344 | Line 336 | void MDLexer::mLPAREN(bool _createToken) {
336   }
337  
338   void MDLexer::mLPAREN(bool _createToken) {
339 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
339 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
340          _ttype = LPAREN;
341 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
341 >        int _saveIndex;
342          
343 <        match('(' /* charlit */ );
343 >        match('(');
344          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
345             _token = makeToken(_ttype);
346             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 358 | Line 350 | void MDLexer::mRPAREN(bool _createToken) {
350   }
351  
352   void MDLexer::mRPAREN(bool _createToken) {
353 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
353 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
354          _ttype = RPAREN;
355 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
355 >        int _saveIndex;
356          
357 <        match(')' /* charlit */ );
357 >        match(')');
358          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
359             _token = makeToken(_ttype);
360             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 372 | Line 364 | void MDLexer::mLBRACKET(bool _createToken) {
364   }
365  
366   void MDLexer::mLBRACKET(bool _createToken) {
367 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
367 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
368          _ttype = LBRACKET;
369 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
369 >        int _saveIndex;
370          
371 <        match('[' /* charlit */ );
371 >        match('[');
372          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
373             _token = makeToken(_ttype);
374             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 386 | Line 378 | void MDLexer::mRBRACKET(bool _createToken) {
378   }
379  
380   void MDLexer::mRBRACKET(bool _createToken) {
381 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
381 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
382          _ttype = RBRACKET;
383 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
383 >        int _saveIndex;
384          
385 <        match(']' /* charlit */ );
385 >        match(']');
386          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
387             _token = makeToken(_ttype);
388             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 400 | Line 392 | void MDLexer::mLCURLY(bool _createToken) {
392   }
393  
394   void MDLexer::mLCURLY(bool _createToken) {
395 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
395 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
396          _ttype = LCURLY;
397 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
397 >        int _saveIndex;
398          
399 <        match('{' /* charlit */ );
399 >        match('{');
400          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
401             _token = makeToken(_ttype);
402             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 414 | Line 406 | void MDLexer::mRCURLY(bool _createToken) {
406   }
407  
408   void MDLexer::mRCURLY(bool _createToken) {
409 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
409 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
410          _ttype = RCURLY;
411 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
411 >        int _saveIndex;
412          
413 <        match('}' /* charlit */ );
413 >        match('}');
414          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
415             _token = makeToken(_ttype);
416             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 427 | Line 419 | void MDLexer::mRCURLY(bool _createToken) {
419          _saveIndex=0;
420   }
421  
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
422   void MDLexer::mWhitespace(bool _createToken) {
423 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
423 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
424          _ttype = Whitespace;
425 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
425 >        int _saveIndex;
426          
427          {
428          switch ( LA(1)) {
# Line 470 | Line 434 | void MDLexer::mWhitespace(bool _createToken) {
434                  switch ( LA(1)) {
435                  case 0x20 /* ' ' */ :
436                  {
437 <                        match(' ' /* charlit */ );
437 >                        match(' ');
438                          break;
439                  }
440                  case 0x9 /* '\t' */ :
441                  {
442 <                        match('\t' /* charlit */ );
442 >                        match('\t');
443                          break;
444                  }
445                  case 0xc /* '\14' */ :
446                  {
447 <                        match('\14' /* charlit */ );
447 >                        match('\14');
448                          break;
449                  }
450                  default:
# Line 496 | Line 460 | void MDLexer::mWhitespace(bool _createToken) {
460          {
461                  {
462                  if ((LA(1) == 0xd /* '\r' */ ) && (LA(2) == 0xa /* '\n' */ )) {
463 <                        match('\r' /* charlit */ );
464 <                        match('\n' /* charlit */ );
463 >                        match('\r');
464 >                        match('\n');
465                  }
466                  else if ((LA(1) == 0xd /* '\r' */ ) && (true)) {
467 <                        match('\r' /* charlit */ );
467 >                        match('\r');
468                  }
469                  else if ((LA(1) == 0xa /* '\n' */ )) {
470 <                        match('\n' /* charlit */ );
470 >                        match('\n');
471                  }
472                  else {
473                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
# Line 511 | Line 475 | void MDLexer::mWhitespace(bool _createToken) {
475                  
476                  }
477                  if ( inputState->guessing==0 ) {
478 < #line 262 "MDParser.g"
478 > #line 227 "MDParser.g"
479                          newline();
480 < #line 517 "MDLexer.cpp"
480 > #line 481 "MDLexer.cpp"
481                  }
482                  break;
483          }
# Line 521 | Line 485 | void MDLexer::mWhitespace(bool _createToken) {
485          {
486                  {
487                  if ((LA(1) == 0x5c /* '\\' */ ) && (LA(2) == 0xd /* '\r' */ ) && (LA(3) == 0xa /* '\n' */ )) {
488 <                        match('\\' /* charlit */ );
489 <                        match('\r' /* charlit */ );
490 <                        match('\n' /* charlit */ );
488 >                        match('\\');
489 >                        match('\r');
490 >                        match('\n');
491                  }
492                  else if ((LA(1) == 0x5c /* '\\' */ ) && (LA(2) == 0xd /* '\r' */ ) && (true)) {
493 <                        match('\\' /* charlit */ );
494 <                        match('\r' /* charlit */ );
493 >                        match('\\');
494 >                        match('\r');
495                  }
496                  else if ((LA(1) == 0x5c /* '\\' */ ) && (LA(2) == 0xa /* '\n' */ )) {
497 <                        match('\\' /* charlit */ );
498 <                        match('\n' /* charlit */ );
497 >                        match('\\');
498 >                        match('\n');
499                  }
500                  else {
501                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
# Line 539 | Line 503 | void MDLexer::mWhitespace(bool _createToken) {
503                  
504                  }
505                  if ( inputState->guessing==0 ) {
506 < #line 267 "MDParser.g"
506 > #line 232 "MDParser.g"
507                          printf("CPP_parser.g continuation line detected\n");
508                          deferredNewline();
509 < #line 546 "MDLexer.cpp"
509 > #line 510 "MDLexer.cpp"
510                  }
511                  break;
512          }
# Line 553 | Line 517 | void MDLexer::mWhitespace(bool _createToken) {
517          }
518          }
519          if ( inputState->guessing==0 ) {
520 < #line 270 "MDParser.g"
520 > #line 235 "MDParser.g"
521                  _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP;
522 < #line 559 "MDLexer.cpp"
522 > #line 523 "MDLexer.cpp"
523          }
524          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
525             _token = makeToken(_ttype);
# Line 566 | Line 530 | void MDLexer::mComment(bool _createToken) {
530   }
531  
532   void MDLexer::mComment(bool _createToken) {
533 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
533 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
534          _ttype = Comment;
535 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
535 >        int _saveIndex;
536          
537          match("/*");
538          { // ( ... )*
539          for (;;) {
540 <                if (((LA(1) == 0x2a /* '*' */ ) && ((LA(2) >= 0x0 /* '\0' */  && LA(2) <= 0xff)) && ((LA(3) >= 0x0 /* '\0' */  && LA(3) <= 0xff)))&&(LA(2) != '/')) {
541 <                        match('*' /* charlit */ );
540 >                if (((LA(1) == 0x2a /* '*' */ ) && ((LA(2) >= 0x3 /* '\3' */  && LA(2) <= 0xff)) && ((LA(3) >= 0x3 /* '\3' */  && LA(3) <= 0xff)))&&(LA(2) != '/')) {
541 >                        match('*');
542                  }
543                  else if ((LA(1) == 0xa /* '\n' */  || LA(1) == 0xd /* '\r' */ )) {
544                          mEndOfLine(false);
545                          if ( inputState->guessing==0 ) {
546 < #line 277 "MDParser.g"
546 > #line 242 "MDParser.g"
547                                  deferredNewline();
548 < #line 585 "MDLexer.cpp"
548 > #line 549 "MDLexer.cpp"
549                          }
550                  }
551                  else if ((_tokenSet_0.member(LA(1)))) {
# Line 590 | Line 554 | void MDLexer::mComment(bool _createToken) {
554                          }
555                  }
556                  else {
557 <                        goto _loop81;
557 >                        goto _loop83;
558                  }
559                  
560          }
561 <        _loop81:;
561 >        _loop83:;
562          } // ( ... )*
563          match("*/");
564          if ( inputState->guessing==0 ) {
565 < #line 280 "MDParser.g"
565 > #line 245 "MDParser.g"
566                  _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP;
567 < #line 604 "MDLexer.cpp"
567 > #line 568 "MDLexer.cpp"
568          }
569          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
570             _token = makeToken(_ttype);
# Line 611 | Line 575 | void MDLexer::mEndOfLine(bool _createToken) {
575   }
576  
577   void MDLexer::mEndOfLine(bool _createToken) {
578 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
578 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
579          _ttype = EndOfLine;
580 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
580 >        int _saveIndex;
581          
582          {
583          if ((LA(1) == 0xd /* '\r' */ ) && (LA(2) == 0xa /* '\n' */ ) && (true)) {
584                  match("\r\n");
585          }
586          else if ((LA(1) == 0xd /* '\r' */ ) && (true) && (true)) {
587 <                match('\r' /* charlit */ );
587 >                match('\r');
588          }
589          else if ((LA(1) == 0xa /* '\n' */ )) {
590 <                match('\n' /* charlit */ );
590 >                match('\n');
591          }
592          else {
593                  throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
# Line 639 | Line 603 | void MDLexer::mCPPComment(bool _createToken) {
603   }
604  
605   void MDLexer::mCPPComment(bool _createToken) {
606 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
606 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
607          _ttype = CPPComment;
608 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
608 >        int _saveIndex;
609          
610          match("//");
611          { // ( ... )*
# Line 652 | Line 616 | void MDLexer::mCPPComment(bool _createToken) {
616                          }
617                  }
618                  else {
619 <                        goto _loop85;
619 >                        goto _loop87;
620                  }
621                  
622          }
623 <        _loop85:;
623 >        _loop87:;
624          } // ( ... )*
625          mEndOfLine(false);
626          if ( inputState->guessing==0 ) {
627 < #line 286 "MDParser.g"
627 > #line 251 "MDParser.g"
628                  _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP; newline();
629 < #line 666 "MDLexer.cpp"
629 > #line 630 "MDLexer.cpp"
630          }
631          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
632             _token = makeToken(_ttype);
# Line 673 | Line 637 | void MDLexer::mPREPROC_DIRECTIVE(bool _createToken) {
637   }
638  
639   void MDLexer::mPREPROC_DIRECTIVE(bool _createToken) {
640 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
640 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
641          _ttype = PREPROC_DIRECTIVE;
642 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
642 >        int _saveIndex;
643          
644 <        match('#' /* charlit */ );
644 >        match('#');
645          mLineDirective(false);
646          if ( inputState->guessing==0 ) {
647 < #line 293 "MDParser.g"
647 > #line 258 "MDParser.g"
648                  _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP; newline();
649 < #line 686 "MDLexer.cpp"
649 > #line 650 "MDLexer.cpp"
650          }
651          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
652             _token = makeToken(_ttype);
# Line 693 | Line 657 | void MDLexer::mLineDirective(bool _createToken) {
657   }
658  
659   void MDLexer::mLineDirective(bool _createToken) {
660 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
660 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
661          _ttype = LineDirective;
662 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
662 >        int _saveIndex;
663          ANTLR_USE_NAMESPACE(antlr)RefToken n;
664          ANTLR_USE_NAMESPACE(antlr)RefToken sl;
665          
666          if ( inputState->guessing==0 ) {
667 < #line 299 "MDParser.g"
667 > #line 264 "MDParser.g"
668                  
669                  deferredLineCount = 0;
670                  
671 < #line 708 "MDLexer.cpp"
671 > #line 672 "MDLexer.cpp"
672          }
673          {
674          switch ( LA(1)) {
# Line 726 | Line 690 | void MDLexer::mLineDirective(bool _createToken) {
690          }
691          }
692          { // ( ... )+
693 <        int _cnt90=0;
693 >        int _cnt92=0;
694          for (;;) {
695                  if ((LA(1) == 0x9 /* '\t' */  || LA(1) == 0xc /* '\14' */  || LA(1) == 0x20 /* ' ' */ )) {
696                          mSpace(false);
697                  }
698                  else {
699 <                        if ( _cnt90>=1 ) { goto _loop90; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
699 >                        if ( _cnt92>=1 ) { goto _loop92; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
700                  }
701                  
702 <                _cnt90++;
702 >                _cnt92++;
703          }
704 <        _loop90:;
704 >        _loop92:;
705          }  // ( ... )+
706          mDecimal(true);
707          n=_returnToken;
708          if ( inputState->guessing==0 ) {
709 < #line 304 "MDParser.g"
709 > #line 269 "MDParser.g"
710                  setLine(oopse::lexi_cast<int>(n->getText()) - 1);
711 < #line 748 "MDLexer.cpp"
711 > #line 712 "MDLexer.cpp"
712          }
713          { // ( ... )+
714 <        int _cnt92=0;
714 >        int _cnt94=0;
715          for (;;) {
716                  if ((LA(1) == 0x9 /* '\t' */  || LA(1) == 0xc /* '\14' */  || LA(1) == 0x20 /* ' ' */ )) {
717                          mSpace(false);
718                  }
719                  else {
720 <                        if ( _cnt92>=1 ) { goto _loop92; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
720 >                        if ( _cnt94>=1 ) { goto _loop94; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
721                  }
722                  
723 <                _cnt92++;
723 >                _cnt94++;
724          }
725 <        _loop92:;
725 >        _loop94:;
726          }  // ( ... )+
727          {
728          mStringLiteral(true);
729          sl=_returnToken;
730          }
731          if ( inputState->guessing==0 ) {
732 < #line 306 "MDParser.g"
732 > #line 271 "MDParser.g"
733                  std::string filename = sl->getText().substr(1,sl->getText().length()-2); observer->notify(filename);
734 < #line 771 "MDLexer.cpp"
734 > #line 735 "MDLexer.cpp"
735          }
736          { // ( ... )*
737          for (;;) {
738                  if ((LA(1) == 0x9 /* '\t' */  || LA(1) == 0xc /* '\14' */  || LA(1) == 0x20 /* ' ' */ )) {
739                          { // ( ... )+
740 <                        int _cnt96=0;
740 >                        int _cnt98=0;
741                          for (;;) {
742                                  if ((LA(1) == 0x9 /* '\t' */  || LA(1) == 0xc /* '\14' */  || LA(1) == 0x20 /* ' ' */ )) {
743                                          mSpace(false);
744                                  }
745                                  else {
746 <                                        if ( _cnt96>=1 ) { goto _loop96; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
746 >                                        if ( _cnt98>=1 ) { goto _loop98; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
747                                  }
748                                  
749 <                                _cnt96++;
749 >                                _cnt98++;
750                          }
751 <                        _loop96:;
751 >                        _loop98:;
752                          }  // ( ... )+
753                          mDecimal(false);
754                  }
755                  else {
756 <                        goto _loop97;
756 >                        goto _loop99;
757                  }
758                  
759          }
760 <        _loop97:;
760 >        _loop99:;
761          } // ( ... )*
762          mEndOfLine(false);
763          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
# Line 805 | Line 769 | void MDLexer::mSpace(bool _createToken) {
769   }
770  
771   void MDLexer::mSpace(bool _createToken) {
772 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
772 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
773          _ttype = Space;
774 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
774 >        int _saveIndex;
775          
776          {
777          switch ( LA(1)) {
778          case 0x20 /* ' ' */ :
779          {
780 <                match(' ' /* charlit */ );
780 >                match(' ');
781                  break;
782          }
783          case 0x9 /* '\t' */ :
784          {
785 <                match('\t' /* charlit */ );
785 >                match('\t');
786                  break;
787          }
788          case 0xc /* '\14' */ :
789          {
790 <                match('\14' /* charlit */ );
790 >                match('\14');
791                  break;
792          }
793          default:
# Line 841 | Line 805 | void MDLexer::mDecimal(bool _createToken) {
805   }
806  
807   void MDLexer::mDecimal(bool _createToken) {
808 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
808 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
809          _ttype = Decimal;
810 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
810 >        int _saveIndex;
811          
812          { // ( ... )+
813 <        int _cnt122=0;
813 >        int _cnt129=0;
814          for (;;) {
815                  if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
816                          matchRange('0','9');
817                  }
818                  else {
819 <                        if ( _cnt122>=1 ) { goto _loop122; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
819 >                        if ( _cnt129>=1 ) { goto _loop129; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
820                  }
821                  
822 <                _cnt122++;
822 >                _cnt129++;
823          }
824 <        _loop122:;
824 >        _loop129:;
825          }  // ( ... )+
826          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
827             _token = makeToken(_ttype);
# Line 868 | Line 832 | void MDLexer::mStringLiteral(bool _createToken) {
832   }
833  
834   void MDLexer::mStringLiteral(bool _createToken) {
835 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
835 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
836          _ttype = StringLiteral;
837 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
837 >        int _saveIndex;
838          
839 <        match('\"' /* charlit */ );
839 >        match('"');
840          { // ( ... )*
841          for (;;) {
842                  if ((LA(1) == 0x5c /* '\\' */ ) && (_tokenSet_2.member(LA(2)))) {
# Line 881 | Line 845 | void MDLexer::mStringLiteral(bool _createToken) {
845                  else if ((LA(1) == 0x5c /* '\\' */ ) && (LA(2) == 0xa /* '\n' */  || LA(2) == 0xd /* '\r' */ )) {
846                          {
847                          if ((LA(1) == 0x5c /* '\\' */ ) && (LA(2) == 0xd /* '\r' */ ) && (LA(3) == 0xa /* '\n' */ )) {
848 <                                match("\\\r\n");
848 >                                match("\\r\n");
849                          }
850                          else if ((LA(1) == 0x5c /* '\\' */ ) && (LA(2) == 0xd /* '\r' */ ) && (_tokenSet_1.member(LA(3)))) {
851 <                                match("\\\r");
851 >                                match("\\r");
852                          }
853                          else if ((LA(1) == 0x5c /* '\\' */ ) && (LA(2) == 0xa /* '\n' */ )) {
854 <                                match("\\\n");
854 >                                match("\\n");
855                          }
856                          else {
857                                  throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
# Line 895 | Line 859 | void MDLexer::mStringLiteral(bool _createToken) {
859                          
860                          }
861                          if ( inputState->guessing==0 ) {
862 < #line 346 "MDParser.g"
862 > #line 311 "MDParser.g"
863                                  deferredNewline();
864 < #line 901 "MDLexer.cpp"
864 > #line 865 "MDLexer.cpp"
865                          }
866                  }
867                  else if ((_tokenSet_3.member(LA(1)))) {
# Line 906 | Line 870 | void MDLexer::mStringLiteral(bool _createToken) {
870                          }
871                  }
872                  else {
873 <                        goto _loop107;
873 >                        goto _loop109;
874                  }
875                  
876          }
877 <        _loop107:;
877 >        _loop109:;
878          } // ( ... )*
879 <        match('\"' /* charlit */ );
879 >        match('"');
880          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
881             _token = makeToken(_ttype);
882             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 922 | Line 886 | void MDLexer::mCharLiteral(bool _createToken) {
886   }
887  
888   void MDLexer::mCharLiteral(bool _createToken) {
889 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
889 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
890          _ttype = CharLiteral;
891 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
891 >        int _saveIndex;
892          
893 <        match('\'' /* charlit */ );
893 >        match('\'');
894          {
895          if ((LA(1) == 0x5c /* '\\' */ ) && (_tokenSet_2.member(LA(2))) && (_tokenSet_4.member(LA(3)))) {
896                  mEscape(false);
# Line 941 | Line 905 | void MDLexer::mCharLiteral(bool _createToken) {
905          }
906          
907          }
908 <        match('\'' /* charlit */ );
908 >        match('\'');
909          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
910             _token = makeToken(_ttype);
911             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 951 | Line 915 | void MDLexer::mEscape(bool _createToken) {
915   }
916  
917   void MDLexer::mEscape(bool _createToken) {
918 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
918 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
919          _ttype = Escape;
920 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
920 >        int _saveIndex;
921          
922 <        match('\\' /* charlit */ );
922 >        match('\\');
923          {
924          switch ( LA(1)) {
925          case 0x61 /* 'a' */ :
926          {
927 <                match('a' /* charlit */ );
927 >                match('a');
928                  break;
929          }
930          case 0x62 /* 'b' */ :
931          {
932 <                match('b' /* charlit */ );
932 >                match('b');
933                  break;
934          }
935          case 0x66 /* 'f' */ :
936          {
937 <                match('f' /* charlit */ );
937 >                match('f');
938                  break;
939          }
940          case 0x6e /* 'n' */ :
941          {
942 <                match('n' /* charlit */ );
942 >                match('n');
943                  break;
944          }
945          case 0x72 /* 'r' */ :
946          {
947 <                match('r' /* charlit */ );
947 >                match('r');
948                  break;
949          }
950          case 0x74 /* 't' */ :
951          {
952 <                match('t' /* charlit */ );
952 >                match('t');
953                  break;
954          }
955          case 0x76 /* 'v' */ :
956          {
957 <                match('v' /* charlit */ );
957 >                match('v');
958                  break;
959          }
960 <        case 0x22 /* '\"' */ :
960 >        case 0x22 /* '"' */ :
961          {
962 <                match('\"' /* charlit */ );
962 >                match('"');
963                  break;
964          }
965          case 0x27 /* '\'' */ :
966          {
967 <                match('\'' /* charlit */ );
967 >                match('\'');
968                  break;
969          }
970          case 0x5c /* '\\' */ :
971          {
972 <                match('\\' /* charlit */ );
972 >                match('\\');
973                  break;
974          }
975          case 0x3f /* '?' */ :
976          {
977 <                match('?' /* charlit */ );
977 >                match('?');
978                  break;
979          }
980          case 0x30 /* '0' */ :
# Line 1068 | Line 1032 | void MDLexer::mEscape(bool _createToken) {
1032          }
1033          case 0x78 /* 'x' */ :
1034          {
1035 <                match('x' /* charlit */ );
1035 >                match('x');
1036                  { // ( ... )+
1037 <                int _cnt118=0;
1037 >                int _cnt120=0;
1038                  for (;;) {
1039                          if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ )) && (_tokenSet_1.member(LA(2))) && (true)) {
1040                                  mDigit(false);
# Line 1082 | Line 1046 | void MDLexer::mEscape(bool _createToken) {
1046                                  matchRange('A','F');
1047                          }
1048                          else {
1049 <                                if ( _cnt118>=1 ) { goto _loop118; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1049 >                                if ( _cnt120>=1 ) { goto _loop120; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1050                          }
1051                          
1052 <                        _cnt118++;
1052 >                        _cnt120++;
1053                  }
1054 <                _loop118:;
1054 >                _loop120:;
1055                  }  // ( ... )+
1056                  break;
1057          }
# Line 1106 | Line 1070 | void MDLexer::mDigit(bool _createToken) {
1070   }
1071  
1072   void MDLexer::mDigit(bool _createToken) {
1073 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
1073 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
1074          _ttype = Digit;
1075 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
1075 >        int _saveIndex;
1076          
1077          matchRange('0','9');
1078          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
# Line 1119 | Line 1083 | void MDLexer::mDigit(bool _createToken) {
1083          _saveIndex=0;
1084   }
1085  
1086 < void MDLexer::mLongSuffix(bool _createToken) {
1087 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
1088 <        _ttype = LongSuffix;
1089 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
1086 > void MDLexer::mVocabulary(bool _createToken) {
1087 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
1088 >        _ttype = Vocabulary;
1089 >        int _saveIndex;
1090          
1091 <        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 <        }
1091 >        matchRange('\3',static_cast<unsigned char>(255));
1092          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
1093             _token = makeToken(_ttype);
1094             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 1148 | Line 1097 | void MDLexer::mLongSuffix(bool _createToken) {
1097          _saveIndex=0;
1098   }
1099  
1100 < void MDLexer::mUnsignedSuffix(bool _createToken) {
1101 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
1102 <        _ttype = UnsignedSuffix;
1103 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
1100 > void MDLexer::mID(bool _createToken) {
1101 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
1102 >        _ttype = ID;
1103 >        int _saveIndex;
1104          
1105 +        {
1106          switch ( LA(1)) {
1107 +        case 0x61 /* 'a' */ :
1108 +        case 0x62 /* 'b' */ :
1109 +        case 0x63 /* 'c' */ :
1110 +        case 0x64 /* 'd' */ :
1111 +        case 0x65 /* 'e' */ :
1112 +        case 0x66 /* 'f' */ :
1113 +        case 0x67 /* 'g' */ :
1114 +        case 0x68 /* 'h' */ :
1115 +        case 0x69 /* 'i' */ :
1116 +        case 0x6a /* 'j' */ :
1117 +        case 0x6b /* 'k' */ :
1118 +        case 0x6c /* 'l' */ :
1119 +        case 0x6d /* 'm' */ :
1120 +        case 0x6e /* 'n' */ :
1121 +        case 0x6f /* 'o' */ :
1122 +        case 0x70 /* 'p' */ :
1123 +        case 0x71 /* 'q' */ :
1124 +        case 0x72 /* 'r' */ :
1125 +        case 0x73 /* 's' */ :
1126 +        case 0x74 /* 't' */ :
1127          case 0x75 /* 'u' */ :
1128 +        case 0x76 /* 'v' */ :
1129 +        case 0x77 /* 'w' */ :
1130 +        case 0x78 /* 'x' */ :
1131 +        case 0x79 /* 'y' */ :
1132 +        case 0x7a /* 'z' */ :
1133          {
1134 <                match('u' /* charlit */ );
1134 >                matchRange('a','z');
1135                  break;
1136          }
1137 +        case 0x41 /* 'A' */ :
1138 +        case 0x42 /* 'B' */ :
1139 +        case 0x43 /* 'C' */ :
1140 +        case 0x44 /* 'D' */ :
1141 +        case 0x45 /* 'E' */ :
1142 +        case 0x46 /* 'F' */ :
1143 +        case 0x47 /* 'G' */ :
1144 +        case 0x48 /* 'H' */ :
1145 +        case 0x49 /* 'I' */ :
1146 +        case 0x4a /* 'J' */ :
1147 +        case 0x4b /* 'K' */ :
1148 +        case 0x4c /* 'L' */ :
1149 +        case 0x4d /* 'M' */ :
1150 +        case 0x4e /* 'N' */ :
1151 +        case 0x4f /* 'O' */ :
1152 +        case 0x50 /* 'P' */ :
1153 +        case 0x51 /* 'Q' */ :
1154 +        case 0x52 /* 'R' */ :
1155 +        case 0x53 /* 'S' */ :
1156 +        case 0x54 /* 'T' */ :
1157          case 0x55 /* 'U' */ :
1158 +        case 0x56 /* 'V' */ :
1159 +        case 0x57 /* 'W' */ :
1160 +        case 0x58 /* 'X' */ :
1161 +        case 0x59 /* 'Y' */ :
1162 +        case 0x5a /* 'Z' */ :
1163          {
1164 <                match('U' /* charlit */ );
1164 >                matchRange('A','Z');
1165                  break;
1166          }
1167 <        default:
1167 >        case 0x5f /* '_' */ :
1168          {
1169 <                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 */ );
1169 >                match('_');
1170                  break;
1171          }
1191        case 0x46 /* 'F' */ :
1192        {
1193                match('F' /* charlit */ );
1194                break;
1195        }
1172          default:
1173          {
1174                  throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1175          }
1176          }
1177 +        }
1178 +        { // ( ... )*
1179 +        for (;;) {
1180 +                switch ( LA(1)) {
1181 +                case 0x61 /* 'a' */ :
1182 +                case 0x62 /* 'b' */ :
1183 +                case 0x63 /* 'c' */ :
1184 +                case 0x64 /* 'd' */ :
1185 +                case 0x65 /* 'e' */ :
1186 +                case 0x66 /* 'f' */ :
1187 +                case 0x67 /* 'g' */ :
1188 +                case 0x68 /* 'h' */ :
1189 +                case 0x69 /* 'i' */ :
1190 +                case 0x6a /* 'j' */ :
1191 +                case 0x6b /* 'k' */ :
1192 +                case 0x6c /* 'l' */ :
1193 +                case 0x6d /* 'm' */ :
1194 +                case 0x6e /* 'n' */ :
1195 +                case 0x6f /* 'o' */ :
1196 +                case 0x70 /* 'p' */ :
1197 +                case 0x71 /* 'q' */ :
1198 +                case 0x72 /* 'r' */ :
1199 +                case 0x73 /* 's' */ :
1200 +                case 0x74 /* 't' */ :
1201 +                case 0x75 /* 'u' */ :
1202 +                case 0x76 /* 'v' */ :
1203 +                case 0x77 /* 'w' */ :
1204 +                case 0x78 /* 'x' */ :
1205 +                case 0x79 /* 'y' */ :
1206 +                case 0x7a /* 'z' */ :
1207 +                {
1208 +                        matchRange('a','z');
1209 +                        break;
1210 +                }
1211 +                case 0x41 /* 'A' */ :
1212 +                case 0x42 /* 'B' */ :
1213 +                case 0x43 /* 'C' */ :
1214 +                case 0x44 /* 'D' */ :
1215 +                case 0x45 /* 'E' */ :
1216 +                case 0x46 /* 'F' */ :
1217 +                case 0x47 /* 'G' */ :
1218 +                case 0x48 /* 'H' */ :
1219 +                case 0x49 /* 'I' */ :
1220 +                case 0x4a /* 'J' */ :
1221 +                case 0x4b /* 'K' */ :
1222 +                case 0x4c /* 'L' */ :
1223 +                case 0x4d /* 'M' */ :
1224 +                case 0x4e /* 'N' */ :
1225 +                case 0x4f /* 'O' */ :
1226 +                case 0x50 /* 'P' */ :
1227 +                case 0x51 /* 'Q' */ :
1228 +                case 0x52 /* 'R' */ :
1229 +                case 0x53 /* 'S' */ :
1230 +                case 0x54 /* 'T' */ :
1231 +                case 0x55 /* 'U' */ :
1232 +                case 0x56 /* 'V' */ :
1233 +                case 0x57 /* 'W' */ :
1234 +                case 0x58 /* 'X' */ :
1235 +                case 0x59 /* 'Y' */ :
1236 +                case 0x5a /* 'Z' */ :
1237 +                {
1238 +                        matchRange('A','Z');
1239 +                        break;
1240 +                }
1241 +                case 0x5f /* '_' */ :
1242 +                {
1243 +                        match('_');
1244 +                        break;
1245 +                }
1246 +                case 0x30 /* '0' */ :
1247 +                case 0x31 /* '1' */ :
1248 +                case 0x32 /* '2' */ :
1249 +                case 0x33 /* '3' */ :
1250 +                case 0x34 /* '4' */ :
1251 +                case 0x35 /* '5' */ :
1252 +                case 0x36 /* '6' */ :
1253 +                case 0x37 /* '7' */ :
1254 +                case 0x38 /* '8' */ :
1255 +                case 0x39 /* '9' */ :
1256 +                {
1257 +                        matchRange('0','9');
1258 +                        break;
1259 +                }
1260 +                default:
1261 +                {
1262 +                        goto _loop125;
1263 +                }
1264 +                }
1265 +        }
1266 +        _loop125:;
1267 +        } // ( ... )*
1268 +        _ttype = testLiteralsTable(_ttype);
1269          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
1270             _token = makeToken(_ttype);
1271             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 1206 | Line 1274 | void MDLexer::mFloatSuffix(bool _createToken) {
1274          _saveIndex=0;
1275   }
1276  
1277 < void MDLexer::mExponent(bool _createToken) {
1278 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
1279 <        _ttype = Exponent;
1280 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
1277 > void MDLexer::mHEX_DIGIT(bool _createToken) {
1278 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
1279 >        _ttype = HEX_DIGIT;
1280 >        int _saveIndex;
1281          
1282          {
1283          switch ( LA(1)) {
1284 <        case 0x65 /* 'e' */ :
1284 >        case 0x30 /* '0' */ :
1285 >        case 0x31 /* '1' */ :
1286 >        case 0x32 /* '2' */ :
1287 >        case 0x33 /* '3' */ :
1288 >        case 0x34 /* '4' */ :
1289 >        case 0x35 /* '5' */ :
1290 >        case 0x36 /* '6' */ :
1291 >        case 0x37 /* '7' */ :
1292 >        case 0x38 /* '8' */ :
1293 >        case 0x39 /* '9' */ :
1294          {
1295 <                match('e' /* charlit */ );
1295 >                matchRange('0','9');
1296                  break;
1297          }
1298 +        case 0x41 /* 'A' */ :
1299 +        case 0x42 /* 'B' */ :
1300 +        case 0x43 /* 'C' */ :
1301 +        case 0x44 /* 'D' */ :
1302          case 0x45 /* 'E' */ :
1303 +        case 0x46 /* 'F' */ :
1304          {
1305 <                match('E' /* charlit */ );
1305 >                matchRange('A','F');
1306                  break;
1307          }
1308 +        case 0x61 /* 'a' */ :
1309 +        case 0x62 /* 'b' */ :
1310 +        case 0x63 /* 'c' */ :
1311          case 0x64 /* 'd' */ :
1312 +        case 0x65 /* 'e' */ :
1313 +        case 0x66 /* 'f' */ :
1314          {
1315 <                match('d' /* charlit */ );
1315 >                matchRange('a','f');
1316                  break;
1317          }
1231        case 0x44 /* 'D' */ :
1232        {
1233                match('D' /* charlit */ );
1234                break;
1235        }
1318          default:
1319          {
1320                  throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1321          }
1322          }
1323 +        }
1324 +        if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
1325 +           _token = makeToken(_ttype);
1326 +           _token->setText(text.substr(_begin, text.length()-_begin));
1327          }
1328 +        _returnToken = _token;
1329 +        _saveIndex=0;
1330 + }
1331 +
1332 + void MDLexer::mNUM_INT(bool _createToken) {
1333 +        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
1334 +        _ttype = NUM_INT;
1335 +        int _saveIndex;
1336 +        ANTLR_USE_NAMESPACE(antlr)RefToken f1;
1337 +        ANTLR_USE_NAMESPACE(antlr)RefToken f2;
1338 +        ANTLR_USE_NAMESPACE(antlr)RefToken f3;
1339 +        ANTLR_USE_NAMESPACE(antlr)RefToken f4;
1340 + #line 404 "MDParser.g"
1341 +        
1342 +                        bool isDecimal = false;
1343 +                        ANTLR_USE_NAMESPACE(antlr)RefToken t = ANTLR_USE_NAMESPACE(antlr)nullToken;
1344 +                
1345 + #line 1346 "MDLexer.cpp"
1346 +        
1347          {
1348          switch ( LA(1)) {
1349          case 0x2b /* '+' */ :
1350          {
1351 <                match('+' /* charlit */ );
1351 >                match('+');
1352                  break;
1353          }
1354          case 0x2d /* '-' */ :
1355          {
1356 <                match('-' /* charlit */ );
1356 >                match('-');
1357                  break;
1358          }
1359 +        case 0x2e /* '.' */ :
1360          case 0x30 /* '0' */ :
1361          case 0x31 /* '1' */ :
1362          case 0x32 /* '2' */ :
# Line 1270 | Line 1376 | void MDLexer::mExponent(bool _createToken) {
1376          }
1377          }
1378          }
1379 <        { // ( ... )+
1380 <        int _cnt130=0;
1381 <        for (;;) {
1382 <                if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1383 <                        mDigit(false);
1379 >        {
1380 >        switch ( LA(1)) {
1381 >        case 0x2e /* '.' */ :
1382 >        {
1383 >                match('.');
1384 >                if ( inputState->guessing==0 ) {
1385 > #line 411 "MDParser.g"
1386 >                        _ttype = DOT;
1387 > #line 1388 "MDLexer.cpp"
1388                  }
1389 <                else {
1390 <                        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 <                        {
1389 >                {
1390 >                if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1391                          { // ( ... )+
1392 <                        int _cnt135=0;
1392 >                        int _cnt137=0;
1393                          for (;;) {
1394                                  if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1395 <                                        mDigit(false);
1395 >                                        matchRange('0','9');
1396                                  }
1397                                  else {
1398 <                                        if ( _cnt135>=1 ) { goto _loop135; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1398 >                                        if ( _cnt137>=1 ) { goto _loop137; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1399                                  }
1400                                  
1401 <                                _cnt135++;
1401 >                                _cnt137++;
1402                          }
1403 <                        _loop135:;
1403 >                        _loop137:;
1404                          }  // ( ... )+
1405                          {
1406 <                        switch ( LA(1)) {
1407 <                        case 0x2e /* '.' */ :
1338 <                        {
1339 <                                match('.' /* charlit */ );
1340 <                                break;
1406 >                        if ((_tokenSet_6.member(LA(1))) && (_tokenSet_7.member(LA(2)))) {
1407 >                                mEXPONENT(false);
1408                          }
1409 <                        case 0x65 /* 'e' */ :
1343 <                        {
1344 <                                match('e' /* charlit */ );
1345 <                                break;
1409 >                        else {
1410                          }
1411 <                        case 0x45 /* 'E' */ :
1348 <                        {
1349 <                                match('E' /* charlit */ );
1350 <                                break;
1411 >                        
1412                          }
1352                        case 0x64 /* 'd' */ :
1413                          {
1414 <                                match('d' /* charlit */ );
1415 <                                break;
1414 >                        if ((_tokenSet_8.member(LA(1)))) {
1415 >                                mFLOAT_SUFFIX(true);
1416 >                                f1=_returnToken;
1417 >                                if ( inputState->guessing==0 ) {
1418 > #line 412 "MDParser.g"
1419 >                                        t=f1;
1420 > #line 1421 "MDLexer.cpp"
1421 >                                }
1422                          }
1423 <                        case 0x44 /* 'D' */ :
1358 <                        {
1359 <                                match('D' /* charlit */ );
1360 <                                break;
1423 >                        else {
1424                          }
1425 <                        default:
1363 <                        {
1364 <                                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1425 >                        
1426                          }
1427 +                        if ( inputState->guessing==0 ) {
1428 + #line 413 "MDParser.g"
1429 +                                
1430 +                                                                        if ( t &&
1431 +                                                                                  (t->getText().find('f') != ANTLR_USE_NAMESPACE(std)string::npos ||
1432 +                                                                                        t->getText().find('F') != ANTLR_USE_NAMESPACE(std)string::npos ) ) {
1433 +                                                                                _ttype = NUM_FLOAT;
1434 +                                                                        }
1435 +                                                                        else {
1436 +                                                                                _ttype = NUM_DOUBLE; // assume double
1437 +                                                                        }
1438 +                                                                
1439 + #line 1440 "MDLexer.cpp"
1440                          }
1367                        }
1368                        }
1441                  }
1442 <                catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
1371 <                        synPredMatched137 = false;
1442 >                else {
1443                  }
1444 <                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++;
1444 >                
1445                  }
1446 <                _loop139:;
1447 <                }  // ( ... )+
1446 >                break;
1447 >        }
1448 >        case 0x30 /* '0' */ :
1449 >        case 0x31 /* '1' */ :
1450 >        case 0x32 /* '2' */ :
1451 >        case 0x33 /* '3' */ :
1452 >        case 0x34 /* '4' */ :
1453 >        case 0x35 /* '5' */ :
1454 >        case 0x36 /* '6' */ :
1455 >        case 0x37 /* '7' */ :
1456 >        case 0x38 /* '8' */ :
1457 >        case 0x39 /* '9' */ :
1458 >        {
1459                  {
1460                  switch ( LA(1)) {
1461 <                case 0x2e /* '.' */ :
1461 >                case 0x30 /* '0' */ :
1462                  {
1463 <                        match('.' /* charlit */ );
1463 >                        match('0');
1464 >                        if ( inputState->guessing==0 ) {
1465 > #line 425 "MDParser.g"
1466 >                                isDecimal = true;
1467 > #line 1468 "MDLexer.cpp"
1468 >                        }
1469 >                        {
1470 >                        if ((LA(1) == 0x58 /* 'X' */  || LA(1) == 0x78 /* 'x' */ )) {
1471 >                                {
1472 >                                switch ( LA(1)) {
1473 >                                case 0x78 /* 'x' */ :
1474 >                                {
1475 >                                        match('x');
1476 >                                        break;
1477 >                                }
1478 >                                case 0x58 /* 'X' */ :
1479 >                                {
1480 >                                        match('X');
1481 >                                        break;
1482 >                                }
1483 >                                default:
1484 >                                {
1485 >                                        throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1486 >                                }
1487 >                                }
1488 >                                }
1489 >                                { // ( ... )+
1490 >                                int _cnt144=0;
1491 >                                for (;;) {
1492 >                                        if ((_tokenSet_9.member(LA(1))) && (true) && (true)) {
1493 >                                                mHEX_DIGIT(false);
1494 >                                        }
1495 >                                        else {
1496 >                                                if ( _cnt144>=1 ) { goto _loop144; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1497 >                                        }
1498 >                                        
1499 >                                        _cnt144++;
1500 >                                }
1501 >                                _loop144:;
1502 >                                }  // ( ... )+
1503 >                        }
1504 >                        else {
1505 >                                bool synPredMatched149 = false;
1506 >                                if ((((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ )) && (true) && (true))) {
1507 >                                        int _m149 = mark();
1508 >                                        synPredMatched149 = true;
1509 >                                        inputState->guessing++;
1510 >                                        try {
1511 >                                                {
1512 >                                                { // ( ... )+
1513 >                                                int _cnt147=0;
1514 >                                                for (;;) {
1515 >                                                        if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1516 >                                                                matchRange('0','9');
1517 >                                                        }
1518 >                                                        else {
1519 >                                                                if ( _cnt147>=1 ) { goto _loop147; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1520 >                                                        }
1521 >                                                        
1522 >                                                        _cnt147++;
1523 >                                                }
1524 >                                                _loop147:;
1525 >                                                }  // ( ... )+
1526 >                                                {
1527 >                                                if ((_tokenSet_6.member(LA(1))) && (_tokenSet_7.member(LA(2)))) {
1528 >                                                        mEXPONENT(false);
1529 >                                                }
1530 >                                                else if ((LA(1) == 0x2e /* '.' */ )) {
1531 >                                                        match('.');
1532 >                                                }
1533 >                                                else if ((_tokenSet_8.member(LA(1))) && (true)) {
1534 >                                                        mFLOAT_SUFFIX(false);
1535 >                                                }
1536 >                                                else {
1537 >                                                        throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1538 >                                                }
1539 >                                                
1540 >                                                }
1541 >                                                }
1542 >                                        }
1543 >                                        catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
1544 >                                                synPredMatched149 = false;
1545 >                                        }
1546 >                                        rewind(_m149);
1547 >                                        inputState->guessing--;
1548 >                                }
1549 >                                if ( synPredMatched149 ) {
1550 >                                        { // ( ... )+
1551 >                                        int _cnt151=0;
1552 >                                        for (;;) {
1553 >                                                if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1554 >                                                        matchRange('0','9');
1555 >                                                }
1556 >                                                else {
1557 >                                                        if ( _cnt151>=1 ) { goto _loop151; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1558 >                                                }
1559 >                                                
1560 >                                                _cnt151++;
1561 >                                        }
1562 >                                        _loop151:;
1563 >                                        }  // ( ... )+
1564 >                                }
1565 >                                else if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x37 /* '7' */ )) && (true) && (true)) {
1566 >                                        { // ( ... )+
1567 >                                        int _cnt153=0;
1568 >                                        for (;;) {
1569 >                                                if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x37 /* '7' */ ))) {
1570 >                                                        matchRange('0','7');
1571 >                                                }
1572 >                                                else {
1573 >                                                        if ( _cnt153>=1 ) { goto _loop153; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1574 >                                                }
1575 >                                                
1576 >                                                _cnt153++;
1577 >                                        }
1578 >                                        _loop153:;
1579 >                                        }  // ( ... )+
1580 >                                }
1581 >                                else {
1582 >                                }
1583 >                        }
1584 >                        }
1585 >                        break;
1586 >                }
1587 >                case 0x31 /* '1' */ :
1588 >                case 0x32 /* '2' */ :
1589 >                case 0x33 /* '3' */ :
1590 >                case 0x34 /* '4' */ :
1591 >                case 0x35 /* '5' */ :
1592 >                case 0x36 /* '6' */ :
1593 >                case 0x37 /* '7' */ :
1594 >                case 0x38 /* '8' */ :
1595 >                case 0x39 /* '9' */ :
1596 >                {
1597 >                        {
1598 >                        matchRange('1','9');
1599 >                        }
1600                          { // ( ... )*
1601                          for (;;) {
1602                                  if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1603 <                                        mDigit(false);
1603 >                                        matchRange('0','9');
1604                                  }
1605                                  else {
1606 <                                        goto _loop142;
1606 >                                        goto _loop156;
1607                                  }
1608                                  
1609                          }
1610 <                        _loop142:;
1610 >                        _loop156:;
1611                          } // ( ... )*
1408                        {
1409                        if ((_tokenSet_7.member(LA(1)))) {
1410                                mExponent(false);
1411                        }
1412                        else {
1413                        }
1414                        
1415                        }
1612                          if ( inputState->guessing==0 ) {
1613 < #line 451 "MDParser.g"
1614 <                                _ttype = FLOATONE;
1615 < #line 1420 "MDLexer.cpp"
1613 > #line 442 "MDParser.g"
1614 >                                isDecimal=true;
1615 > #line 1616 "MDLexer.cpp"
1616                          }
1617                          break;
1618                  }
1423                case 0x44 /* 'D' */ :
1424                case 0x45 /* 'E' */ :
1425                case 0x64 /* 'd' */ :
1426                case 0x65 /* 'e' */ :
1427                {
1428                        mExponent(false);
1429                        if ( inputState->guessing==0 ) {
1430 #line 452 "MDParser.g"
1431                                _ttype = FLOATTWO;
1432 #line 1433 "MDLexer.cpp"
1433                        }
1434                        break;
1435                }
1619                  default:
1620                  {
1621                          throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
# Line 1440 | Line 1623 | void MDLexer::mNumber(bool _createToken) {
1623                  }
1624                  }
1625                  {
1626 <                switch ( LA(1)) {
1627 <                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:
1457 <                        {
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 (;;) {
1626 >                if ((LA(1) == 0x4c /* 'L' */  || LA(1) == 0x6c /* 'l' */ )) {
1627 >                        {
1628                          switch ( LA(1)) {
1629 <                        case 0x61 /* 'a' */ :
1487 <                        case 0x62 /* 'b' */ :
1488 <                        case 0x63 /* 'c' */ :
1489 <                        case 0x64 /* 'd' */ :
1490 <                        case 0x65 /* 'e' */ :
1491 <                        case 0x66 /* 'f' */ :
1629 >                        case 0x6c /* 'l' */ :
1630                          {
1631 <                                matchRange('a','f');
1631 >                                match('l');
1632                                  break;
1633                          }
1634 <                        case 0x41 /* 'A' */ :
1497 <                        case 0x42 /* 'B' */ :
1498 <                        case 0x43 /* 'C' */ :
1499 <                        case 0x44 /* 'D' */ :
1500 <                        case 0x45 /* 'E' */ :
1501 <                        case 0x46 /* 'F' */ :
1634 >                        case 0x4c /* 'L' */ :
1635                          {
1636 <                                matchRange('A','F');
1636 >                                match('L');
1637                                  break;
1638                          }
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                        }
1639                          default:
1640                          {
1641 <                                if ( _cnt160>=1 ) { goto _loop160; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1641 >                                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1642                          }
1643                          }
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;
1644                          }
1645 <                        case 0x55 /* 'U' */ :
1646 <                        case 0x75 /* 'u' */ :
1647 <                        {
1648 <                                mUnsignedSuffix(false);
1542 <                                break;
1645 >                        if ( inputState->guessing==0 ) {
1646 > #line 444 "MDParser.g"
1647 >                                _ttype = NUM_LONG;
1648 > #line 1649 "MDLexer.cpp"
1649                          }
1650 <                        default:
1650 >                }
1651 >                else if (((_tokenSet_10.member(LA(1))))&&(isDecimal)) {
1652                          {
1653 <                                goto _loop162;
1653 >                        if ((_tokenSet_6.member(LA(1))) && (_tokenSet_7.member(LA(2)))) {
1654 >                                mEXPONENT(false);
1655 >                                {
1656 >                                if ((_tokenSet_8.member(LA(1)))) {
1657 >                                        mFLOAT_SUFFIX(true);
1658 >                                        f3=_returnToken;
1659 >                                        if ( inputState->guessing==0 ) {
1660 > #line 449 "MDParser.g"
1661 >                                                t=f3;
1662 > #line 1663 "MDLexer.cpp"
1663 >                                        }
1664 >                                }
1665 >                                else {
1666 >                                }
1667 >                                
1668 >                                }
1669                          }
1670 <                        }
1671 <                }
1672 <                _loop162:;
1673 <                } // ( ... )*
1674 <                if ( inputState->guessing==0 ) {
1675 < #line 480 "MDParser.g"
1676 <                        _ttype = HEXADECIMALINT;
1677 < #line 1556 "MDLexer.cpp"
1678 <                }
1679 <        }
1680 <        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);
1670 >                        else if ((LA(1) == 0x2e /* '.' */ )) {
1671 >                                match('.');
1672 >                                { // ( ... )*
1673 >                                for (;;) {
1674 >                                        if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1675 >                                                matchRange('0','9');
1676 >                                        }
1677 >                                        else {
1678 >                                                goto _loop161;
1679 >                                        }
1680 >                                        
1681                                  }
1682 +                                _loop161:;
1683 +                                } // ( ... )*
1684 +                                {
1685 +                                if ((_tokenSet_6.member(LA(1))) && (_tokenSet_7.member(LA(2)))) {
1686 +                                        mEXPONENT(false);
1687 +                                }
1688                                  else {
1574                                        if ( _cnt147>=1 ) { goto _loop147; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1689                                  }
1690                                  
1691 <                                _cnt147++;
1691 >                                }
1692 >                                {
1693 >                                if ((_tokenSet_8.member(LA(1)))) {
1694 >                                        mFLOAT_SUFFIX(true);
1695 >                                        f2=_returnToken;
1696 >                                        if ( inputState->guessing==0 ) {
1697 > #line 448 "MDParser.g"
1698 >                                                t=f2;
1699 > #line 1700 "MDLexer.cpp"
1700 >                                        }
1701 >                                }
1702 >                                else {
1703 >                                }
1704 >                                
1705 >                                }
1706                          }
1707 <                        _loop147:;
1708 <                        }  // ( ... )+
1709 <                        {
1710 <                        if ((_tokenSet_7.member(LA(1)))) {
1711 <                                mExponent(false);
1707 >                        else if ((_tokenSet_8.member(LA(1))) && (true)) {
1708 >                                mFLOAT_SUFFIX(true);
1709 >                                f4=_returnToken;
1710 >                                if ( inputState->guessing==0 ) {
1711 > #line 450 "MDParser.g"
1712 >                                        t=f4;
1713 > #line 1714 "MDLexer.cpp"
1714 >                                }
1715                          }
1716                          else {
1717 +                                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1718                          }
1719                          
1720                          }
1721                          if ( inputState->guessing==0 ) {
1722 < #line 459 "MDParser.g"
1723 <                                _ttype = FLOATONE;
1724 < #line 1593 "MDLexer.cpp"
1722 > #line 452 "MDParser.g"
1723 >                                
1724 >                                                                        if ( t &&
1725 >                                                                                  (t->getText().find('f') != ANTLR_USE_NAMESPACE(std)string::npos ||
1726 >                                                                                        t->getText().find('F') != ANTLR_USE_NAMESPACE(std)string::npos ) ) {
1727 >                                                                                _ttype = NUM_FLOAT;
1728 >                                                                        }
1729 >                                                                        else {
1730 >                                                                                _ttype = NUM_DOUBLE; // assume double
1731 >                                                                        }
1732 >                                                                
1733 > #line 1734 "MDLexer.cpp"
1734                          }
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                        }
1735                  }
1736                  else {
1737                  }
1738                  
1739                  }
1740 +                break;
1741          }
1742 <        else if ((LA(1) == 0x30 /* '0' */ ) && (true) && (true)) {
1743 <                match('0' /* charlit */ );
1744 <                { // ( ... )*
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 <                }
1742 >        default:
1743 >        {
1744 >                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1745          }
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                }
1746          }
1705        else {
1706                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1747          }
1708        
1748          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
1749             _token = makeToken(_ttype);
1750             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 1714 | Line 1753 | void MDLexer::mNumber(bool _createToken) {
1753          _saveIndex=0;
1754   }
1755  
1756 < void MDLexer::mID(bool _createToken) {
1757 <        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; ANTLR_USE_NAMESPACE(std)string::size_type _begin = text.length();
1758 <        _ttype = ID;
1759 <        ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
1756 > void MDLexer::mEXPONENT(bool _createToken) {
1757 >        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
1758 >        _ttype = EXPONENT;
1759 >        int _saveIndex;
1760          
1761          {
1762          switch ( LA(1)) {
1724        case 0x61 /* 'a' */ :
1725        case 0x62 /* 'b' */ :
1726        case 0x63 /* 'c' */ :
1727        case 0x64 /* 'd' */ :
1763          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' */ :
1764          {
1765 <                matchRange('a','z');
1765 >                match('e');
1766                  break;
1767          }
1754        case 0x41 /* 'A' */ :
1755        case 0x42 /* 'B' */ :
1756        case 0x43 /* 'C' */ :
1757        case 0x44 /* 'D' */ :
1768          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' */ :
1769          {
1770 <                matchRange('A','Z');
1770 >                match('E');
1771                  break;
1772          }
1773 <        case 0x5f /* '_' */ :
1773 >        case 0x64 /* 'd' */ :
1774          {
1775 <                match('_' /* charlit */ );
1775 >                match('d');
1776                  break;
1777          }
1778 +        case 0x44 /* 'D' */ :
1779 +        {
1780 +                match('D');
1781 +                break;
1782 +        }
1783          default:
1784          {
1785                  throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1786          }
1787          }
1788          }
1789 <        { // ( ... )*
1789 >        {
1790 >        switch ( LA(1)) {
1791 >        case 0x2b /* '+' */ :
1792 >        {
1793 >                match('+');
1794 >                break;
1795 >        }
1796 >        case 0x2d /* '-' */ :
1797 >        {
1798 >                match('-');
1799 >                break;
1800 >        }
1801 >        case 0x30 /* '0' */ :
1802 >        case 0x31 /* '1' */ :
1803 >        case 0x32 /* '2' */ :
1804 >        case 0x33 /* '3' */ :
1805 >        case 0x34 /* '4' */ :
1806 >        case 0x35 /* '5' */ :
1807 >        case 0x36 /* '6' */ :
1808 >        case 0x37 /* '7' */ :
1809 >        case 0x38 /* '8' */ :
1810 >        case 0x39 /* '9' */ :
1811 >        {
1812 >                break;
1813 >        }
1814 >        default:
1815 >        {
1816 >                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1817 >        }
1818 >        }
1819 >        }
1820 >        { // ( ... )+
1821 >        int _cnt169=0;
1822          for (;;) {
1823 <                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 <                {
1823 >                if (((LA(1) >= 0x30 /* '0' */  && LA(1) <= 0x39 /* '9' */ ))) {
1824                          matchRange('0','9');
1875                        break;
1825                  }
1826 <                default:
1827 <                {
1879 <                        goto _loop166;
1826 >                else {
1827 >                        if ( _cnt169>=1 ) { goto _loop169; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
1828                  }
1829 <                }
1829 >                
1830 >                _cnt169++;
1831          }
1832 <        _loop166:;
1833 <        } // ( ... )*
1885 <        _ttype = testLiteralsTable(_ttype);
1832 >        _loop169:;
1833 >        }  // ( ... )+
1834          if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
1835             _token = makeToken(_ttype);
1836             _token->setText(text.substr(_begin, text.length()-_begin));
# Line 1891 | Line 1839 | void MDLexer::mID(bool _createToken) {
1839          _saveIndex=0;
1840   }
1841  
1842 + void MDLexer::mFLOAT_SUFFIX(bool _createToken) {
1843 +        int _ttype; ANTLR_USE_NAMESPACE(antlr)RefToken _token; int _begin=text.length();
1844 +        _ttype = FLOAT_SUFFIX;
1845 +        int _saveIndex;
1846 +        
1847 +        switch ( LA(1)) {
1848 +        case 0x66 /* 'f' */ :
1849 +        {
1850 +                match('f');
1851 +                break;
1852 +        }
1853 +        case 0x46 /* 'F' */ :
1854 +        {
1855 +                match('F');
1856 +                break;
1857 +        }
1858 +        case 0x64 /* 'd' */ :
1859 +        {
1860 +                match('d');
1861 +                break;
1862 +        }
1863 +        case 0x44 /* 'D' */ :
1864 +        {
1865 +                match('D');
1866 +                break;
1867 +        }
1868 +        default:
1869 +        {
1870 +                throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
1871 +        }
1872 +        }
1873 +        if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
1874 +           _token = makeToken(_ttype);
1875 +           _token->setText(text.substr(_begin, text.length()-_begin));
1876 +        }
1877 +        _returnToken = _token;
1878 +        _saveIndex=0;
1879 + }
1880  
1881 < const unsigned long MDLexer::_tokenSet_0_data_[] = { 4294958079UL, 4294966271UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1882 < // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12
1883 < // 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f   !
1884 < // \" # $ % & \' ( ) + , - . / 0 1 2 3 4 5 6 7
1881 >
1882 > const unsigned long MDLexer::_tokenSet_0_data_[] = { 4294958072UL, 4294966271UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1883 > // 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12 0x13 0x14
1884 > // 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f   ! " # $ % &
1885 > // \' ( ) + , - . / 0 1 2 3 4
1886   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_0(_tokenSet_0_data_,16);
1887 < const unsigned long MDLexer::_tokenSet_1_data_[] = { 4294958079UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1888 < // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12
1889 < // 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f   !
1890 < // \" # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7
1887 > const unsigned long MDLexer::_tokenSet_1_data_[] = { 4294958072UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1888 > // 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12 0x13 0x14
1889 > // 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f   ! " # $ % &
1890 > // \' ( ) * + , - . / 0 1 2 3 4
1891   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_1(_tokenSet_1_data_,16);
1892   const unsigned long MDLexer::_tokenSet_2_data_[] = { 0UL, 2164195460UL, 268435456UL, 22298694UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1893 < // \" \' 0 1 2 3 4 5 6 7
1893 > // " \' 0 1 2 3 4
1894   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_2(_tokenSet_2_data_,10);
1895 < const unsigned long MDLexer::_tokenSet_3_data_[] = { 4294958079UL, 4294967291UL, 4026531839UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1896 < // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12
1897 < // 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f   !
1898 < // # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7
1895 > const unsigned long MDLexer::_tokenSet_3_data_[] = { 4294958072UL, 4294967291UL, 4026531839UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1896 > // 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12 0x13 0x14
1897 > // 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f   ! # $ % & \'
1898 > // ( ) * + , - . / 0 1 2 3 4
1899   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_3(_tokenSet_3_data_,16);
1900   const unsigned long MDLexer::_tokenSet_4_data_[] = { 0UL, 67043456UL, 126UL, 126UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1901 < // \' 0 1 2 3 4 5 6 7
1901 > // \' 0 1 2 3 4
1902   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_4(_tokenSet_4_data_,10);
1903 < const unsigned long MDLexer::_tokenSet_5_data_[] = { 4294967295UL, 4294967167UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1904 < // 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10
1905 < // 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e
1906 < // 0x1f   ! \" # $ % & ( ) * + , - . / 0 1 2 3 4 5 6 7
1903 > const unsigned long MDLexer::_tokenSet_5_data_[] = { 4294967288UL, 4294967167UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1904 > // 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x11 0x12 0x13
1905 > // 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f   ! " #
1906 > // $ % & ( ) * + , - . / 0 1 2 3 4
1907   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_5(_tokenSet_5_data_,16);
1908 < 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
1908 > const unsigned long MDLexer::_tokenSet_6_data_[] = { 0UL, 0UL, 48UL, 48UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1909   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_6(_tokenSet_6_data_,10);
1910 < const unsigned long MDLexer::_tokenSet_7_data_[] = { 0UL, 0UL, 48UL, 48UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1910 > const unsigned long MDLexer::_tokenSet_7_data_[] = { 0UL, 67053568UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1911 > // + - 0 1 2 3 4
1912   const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_7(_tokenSet_7_data_,10);
1913 + const unsigned long MDLexer::_tokenSet_8_data_[] = { 0UL, 0UL, 80UL, 80UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1914 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_8(_tokenSet_8_data_,10);
1915 + const unsigned long MDLexer::_tokenSet_9_data_[] = { 0UL, 67043328UL, 126UL, 126UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1916 + // 0 1 2 3 4
1917 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_9(_tokenSet_9_data_,10);
1918 + const unsigned long MDLexer::_tokenSet_10_data_[] = { 0UL, 16384UL, 112UL, 112UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
1919 + // .
1920 + const ANTLR_USE_NAMESPACE(antlr)BitSet MDLexer::_tokenSet_10(_tokenSet_10_data_,10);
1921  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines