001// $ANTLR 2.7.7 (20060906): "schemaConverter.g" -> "antlrSchemaConverterLexer.java"$
002
003/*
004 *  Licensed to the Apache Software Foundation (ASF) under one
005 *  or more contributor license agreements.  See the NOTICE file
006 *  distributed with this work for additional information
007 *  regarding copyright ownership.  The ASF licenses this file
008 *  to you under the Apache License, Version 2.0 (the
009 *  "License"); you may not use this file except in compliance
010 *  with the License.  You may obtain a copy of the License at
011 *  
012 *    http://www.apache.org/licenses/LICENSE-2.0
013 *  
014 *  Unless required by applicable law or agreed to in writing,
015 *  software distributed under the License is distributed on an
016 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 *  KIND, either express or implied.  See the License for the
018 *  specific language governing permissions and limitations
019 *  under the License. 
020 *  
021 */
022/*
023 * Keep the semicolon right next to the package name or else there will be a
024 * bug that comes into the foreground in the new antlr release.
025 */
026package org.apache.directory.api.ldap.schema.converter;
027import java.util.List ;
028import java.util.ArrayList ;
029import java.util.Collections;
030import java.io.IOException;
031
032import org.apache.directory.api.ldap.schema.converter.SchemaElement;
033import org.apache.directory.api.ldap.model.schema.UsageEnum;
034import org.apache.directory.api.ldap.model.schema.ObjectClassTypeEnum;
035
036import java.io.InputStream;
037import antlr.TokenStreamException;
038import antlr.TokenStreamIOException;
039import antlr.TokenStreamRecognitionException;
040import antlr.CharStreamException;
041import antlr.CharStreamIOException;
042import antlr.ANTLRException;
043import java.io.Reader;
044import java.util.Hashtable;
045import antlr.CharScanner;
046import antlr.InputBuffer;
047import antlr.ByteBuffer;
048import antlr.CharBuffer;
049import antlr.Token;
050import antlr.CommonToken;
051import antlr.RecognitionException;
052import antlr.NoViableAltForCharException;
053import antlr.MismatchedCharException;
054import antlr.TokenStream;
055import antlr.ANTLRHashString;
056import antlr.LexerSharedInputState;
057import antlr.collections.impl.BitSet;
058import antlr.SemanticException;
059
060public class antlrSchemaConverterLexer extends antlr.CharScanner implements antlrSchemaTokenTypes, TokenStream
061 {
062public antlrSchemaConverterLexer(InputStream in) {
063        this(new ByteBuffer(in));
064}
065public antlrSchemaConverterLexer(Reader in) {
066        this(new CharBuffer(in));
067}
068public antlrSchemaConverterLexer(InputBuffer ib) {
069        this(new LexerSharedInputState(ib));
070}
071public antlrSchemaConverterLexer(LexerSharedInputState state) {
072        super(state);
073        caseSensitiveLiterals = true;
074        setCaseSensitive(false);
075        literals = new Hashtable();
076        literals.put(new ANTLRHashString("NAME", this), new Integer(26));
077        literals.put(new ANTLRHashString("SINGLE-VALUE", this), new Integer(28));
078        literals.put(new ANTLRHashString("COLLECTIVE", this), new Integer(29));
079        literals.put(new ANTLRHashString("ABSTRACT", this), new Integer(20));
080        literals.put(new ANTLRHashString("MAY", this), new Integer(23));
081        literals.put(new ANTLRHashString("END", this), new Integer(17));
082        literals.put(new ANTLRHashString("SUP", this), new Integer(25));
083        literals.put(new ANTLRHashString("EQUALITY", this), new Integer(31));
084        literals.put(new ANTLRHashString("userApplications", this), new Integer(35));
085        literals.put(new ANTLRHashString("dSAOperation", this), new Integer(38));
086        literals.put(new ANTLRHashString("AUXILIARY", this), new Integer(22));
087        literals.put(new ANTLRHashString("objectclass", this), new Integer(18));
088        literals.put(new ANTLRHashString("directoryOperation", this), new Integer(36));
089        literals.put(new ANTLRHashString("OBSOLETE", this), new Integer(19));
090        literals.put(new ANTLRHashString("distributedOperation", this), new Integer(37));
091        literals.put(new ANTLRHashString("STRUCTURAL", this), new Integer(21));
092        literals.put(new ANTLRHashString("USAGE", this), new Integer(34));
093        literals.put(new ANTLRHashString("ORDERING", this), new Integer(33));
094        literals.put(new ANTLRHashString("attributetype", this), new Integer(27));
095        literals.put(new ANTLRHashString("NO-USER-MODIFICATION", this), new Integer(30));
096        literals.put(new ANTLRHashString("SUBSTR", this), new Integer(32));
097        literals.put(new ANTLRHashString("MUST", this), new Integer(24));
098}
099
100public Token nextToken() throws TokenStreamException {
101        Token theRetToken=null;
102tryAgain:
103        for (;;) {
104                Token _token = null;
105                int _ttype = Token.INVALID_TYPE;
106                resetText();
107                try {   // for char stream error handling
108                        try {   // for lexical error handling
109                                switch ( LA(1)) {
110                                case '\t':  case '\n':  case '\r':  case ' ':
111                                case '#':
112                                {
113                                        mWS(true);
114                                        theRetToken=_returnToken;
115                                        break;
116                                }
117                                case '\'':
118                                {
119                                        mQUOTE(true);
120                                        theRetToken=_returnToken;
121                                        break;
122                                }
123                                case '$':
124                                {
125                                        mDOLLAR(true);
126                                        theRetToken=_returnToken;
127                                        break;
128                                }
129                                case '(':
130                                {
131                                        mOPEN_PAREN(true);
132                                        theRetToken=_returnToken;
133                                        break;
134                                }
135                                case ')':
136                                {
137                                        mCLOSE_PAREN(true);
138                                        theRetToken=_returnToken;
139                                        break;
140                                }
141                                case '{':
142                                {
143                                        mOPEN_BRACKET(true);
144                                        theRetToken=_returnToken;
145                                        break;
146                                }
147                                case '}':
148                                {
149                                        mCLOSE_BRACKET(true);
150                                        theRetToken=_returnToken;
151                                        break;
152                                }
153                                default:
154                                        if ((LA(1)=='s') && (LA(2)=='y') && (LA(3)=='n') && (LA(4)=='t') && (LA(5)=='a') && (LA(6)=='x') && (_tokenSet_0.member(LA(7)))) {
155                                                mSYNTAX(true);
156                                                theRetToken=_returnToken;
157                                        }
158                                        else if ((LA(1)=='d') && (LA(2)=='e') && (LA(3)=='s') && (LA(4)=='c') && (_tokenSet_0.member(LA(5)))) {
159                                                mDESC(true);
160                                                theRetToken=_returnToken;
161                                        }
162                                        else if (((LA(1) >= '0' && LA(1) <= '9')) && (_tokenSet_1.member(LA(2)))) {
163                                                mNUMERICOID(true);
164                                                theRetToken=_returnToken;
165                                        }
166                                        else if (((LA(1) >= '0' && LA(1) <= '9')) && (true)) {
167                                                mDIGIT(true);
168                                                theRetToken=_returnToken;
169                                        }
170                                        else if (((LA(1) >= 'a' && LA(1) <= 'z')) && (true) && (true) && (true) && (true) && (true) && (true)) {
171                                                mIDENTIFIER(true);
172                                                theRetToken=_returnToken;
173                                        }
174                                else {
175                                        if (LA(1)==EOF_CHAR) {uponEOF(); _returnToken = makeToken(Token.EOF_TYPE);}
176                                else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
177                                }
178                                }
179                                if ( _returnToken==null ) continue tryAgain; // found SKIP token
180                                _ttype = _returnToken.getType();
181                                _ttype = testLiteralsTable(_ttype);
182                                _returnToken.setType(_ttype);
183                                return _returnToken;
184                        }
185                        catch (RecognitionException e) {
186                                throw new TokenStreamRecognitionException(e);
187                        }
188                }
189                catch (CharStreamException cse) {
190                        if ( cse instanceof CharStreamIOException ) {
191                                throw new TokenStreamIOException(((CharStreamIOException)cse).io);
192                        }
193                        else {
194                                throw new TokenStreamException(cse.getMessage());
195                        }
196                }
197        }
198}
199
200        public final void mWS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
201                int _ttype; Token _token=null; int _begin=text.length();
202                _ttype = WS;
203                int _saveIndex;
204                
205                {
206                switch ( LA(1)) {
207                case '#':
208                {
209                        match('#');
210                        {
211                        _loop4:
212                        do {
213                                if ((_tokenSet_2.member(LA(1)))) {
214                                        matchNot('\n');
215                                }
216                                else {
217                                        break _loop4;
218                                }
219                                
220                        } while (true);
221                        }
222                        match('\n');
223                        newline();
224                        break;
225                }
226                case ' ':
227                {
228                        match(' ');
229                        break;
230                }
231                case '\t':
232                {
233                        match('\t');
234                        break;
235                }
236                case '\n':
237                {
238                        match('\n');
239                        newline();
240                        break;
241                }
242                default:
243                        if ((LA(1)=='\r') && (LA(2)=='\n')) {
244                                match('\r');
245                                match('\n');
246                                newline();
247                        }
248                        else if ((LA(1)=='\r') && (true)) {
249                                match('\r');
250                                newline();
251                        }
252                else {
253                        throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
254                }
255                }
256                }
257                _ttype = Token.SKIP;
258                if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
259                        _token = makeToken(_ttype);
260                        _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
261                }
262                _returnToken = _token;
263        }
264        
265        public final void mQUOTE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
266                int _ttype; Token _token=null; int _begin=text.length();
267                _ttype = QUOTE;
268                int _saveIndex;
269                
270                match('\'');
271                if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
272                        _token = makeToken(_ttype);
273                        _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
274                }
275                _returnToken = _token;
276        }
277        
278        public final void mDIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
279                int _ttype; Token _token=null; int _begin=text.length();
280                _ttype = DIGIT;
281                int _saveIndex;
282                
283                matchRange('0','9');
284                if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
285                        _token = makeToken(_ttype);
286                        _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
287                }
288                _returnToken = _token;
289        }
290        
291        public final void mDOLLAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
292                int _ttype; Token _token=null; int _begin=text.length();
293                _ttype = DOLLAR;
294                int _saveIndex;
295                
296                match('$');
297                if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
298                        _token = makeToken(_ttype);
299                        _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
300                }
301                _returnToken = _token;
302        }
303        
304        public final void mOPEN_PAREN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
305                int _ttype; Token _token=null; int _begin=text.length();
306                _ttype = OPEN_PAREN;
307                int _saveIndex;
308                
309                match('(');
310                if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
311                        _token = makeToken(_ttype);
312                        _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
313                }
314                _returnToken = _token;
315        }
316        
317        public final void mCLOSE_PAREN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
318                int _ttype; Token _token=null; int _begin=text.length();
319                _ttype = CLOSE_PAREN;
320                int _saveIndex;
321                
322                match(')');
323                if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
324                        _token = makeToken(_ttype);
325                        _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
326                }
327                _returnToken = _token;
328        }
329        
330        public final void mOPEN_BRACKET(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
331                int _ttype; Token _token=null; int _begin=text.length();
332                _ttype = OPEN_BRACKET;
333                int _saveIndex;
334                
335                match('{');
336                if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
337                        _token = makeToken(_ttype);
338                        _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
339                }
340                _returnToken = _token;
341        }
342        
343        public final void mCLOSE_BRACKET(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
344                int _ttype; Token _token=null; int _begin=text.length();
345                _ttype = CLOSE_BRACKET;
346                int _saveIndex;
347                
348                match('}');
349                if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
350                        _token = makeToken(_ttype);
351                        _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
352                }
353                _returnToken = _token;
354        }
355        
356        protected final void mNUMERIC_STRING(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
357                int _ttype; Token _token=null; int _begin=text.length();
358                _ttype = NUMERIC_STRING;
359                int _saveIndex;
360                
361                {
362                int _cnt14=0;
363                _loop14:
364                do {
365                        if (((LA(1) >= '0' && LA(1) <= '9'))) {
366                                matchRange('0','9');
367                        }
368                        else {
369                                if ( _cnt14>=1 ) { break _loop14; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
370                        }
371                        
372                        _cnt14++;
373                } while (true);
374                }
375                if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
376                        _token = makeToken(_ttype);
377                        _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
378                }
379                _returnToken = _token;
380        }
381        
382        public final void mNUMERICOID(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
383                int _ttype; Token _token=null; int _begin=text.length();
384                _ttype = NUMERICOID;
385                int _saveIndex;
386                
387                mNUMERIC_STRING(false);
388                {
389                int _cnt17=0;
390                _loop17:
391                do {
392                        if ((LA(1)=='.')) {
393                                match('.');
394                                mNUMERIC_STRING(false);
395                        }
396                        else {
397                                if ( _cnt17>=1 ) { break _loop17; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
398                        }
399                        
400                        _cnt17++;
401                } while (true);
402                }
403                if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
404                        _token = makeToken(_ttype);
405                        _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
406                }
407                _returnToken = _token;
408        }
409        
410        public final void mIDENTIFIER(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
411                int _ttype; Token _token=null; int _begin=text.length();
412                _ttype = IDENTIFIER;
413                int _saveIndex;
414                
415                {
416                matchRange('a','z');
417                }
418                {
419                _loop21:
420                do {
421                        switch ( LA(1)) {
422                        case 'a':  case 'b':  case 'c':  case 'd':
423                        case 'e':  case 'f':  case 'g':  case 'h':
424                        case 'i':  case 'j':  case 'k':  case 'l':
425                        case 'm':  case 'n':  case 'o':  case 'p':
426                        case 'q':  case 'r':  case 's':  case 't':
427                        case 'u':  case 'v':  case 'w':  case 'x':
428                        case 'y':  case 'z':
429                        {
430                                matchRange('a','z');
431                                break;
432                        }
433                        case '0':  case '1':  case '2':  case '3':
434                        case '4':  case '5':  case '6':  case '7':
435                        case '8':  case '9':
436                        {
437                                matchRange('0','9');
438                                break;
439                        }
440                        case '-':
441                        {
442                                match('-');
443                                break;
444                        }
445                        case ';':
446                        {
447                                match(';');
448                                break;
449                        }
450                        default:
451                        {
452                                break _loop21;
453                        }
454                        }
455                } while (true);
456                }
457                _ttype = testLiteralsTable(_ttype);
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 mDESC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
466                int _ttype; Token _token=null; int _begin=text.length();
467                _ttype = DESC;
468                int _saveIndex;
469                
470                match("desc");
471                mWS(false);
472                mQUOTE(false);
473                {
474                int _cnt24=0;
475                _loop24:
476                do {
477                        if ((LA(1)=='\\') && (LA(2)=='\'') && ((LA(3) >= '\u0003' && LA(3) <= '\u00ff')) && (true) && (true) && (true) && (true)) {
478                                match('\\');
479                                match('\'');
480                        }
481                        else if ((_tokenSet_3.member(LA(1))) && ((LA(2) >= '\u0003' && LA(2) <= '\u00ff')) && (true) && (true) && (true) && (true) && (true)) {
482                                matchNot('\'');
483                        }
484                        else {
485                                if ( _cnt24>=1 ) { break _loop24; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
486                        }
487                        
488                        _cnt24++;
489                } while (true);
490                }
491                mQUOTE(false);
492                if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
493                        _token = makeToken(_ttype);
494                        _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
495                }
496                _returnToken = _token;
497        }
498        
499        public final void mSYNTAX(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
500                int _ttype; Token _token=null; int _begin=text.length();
501                _ttype = SYNTAX;
502                int _saveIndex;
503                
504                match("syntax");
505                mWS(false);
506                mNUMERICOID(false);
507                {
508                if ((LA(1)=='{')) {
509                        mOPEN_BRACKET(false);
510                        {
511                        int _cnt28=0;
512                        _loop28:
513                        do {
514                                if (((LA(1) >= '0' && LA(1) <= '9'))) {
515                                        mDIGIT(false);
516                                }
517                                else {
518                                        if ( _cnt28>=1 ) { break _loop28; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
519                                }
520                                
521                                _cnt28++;
522                        } while (true);
523                        }
524                        mCLOSE_BRACKET(false);
525                }
526                else {
527                }
528                
529                }
530                if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
531                        _token = makeToken(_ttype);
532                        _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
533                }
534                _returnToken = _token;
535        }
536        
537        
538        private static final long[] mk_tokenSet_0() {
539                long[] data = { 38654715392L, 0L, 0L, 0L, 0L};
540                return data;
541        }
542        public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
543        private static final long[] mk_tokenSet_1() {
544                long[] data = { 288019269919178752L, 0L, 0L, 0L, 0L};
545                return data;
546        }
547        public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
548        private static final long[] mk_tokenSet_2() {
549                long[] data = new long[8];
550                data[0]=-1032L;
551                for (int i = 1; i<=3; i++) { data[i]=-1L; }
552                return data;
553        }
554        public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2());
555        private static final long[] mk_tokenSet_3() {
556                long[] data = new long[8];
557                data[0]=-549755813896L;
558                for (int i = 1; i<=3; i++) { data[i]=-1L; }
559                return data;
560        }
561        public static final BitSet _tokenSet_3 = new BitSet(mk_tokenSet_3());
562        
563        }