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