001// $ANTLR 2.7.7 (20060906): "distinguishedName.g" -> "AntlrDnLexer.java"$ 002 003/* 004 * Licensed to the Apache Software Foundation (ASF) under one 005 * or more contributor license agreements. See the NOTICE file 006 * distributed with this work for additional information 007 * regarding copyright ownership. The ASF licenses this file 008 * to you under the Apache License, Version 2.0 (the 009 * "License"); you may not use this file except in compliance 010 * with the License. You may obtain a copy of the License at 011 * 012 * https://www.apache.org/licenses/LICENSE-2.0 013 * 014 * Unless required by applicable law or agreed to in writing, 015 * software distributed under the License is distributed on an 016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 017 * KIND, either express or implied. See the License for the 018 * specific language governing permissions and limitations 019 * under the License. 020 * 021 */ 022package org.apache.directory.api.ldap.model.name; 023 024import java.io.StringReader; 025import java.util.ArrayList; 026import java.util.HashMap; 027import java.util.List; 028import java.util.Map; 029 030import org.apache.directory.api.ldap.model.exception.LdapInvalidDnException; 031import org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueException; 032import javax.naming.NameParser; 033import org.apache.directory.api.ldap.model.entry.Value; 034import org.apache.directory.api.ldap.model.schema.SchemaManager; 035import org.apache.directory.api.ldap.model.schema.AttributeType; 036import org.apache.directory.api.util.ExpansibleByteBuffer; 037import org.apache.directory.api.util.Strings; 038import org.apache.directory.api.util.Unicode; 039 040import java.io.InputStream; 041import antlr.TokenStreamException; 042import antlr.TokenStreamIOException; 043import antlr.TokenStreamRecognitionException; 044import antlr.CharStreamException; 045import antlr.CharStreamIOException; 046import antlr.ANTLRException; 047import java.io.Reader; 048import java.util.Hashtable; 049import antlr.CharScanner; 050import antlr.InputBuffer; 051import antlr.ByteBuffer; 052import antlr.CharBuffer; 053import antlr.Token; 054import antlr.CommonToken; 055import antlr.RecognitionException; 056import antlr.NoViableAltForCharException; 057import antlr.MismatchedCharException; 058import antlr.TokenStream; 059import antlr.ANTLRHashString; 060import antlr.LexerSharedInputState; 061import antlr.collections.impl.BitSet; 062import antlr.SemanticException; 063 064/** 065 * An antlr generated Dn lexer. 066 * 067 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a> 068 */ 069public class AntlrDnLexer extends antlr.CharScanner implements AntlrDnTokenTypes, TokenStream 070 { 071public AntlrDnLexer(InputStream in) { 072 this(new ByteBuffer(in)); 073} 074public AntlrDnLexer(Reader in) { 075 this(new CharBuffer(in)); 076} 077public AntlrDnLexer(InputBuffer ib) { 078 this(new LexerSharedInputState(ib)); 079} 080public AntlrDnLexer(LexerSharedInputState state) { 081 super(state); 082 caseSensitiveLiterals = true; 083 setCaseSensitive(false); 084 literals = new Hashtable(); 085} 086 087public Token nextToken() throws TokenStreamException { 088 Token theRetToken=null; 089tryAgain: 090 for (;;) { 091 Token _token = null; 092 int _ttype = Token.INVALID_TYPE; 093 resetText(); 094 try { // for char stream error handling 095 try { // for lexical error handling 096 switch ( LA(1)) { 097 case ',': 098 { 099 mCOMMA(true); 100 theRetToken=_returnToken; 101 break; 102 } 103 case '=': 104 { 105 mEQUALS(true); 106 theRetToken=_returnToken; 107 break; 108 } 109 case '+': 110 { 111 mPLUS(true); 112 theRetToken=_returnToken; 113 break; 114 } 115 case '-': 116 { 117 mHYPHEN(true); 118 theRetToken=_returnToken; 119 break; 120 } 121 case '_': 122 { 123 mUNDERSCORE(true); 124 theRetToken=_returnToken; 125 break; 126 } 127 case '"': 128 { 129 mDQUOTE(true); 130 theRetToken=_returnToken; 131 break; 132 } 133 case ';': 134 { 135 mSEMI(true); 136 theRetToken=_returnToken; 137 break; 138 } 139 case '<': 140 { 141 mLANGLE(true); 142 theRetToken=_returnToken; 143 break; 144 } 145 case '>': 146 { 147 mRANGLE(true); 148 theRetToken=_returnToken; 149 break; 150 } 151 case ' ': 152 { 153 mSPACE(true); 154 theRetToken=_returnToken; 155 break; 156 } 157 case '0': case '1': case '2': case '3': 158 case '4': case '5': case '6': case '7': 159 case '8': case '9': case 'a': case 'b': 160 case 'c': case 'd': case 'e': case 'f': 161 case 'g': case 'h': case 'i': case 'j': 162 case 'k': case 'l': case 'm': case 'n': 163 case 'o': case 'p': case 'q': case 'r': 164 case 's': case 't': case 'u': case 'v': 165 case 'w': case 'x': case 'y': case 'z': 166 { 167 mNUMERICOID_OR_ALPHA_OR_DIGIT(true); 168 theRetToken=_returnToken; 169 break; 170 } 171 case '\\': 172 { 173 mHEXPAIR_OR_ESCESC_ESCSHARP_OR_ESC(true); 174 theRetToken=_returnToken; 175 break; 176 } 177 case '#': 178 { 179 mHEXVALUE_OR_SHARP(true); 180 theRetToken=_returnToken; 181 break; 182 } 183 case '\u0001': case '\u0002': case '\u0003': case '\u0004': 184 case '\u0005': case '\u0006': case '\u0007': case '\u0008': 185 case '\t': case '\n': case '\u000b': case '\u000c': 186 case '\r': case '\u000e': case '\u000f': case '\u0010': 187 case '\u0011': case '\u0012': case '\u0013': case '\u0014': 188 case '\u0015': case '\u0016': case '\u0017': case '\u0018': 189 case '\u0019': case '\u001a': case '\u001b': case '\u001c': 190 case '\u001d': case '\u001e': case '\u001f': case '!': 191 case '$': case '%': case '&': case '\'': 192 case '(': case ')': case '*': case '.': 193 case '/': case ':': case '?': case '@': 194 case '[': case ']': case '^': case '`': 195 case '{': case '|': case '}': case '~': 196 case '\u007f': 197 { 198 mCHAR_REST(true); 199 theRetToken=_returnToken; 200 break; 201 } 202 default: 203 if (((LA(1) >= '\u0080' && LA(1) <= '\ufffe'))) { 204 mUTFMB(true); 205 theRetToken=_returnToken; 206 } 207 else { 208 if (LA(1)==EOF_CHAR) {uponEOF(); _returnToken = makeToken(Token.EOF_TYPE);} 209 else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} 210 } 211 } 212 if ( _returnToken==null ) continue tryAgain; // found SKIP token 213 _ttype = _returnToken.getType(); 214 _ttype = testLiteralsTable(_ttype); 215 _returnToken.setType(_ttype); 216 return _returnToken; 217 } 218 catch (RecognitionException e) { 219 throw new TokenStreamRecognitionException(e); 220 } 221 } 222 catch (CharStreamException cse) { 223 if ( cse instanceof CharStreamIOException ) { 224 throw new TokenStreamIOException(((CharStreamIOException)cse).io); 225 } 226 else { 227 throw new TokenStreamException(cse.getMessage()); 228 } 229 } 230 } 231} 232 233 public final void mCOMMA(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 234 int _ttype; Token _token=null; int _begin=text.length(); 235 _ttype = COMMA; 236 int _saveIndex; 237 238 match(','); 239 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 240 _token = makeToken(_ttype); 241 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 242 } 243 _returnToken = _token; 244 } 245 246 public final void mEQUALS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 247 int _ttype; Token _token=null; int _begin=text.length(); 248 _ttype = EQUALS; 249 int _saveIndex; 250 251 match('='); 252 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 253 _token = makeToken(_ttype); 254 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 255 } 256 _returnToken = _token; 257 } 258 259 public final void mPLUS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 260 int _ttype; Token _token=null; int _begin=text.length(); 261 _ttype = PLUS; 262 int _saveIndex; 263 264 match('+'); 265 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 266 _token = makeToken(_ttype); 267 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 268 } 269 _returnToken = _token; 270 } 271 272 public final void mHYPHEN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 273 int _ttype; Token _token=null; int _begin=text.length(); 274 _ttype = HYPHEN; 275 int _saveIndex; 276 277 match('-'); 278 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 279 _token = makeToken(_ttype); 280 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 281 } 282 _returnToken = _token; 283 } 284 285 public final void mUNDERSCORE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 286 int _ttype; Token _token=null; int _begin=text.length(); 287 _ttype = UNDERSCORE; 288 int _saveIndex; 289 290 match('_'); 291 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 292 _token = makeToken(_ttype); 293 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 294 } 295 _returnToken = _token; 296 } 297 298 public final void mDQUOTE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 299 int _ttype; Token _token=null; int _begin=text.length(); 300 _ttype = DQUOTE; 301 int _saveIndex; 302 303 match('"'); 304 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 305 _token = makeToken(_ttype); 306 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 307 } 308 _returnToken = _token; 309 } 310 311 public final void mSEMI(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 312 int _ttype; Token _token=null; int _begin=text.length(); 313 _ttype = SEMI; 314 int _saveIndex; 315 316 match(';'); 317 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 318 _token = makeToken(_ttype); 319 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 320 } 321 _returnToken = _token; 322 } 323 324 public final void mLANGLE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 325 int _ttype; Token _token=null; int _begin=text.length(); 326 _ttype = LANGLE; 327 int _saveIndex; 328 329 match('<'); 330 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 331 _token = makeToken(_ttype); 332 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 333 } 334 _returnToken = _token; 335 } 336 337 public final void mRANGLE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 338 int _ttype; Token _token=null; int _begin=text.length(); 339 _ttype = RANGLE; 340 int _saveIndex; 341 342 match('>'); 343 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 344 _token = makeToken(_ttype); 345 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 346 } 347 _returnToken = _token; 348 } 349 350 public final void mSPACE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 351 int _ttype; Token _token=null; int _begin=text.length(); 352 _ttype = SPACE; 353 int _saveIndex; 354 355 match(' '); 356 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 357 _token = makeToken(_ttype); 358 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 359 } 360 _returnToken = _token; 361 } 362 363 public final void mNUMERICOID_OR_ALPHA_OR_DIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 364 int _ttype; Token _token=null; int _begin=text.length(); 365 _ttype = NUMERICOID_OR_ALPHA_OR_DIGIT; 366 int _saveIndex; 367 368 boolean synPredMatched13 = false; 369 if (((_tokenSet_0.member(LA(1))) && (_tokenSet_1.member(LA(2))))) { 370 int _m13 = mark(); 371 synPredMatched13 = true; 372 inputState.guessing++; 373 try { 374 { 375 mNUMERICOID(false); 376 } 377 } 378 catch (RecognitionException pe) { 379 synPredMatched13 = false; 380 } 381 rewind(_m13); 382inputState.guessing--; 383 } 384 if ( synPredMatched13 ) { 385 mNUMERICOID(false); 386 if ( inputState.guessing==0 ) { 387 _ttype = NUMERICOID; 388 } 389 } 390 else { 391 boolean synPredMatched15 = false; 392 if ((((LA(1) >= '0' && LA(1) <= '9')) && (true))) { 393 int _m15 = mark(); 394 synPredMatched15 = true; 395 inputState.guessing++; 396 try { 397 { 398 mDIGIT(false); 399 } 400 } 401 catch (RecognitionException pe) { 402 synPredMatched15 = false; 403 } 404 rewind(_m15); 405inputState.guessing--; 406 } 407 if ( synPredMatched15 ) { 408 mDIGIT(false); 409 if ( inputState.guessing==0 ) { 410 _ttype = DIGIT; 411 } 412 } 413 else { 414 boolean synPredMatched17 = false; 415 if ((((LA(1) >= 'a' && LA(1) <= 'z')) && (true))) { 416 int _m17 = mark(); 417 synPredMatched17 = true; 418 inputState.guessing++; 419 try { 420 { 421 mALPHA(false); 422 } 423 } 424 catch (RecognitionException pe) { 425 synPredMatched17 = false; 426 } 427 rewind(_m17); 428inputState.guessing--; 429 } 430 if ( synPredMatched17 ) { 431 mALPHA(false); 432 if ( inputState.guessing==0 ) { 433 _ttype = ALPHA; 434 } 435 } 436 else { 437 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); 438 } 439 }} 440 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 441 _token = makeToken(_ttype); 442 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 443 } 444 _returnToken = _token; 445 } 446 447 protected final void mNUMERICOID(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 448 int _ttype; Token _token=null; int _begin=text.length(); 449 _ttype = NUMERICOID; 450 int _saveIndex; 451 452 { 453 switch ( LA(1)) { 454 case 'o': 455 { 456 match("oid."); 457 break; 458 } 459 case '0': case '1': case '2': case '3': 460 case '4': case '5': case '6': case '7': 461 case '8': case '9': 462 { 463 break; 464 } 465 default: 466 { 467 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); 468 } 469 } 470 } 471 mNUMBER(false); 472 { 473 int _cnt21=0; 474 _loop21: 475 do { 476 if ((LA(1)=='.')) { 477 mDOT(false); 478 mNUMBER(false); 479 } 480 else { 481 if ( _cnt21>=1 ) { break _loop21; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} 482 } 483 484 _cnt21++; 485 } while (true); 486 } 487 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 488 _token = makeToken(_ttype); 489 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 490 } 491 _returnToken = _token; 492 } 493 494 protected final void mDIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 495 int _ttype; Token _token=null; int _begin=text.length(); 496 _ttype = DIGIT; 497 int _saveIndex; 498 499 matchRange('0','9'); 500 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 501 _token = makeToken(_ttype); 502 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 503 } 504 _returnToken = _token; 505 } 506 507 protected final void mALPHA(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 508 int _ttype; Token _token=null; int _begin=text.length(); 509 _ttype = ALPHA; 510 int _saveIndex; 511 512 matchRange('a','z'); 513 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 514 _token = makeToken(_ttype); 515 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 516 } 517 _returnToken = _token; 518 } 519 520 protected final void mNUMBER(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 521 int _ttype; Token _token=null; int _begin=text.length(); 522 _ttype = NUMBER; 523 int _saveIndex; 524 525 if (((LA(1) >= '1' && LA(1) <= '9')) && ((LA(2) >= '0' && LA(2) <= '9'))) { 526 { 527 mLDIGIT(false); 528 { 529 int _cnt26=0; 530 _loop26: 531 do { 532 if (((LA(1) >= '0' && LA(1) <= '9'))) { 533 mDIGIT(false); 534 } 535 else { 536 if ( _cnt26>=1 ) { break _loop26; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} 537 } 538 539 _cnt26++; 540 } while (true); 541 } 542 } 543 } 544 else if (((LA(1) >= '0' && LA(1) <= '9')) && (true)) { 545 mDIGIT(false); 546 } 547 else { 548 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); 549 } 550 551 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 552 _token = makeToken(_ttype); 553 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 554 } 555 _returnToken = _token; 556 } 557 558 protected final void mDOT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 559 int _ttype; Token _token=null; int _begin=text.length(); 560 _ttype = DOT; 561 int _saveIndex; 562 563 match('.'); 564 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 565 _token = makeToken(_ttype); 566 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 567 } 568 _returnToken = _token; 569 } 570 571 protected final void mLDIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 572 int _ttype; Token _token=null; int _begin=text.length(); 573 _ttype = LDIGIT; 574 int _saveIndex; 575 576 matchRange('1','9'); 577 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 578 _token = makeToken(_ttype); 579 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 580 } 581 _returnToken = _token; 582 } 583 584 public final void mHEXPAIR_OR_ESCESC_ESCSHARP_OR_ESC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 585 int _ttype; Token _token=null; int _begin=text.length(); 586 _ttype = HEXPAIR_OR_ESCESC_ESCSHARP_OR_ESC; 587 int _saveIndex; 588 589 boolean synPredMatched32 = false; 590 if (((LA(1)=='\\') && (_tokenSet_2.member(LA(2))))) { 591 int _m32 = mark(); 592 synPredMatched32 = true; 593 inputState.guessing++; 594 try { 595 { 596 mESC(false); 597 mHEX(false); 598 mHEX(false); 599 } 600 } 601 catch (RecognitionException pe) { 602 synPredMatched32 = false; 603 } 604 rewind(_m32); 605inputState.guessing--; 606 } 607 if ( synPredMatched32 ) { 608 mHEXPAIR(false); 609 if ( inputState.guessing==0 ) { 610 _ttype = HEXPAIR; 611 } 612 } 613 else if ((LA(1)=='\\') && (LA(2)=='\\')) { 614 mESCESC(false); 615 if ( inputState.guessing==0 ) { 616 _ttype = ESCESC; 617 } 618 } 619 else if ((LA(1)=='\\') && (LA(2)=='#')) { 620 mESCSHARP(false); 621 if ( inputState.guessing==0 ) { 622 _ttype = ESCSHARP; 623 } 624 } 625 else if ((LA(1)=='\\') && (true)) { 626 mESC(false); 627 if ( inputState.guessing==0 ) { 628 _ttype = ESC; 629 } 630 } 631 else { 632 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); 633 } 634 635 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 636 _token = makeToken(_ttype); 637 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 638 } 639 _returnToken = _token; 640 } 641 642 protected final void mESC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 643 int _ttype; Token _token=null; int _begin=text.length(); 644 _ttype = ESC; 645 int _saveIndex; 646 647 match('\\'); 648 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 649 _token = makeToken(_ttype); 650 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 651 } 652 _returnToken = _token; 653 } 654 655 protected final void mHEX(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 656 int _ttype; Token _token=null; int _begin=text.length(); 657 _ttype = HEX; 658 int _saveIndex; 659 660 switch ( LA(1)) { 661 case '0': case '1': case '2': case '3': 662 case '4': case '5': case '6': case '7': 663 case '8': case '9': 664 { 665 mDIGIT(false); 666 break; 667 } 668 case 'a': case 'b': case 'c': case 'd': 669 case 'e': case 'f': 670 { 671 matchRange('a','f'); 672 break; 673 } 674 default: 675 { 676 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); 677 } 678 } 679 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 680 _token = makeToken(_ttype); 681 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 682 } 683 _returnToken = _token; 684 } 685 686 protected final void mHEXPAIR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 687 int _ttype; Token _token=null; int _begin=text.length(); 688 _ttype = HEXPAIR; 689 int _saveIndex; 690 691 _saveIndex=text.length(); 692 mESC(false); 693 text.setLength(_saveIndex); 694 mHEX(false); 695 mHEX(false); 696 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 697 _token = makeToken(_ttype); 698 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 699 } 700 _returnToken = _token; 701 } 702 703 protected final void mESCESC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 704 int _ttype; Token _token=null; int _begin=text.length(); 705 _ttype = ESCESC; 706 int _saveIndex; 707 708 mESC(false); 709 mESC(false); 710 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 711 _token = makeToken(_ttype); 712 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 713 } 714 _returnToken = _token; 715 } 716 717 protected final void mESCSHARP(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 718 int _ttype; Token _token=null; int _begin=text.length(); 719 _ttype = ESCSHARP; 720 int _saveIndex; 721 722 mESC(false); 723 mSHARP(false); 724 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 725 _token = makeToken(_ttype); 726 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 727 } 728 _returnToken = _token; 729 } 730 731 protected final void mSHARP(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 732 int _ttype; Token _token=null; int _begin=text.length(); 733 _ttype = SHARP; 734 int _saveIndex; 735 736 match('#'); 737 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 738 _token = makeToken(_ttype); 739 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 740 } 741 _returnToken = _token; 742 } 743 744 public final void mHEXVALUE_OR_SHARP(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 745 int _ttype; Token _token=null; int _begin=text.length(); 746 _ttype = HEXVALUE_OR_SHARP; 747 int _saveIndex; 748 749 boolean synPredMatched42 = false; 750 if (((LA(1)=='#') && (_tokenSet_2.member(LA(2))))) { 751 int _m42 = mark(); 752 synPredMatched42 = true; 753 inputState.guessing++; 754 try { 755 { 756 mSHARP(false); 757 { 758 int _cnt41=0; 759 _loop41: 760 do { 761 if ((_tokenSet_2.member(LA(1)))) { 762 mHEX(false); 763 mHEX(false); 764 } 765 else { 766 if ( _cnt41>=1 ) { break _loop41; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} 767 } 768 769 _cnt41++; 770 } while (true); 771 } 772 } 773 } 774 catch (RecognitionException pe) { 775 synPredMatched42 = false; 776 } 777 rewind(_m42); 778inputState.guessing--; 779 } 780 if ( synPredMatched42 ) { 781 mHEXVALUE(false); 782 if ( inputState.guessing==0 ) { 783 _ttype = HEXVALUE; 784 } 785 } 786 else if ((LA(1)=='#') && (true)) { 787 mSHARP(false); 788 if ( inputState.guessing==0 ) { 789 _ttype = SHARP; 790 } 791 } 792 else { 793 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); 794 } 795 796 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 797 _token = makeToken(_ttype); 798 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 799 } 800 _returnToken = _token; 801 } 802 803 protected final void mHEXVALUE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 804 int _ttype; Token _token=null; int _begin=text.length(); 805 _ttype = HEXVALUE; 806 int _saveIndex; 807 808 _saveIndex=text.length(); 809 mSHARP(false); 810 text.setLength(_saveIndex); 811 { 812 int _cnt45=0; 813 _loop45: 814 do { 815 if ((_tokenSet_2.member(LA(1)))) { 816 mHEX(false); 817 mHEX(false); 818 } 819 else { 820 if ( _cnt45>=1 ) { break _loop45; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} 821 } 822 823 _cnt45++; 824 } while (true); 825 } 826 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 827 _token = makeToken(_ttype); 828 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 829 } 830 _returnToken = _token; 831 } 832 833 public final void mUTFMB(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 834 int _ttype; Token _token=null; int _begin=text.length(); 835 _ttype = UTFMB; 836 int _saveIndex; 837 838 matchRange('\u0080','\uFFFE'); 839 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 840 _token = makeToken(_ttype); 841 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 842 } 843 _returnToken = _token; 844 } 845 846/** 847 * RFC 4514, Section 3: 848 * <pre> 849 * LUTF1 = %x01-1F / %x21 / %x24-2A / %x2D-3A / 850 * %x3D / %x3F-5B / %x5D-7F 851 * 852 * To avoid nondeterminism the following 853 * rules are excluded. These rules are 854 * explicitly added in the productions. 855 * EQUALS (0x3D) 856 * HYPHEN (0x2D) 857 * UNDERSCORE (0x5F) 858 * DIGIT (0x30-0x39) 859 * ALPHA (0x41-0x5A and 0x61-0x7A) 860 * </pre> 861 * 862 * @param _createToken If a Token is to be to created 863 * @throws RecognitionException If the token is invalid 864 * @throws TokenStreamException When we weren't able to fetch a token 865 * @throws CharStreamException If we can't process the stream 866 */ 867 public final void mCHAR_REST(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 868 int _ttype; Token _token=null; int _begin=text.length(); 869 _ttype = CHAR_REST; 870 int _saveIndex; 871 872 switch ( LA(1)) { 873 case '\u0001': case '\u0002': case '\u0003': case '\u0004': 874 case '\u0005': case '\u0006': case '\u0007': case '\u0008': 875 case '\t': case '\n': case '\u000b': case '\u000c': 876 case '\r': case '\u000e': case '\u000f': case '\u0010': 877 case '\u0011': case '\u0012': case '\u0013': case '\u0014': 878 case '\u0015': case '\u0016': case '\u0017': case '\u0018': 879 case '\u0019': case '\u001a': case '\u001b': case '\u001c': 880 case '\u001d': case '\u001e': case '\u001f': 881 { 882 matchRange('\u0001','\u001F'); 883 break; 884 } 885 case '!': 886 { 887 match('\u0021'); 888 break; 889 } 890 case '$': case '%': case '&': case '\'': 891 case '(': case ')': case '*': 892 { 893 matchRange('\u0024','\u002A'); 894 break; 895 } 896 case '.': case '/': 897 { 898 matchRange('\u002E','\u002F'); 899 break; 900 } 901 case ':': 902 { 903 match('\u003A'); 904 break; 905 } 906 case '?': case '@': 907 { 908 matchRange('\u003F','\u0040'); 909 break; 910 } 911 case '[': 912 { 913 match('\u005B'); 914 break; 915 } 916 case ']': case '^': 917 { 918 matchRange('\u005D','\u005E'); 919 break; 920 } 921 case '`': 922 { 923 match('\u0060'); 924 break; 925 } 926 case '{': case '|': case '}': case '~': 927 case '\u007f': 928 { 929 matchRange('\u007B','\u007F'); 930 break; 931 } 932 default: 933 { 934 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); 935 } 936 } 937 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 938 _token = makeToken(_ttype); 939 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 940 } 941 _returnToken = _token; 942 } 943 944 945 private static final long[] mk_tokenSet_0() { 946 long[] data = new long[1025]; 947 data[0]=287948901175001088L; 948 data[1]=140737488355328L; 949 return data; 950 } 951 public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0()); 952 private static final long[] mk_tokenSet_1() { 953 long[] data = new long[1025]; 954 data[0]=288019269919178752L; 955 data[1]=2199023255552L; 956 return data; 957 } 958 public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1()); 959 private static final long[] mk_tokenSet_2() { 960 long[] data = new long[1025]; 961 data[0]=287948901175001088L; 962 data[1]=541165879296L; 963 return data; 964 } 965 public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2()); 966 967 }