View Javadoc
1   // $ANTLR 2.7.7 (20060906): "schema-value.g" -> "AntlrSchemaValueLexer.java"$
2   
3   /*
4    *  Licensed to the Apache Software Foundation (ASF) under one
5    *  or more contributor license agreements.  See the NOTICE file
6    *  distributed with this work for additional information
7    *  regarding copyright ownership.  The ASF licenses this file
8    *  to you under the Apache License, Version 2.0 (the
9    *  "License"); you may not use this file except in compliance
10   *  with the License.  You may obtain a copy of the License at
11   *  
12   *    http://www.apache.org/licenses/LICENSE-2.0
13   *  
14   *  Unless required by applicable law or agreed to in writing,
15   *  software distributed under the License is distributed on an
16   *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   *  KIND, either express or implied.  See the License for the
18   *  specific language governing permissions and limitations
19   *  under the License. 
20   *  
21   */
22  package org.apache.directory.api.ldap.model.schema.syntaxes;
23  
24  import java.util.List;
25  import java.util.ArrayList;
26  
27  import org.apache.directory.api.ldap.model.schema.parsers.ParserMonitor;
28  
29  
30  import java.io.InputStream;
31  import antlr.TokenStreamException;
32  import antlr.TokenStreamIOException;
33  import antlr.TokenStreamRecognitionException;
34  import antlr.CharStreamException;
35  import antlr.CharStreamIOException;
36  import antlr.ANTLRException;
37  import java.io.Reader;
38  import java.util.Hashtable;
39  import antlr.CharScanner;
40  import antlr.InputBuffer;
41  import antlr.ByteBuffer;
42  import antlr.CharBuffer;
43  import antlr.Token;
44  import antlr.CommonToken;
45  import antlr.RecognitionException;
46  import antlr.NoViableAltForCharException;
47  import antlr.MismatchedCharException;
48  import antlr.TokenStream;
49  import antlr.ANTLRHashString;
50  import antlr.LexerSharedInputState;
51  import antlr.collections.impl.BitSet;
52  import antlr.SemanticException;
53  
54  /**
55   * An antlr generated schema lexer. This is a sub-lexer.
56   *
57   * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
58   */
59  public class AntlrSchemaValueLexer extends antlr.CharScanner implements AntlrSchemaValueTokenTypes, TokenStream
60   {
61  public AntlrSchemaValueLexer(InputStream in) {
62  	this(new ByteBuffer(in));
63  }
64  public AntlrSchemaValueLexer(Reader in) {
65  	this(new CharBuffer(in));
66  }
67  public AntlrSchemaValueLexer(InputBuffer ib) {
68  	this(new LexerSharedInputState(ib));
69  }
70  public AntlrSchemaValueLexer(LexerSharedInputState state) {
71  	super(state);
72  	caseSensitiveLiterals = true;
73  	setCaseSensitive(false);
74  	literals = new Hashtable();
75  }
76  
77  public Token nextToken() throws TokenStreamException {
78  	Token theRetToken=null;
79  tryAgain:
80  	for (;;) {
81  		Token _token = null;
82  		int _ttype = Token.INVALID_TYPE;
83  		resetText();
84  		try {   // for char stream error handling
85  			try {   // for lexical error handling
86  				switch ( LA(1)) {
87  				case '\t':  case '\n':  case '\r':  case ' ':
88  				case '#':
89  				{
90  					mWHSP(true);
91  					theRetToken=_returnToken;
92  					break;
93  				}
94  				case '(':
95  				{
96  					mLPAR(true);
97  					theRetToken=_returnToken;
98  					break;
99  				}
100 				case ')':
101 				{
102 					mRPAR(true);
103 					theRetToken=_returnToken;
104 					break;
105 				}
106 				case '\'':
107 				{
108 					mQUOTE(true);
109 					theRetToken=_returnToken;
110 					break;
111 				}
112 				case '$':
113 				{
114 					mDOLLAR(true);
115 					theRetToken=_returnToken;
116 					break;
117 				}
118 				case '}':
119 				{
120 					mRCURLY(true);
121 					theRetToken=_returnToken;
122 					break;
123 				}
124 				case '-':  case '.':  case '0':  case '1':
125 				case '2':  case '3':  case '4':  case '5':
126 				case '6':  case '7':  case '8':  case '9':
127 				case ':':  case ';':  case '_':  case 'a':
128 				case 'b':  case 'c':  case 'd':  case 'e':
129 				case 'f':  case 'g':  case 'h':  case 'i':
130 				case 'j':  case 'k':  case 'l':  case 'm':
131 				case 'n':  case 'o':  case 'p':  case 'q':
132 				case 'r':  case 's':  case 't':  case 'u':
133 				case 'v':  case 'w':  case 'x':  case 'y':
134 				case 'z':
135 				{
136 					mDESCR_OR_QUIRKS_DESCR(true);
137 					theRetToken=_returnToken;
138 					break;
139 				}
140 				default:
141 					if ((LA(1)=='{') && ((LA(2) >= '0' && LA(2) <= '9'))) {
142 						mLEN(true);
143 						theRetToken=_returnToken;
144 					}
145 					else if ((LA(1)=='{') && (true)) {
146 						mLCURLY(true);
147 						theRetToken=_returnToken;
148 					}
149 				else {
150 					if (LA(1)==EOF_CHAR) {uponEOF(); _returnToken = makeToken(Token.EOF_TYPE);}
151 				else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
152 				}
153 				}
154 				if ( _returnToken==null ) continue tryAgain; // found SKIP token
155 				_ttype = _returnToken.getType();
156 				_ttype = testLiteralsTable(_ttype);
157 				_returnToken.setType(_ttype);
158 				return _returnToken;
159 			}
160 			catch (RecognitionException e) {
161 				throw new TokenStreamRecognitionException(e);
162 			}
163 		}
164 		catch (CharStreamException cse) {
165 			if ( cse instanceof CharStreamIOException ) {
166 				throw new TokenStreamIOException(((CharStreamIOException)cse).io);
167 			}
168 			else {
169 				throw new TokenStreamException(cse.getMessage());
170 			}
171 		}
172 	}
173 }
174 
175 	public final void mWHSP(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
176 		int _ttype; Token _token=null; int _begin=text.length();
177 		_ttype = WHSP;
178 		int _saveIndex;
179 		
180 		{
181 		int _cnt6=0;
182 		_loop6:
183 		do {
184 			switch ( LA(1)) {
185 			case ' ':
186 			{
187 				match(' ');
188 				break;
189 			}
190 			case '\t':
191 			{
192 				match('\t');
193 				break;
194 			}
195 			case '\r':
196 			{
197 				match('\r');
198 				{
199 				if ((LA(1)=='\n') && (true) && (true)) {
200 					match('\n');
201 				}
202 				else {
203 				}
204 				
205 				}
206 				if ( inputState.guessing==0 ) {
207 					newline();
208 				}
209 				break;
210 			}
211 			case '\n':
212 			{
213 				match('\n');
214 				if ( inputState.guessing==0 ) {
215 					newline();
216 				}
217 				break;
218 			}
219 			case '#':
220 			{
221 				match('#');
222 				{
223 				_loop5:
224 				do {
225 					if ((_tokenSet_0.member(LA(1)))) {
226 						matchNot('\n');
227 					}
228 					else {
229 						break _loop5;
230 					}
231 					
232 				} while (true);
233 				}
234 				match('\n');
235 				if ( inputState.guessing==0 ) {
236 					newline();
237 				}
238 				break;
239 			}
240 			default:
241 			{
242 				if ( _cnt6>=1 ) { break _loop6; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
243 			}
244 			}
245 			_cnt6++;
246 		} while (true);
247 		}
248 		if ( inputState.guessing==0 ) {
249 			setText(" ");
250 		}
251 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
252 			_token = makeToken(_ttype);
253 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
254 		}
255 		_returnToken = _token;
256 	}
257 	
258 	public final void mLPAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
259 		int _ttype; Token _token=null; int _begin=text.length();
260 		_ttype = LPAR;
261 		int _saveIndex;
262 		
263 		match('(');
264 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
265 			_token = makeToken(_ttype);
266 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
267 		}
268 		_returnToken = _token;
269 	}
270 	
271 	public final void mRPAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
272 		int _ttype; Token _token=null; int _begin=text.length();
273 		_ttype = RPAR;
274 		int _saveIndex;
275 		
276 		match(')');
277 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
278 			_token = makeToken(_ttype);
279 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
280 		}
281 		_returnToken = _token;
282 	}
283 	
284 	protected final void mCHAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
285 		int _ttype; Token _token=null; int _begin=text.length();
286 		_ttype = CHAR;
287 		int _saveIndex;
288 		
289 		matchRange('a','z');
290 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
291 			_token = makeToken(_ttype);
292 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
293 		}
294 		_returnToken = _token;
295 	}
296 	
297 	protected final void mLDIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
298 		int _ttype; Token _token=null; int _begin=text.length();
299 		_ttype = LDIGIT;
300 		int _saveIndex;
301 		
302 		matchRange('1','9');
303 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
304 			_token = makeToken(_ttype);
305 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
306 		}
307 		_returnToken = _token;
308 	}
309 	
310 	protected final void mDIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
311 		int _ttype; Token _token=null; int _begin=text.length();
312 		_ttype = DIGIT;
313 		int _saveIndex;
314 		
315 		matchRange('0','9');
316 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
317 			_token = makeToken(_ttype);
318 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
319 		}
320 		_returnToken = _token;
321 	}
322 	
323 	protected final void mNUMBER(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
324 		int _ttype; Token _token=null; int _begin=text.length();
325 		_ttype = NUMBER;
326 		int _saveIndex;
327 		
328 		if (((LA(1) >= '1' && LA(1) <= '9')) && ((LA(2) >= '0' && LA(2) <= '9'))) {
329 			{
330 			mLDIGIT(false);
331 			{
332 			int _cnt15=0;
333 			_loop15:
334 			do {
335 				if (((LA(1) >= '0' && LA(1) <= '9'))) {
336 					mDIGIT(false);
337 				}
338 				else {
339 					if ( _cnt15>=1 ) { break _loop15; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
340 				}
341 				
342 				_cnt15++;
343 			} while (true);
344 			}
345 			}
346 		}
347 		else if (((LA(1) >= '0' && LA(1) <= '9')) && (true)) {
348 			mDIGIT(false);
349 		}
350 		else {
351 			throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
352 		}
353 		
354 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
355 			_token = makeToken(_ttype);
356 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
357 		}
358 		_returnToken = _token;
359 	}
360 	
361 	protected final void mNUMBER2(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
362 		int _ttype; Token _token=null; int _begin=text.length();
363 		_ttype = NUMBER2;
364 		int _saveIndex;
365 		
366 		{
367 		int _cnt18=0;
368 		_loop18:
369 		do {
370 			if (((LA(1) >= '0' && LA(1) <= '9'))) {
371 				mDIGIT(false);
372 			}
373 			else {
374 				if ( _cnt18>=1 ) { break _loop18; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
375 			}
376 			
377 			_cnt18++;
378 		} while (true);
379 		}
380 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
381 			_token = makeToken(_ttype);
382 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
383 		}
384 		_returnToken = _token;
385 	}
386 	
387 	protected final void mNUMERICOID(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
388 		int _ttype; Token _token=null; int _begin=text.length();
389 		_ttype = NUMERICOID;
390 		int _saveIndex;
391 		
392 		mNUMBER2(false);
393 		{
394 		int _cnt21=0;
395 		_loop21:
396 		do {
397 			if ((LA(1)=='.')) {
398 				match('.');
399 				mNUMBER2(false);
400 			}
401 			else {
402 				if ( _cnt21>=1 ) { break _loop21; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
403 			}
404 			
405 			_cnt21++;
406 		} while (true);
407 		}
408 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
409 			_token = makeToken(_ttype);
410 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
411 		}
412 		_returnToken = _token;
413 	}
414 	
415 	protected final void mHYPEN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
416 		int _ttype; Token _token=null; int _begin=text.length();
417 		_ttype = HYPEN;
418 		int _saveIndex;
419 		
420 		match('-');
421 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
422 			_token = makeToken(_ttype);
423 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
424 		}
425 		_returnToken = _token;
426 	}
427 	
428 	protected final void mOTHER(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
429 		int _ttype; Token _token=null; int _begin=text.length();
430 		_ttype = OTHER;
431 		int _saveIndex;
432 		
433 		switch ( LA(1)) {
434 		case '_':
435 		{
436 			match('_');
437 			break;
438 		}
439 		case ';':
440 		{
441 			match(';');
442 			break;
443 		}
444 		case '.':
445 		{
446 			match('.');
447 			break;
448 		}
449 		case ':':
450 		{
451 			match(':');
452 			break;
453 		}
454 		default:
455 		{
456 			throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
457 		}
458 		}
459 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
460 			_token = makeToken(_ttype);
461 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
462 		}
463 		_returnToken = _token;
464 	}
465 	
466 	protected final void mDESCR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
467 		int _ttype; Token _token=null; int _begin=text.length();
468 		_ttype = DESCR;
469 		int _saveIndex;
470 		
471 		mCHAR(false);
472 		{
473 		_loop26:
474 		do {
475 			switch ( LA(1)) {
476 			case 'a':  case 'b':  case 'c':  case 'd':
477 			case 'e':  case 'f':  case 'g':  case 'h':
478 			case 'i':  case 'j':  case 'k':  case 'l':
479 			case 'm':  case 'n':  case 'o':  case 'p':
480 			case 'q':  case 'r':  case 's':  case 't':
481 			case 'u':  case 'v':  case 'w':  case 'x':
482 			case 'y':  case 'z':
483 			{
484 				mCHAR(false);
485 				break;
486 			}
487 			case '0':  case '1':  case '2':  case '3':
488 			case '4':  case '5':  case '6':  case '7':
489 			case '8':  case '9':
490 			{
491 				mDIGIT(false);
492 				break;
493 			}
494 			case '-':
495 			{
496 				mHYPEN(false);
497 				break;
498 			}
499 			default:
500 			{
501 				break _loop26;
502 			}
503 			}
504 		} while (true);
505 		}
506 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
507 			_token = makeToken(_ttype);
508 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
509 		}
510 		_returnToken = _token;
511 	}
512 	
513 	protected final void mQUIRKS_DESCR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
514 		int _ttype; Token _token=null; int _begin=text.length();
515 		_ttype = QUIRKS_DESCR;
516 		int _saveIndex;
517 		
518 		{
519 		int _cnt29=0;
520 		_loop29:
521 		do {
522 			switch ( LA(1)) {
523 			case 'a':  case 'b':  case 'c':  case 'd':
524 			case 'e':  case 'f':  case 'g':  case 'h':
525 			case 'i':  case 'j':  case 'k':  case 'l':
526 			case 'm':  case 'n':  case 'o':  case 'p':
527 			case 'q':  case 'r':  case 's':  case 't':
528 			case 'u':  case 'v':  case 'w':  case 'x':
529 			case 'y':  case 'z':
530 			{
531 				mCHAR(false);
532 				break;
533 			}
534 			case '0':  case '1':  case '2':  case '3':
535 			case '4':  case '5':  case '6':  case '7':
536 			case '8':  case '9':
537 			{
538 				mDIGIT(false);
539 				break;
540 			}
541 			case '-':
542 			{
543 				mHYPEN(false);
544 				break;
545 			}
546 			case '.':  case ':':  case ';':  case '_':
547 			{
548 				mOTHER(false);
549 				break;
550 			}
551 			default:
552 			{
553 				if ( _cnt29>=1 ) { break _loop29; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
554 			}
555 			}
556 			_cnt29++;
557 		} while (true);
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 	public final void mQUOTE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
567 		int _ttype; Token _token=null; int _begin=text.length();
568 		_ttype = QUOTE;
569 		int _saveIndex;
570 		
571 		match('\'');
572 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
573 			_token = makeToken(_ttype);
574 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
575 		}
576 		_returnToken = _token;
577 	}
578 	
579 	public final void mDOLLAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
580 		int _ttype; Token _token=null; int _begin=text.length();
581 		_ttype = DOLLAR;
582 		int _saveIndex;
583 		
584 		match('$');
585 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
586 			_token = makeToken(_ttype);
587 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
588 		}
589 		_returnToken = _token;
590 	}
591 	
592 	public final void mLCURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
593 		int _ttype; Token _token=null; int _begin=text.length();
594 		_ttype = LCURLY;
595 		int _saveIndex;
596 		
597 		match('{');
598 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
599 			_token = makeToken(_ttype);
600 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
601 		}
602 		_returnToken = _token;
603 	}
604 	
605 	public final void mRCURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
606 		int _ttype; Token _token=null; int _begin=text.length();
607 		_ttype = RCURLY;
608 		int _saveIndex;
609 		
610 		match('}');
611 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
612 			_token = makeToken(_ttype);
613 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
614 		}
615 		_returnToken = _token;
616 	}
617 	
618 	public final void mLEN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
619 		int _ttype; Token _token=null; int _begin=text.length();
620 		_ttype = LEN;
621 		int _saveIndex;
622 		Token n=null;
623 		
624 		mLCURLY(false);
625 		mNUMBER2(true);
626 		n=_returnToken;
627 		mRCURLY(false);
628 		if ( inputState.guessing==0 ) {
629 			setText(n.getText());
630 		}
631 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
632 			_token = makeToken(_ttype);
633 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
634 		}
635 		_returnToken = _token;
636 	}
637 	
638 	public final void mDESCR_OR_QUIRKS_DESCR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
639 		int _ttype; Token _token=null; int _begin=text.length();
640 		_ttype = DESCR_OR_QUIRKS_DESCR;
641 		int _saveIndex;
642 		
643 		boolean synPredMatched48 = false;
644 		if ((((LA(1) >= '0' && LA(1) <= '9')) && (_tokenSet_1.member(LA(2))) && (_tokenSet_1.member(LA(3))))) {
645 			int _m48 = mark();
646 			synPredMatched48 = true;
647 			inputState.guessing++;
648 			try {
649 				{
650 				mNUMBER(false);
651 				match('.');
652 				}
653 			}
654 			catch (RecognitionException pe) {
655 				synPredMatched48 = false;
656 			}
657 			rewind(_m48);
658 inputState.guessing--;
659 		}
660 		if ( synPredMatched48 ) {
661 			mNUMERICOID(false);
662 			if ( inputState.guessing==0 ) {
663 				_ttype =  NUMERICOID;
664 			}
665 		}
666 		else {
667 			boolean synPredMatched37 = false;
668 			if (((_tokenSet_2.member(LA(1))) && (true) && (true))) {
669 				int _m37 = mark();
670 				synPredMatched37 = true;
671 				inputState.guessing++;
672 				try {
673 					{
674 					mNUMERICOID(false);
675 					mQUIRKS_DESCR(false);
676 					}
677 				}
678 				catch (RecognitionException pe) {
679 					synPredMatched37 = false;
680 				}
681 				rewind(_m37);
682 inputState.guessing--;
683 			}
684 			if ( synPredMatched37 ) {
685 				mQUIRKS_DESCR(false);
686 				if ( inputState.guessing==0 ) {
687 					_ttype =  QUIRKS_DESCR;
688 				}
689 			}
690 			else {
691 				boolean synPredMatched39 = false;
692 				if (((_tokenSet_2.member(LA(1))) && (true) && (true))) {
693 					int _m39 = mark();
694 					synPredMatched39 = true;
695 					inputState.guessing++;
696 					try {
697 						{
698 						mNUMBER(false);
699 						mQUIRKS_DESCR(false);
700 						}
701 					}
702 					catch (RecognitionException pe) {
703 						synPredMatched39 = false;
704 					}
705 					rewind(_m39);
706 inputState.guessing--;
707 				}
708 				if ( synPredMatched39 ) {
709 					mQUIRKS_DESCR(false);
710 					if ( inputState.guessing==0 ) {
711 						_ttype =  QUIRKS_DESCR;
712 					}
713 				}
714 				else {
715 					boolean synPredMatched41 = false;
716 					if (((_tokenSet_2.member(LA(1))) && (true) && (true))) {
717 						int _m41 = mark();
718 						synPredMatched41 = true;
719 						inputState.guessing++;
720 						try {
721 							{
722 							mHYPEN(false);
723 							mQUIRKS_DESCR(false);
724 							}
725 						}
726 						catch (RecognitionException pe) {
727 							synPredMatched41 = false;
728 						}
729 						rewind(_m41);
730 inputState.guessing--;
731 					}
732 					if ( synPredMatched41 ) {
733 						mQUIRKS_DESCR(false);
734 						if ( inputState.guessing==0 ) {
735 							_ttype =  QUIRKS_DESCR;
736 						}
737 					}
738 					else {
739 						boolean synPredMatched43 = false;
740 						if (((_tokenSet_2.member(LA(1))) && (true) && (true))) {
741 							int _m43 = mark();
742 							synPredMatched43 = true;
743 							inputState.guessing++;
744 							try {
745 								{
746 								mOTHER(false);
747 								mQUIRKS_DESCR(false);
748 								}
749 							}
750 							catch (RecognitionException pe) {
751 								synPredMatched43 = false;
752 							}
753 							rewind(_m43);
754 inputState.guessing--;
755 						}
756 						if ( synPredMatched43 ) {
757 							mQUIRKS_DESCR(false);
758 							if ( inputState.guessing==0 ) {
759 								_ttype =  QUIRKS_DESCR;
760 							}
761 						}
762 						else {
763 							boolean synPredMatched45 = false;
764 							if (((_tokenSet_2.member(LA(1))) && (true) && (true))) {
765 								int _m45 = mark();
766 								synPredMatched45 = true;
767 								inputState.guessing++;
768 								try {
769 									{
770 									mDESCR(false);
771 									mQUIRKS_DESCR(false);
772 									}
773 								}
774 								catch (RecognitionException pe) {
775 									synPredMatched45 = false;
776 								}
777 								rewind(_m45);
778 inputState.guessing--;
779 							}
780 							if ( synPredMatched45 ) {
781 								mQUIRKS_DESCR(false);
782 								if ( inputState.guessing==0 ) {
783 									_ttype =  QUIRKS_DESCR;
784 								}
785 							}
786 							else if (((LA(1) >= 'a' && LA(1) <= 'z')) && (true) && (true)) {
787 								{
788 								mDESCR(false);
789 								}
790 								if ( inputState.guessing==0 ) {
791 									_ttype =  DESCR;
792 								}
793 							}
794 							else if (((LA(1) >= '0' && LA(1) <= '9')) && (true) && (true)) {
795 								{
796 								mNUMBER(false);
797 								}
798 								if ( inputState.guessing==0 ) {
799 									_ttype =  NUMBER;
800 								}
801 							}
802 							else {
803 								throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
804 							}
805 							}}}}}
806 							if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
807 								_token = makeToken(_ttype);
808 								_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
809 							}
810 							_returnToken = _token;
811 						}
812 						
813 						
814 						private static final long[] mk_tokenSet_0() {
815 							long[] data = new long[8];
816 							data[0]=-1032L;
817 							for (int i = 1; i<=3; i++) { data[i]=-1L; }
818 							return data;
819 						}
820 						public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
821 						private static final long[] mk_tokenSet_1() {
822 							long[] data = { 288019269919178752L, 0L, 0L, 0L, 0L};
823 							return data;
824 						}
825 						public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
826 						private static final long[] mk_tokenSet_2() {
827 							long[] data = { 1152745582746402816L, 576460745860972544L, 0L, 0L, 0L};
828 							return data;
829 						}
830 						public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2());
831 						
832 						}