001// $ANTLR 2.7.7 (20060906): "subtree-specification.g" -> "AntlrSubtreeSpecificationLexer.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 * http://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 */ 022 023 024package org.apache.directory.api.ldap.model.subtree; 025 026import java.util.Set; 027import java.util.Map; 028import java.util.HashSet; 029import java.util.List; 030import java.util.ArrayList; 031 032import org.apache.directory.api.ldap.model.name.Dn; 033import org.apache.directory.api.ldap.model.filter.ExprNode; 034import org.apache.directory.api.ldap.model.filter.LeafNode; 035import org.apache.directory.api.ldap.model.filter.BranchNode; 036import org.apache.directory.api.ldap.model.filter.AndNode; 037import org.apache.directory.api.ldap.model.filter.OrNode; 038import org.apache.directory.api.ldap.model.filter.NotNode; 039import org.apache.directory.api.ldap.model.filter.EqualityNode; 040import org.apache.directory.api.ldap.model.filter.FilterParser; 041import org.apache.directory.api.ldap.model.schema.ObjectClass; 042import org.apache.directory.api.ldap.model.schema.SchemaManager; 043import org.apache.directory.api.ldap.model.subtree.SubtreeSpecification; 044import org.apache.directory.api.ldap.model.subtree.SubtreeSpecificationModifier; 045import org.apache.directory.api.ldap.model.schema.NormalizerMappingResolver; 046import org.apache.directory.api.ldap.model.schema.normalizers.OidNormalizer; 047import org.apache.directory.api.util.ComponentsMonitor; 048import org.apache.directory.api.util.OptionalComponentsMonitor; 049import org.apache.directory.api.ldap.model.constants.SchemaConstants; 050import org.apache.directory.api.ldap.model.entry.StringValue; 051import org.apache.directory.api.ldap.model.exception.LdapException; 052import org.apache.directory.api.ldap.model.schema.AttributeType; 053 054import org.slf4j.Logger; 055import org.slf4j.LoggerFactory; 056 057import java.io.InputStream; 058import antlr.TokenStreamException; 059import antlr.TokenStreamIOException; 060import antlr.TokenStreamRecognitionException; 061import antlr.CharStreamException; 062import antlr.CharStreamIOException; 063import antlr.ANTLRException; 064import java.io.Reader; 065import java.util.Hashtable; 066import antlr.CharScanner; 067import antlr.InputBuffer; 068import antlr.ByteBuffer; 069import antlr.CharBuffer; 070import antlr.Token; 071import antlr.CommonToken; 072import antlr.RecognitionException; 073import antlr.NoViableAltForCharException; 074import antlr.MismatchedCharException; 075import antlr.TokenStream; 076import antlr.ANTLRHashString; 077import antlr.LexerSharedInputState; 078import antlr.collections.impl.BitSet; 079import antlr.SemanticException; 080 081/** 082 * The parser's primary lexer. 083 * 084 * @see <a href="http://www.faqs.org/rfcs/rfc3672.html">RFC 3672</a> 085 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a> 086 */ 087public class AntlrSubtreeSpecificationLexer extends antlr.CharScanner implements AntlrSubtreeSpecificationParserTokenTypes, TokenStream 088 { 089 090 private static final Logger log = LoggerFactory.getLogger( AntlrSubtreeSpecificationLexer.class ); 091public AntlrSubtreeSpecificationLexer(InputStream in) { 092 this(new ByteBuffer(in)); 093} 094public AntlrSubtreeSpecificationLexer(Reader in) { 095 this(new CharBuffer(in)); 096} 097public AntlrSubtreeSpecificationLexer(InputBuffer ib) { 098 this(new LexerSharedInputState(ib)); 099} 100public AntlrSubtreeSpecificationLexer(LexerSharedInputState state) { 101 super(state); 102 caseSensitiveLiterals = true; 103 setCaseSensitive(true); 104 literals = new Hashtable(); 105 literals.put(new ANTLRHashString("end", this), new Integer(4)); 106 literals.put(new ANTLRHashString("specificExclusions", this), new Integer(10)); 107 literals.put(new ANTLRHashString("or", this), new Integer(24)); 108 literals.put(new ANTLRHashString("minimum", this), new Integer(14)); 109 literals.put(new ANTLRHashString("chopBefore", this), new Integer(11)); 110 literals.put(new ANTLRHashString("chopAfter", this), new Integer(13)); 111 literals.put(new ANTLRHashString("maximum", this), new Integer(15)); 112 literals.put(new ANTLRHashString("and", this), new Integer(23)); 113 literals.put(new ANTLRHashString("not", this), new Integer(25)); 114 literals.put(new ANTLRHashString("item", this), new Integer(22)); 115 literals.put(new ANTLRHashString("specificationFilter", this), new Integer(16)); 116 literals.put(new ANTLRHashString("base", this), new Integer(9)); 117} 118 119public Token nextToken() throws TokenStreamException { 120 Token theRetToken=null; 121tryAgain: 122 for (;;) { 123 Token _token = null; 124 int _ttype = Token.INVALID_TYPE; 125 resetText(); 126 try { // for char stream error handling 127 try { // for lexical error handling 128 switch ( LA(1)) { 129 case ' ': 130 { 131 mSP(true); 132 theRetToken=_returnToken; 133 break; 134 } 135 case ':': 136 { 137 mCOLON(true); 138 theRetToken=_returnToken; 139 break; 140 } 141 case '{': 142 { 143 mOPEN_CURLY(true); 144 theRetToken=_returnToken; 145 break; 146 } 147 case '}': 148 { 149 mCLOSE_CURLY(true); 150 theRetToken=_returnToken; 151 break; 152 } 153 case ',': 154 { 155 mSEP(true); 156 theRetToken=_returnToken; 157 break; 158 } 159 case '"': 160 { 161 mSAFEUTF8STRING(true); 162 theRetToken=_returnToken; 163 break; 164 } 165 case 'A': case 'B': case 'C': case 'D': 166 case 'E': case 'F': case 'G': case 'H': 167 case 'I': case 'J': case 'K': case 'L': 168 case 'M': case 'N': case 'O': case 'P': 169 case 'Q': case 'R': case 'S': case 'T': 170 case 'U': case 'V': case 'W': case 'X': 171 case 'Y': case 'Z': case 'a': case 'b': 172 case 'c': case 'd': case 'e': case 'f': 173 case 'g': case 'h': case 'i': case 'j': 174 case 'k': case 'l': case 'm': case 'n': 175 case 'o': case 'p': case 'q': case 'r': 176 case 's': case 't': case 'u': case 'v': 177 case 'w': case 'x': case 'y': case 'z': 178 { 179 mDESCR(true); 180 theRetToken=_returnToken; 181 break; 182 } 183 case '0': case '1': case '2': case '3': 184 case '4': case '5': case '6': case '7': 185 case '8': case '9': 186 { 187 mINTEGER_OR_NUMERICOID(true); 188 theRetToken=_returnToken; 189 break; 190 } 191 case '(': 192 { 193 mFILTER(true); 194 theRetToken=_returnToken; 195 break; 196 } 197 default: 198 { 199 if (LA(1)==EOF_CHAR) {uponEOF(); _returnToken = makeToken(Token.EOF_TYPE);} 200 else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} 201 } 202 } 203 if ( _returnToken==null ) continue tryAgain; // found SKIP token 204 _ttype = _returnToken.getType(); 205 _ttype = testLiteralsTable(_ttype); 206 _returnToken.setType(_ttype); 207 return _returnToken; 208 } 209 catch (RecognitionException e) { 210 throw new TokenStreamRecognitionException(e); 211 } 212 } 213 catch (CharStreamException cse) { 214 if ( cse instanceof CharStreamIOException ) { 215 throw new TokenStreamIOException(((CharStreamIOException)cse).io); 216 } 217 else { 218 throw new TokenStreamException(cse.getMessage()); 219 } 220 } 221 } 222} 223 224 public final void mSP(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 225 int _ttype; Token _token=null; int _begin=text.length(); 226 _ttype = SP; 227 int _saveIndex; 228 229 match(' '); 230 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 231 _token = makeToken(_ttype); 232 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 233 } 234 _returnToken = _token; 235 } 236 237 public final void mCOLON(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 238 int _ttype; Token _token=null; int _begin=text.length(); 239 _ttype = COLON; 240 int _saveIndex; 241 242 match(':'); 243 if ( inputState.guessing==0 ) { 244 log.debug( "matched COLON(':')" ); 245 } 246 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 247 _token = makeToken(_ttype); 248 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 249 } 250 _returnToken = _token; 251 } 252 253 public final void mOPEN_CURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 254 int _ttype; Token _token=null; int _begin=text.length(); 255 _ttype = OPEN_CURLY; 256 int _saveIndex; 257 258 match('{'); 259 if ( inputState.guessing==0 ) { 260 log.debug( "matched LBRACKET('{')" ); 261 } 262 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 263 _token = makeToken(_ttype); 264 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 265 } 266 _returnToken = _token; 267 } 268 269 public final void mCLOSE_CURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 270 int _ttype; Token _token=null; int _begin=text.length(); 271 _ttype = CLOSE_CURLY; 272 int _saveIndex; 273 274 match('}'); 275 if ( inputState.guessing==0 ) { 276 log.debug( "matched RBRACKET('}')" ); 277 } 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 mSEP(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 286 int _ttype; Token _token=null; int _begin=text.length(); 287 _ttype = SEP; 288 int _saveIndex; 289 290 match(','); 291 if ( inputState.guessing==0 ) { 292 log.debug( "matched SEP(',')" ); 293 } 294 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 295 _token = makeToken(_ttype); 296 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 297 } 298 _returnToken = _token; 299 } 300 301 public final void mSAFEUTF8STRING(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 302 int _ttype; Token _token=null; int _begin=text.length(); 303 _ttype = SAFEUTF8STRING; 304 int _saveIndex; 305 306 _saveIndex=text.length(); 307 match('"'); 308 text.setLength(_saveIndex); 309 { 310 _loop102: 311 do { 312 if ((_tokenSet_0.member(LA(1)))) { 313 mSAFEUTF8CHAR(false); 314 } 315 else { 316 break _loop102; 317 } 318 319 } while (true); 320 } 321 _saveIndex=text.length(); 322 match('"'); 323 text.setLength(_saveIndex); 324 if ( inputState.guessing==0 ) { 325 log.debug( "matched SAFEUTF8CHAR: \"" + getText() + "\"" ); 326 } 327 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 328 _token = makeToken(_ttype); 329 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 330 } 331 _returnToken = _token; 332 } 333 334 protected final void mSAFEUTF8CHAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 335 int _ttype; Token _token=null; int _begin=text.length(); 336 _ttype = SAFEUTF8CHAR; 337 int _saveIndex; 338 339 switch ( LA(1)) { 340 case '\u0001': case '\u0002': case '\u0003': case '\u0004': 341 case '\u0005': case '\u0006': case '\u0007': case '\u0008': 342 case '\t': case '\n': case '\u000b': case '\u000c': 343 case '\r': case '\u000e': case '\u000f': case '\u0010': 344 case '\u0011': case '\u0012': case '\u0013': case '\u0014': 345 case '\u0015': case '\u0016': case '\u0017': case '\u0018': 346 case '\u0019': case '\u001a': case '\u001b': case '\u001c': 347 case '\u001d': case '\u001e': case '\u001f': case ' ': 348 case '!': 349 { 350 matchRange('\u0001','\u0021'); 351 break; 352 } 353 case '#': case '$': case '%': case '&': 354 case '\'': case '(': case ')': case '*': 355 case '+': case ',': case '-': case '.': 356 case '/': case '0': case '1': case '2': 357 case '3': case '4': case '5': case '6': 358 case '7': case '8': case '9': case ':': 359 case ';': case '<': case '=': case '>': 360 case '?': case '@': case 'A': case 'B': 361 case 'C': case 'D': case 'E': case 'F': 362 case 'G': case 'H': case 'I': case 'J': 363 case 'K': case 'L': case 'M': case 'N': 364 case 'O': case 'P': case 'Q': case 'R': 365 case 'S': case 'T': case 'U': case 'V': 366 case 'W': case 'X': case 'Y': case 'Z': 367 case '[': case '\\': case ']': case '^': 368 case '_': case '`': case 'a': case 'b': 369 case 'c': case 'd': case 'e': case 'f': 370 case 'g': case 'h': case 'i': case 'j': 371 case 'k': case 'l': case 'm': case 'n': 372 case 'o': case 'p': case 'q': case 'r': 373 case 's': case 't': case 'u': case 'v': 374 case 'w': case 'x': case 'y': case 'z': 375 case '{': case '|': case '}': case '~': 376 case '\u007f': 377 { 378 matchRange('\u0023','\u007F'); 379 break; 380 } 381 case '\u00c0': case '\u00c1': case '\u00c2': case '\u00c3': 382 case '\u00c4': case '\u00c5': case '\u00c6': case '\u00c7': 383 case '\u00c8': case '\u00c9': case '\u00ca': case '\u00cb': 384 case '\u00cc': case '\u00cd': case '\u00ce': case '\u00cf': 385 case '\u00d0': case '\u00d1': case '\u00d2': case '\u00d3': 386 case '\u00d4': case '\u00d5': case '\u00d6': 387 { 388 matchRange('\u00c0','\u00d6'); 389 break; 390 } 391 case '\u00d8': case '\u00d9': case '\u00da': case '\u00db': 392 case '\u00dc': case '\u00dd': case '\u00de': case '\u00df': 393 case '\u00e0': case '\u00e1': case '\u00e2': case '\u00e3': 394 case '\u00e4': case '\u00e5': case '\u00e6': case '\u00e7': 395 case '\u00e8': case '\u00e9': case '\u00ea': case '\u00eb': 396 case '\u00ec': case '\u00ed': case '\u00ee': case '\u00ef': 397 case '\u00f0': case '\u00f1': case '\u00f2': case '\u00f3': 398 case '\u00f4': case '\u00f5': case '\u00f6': 399 { 400 matchRange('\u00d8','\u00f6'); 401 break; 402 } 403 case '\u00f8': case '\u00f9': case '\u00fa': case '\u00fb': 404 case '\u00fc': case '\u00fd': case '\u00fe': case '\u00ff': 405 { 406 matchRange('\u00f8','\u00ff'); 407 break; 408 } 409 default: 410 if (((LA(1) >= '\u0100' && LA(1) <= '\u1fff'))) { 411 matchRange('\u0100','\u1fff'); 412 } 413 else if (((LA(1) >= '\u3040' && LA(1) <= '\u318f'))) { 414 matchRange('\u3040','\u318f'); 415 } 416 else if (((LA(1) >= '\u3300' && LA(1) <= '\u337f'))) { 417 matchRange('\u3300','\u337f'); 418 } 419 else if (((LA(1) >= '\u3400' && LA(1) <= '\u3d2d'))) { 420 matchRange('\u3400','\u3d2d'); 421 } 422 else if (((LA(1) >= '\u4e00' && LA(1) <= '\u9fff'))) { 423 matchRange('\u4e00','\u9fff'); 424 } 425 else if (((LA(1) >= '\uf900' && LA(1) <= '\ufaff'))) { 426 matchRange('\uf900','\ufaff'); 427 } 428 else { 429 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); 430 } 431 } 432 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 433 _token = makeToken(_ttype); 434 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 435 } 436 _returnToken = _token; 437 } 438 439 public final void mDESCR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 440 int _ttype; Token _token=null; int _begin=text.length(); 441 _ttype = DESCR; 442 int _saveIndex; 443 444 mALPHA(false); 445 { 446 _loop105: 447 do { 448 switch ( LA(1)) { 449 case 'A': case 'B': case 'C': case 'D': 450 case 'E': case 'F': case 'G': case 'H': 451 case 'I': case 'J': case 'K': case 'L': 452 case 'M': case 'N': case 'O': case 'P': 453 case 'Q': case 'R': case 'S': case 'T': 454 case 'U': case 'V': case 'W': case 'X': 455 case 'Y': case 'Z': case 'a': case 'b': 456 case 'c': case 'd': case 'e': case 'f': 457 case 'g': case 'h': case 'i': case 'j': 458 case 'k': case 'l': case 'm': case 'n': 459 case 'o': case 'p': case 'q': case 'r': 460 case 's': case 't': case 'u': case 'v': 461 case 'w': case 'x': case 'y': case 'z': 462 { 463 mALPHA(false); 464 break; 465 } 466 case '0': case '1': case '2': case '3': 467 case '4': case '5': case '6': case '7': 468 case '8': case '9': 469 { 470 mDIGIT(false); 471 break; 472 } 473 case '-': 474 { 475 match('-'); 476 break; 477 } 478 default: 479 { 480 break _loop105; 481 } 482 } 483 } while (true); 484 } 485 if ( inputState.guessing==0 ) { 486 log.debug( "matched DESCR" ); 487 } 488 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 489 _token = makeToken(_ttype); 490 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 491 } 492 _returnToken = _token; 493 } 494 495 protected final void mALPHA(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 496 int _ttype; Token _token=null; int _begin=text.length(); 497 _ttype = ALPHA; 498 int _saveIndex; 499 500 switch ( LA(1)) { 501 case 'A': case 'B': case 'C': case 'D': 502 case 'E': case 'F': case 'G': case 'H': 503 case 'I': case 'J': case 'K': case 'L': 504 case 'M': case 'N': case 'O': case 'P': 505 case 'Q': case 'R': case 'S': case 'T': 506 case 'U': case 'V': case 'W': case 'X': 507 case 'Y': case 'Z': 508 { 509 matchRange('A','Z'); 510 break; 511 } 512 case 'a': case 'b': case 'c': case 'd': 513 case 'e': case 'f': case 'g': case 'h': 514 case 'i': case 'j': case 'k': case 'l': 515 case 'm': case 'n': case 'o': case 'p': 516 case 'q': case 'r': case 's': case 't': 517 case 'u': case 'v': case 'w': case 'x': 518 case 'y': case 'z': 519 { 520 matchRange('a','z'); 521 break; 522 } 523 default: 524 { 525 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); 526 } 527 } 528 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 529 _token = makeToken(_ttype); 530 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 531 } 532 _returnToken = _token; 533 } 534 535 protected final void mDIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 536 int _ttype; Token _token=null; int _begin=text.length(); 537 _ttype = DIGIT; 538 int _saveIndex; 539 540 switch ( LA(1)) { 541 case '0': 542 { 543 match('0'); 544 break; 545 } 546 case '1': case '2': case '3': case '4': 547 case '5': case '6': case '7': case '8': 548 case '9': 549 { 550 mLDIGIT(false); 551 break; 552 } 553 default: 554 { 555 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); 556 } 557 } 558 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 559 _token = makeToken(_ttype); 560 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 561 } 562 _returnToken = _token; 563 } 564 565 public final void mINTEGER_OR_NUMERICOID(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 566 int _ttype; Token _token=null; int _begin=text.length(); 567 _ttype = INTEGER_OR_NUMERICOID; 568 int _saveIndex; 569 570 boolean synPredMatched108 = false; 571 if ((((LA(1) >= '0' && LA(1) <= '9')) && (_tokenSet_1.member(LA(2))) && (_tokenSet_1.member(LA(3))) && (true) && (true))) { 572 int _m108 = mark(); 573 synPredMatched108 = true; 574 inputState.guessing++; 575 try { 576 { 577 mINTEGER(false); 578 mDOT(false); 579 } 580 } 581 catch (RecognitionException pe) { 582 synPredMatched108 = false; 583 } 584 rewind(_m108); 585inputState.guessing--; 586 } 587 if ( synPredMatched108 ) { 588 mNUMERICOID(false); 589 if ( inputState.guessing==0 ) { 590 591 _ttype = NUMERICOID; 592 593 } 594 } 595 else if (((LA(1) >= '0' && LA(1) <= '9')) && (true) && (true) && (true) && (true)) { 596 mINTEGER(false); 597 if ( inputState.guessing==0 ) { 598 599 _ttype = INTEGER; 600 601 } 602 } 603 else { 604 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); 605 } 606 607 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 608 _token = makeToken(_ttype); 609 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 610 } 611 _returnToken = _token; 612 } 613 614 protected final void mINTEGER(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 615 int _ttype; Token _token=null; int _begin=text.length(); 616 _ttype = INTEGER; 617 int _saveIndex; 618 619 if (((LA(1) >= '1' && LA(1) <= '9')) && ((LA(2) >= '0' && LA(2) <= '9'))) { 620 { 621 mLDIGIT(false); 622 { 623 int _cnt112=0; 624 _loop112: 625 do { 626 if (((LA(1) >= '0' && LA(1) <= '9'))) { 627 mDIGIT(false); 628 } 629 else { 630 if ( _cnt112>=1 ) { break _loop112; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} 631 } 632 633 _cnt112++; 634 } while (true); 635 } 636 } 637 if ( inputState.guessing==0 ) { 638 log.debug( "matched INTEGER: " + getText() ); 639 } 640 } 641 else if (((LA(1) >= '0' && LA(1) <= '9')) && (true)) { 642 mDIGIT(false); 643 } 644 else { 645 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); 646 } 647 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 mDOT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 656 int _ttype; Token _token=null; int _begin=text.length(); 657 _ttype = DOT; 658 int _saveIndex; 659 660 match('.'); 661 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 662 _token = makeToken(_ttype); 663 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 664 } 665 _returnToken = _token; 666 } 667 668 protected final void mNUMERICOID(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 669 int _ttype; Token _token=null; int _begin=text.length(); 670 _ttype = NUMERICOID; 671 int _saveIndex; 672 673 mINTEGER(false); 674 { 675 int _cnt115=0; 676 _loop115: 677 do { 678 if ((LA(1)=='.')) { 679 mDOT(false); 680 mINTEGER(false); 681 } 682 else { 683 if ( _cnt115>=1 ) { break _loop115; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} 684 } 685 686 _cnt115++; 687 } while (true); 688 } 689 if ( inputState.guessing==0 ) { 690 log.debug( "matched NUMERICOID: " + getText() ); 691 } 692 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 693 _token = makeToken(_ttype); 694 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 695 } 696 _returnToken = _token; 697 } 698 699 protected final void mLDIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 700 int _ttype; Token _token=null; int _begin=text.length(); 701 _ttype = LDIGIT; 702 int _saveIndex; 703 704 matchRange('1','9'); 705 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 706 _token = makeToken(_ttype); 707 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 708 } 709 _returnToken = _token; 710 } 711 712 public final void mFILTER(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 713 int _ttype; Token _token=null; int _begin=text.length(); 714 _ttype = FILTER; 715 int _saveIndex; 716 717 match('('); 718 { 719 switch ( LA(1)) { 720 case '&': 721 { 722 { 723 match('&'); 724 { 725 _loop125: 726 do { 727 if ((LA(1)==' ')) { 728 mSP(false); 729 } 730 else { 731 break _loop125; 732 } 733 734 } while (true); 735 } 736 { 737 int _cnt127=0; 738 _loop127: 739 do { 740 if ((LA(1)=='(')) { 741 mFILTER(false); 742 } 743 else { 744 if ( _cnt127>=1 ) { break _loop127; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} 745 } 746 747 _cnt127++; 748 } while (true); 749 } 750 } 751 break; 752 } 753 case '|': 754 { 755 { 756 match('|'); 757 { 758 _loop130: 759 do { 760 if ((LA(1)==' ')) { 761 mSP(false); 762 } 763 else { 764 break _loop130; 765 } 766 767 } while (true); 768 } 769 { 770 int _cnt132=0; 771 _loop132: 772 do { 773 if ((LA(1)=='(')) { 774 mFILTER(false); 775 } 776 else { 777 if ( _cnt132>=1 ) { break _loop132; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} 778 } 779 780 _cnt132++; 781 } while (true); 782 } 783 } 784 break; 785 } 786 case '!': 787 { 788 { 789 match('!'); 790 { 791 _loop135: 792 do { 793 if ((LA(1)==' ')) { 794 mSP(false); 795 } 796 else { 797 break _loop135; 798 } 799 800 } while (true); 801 } 802 mFILTER(false); 803 } 804 break; 805 } 806 default: 807 if ((_tokenSet_2.member(LA(1)))) { 808 mFILTER_VALUE(false); 809 } 810 else { 811 throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); 812 } 813 } 814 } 815 match(')'); 816 { 817 _loop137: 818 do { 819 if ((LA(1)==' ')) { 820 mSP(false); 821 } 822 else { 823 break _loop137; 824 } 825 826 } while (true); 827 } 828 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 829 _token = makeToken(_ttype); 830 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 831 } 832 _returnToken = _token; 833 } 834 835 protected final void mFILTER_VALUE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { 836 int _ttype; Token _token=null; int _begin=text.length(); 837 _ttype = FILTER_VALUE; 838 int _saveIndex; 839 840 { 841 { 842 match(_tokenSet_2); 843 } 844 { 845 _loop143: 846 do { 847 if ((_tokenSet_3.member(LA(1)))) { 848 { 849 match(_tokenSet_3); 850 } 851 } 852 else { 853 break _loop143; 854 } 855 856 } while (true); 857 } 858 } 859 if ( _createToken && _token==null && _ttype!=Token.SKIP ) { 860 _token = makeToken(_ttype); 861 _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); 862 } 863 _returnToken = _token; 864 } 865 866 867 private static final long[] mk_tokenSet_0() { 868 long[] data = new long[3988]; 869 data[0]=-17179869186L; 870 data[1]=-1L; 871 data[3]=-36028797027352577L; 872 for (int i = 4; i<=127; i++) { data[i]=-1L; } 873 for (int i = 193; i<=197; i++) { data[i]=-1L; } 874 data[198]=65535L; 875 for (int i = 204; i<=205; i++) { data[i]=-1L; } 876 for (int i = 208; i<=243; i++) { data[i]=-1L; } 877 data[244]=70368744177663L; 878 for (int i = 312; i<=639; i++) { data[i]=-1L; } 879 for (int i = 996; i<=1003; i++) { data[i]=-1L; } 880 return data; 881 } 882 public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0()); 883 private static final long[] mk_tokenSet_1() { 884 long[] data = new long[1025]; 885 data[0]=288019269919178752L; 886 return data; 887 } 888 public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1()); 889 private static final long[] mk_tokenSet_2() { 890 long[] data = new long[2048]; 891 data[0]=-3582002724866L; 892 data[1]=-1152921504606846977L; 893 for (int i = 2; i<=127; i++) { data[i]=-1L; } 894 for (int i = 193; i<=197; i++) { data[i]=-1L; } 895 data[198]=65535L; 896 for (int i = 204; i<=205; i++) { data[i]=-1L; } 897 for (int i = 208; i<=243; i++) { data[i]=-1L; } 898 data[244]=70368744177663L; 899 for (int i = 312; i<=639; i++) { data[i]=-1L; } 900 for (int i = 996; i<=1003; i++) { data[i]=-1L; } 901 return data; 902 } 903 public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2()); 904 private static final long[] mk_tokenSet_3() { 905 long[] data = new long[2048]; 906 data[0]=-2199023255554L; 907 for (int i = 1; i<=127; i++) { data[i]=-1L; } 908 for (int i = 193; i<=197; i++) { data[i]=-1L; } 909 data[198]=65535L; 910 for (int i = 204; i<=205; i++) { data[i]=-1L; } 911 for (int i = 208; i<=243; i++) { data[i]=-1L; } 912 data[244]=70368744177663L; 913 for (int i = 312; i<=639; i++) { data[i]=-1L; } 914 for (int i = 996; i<=1003; i++) { data[i]=-1L; } 915 return data; 916 } 917 public static final BitSet _tokenSet_3 = new BitSet(mk_tokenSet_3()); 918 919 }