001    // $ANTLR 2.7.4: "schema-value.g" -> "AntlrSchemaValueLexer.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    package org.apache.directory.shared.ldap.schema.syntax;
023    
024    import java.util.List;
025    import java.util.ArrayList;
026    
027    import org.apache.directory.shared.ldap.schema.parsers.ParserMonitor;
028    
029    
030    import java.io.InputStream;
031    import antlr.TokenStreamException;
032    import antlr.TokenStreamIOException;
033    import antlr.TokenStreamRecognitionException;
034    import antlr.CharStreamException;
035    import antlr.CharStreamIOException;
036    import antlr.ANTLRException;
037    import java.io.Reader;
038    import java.util.Hashtable;
039    import antlr.CharScanner;
040    import antlr.InputBuffer;
041    import antlr.ByteBuffer;
042    import antlr.CharBuffer;
043    import antlr.Token;
044    import antlr.CommonToken;
045    import antlr.RecognitionException;
046    import antlr.NoViableAltForCharException;
047    import antlr.MismatchedCharException;
048    import antlr.TokenStream;
049    import antlr.ANTLRHashString;
050    import antlr.LexerSharedInputState;
051    import antlr.collections.impl.BitSet;
052    import antlr.SemanticException;
053    
054    /**
055     * An antlr generated schema lexer. This is a sub-lexer.
056     *
057     * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
058     * @version $Rev$
059     */
060    public class AntlrSchemaValueLexer extends antlr.CharScanner implements AntlrSchemaValueTokenTypes, TokenStream
061     {
062    public AntlrSchemaValueLexer(InputStream in) {
063            this(new ByteBuffer(in));
064    }
065    public AntlrSchemaValueLexer(Reader in) {
066            this(new CharBuffer(in));
067    }
068    public AntlrSchemaValueLexer(InputBuffer ib) {
069            this(new LexerSharedInputState(ib));
070    }
071    public AntlrSchemaValueLexer(LexerSharedInputState state) {
072            super(state);
073            caseSensitiveLiterals = true;
074            setCaseSensitive(false);
075            literals = new Hashtable();
076    }
077    
078    public Token nextToken() throws TokenStreamException {
079            Token theRetToken=null;
080    tryAgain:
081            for (;;) {
082                    Token _token = null;
083                    int _ttype = Token.INVALID_TYPE;
084                    resetText();
085                    try {   // for char stream error handling
086                            try {   // for lexical error handling
087                                    switch ( LA(1)) {
088                                    case '\t':  case '\n':  case '\r':  case ' ':
089                                    case '#':
090                                    {
091                                            mWHSP(true);
092                                            theRetToken=_returnToken;
093                                            break;
094                                    }
095                                    case '(':
096                                    {
097                                            mLPAR(true);
098                                            theRetToken=_returnToken;
099                                            break;
100                                    }
101                                    case ')':
102                                    {
103                                            mRPAR(true);
104                                            theRetToken=_returnToken;
105                                            break;
106                                    }
107                                    case '\'':
108                                    {
109                                            mQUOTE(true);
110                                            theRetToken=_returnToken;
111                                            break;
112                                    }
113                                    case '$':
114                                    {
115                                            mDOLLAR(true);
116                                            theRetToken=_returnToken;
117                                            break;
118                                    }
119                                    case '}':
120                                    {
121                                            mRCURLY(true);
122                                            theRetToken=_returnToken;
123                                            break;
124                                    }
125                                    case '-':  case '.':  case '0':  case '1':
126                                    case '2':  case '3':  case '4':  case '5':
127                                    case '6':  case '7':  case '8':  case '9':
128                                    case ':':  case ';':  case '_':  case 'a':
129                                    case 'b':  case 'c':  case 'd':  case 'e':
130                                    case 'f':  case 'g':  case 'h':  case 'i':
131                                    case 'j':  case 'k':  case 'l':  case 'm':
132                                    case 'n':  case 'o':  case 'p':  case 'q':
133                                    case 'r':  case 's':  case 't':  case 'u':
134                                    case 'v':  case 'w':  case 'x':  case 'y':
135                                    case 'z':
136                                    {
137                                            mDESCR_OR_QUIRKS_DESCR(true);
138                                            theRetToken=_returnToken;
139                                            break;
140                                    }
141                                    default:
142                                            if ((LA(1)=='{') && ((LA(2) >= '0' && LA(2) <= '9'))) {
143                                                    mLEN(true);
144                                                    theRetToken=_returnToken;
145                                            }
146                                            else if ((LA(1)=='{') && (true)) {
147                                                    mLCURLY(true);
148                                                    theRetToken=_returnToken;
149                                            }
150                                    else {
151                                            if (LA(1)==EOF_CHAR) {uponEOF(); _returnToken = makeToken(Token.EOF_TYPE);}
152                                    else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
153                                    }
154                                    }
155                                    if ( _returnToken==null ) continue tryAgain; // found SKIP token
156                                    _ttype = _returnToken.getType();
157                                    _ttype = testLiteralsTable(_ttype);
158                                    _returnToken.setType(_ttype);
159                                    return _returnToken;
160                            }
161                            catch (RecognitionException e) {
162                                    throw new TokenStreamRecognitionException(e);
163                            }
164                    }
165                    catch (CharStreamException cse) {
166                            if ( cse instanceof CharStreamIOException ) {
167                                    throw new TokenStreamIOException(((CharStreamIOException)cse).io);
168                            }
169                            else {
170                                    throw new TokenStreamException(cse.getMessage());
171                            }
172                    }
173            }
174    }
175    
176            public final void mWHSP(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
177                    int _ttype; Token _token=null; int _begin=text.length();
178                    _ttype = WHSP;
179                    int _saveIndex;
180                    
181                    {
182                    int _cnt972=0;
183                    _loop972:
184                    do {
185                            switch ( LA(1)) {
186                            case ' ':
187                            {
188                                    match(' ');
189                                    break;
190                            }
191                            case '\t':
192                            {
193                                    match('\t');
194                                    break;
195                            }
196                            case '\r':
197                            {
198                                    match('\r');
199                                    {
200                                    if ((LA(1)=='\n') && (true) && (true)) {
201                                            match('\n');
202                                    }
203                                    else {
204                                    }
205                                    
206                                    }
207                                    if ( inputState.guessing==0 ) {
208                                            newline();
209                                    }
210                                    break;
211                            }
212                            case '\n':
213                            {
214                                    match('\n');
215                                    if ( inputState.guessing==0 ) {
216                                            newline();
217                                    }
218                                    break;
219                            }
220                            case '#':
221                            {
222                                    match('#');
223                                    {
224                                    _loop971:
225                                    do {
226                                            if ((_tokenSet_0.member(LA(1)))) {
227                                                    matchNot('\n');
228                                            }
229                                            else {
230                                                    break _loop971;
231                                            }
232                                            
233                                    } while (true);
234                                    }
235                                    match('\n');
236                                    if ( inputState.guessing==0 ) {
237                                            newline();
238                                    }
239                                    break;
240                            }
241                            default:
242                            {
243                                    if ( _cnt972>=1 ) { break _loop972; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
244                            }
245                            }
246                            _cnt972++;
247                    } while (true);
248                    }
249                    if ( inputState.guessing==0 ) {
250                            setText(" ");
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 mLPAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
260                    int _ttype; Token _token=null; int _begin=text.length();
261                    _ttype = LPAR;
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 mRPAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
273                    int _ttype; Token _token=null; int _begin=text.length();
274                    _ttype = RPAR;
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            protected final void mCHAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
286                    int _ttype; Token _token=null; int _begin=text.length();
287                    _ttype = CHAR;
288                    int _saveIndex;
289                    
290                    matchRange('a','z');
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            protected final void mLDIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
299                    int _ttype; Token _token=null; int _begin=text.length();
300                    _ttype = LDIGIT;
301                    int _saveIndex;
302                    
303                    matchRange('1','9');
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            protected final void mDIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
312                    int _ttype; Token _token=null; int _begin=text.length();
313                    _ttype = DIGIT;
314                    int _saveIndex;
315                    
316                    matchRange('0','9');
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            protected final void mNUMBER(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
325                    int _ttype; Token _token=null; int _begin=text.length();
326                    _ttype = NUMBER;
327                    int _saveIndex;
328                    
329                    if (((LA(1) >= '1' && LA(1) <= '9')) && ((LA(2) >= '0' && LA(2) <= '9'))) {
330                            {
331                            mLDIGIT(false);
332                            {
333                            int _cnt981=0;
334                            _loop981:
335                            do {
336                                    if (((LA(1) >= '0' && LA(1) <= '9'))) {
337                                            mDIGIT(false);
338                                    }
339                                    else {
340                                            if ( _cnt981>=1 ) { break _loop981; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
341                                    }
342                                    
343                                    _cnt981++;
344                            } while (true);
345                            }
346                            }
347                    }
348                    else if (((LA(1) >= '0' && LA(1) <= '9')) && (true)) {
349                            mDIGIT(false);
350                    }
351                    else {
352                            throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
353                    }
354                    
355                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
356                            _token = makeToken(_ttype);
357                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
358                    }
359                    _returnToken = _token;
360            }
361            
362            protected final void mNUMBER2(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
363                    int _ttype; Token _token=null; int _begin=text.length();
364                    _ttype = NUMBER2;
365                    int _saveIndex;
366                    
367                    {
368                    int _cnt984=0;
369                    _loop984:
370                    do {
371                            if (((LA(1) >= '0' && LA(1) <= '9'))) {
372                                    mDIGIT(false);
373                            }
374                            else {
375                                    if ( _cnt984>=1 ) { break _loop984; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
376                            }
377                            
378                            _cnt984++;
379                    } while (true);
380                    }
381                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
382                            _token = makeToken(_ttype);
383                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
384                    }
385                    _returnToken = _token;
386            }
387            
388            protected final void mNUMERICOID(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
389                    int _ttype; Token _token=null; int _begin=text.length();
390                    _ttype = NUMERICOID;
391                    int _saveIndex;
392                    
393                    mNUMBER(false);
394                    {
395                    int _cnt987=0;
396                    _loop987:
397                    do {
398                            if ((LA(1)=='.')) {
399                                    match('.');
400                                    mNUMBER(false);
401                            }
402                            else {
403                                    if ( _cnt987>=1 ) { break _loop987; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
404                            }
405                            
406                            _cnt987++;
407                    } while (true);
408                    }
409                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
410                            _token = makeToken(_ttype);
411                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
412                    }
413                    _returnToken = _token;
414            }
415            
416            protected final void mHYPEN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
417                    int _ttype; Token _token=null; int _begin=text.length();
418                    _ttype = HYPEN;
419                    int _saveIndex;
420                    
421                    match('-');
422                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
423                            _token = makeToken(_ttype);
424                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
425                    }
426                    _returnToken = _token;
427            }
428            
429            protected final void mOTHER(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
430                    int _ttype; Token _token=null; int _begin=text.length();
431                    _ttype = OTHER;
432                    int _saveIndex;
433                    
434                    switch ( LA(1)) {
435                    case '_':
436                    {
437                            match('_');
438                            break;
439                    }
440                    case ';':
441                    {
442                            match(';');
443                            break;
444                    }
445                    case '.':
446                    {
447                            match('.');
448                            break;
449                    }
450                    case ':':
451                    {
452                            match(':');
453                            break;
454                    }
455                    default:
456                    {
457                            throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
458                    }
459                    }
460                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
461                            _token = makeToken(_ttype);
462                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
463                    }
464                    _returnToken = _token;
465            }
466            
467            protected final void mDESCR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
468                    int _ttype; Token _token=null; int _begin=text.length();
469                    _ttype = DESCR;
470                    int _saveIndex;
471                    
472                    mCHAR(false);
473                    {
474                    _loop992:
475                    do {
476                            switch ( LA(1)) {
477                            case 'a':  case 'b':  case 'c':  case 'd':
478                            case 'e':  case 'f':  case 'g':  case 'h':
479                            case 'i':  case 'j':  case 'k':  case 'l':
480                            case 'm':  case 'n':  case 'o':  case 'p':
481                            case 'q':  case 'r':  case 's':  case 't':
482                            case 'u':  case 'v':  case 'w':  case 'x':
483                            case 'y':  case 'z':
484                            {
485                                    mCHAR(false);
486                                    break;
487                            }
488                            case '0':  case '1':  case '2':  case '3':
489                            case '4':  case '5':  case '6':  case '7':
490                            case '8':  case '9':
491                            {
492                                    mDIGIT(false);
493                                    break;
494                            }
495                            case '-':
496                            {
497                                    mHYPEN(false);
498                                    break;
499                            }
500                            default:
501                            {
502                                    break _loop992;
503                            }
504                            }
505                    } while (true);
506                    }
507                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
508                            _token = makeToken(_ttype);
509                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
510                    }
511                    _returnToken = _token;
512            }
513            
514            protected final void mQUIRKS_DESCR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
515                    int _ttype; Token _token=null; int _begin=text.length();
516                    _ttype = QUIRKS_DESCR;
517                    int _saveIndex;
518                    
519                    {
520                    int _cnt995=0;
521                    _loop995:
522                    do {
523                            switch ( LA(1)) {
524                            case 'a':  case 'b':  case 'c':  case 'd':
525                            case 'e':  case 'f':  case 'g':  case 'h':
526                            case 'i':  case 'j':  case 'k':  case 'l':
527                            case 'm':  case 'n':  case 'o':  case 'p':
528                            case 'q':  case 'r':  case 's':  case 't':
529                            case 'u':  case 'v':  case 'w':  case 'x':
530                            case 'y':  case 'z':
531                            {
532                                    mCHAR(false);
533                                    break;
534                            }
535                            case '0':  case '1':  case '2':  case '3':
536                            case '4':  case '5':  case '6':  case '7':
537                            case '8':  case '9':
538                            {
539                                    mDIGIT(false);
540                                    break;
541                            }
542                            case '-':
543                            {
544                                    mHYPEN(false);
545                                    break;
546                            }
547                            case '.':  case ':':  case ';':  case '_':
548                            {
549                                    mOTHER(false);
550                                    break;
551                            }
552                            default:
553                            {
554                                    if ( _cnt995>=1 ) { break _loop995; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
555                            }
556                            }
557                            _cnt995++;
558                    } while (true);
559                    }
560                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
561                            _token = makeToken(_ttype);
562                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
563                    }
564                    _returnToken = _token;
565            }
566            
567            public final void mQUOTE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
568                    int _ttype; Token _token=null; int _begin=text.length();
569                    _ttype = QUOTE;
570                    int _saveIndex;
571                    
572                    match('\'');
573                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
574                            _token = makeToken(_ttype);
575                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
576                    }
577                    _returnToken = _token;
578            }
579            
580            public final void mDOLLAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
581                    int _ttype; Token _token=null; int _begin=text.length();
582                    _ttype = DOLLAR;
583                    int _saveIndex;
584                    
585                    match('$');
586                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
587                            _token = makeToken(_ttype);
588                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
589                    }
590                    _returnToken = _token;
591            }
592            
593            public final void mLCURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
594                    int _ttype; Token _token=null; int _begin=text.length();
595                    _ttype = LCURLY;
596                    int _saveIndex;
597                    
598                    match('{');
599                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
600                            _token = makeToken(_ttype);
601                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
602                    }
603                    _returnToken = _token;
604            }
605            
606            public final void mRCURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
607                    int _ttype; Token _token=null; int _begin=text.length();
608                    _ttype = RCURLY;
609                    int _saveIndex;
610                    
611                    match('}');
612                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
613                            _token = makeToken(_ttype);
614                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
615                    }
616                    _returnToken = _token;
617            }
618            
619            public final void mLEN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
620                    int _ttype; Token _token=null; int _begin=text.length();
621                    _ttype = LEN;
622                    int _saveIndex;
623                    Token n=null;
624                    
625                    mLCURLY(false);
626                    mNUMBER2(true);
627                    n=_returnToken;
628                    mRCURLY(false);
629                    if ( inputState.guessing==0 ) {
630                            setText(n.getText());
631                    }
632                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
633                            _token = makeToken(_ttype);
634                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
635                    }
636                    _returnToken = _token;
637            }
638            
639            public final void mDESCR_OR_QUIRKS_DESCR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
640                    int _ttype; Token _token=null; int _begin=text.length();
641                    _ttype = DESCR_OR_QUIRKS_DESCR;
642                    int _saveIndex;
643                    
644                    boolean synPredMatched1014 = false;
645                    if ((((LA(1) >= '0' && LA(1) <= '9')) && (_tokenSet_1.member(LA(2))) && (_tokenSet_1.member(LA(3))))) {
646                            int _m1014 = mark();
647                            synPredMatched1014 = true;
648                            inputState.guessing++;
649                            try {
650                                    {
651                                    mNUMBER(false);
652                                    match('.');
653                                    }
654                            }
655                            catch (RecognitionException pe) {
656                                    synPredMatched1014 = false;
657                            }
658                            rewind(_m1014);
659                            inputState.guessing--;
660                    }
661                    if ( synPredMatched1014 ) {
662                            mNUMERICOID(false);
663                            if ( inputState.guessing==0 ) {
664                                    _ttype =  NUMERICOID;
665                            }
666                    }
667                    else {
668                            boolean synPredMatched1003 = false;
669                            if (((_tokenSet_2.member(LA(1))) && (true) && (true))) {
670                                    int _m1003 = mark();
671                                    synPredMatched1003 = true;
672                                    inputState.guessing++;
673                                    try {
674                                            {
675                                            mNUMERICOID(false);
676                                            mQUIRKS_DESCR(false);
677                                            }
678                                    }
679                                    catch (RecognitionException pe) {
680                                            synPredMatched1003 = false;
681                                    }
682                                    rewind(_m1003);
683                                    inputState.guessing--;
684                            }
685                            if ( synPredMatched1003 ) {
686                                    mQUIRKS_DESCR(false);
687                                    if ( inputState.guessing==0 ) {
688                                            _ttype =  QUIRKS_DESCR;
689                                    }
690                            }
691                            else {
692                                    boolean synPredMatched1005 = false;
693                                    if (((_tokenSet_2.member(LA(1))) && (true) && (true))) {
694                                            int _m1005 = mark();
695                                            synPredMatched1005 = true;
696                                            inputState.guessing++;
697                                            try {
698                                                    {
699                                                    mNUMBER(false);
700                                                    mQUIRKS_DESCR(false);
701                                                    }
702                                            }
703                                            catch (RecognitionException pe) {
704                                                    synPredMatched1005 = false;
705                                            }
706                                            rewind(_m1005);
707                                            inputState.guessing--;
708                                    }
709                                    if ( synPredMatched1005 ) {
710                                            mQUIRKS_DESCR(false);
711                                            if ( inputState.guessing==0 ) {
712                                                    _ttype =  QUIRKS_DESCR;
713                                            }
714                                    }
715                                    else {
716                                            boolean synPredMatched1007 = false;
717                                            if (((_tokenSet_2.member(LA(1))) && (true) && (true))) {
718                                                    int _m1007 = mark();
719                                                    synPredMatched1007 = true;
720                                                    inputState.guessing++;
721                                                    try {
722                                                            {
723                                                            mHYPEN(false);
724                                                            mQUIRKS_DESCR(false);
725                                                            }
726                                                    }
727                                                    catch (RecognitionException pe) {
728                                                            synPredMatched1007 = false;
729                                                    }
730                                                    rewind(_m1007);
731                                                    inputState.guessing--;
732                                            }
733                                            if ( synPredMatched1007 ) {
734                                                    mQUIRKS_DESCR(false);
735                                                    if ( inputState.guessing==0 ) {
736                                                            _ttype =  QUIRKS_DESCR;
737                                                    }
738                                            }
739                                            else {
740                                                    boolean synPredMatched1009 = false;
741                                                    if (((_tokenSet_2.member(LA(1))) && (true) && (true))) {
742                                                            int _m1009 = mark();
743                                                            synPredMatched1009 = true;
744                                                            inputState.guessing++;
745                                                            try {
746                                                                    {
747                                                                    mOTHER(false);
748                                                                    mQUIRKS_DESCR(false);
749                                                                    }
750                                                            }
751                                                            catch (RecognitionException pe) {
752                                                                    synPredMatched1009 = false;
753                                                            }
754                                                            rewind(_m1009);
755                                                            inputState.guessing--;
756                                                    }
757                                                    if ( synPredMatched1009 ) {
758                                                            mQUIRKS_DESCR(false);
759                                                            if ( inputState.guessing==0 ) {
760                                                                    _ttype =  QUIRKS_DESCR;
761                                                            }
762                                                    }
763                                                    else {
764                                                            boolean synPredMatched1011 = false;
765                                                            if (((_tokenSet_2.member(LA(1))) && (true) && (true))) {
766                                                                    int _m1011 = mark();
767                                                                    synPredMatched1011 = true;
768                                                                    inputState.guessing++;
769                                                                    try {
770                                                                            {
771                                                                            mDESCR(false);
772                                                                            mQUIRKS_DESCR(false);
773                                                                            }
774                                                                    }
775                                                                    catch (RecognitionException pe) {
776                                                                            synPredMatched1011 = false;
777                                                                    }
778                                                                    rewind(_m1011);
779                                                                    inputState.guessing--;
780                                                            }
781                                                            if ( synPredMatched1011 ) {
782                                                                    mQUIRKS_DESCR(false);
783                                                                    if ( inputState.guessing==0 ) {
784                                                                            _ttype =  QUIRKS_DESCR;
785                                                                    }
786                                                            }
787                                                            else if (((LA(1) >= 'a' && LA(1) <= 'z')) && (true) && (true)) {
788                                                                    {
789                                                                    mDESCR(false);
790                                                                    }
791                                                                    if ( inputState.guessing==0 ) {
792                                                                            _ttype =  DESCR;
793                                                                    }
794                                                            }
795                                                            else if (((LA(1) >= '0' && LA(1) <= '9')) && (true) && (true)) {
796                                                                    {
797                                                                    mNUMBER(false);
798                                                                    }
799                                                                    if ( inputState.guessing==0 ) {
800                                                                            _ttype =  NUMBER;
801                                                                    }
802                                                            }
803                                                            else {
804                                                                    throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
805                                                            }
806                                                            }}}}}
807                                                            if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
808                                                                    _token = makeToken(_ttype);
809                                                                    _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
810                                                            }
811                                                            _returnToken = _token;
812                                                    }
813                                                    
814                                                    
815                                                    private static final long[] mk_tokenSet_0() {
816                                                            long[] data = new long[8];
817                                                            data[0]=-1032L;
818                                                            for (int i = 1; i<=3; i++) { data[i]=-1L; }
819                                                            return data;
820                                                    }
821                                                    public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
822                                                    private static final long[] mk_tokenSet_1() {
823                                                            long[] data = { 288019269919178752L, 0L, 0L, 0L, 0L};
824                                                            return data;
825                                                    }
826                                                    public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
827                                                    private static final long[] mk_tokenSet_2() {
828                                                            long[] data = { 1152745582746402816L, 576460745860972544L, 0L, 0L, 0L};
829                                                            return data;
830                                                    }
831                                                    public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2());
832                                                    
833                                                    }