001    // $ANTLR 2.7.4: "TriggerSpecification.g" -> "AntlrTriggerSpecificationLexer.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    
024    package org.apache.directory.shared.ldap.trigger;
025    
026    import java.util.ArrayList;
027    import java.util.List;
028    
029    import org.apache.directory.shared.ldap.name.DN;
030    import org.apache.directory.shared.ldap.schema.NormalizerMappingResolver;
031    import org.apache.directory.shared.ldap.trigger.StoredProcedureOption;
032    import org.apache.directory.shared.ldap.trigger.StoredProcedureParameter;
033    import org.apache.directory.shared.ldap.trigger.TriggerSpecification.SPSpec;
034    import org.apache.directory.shared.ldap.filter.SearchScope;
035    
036    import org.slf4j.Logger;
037    import org.slf4j.LoggerFactory;
038    
039    
040    import java.io.InputStream;
041    import antlr.TokenStreamException;
042    import antlr.TokenStreamIOException;
043    import antlr.TokenStreamRecognitionException;
044    import antlr.CharStreamException;
045    import antlr.CharStreamIOException;
046    import antlr.ANTLRException;
047    import java.io.Reader;
048    import java.util.Hashtable;
049    import antlr.CharScanner;
050    import antlr.InputBuffer;
051    import antlr.ByteBuffer;
052    import antlr.CharBuffer;
053    import antlr.Token;
054    import antlr.CommonToken;
055    import antlr.RecognitionException;
056    import antlr.NoViableAltForCharException;
057    import antlr.MismatchedCharException;
058    import antlr.TokenStream;
059    import antlr.ANTLRHashString;
060    import antlr.LexerSharedInputState;
061    import antlr.collections.impl.BitSet;
062    import antlr.SemanticException;
063    
064    /**
065      * The parser's primary lexer.
066      *
067      * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
068      * @version $Rev$
069      */
070    public class AntlrTriggerSpecificationLexer extends antlr.CharScanner implements AntlrTriggerSpecificationParserTokenTypes, TokenStream
071     {
072    
073        private static final Logger log = LoggerFactory.getLogger( AntlrTriggerSpecificationLexer.class );
074    public AntlrTriggerSpecificationLexer(InputStream in) {
075            this(new ByteBuffer(in));
076    }
077    public AntlrTriggerSpecificationLexer(Reader in) {
078            this(new CharBuffer(in));
079    }
080    public AntlrTriggerSpecificationLexer(InputBuffer ib) {
081            this(new LexerSharedInputState(ib));
082    }
083    public AntlrTriggerSpecificationLexer(LexerSharedInputState state) {
084            super(state);
085            caseSensitiveLiterals = false;
086            setCaseSensitive(false);
087            literals = new Hashtable();
088            literals.put(new ANTLRHashString("after", this), new Integer(5));
089            literals.put(new ANTLRHashString("scope", this), new Integer(40));
090            literals.put(new ANTLRHashString("rename", this), new Integer(14));
091            literals.put(new ANTLRHashString("$oldSuperiorDN", this), new Integer(31));
092            literals.put(new ANTLRHashString("$deleteoldrdn", this), new Integer(28));
093            literals.put(new ANTLRHashString("modifydn", this), new Integer(12));
094            literals.put(new ANTLRHashString("call", this), new Integer(17));
095            literals.put(new ANTLRHashString("$oldRDN", this), new Integer(30));
096            literals.put(new ANTLRHashString("$entry", this), new Integer(23));
097            literals.put(new ANTLRHashString("base", this), new Integer(41));
098            literals.put(new ANTLRHashString("$newrdn", this), new Integer(27));
099            literals.put(new ANTLRHashString("$modification", this), new Integer(20));
100            literals.put(new ANTLRHashString("$newSuperior", this), new Integer(29));
101            literals.put(new ANTLRHashString("languagescheme", this), new Integer(37));
102            literals.put(new ANTLRHashString("import", this), new Integer(16));
103            literals.put(new ANTLRHashString("subtree", this), new Integer(43));
104            literals.put(new ANTLRHashString("$attributes", this), new Integer(24));
105            literals.put(new ANTLRHashString("$name", this), new Integer(25));
106            literals.put(new ANTLRHashString("one", this), new Integer(42));
107            literals.put(new ANTLRHashString("$ldapcontext", this), new Integer(34));
108            literals.put(new ANTLRHashString("$newentry", this), new Integer(22));
109            literals.put(new ANTLRHashString("modify", this), new Integer(6));
110            literals.put(new ANTLRHashString("add", this), new Integer(10));
111            literals.put(new ANTLRHashString("$operationprincipal", this), new Integer(33));
112            literals.put(new ANTLRHashString("searchcontext", this), new Integer(39));
113            literals.put(new ANTLRHashString("$oldentry", this), new Integer(21));
114            literals.put(new ANTLRHashString("$newDN", this), new Integer(32));
115            literals.put(new ANTLRHashString("$object", this), new Integer(19));
116            literals.put(new ANTLRHashString("export", this), new Integer(15));
117            literals.put(new ANTLRHashString("delete", this), new Integer(11));
118            literals.put(new ANTLRHashString("$deletedentry", this), new Integer(26));
119    }
120    
121    public Token nextToken() throws TokenStreamException {
122            Token theRetToken=null;
123    tryAgain:
124            for (;;) {
125                    Token _token = null;
126                    int _ttype = Token.INVALID_TYPE;
127                    resetText();
128                    try {   // for char stream error handling
129                            try {   // for lexical error handling
130                                    switch ( LA(1)) {
131                                    case '(':
132                                    {
133                                            mOPEN_PARAN(true);
134                                            theRetToken=_returnToken;
135                                            break;
136                                    }
137                                    case ')':
138                                    {
139                                            mCLOSE_PARAN(true);
140                                            theRetToken=_returnToken;
141                                            break;
142                                    }
143                                    case '{':
144                                    {
145                                            mOPEN_CURLY(true);
146                                            theRetToken=_returnToken;
147                                            break;
148                                    }
149                                    case '}':
150                                    {
151                                            mCLOSE_CURLY(true);
152                                            theRetToken=_returnToken;
153                                            break;
154                                    }
155                                    case ';':
156                                    {
157                                            mSEMI(true);
158                                            theRetToken=_returnToken;
159                                            break;
160                                    }
161                                    case ',':
162                                    {
163                                            mSEP(true);
164                                            theRetToken=_returnToken;
165                                            break;
166                                    }
167                                    case '\t':  case '\n':  case '\r':  case ' ':
168                                    {
169                                            mSP(true);
170                                            theRetToken=_returnToken;
171                                            break;
172                                    }
173                                    case '.':
174                                    {
175                                            mDOT(true);
176                                            theRetToken=_returnToken;
177                                            break;
178                                    }
179                                    case '"':
180                                    {
181                                            mUTF8String(true);
182                                            theRetToken=_returnToken;
183                                            break;
184                                    }
185                                    case '#':
186                                    {
187                                            mCOMMENT(true);
188                                            theRetToken=_returnToken;
189                                            break;
190                                    }
191                                    case '$':  case 'a':  case 'b':  case 'c':
192                                    case 'd':  case 'e':  case 'f':  case 'g':
193                                    case 'h':  case 'i':  case 'j':  case 'k':
194                                    case 'l':  case 'm':  case 'n':  case 'o':
195                                    case 'p':  case 'q':  case 'r':  case 's':
196                                    case 't':  case 'u':  case 'v':  case 'w':
197                                    case 'x':  case 'y':  case 'z':
198                                    {
199                                            mIDENTIFIER(true);
200                                            theRetToken=_returnToken;
201                                            break;
202                                    }
203                                    default:
204                                    {
205                                            if (LA(1)==EOF_CHAR) {uponEOF(); _returnToken = makeToken(Token.EOF_TYPE);}
206                                    else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
207                                    }
208                                    }
209                                    if ( _returnToken==null ) continue tryAgain; // found SKIP token
210                                    _ttype = _returnToken.getType();
211                                    _ttype = testLiteralsTable(_ttype);
212                                    _returnToken.setType(_ttype);
213                                    return _returnToken;
214                            }
215                            catch (RecognitionException e) {
216                                    throw new TokenStreamRecognitionException(e);
217                            }
218                    }
219                    catch (CharStreamException cse) {
220                            if ( cse instanceof CharStreamIOException ) {
221                                    throw new TokenStreamIOException(((CharStreamIOException)cse).io);
222                            }
223                            else {
224                                    throw new TokenStreamException(cse.getMessage());
225                            }
226                    }
227            }
228    }
229    
230            public final void mOPEN_PARAN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
231                    int _ttype; Token _token=null; int _begin=text.length();
232                    _ttype = OPEN_PARAN;
233                    int _saveIndex;
234                    
235                    match('(');
236                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
237                            _token = makeToken(_ttype);
238                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
239                    }
240                    _returnToken = _token;
241            }
242            
243            public final void mCLOSE_PARAN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
244                    int _ttype; Token _token=null; int _begin=text.length();
245                    _ttype = CLOSE_PARAN;
246                    int _saveIndex;
247                    
248                    match(')');
249                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
250                            _token = makeToken(_ttype);
251                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
252                    }
253                    _returnToken = _token;
254            }
255            
256            public final void mOPEN_CURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
257                    int _ttype; Token _token=null; int _begin=text.length();
258                    _ttype = OPEN_CURLY;
259                    int _saveIndex;
260                    
261                    match('{');
262                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
263                            _token = makeToken(_ttype);
264                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
265                    }
266                    _returnToken = _token;
267            }
268            
269            public final void mCLOSE_CURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
270                    int _ttype; Token _token=null; int _begin=text.length();
271                    _ttype = CLOSE_CURLY;
272                    int _saveIndex;
273                    
274                    match('}');
275                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
276                            _token = makeToken(_ttype);
277                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
278                    }
279                    _returnToken = _token;
280            }
281            
282            public final void mSEMI(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
283                    int _ttype; Token _token=null; int _begin=text.length();
284                    _ttype = SEMI;
285                    int _saveIndex;
286                    
287                    match(';');
288                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
289                            _token = makeToken(_ttype);
290                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
291                    }
292                    _returnToken = _token;
293            }
294            
295            public final void mSEP(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
296                    int _ttype; Token _token=null; int _begin=text.length();
297                    _ttype = SEP;
298                    int _saveIndex;
299                    
300                    match(',');
301                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
302                            _token = makeToken(_ttype);
303                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
304                    }
305                    _returnToken = _token;
306            }
307            
308            public final void mSP(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
309                    int _ttype; Token _token=null; int _begin=text.length();
310                    _ttype = SP;
311                    int _saveIndex;
312                    
313                    switch ( LA(1)) {
314                    case ' ':
315                    {
316                            match(' ');
317                            break;
318                    }
319                    case '\t':
320                    {
321                            match('\t');
322                            break;
323                    }
324                    case '\n':
325                    {
326                            match('\n');
327                            newline();
328                            break;
329                    }
330                    case '\r':
331                    {
332                            match('\r');
333                            {
334                            if ((LA(1)=='\n')) {
335                                    match('\n');
336                            }
337                            else {
338                            }
339                            
340                            }
341                            newline();
342                            break;
343                    }
344                    default:
345                    {
346                            throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
347                    }
348                    }
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            public final void mDOT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
357                    int _ttype; Token _token=null; int _begin=text.length();
358                    _ttype = DOT;
359                    int _saveIndex;
360                    
361                    match('.');
362                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
363                            _token = makeToken(_ttype);
364                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
365                    }
366                    _returnToken = _token;
367            }
368            
369            public final void mUTF8String(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
370                    int _ttype; Token _token=null; int _begin=text.length();
371                    _ttype = UTF8String;
372                    int _saveIndex;
373                    
374                    _saveIndex=text.length();
375                    match('"');
376                    text.setLength(_saveIndex);
377                    {
378                    _loop1857:
379                    do {
380                            if ((_tokenSet_0.member(LA(1)))) {
381                                    mSAFEUTF8CHAR(false);
382                            }
383                            else {
384                                    break _loop1857;
385                            }
386                            
387                    } while (true);
388                    }
389                    _saveIndex=text.length();
390                    match('"');
391                    text.setLength(_saveIndex);
392                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
393                            _token = makeToken(_ttype);
394                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
395                    }
396                    _returnToken = _token;
397            }
398            
399            protected final void mSAFEUTF8CHAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
400                    int _ttype; Token _token=null; int _begin=text.length();
401                    _ttype = SAFEUTF8CHAR;
402                    int _saveIndex;
403                    
404                    switch ( LA(1)) {
405                    case '\u0001':  case '\u0002':  case '\u0003':  case '\u0004':
406                    case '\u0005':  case '\u0006':  case '\u0007':  case '\u0008':
407                    case '\t':  case '\n':  case '\u000b':  case '\u000c':
408                    case '\r':  case '\u000e':  case '\u000f':  case '\u0010':
409                    case '\u0011':  case '\u0012':  case '\u0013':  case '\u0014':
410                    case '\u0015':  case '\u0016':  case '\u0017':  case '\u0018':
411                    case '\u0019':  case '\u001a':  case '\u001b':  case '\u001c':
412                    case '\u001d':  case '\u001e':  case '\u001f':  case ' ':
413                    case '!':
414                    {
415                            matchRange('\u0001','\u0021');
416                            break;
417                    }
418                    case '#':  case '$':  case '%':  case '&':
419                    case '\'':  case '(':  case ')':  case '*':
420                    case '+':  case ',':  case '-':  case '.':
421                    case '/':  case '0':  case '1':  case '2':
422                    case '3':  case '4':  case '5':  case '6':
423                    case '7':  case '8':  case '9':  case ':':
424                    case ';':  case '<':  case '=':  case '>':
425                    case '?':  case '@':  case 'A':  case 'B':
426                    case 'C':  case 'D':  case 'E':  case 'F':
427                    case 'G':  case 'H':  case 'I':  case 'J':
428                    case 'K':  case 'L':  case 'M':  case 'N':
429                    case 'O':  case 'P':  case 'Q':  case 'R':
430                    case 'S':  case 'T':  case 'U':  case 'V':
431                    case 'W':  case 'X':  case 'Y':  case 'Z':
432                    case '[':  case '\\':  case ']':  case '^':
433                    case '_':  case '`':  case 'a':  case 'b':
434                    case 'c':  case 'd':  case 'e':  case 'f':
435                    case 'g':  case 'h':  case 'i':  case 'j':
436                    case 'k':  case 'l':  case 'm':  case 'n':
437                    case 'o':  case 'p':  case 'q':  case 'r':
438                    case 's':  case 't':  case 'u':  case 'v':
439                    case 'w':  case 'x':  case 'y':  case 'z':
440                    case '{':  case '|':  case '}':  case '~':
441                    case '\u007f':
442                    {
443                            matchRange('\u0023','\u007F');
444                            break;
445                    }
446                    case '\u00c0':  case '\u00c1':  case '\u00c2':  case '\u00c3':
447                    case '\u00c4':  case '\u00c5':  case '\u00c6':  case '\u00c7':
448                    case '\u00c8':  case '\u00c9':  case '\u00ca':  case '\u00cb':
449                    case '\u00cc':  case '\u00cd':  case '\u00ce':  case '\u00cf':
450                    case '\u00d0':  case '\u00d1':  case '\u00d2':  case '\u00d3':
451                    case '\u00d4':  case '\u00d5':  case '\u00d6':
452                    {
453                            matchRange('\u00c0','\u00d6');
454                            break;
455                    }
456                    case '\u00d8':  case '\u00d9':  case '\u00da':  case '\u00db':
457                    case '\u00dc':  case '\u00dd':  case '\u00de':  case '\u00df':
458                    case '\u00e0':  case '\u00e1':  case '\u00e2':  case '\u00e3':
459                    case '\u00e4':  case '\u00e5':  case '\u00e6':  case '\u00e7':
460                    case '\u00e8':  case '\u00e9':  case '\u00ea':  case '\u00eb':
461                    case '\u00ec':  case '\u00ed':  case '\u00ee':  case '\u00ef':
462                    case '\u00f0':  case '\u00f1':  case '\u00f2':  case '\u00f3':
463                    case '\u00f4':  case '\u00f5':  case '\u00f6':
464                    {
465                            matchRange('\u00d8','\u00f6');
466                            break;
467                    }
468                    case '\u00f8':  case '\u00f9':  case '\u00fa':  case '\u00fb':
469                    case '\u00fc':  case '\u00fd':  case '\u00fe':  case '\u00ff':
470                    {
471                            matchRange('\u00f8','\u00ff');
472                            break;
473                    }
474                    default:
475                            if (((LA(1) >= '\u0100' && LA(1) <= '\u1fff'))) {
476                                    matchRange('\u0100','\u1fff');
477                            }
478                            else if (((LA(1) >= '\u3040' && LA(1) <= '\u318f'))) {
479                                    matchRange('\u3040','\u318f');
480                            }
481                            else if (((LA(1) >= '\u3300' && LA(1) <= '\u337f'))) {
482                                    matchRange('\u3300','\u337f');
483                            }
484                            else if (((LA(1) >= '\u3400' && LA(1) <= '\u3d2d'))) {
485                                    matchRange('\u3400','\u3d2d');
486                            }
487                            else if (((LA(1) >= '\u4e00' && LA(1) <= '\u9fff'))) {
488                                    matchRange('\u4e00','\u9fff');
489                            }
490                            else if (((LA(1) >= '\uf900' && LA(1) <= '\ufaff'))) {
491                                    matchRange('\uf900','\ufaff');
492                            }
493                    else {
494                            throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
495                    }
496                    }
497                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
498                            _token = makeToken(_ttype);
499                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
500                    }
501                    _returnToken = _token;
502            }
503            
504            public final void mCOMMENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
505                    int _ttype; Token _token=null; int _begin=text.length();
506                    _ttype = COMMENT;
507                    int _saveIndex;
508                    
509                    match('#');
510                    {
511                    _loop1862:
512                    do {
513                            if ((_tokenSet_1.member(LA(1)))) {
514                                    {
515                                    match(_tokenSet_1);
516                                    }
517                            }
518                            else {
519                                    break _loop1862;
520                            }
521                            
522                    } while (true);
523                    }
524                    {
525                    if ((LA(1)=='\n'||LA(1)=='\r')) {
526                            {
527                            switch ( LA(1)) {
528                            case '\n':
529                            {
530                                    match('\n');
531                                    break;
532                            }
533                            case '\r':
534                            {
535                                    match('\r');
536                                    {
537                                    if ((LA(1)=='\n')) {
538                                            match('\n');
539                                    }
540                                    else {
541                                    }
542                                    
543                                    }
544                                    break;
545                            }
546                            default:
547                            {
548                                    throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
549                            }
550                            }
551                            }
552                            newline();
553                    }
554                    else {
555                    }
556                    
557                    }
558                    _ttype = Token.SKIP;
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 mIDENTIFIER(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
567                    int _ttype; Token _token=null; int _begin=text.length();
568                    _ttype = IDENTIFIER;
569                    int _saveIndex;
570                    
571                    mALPHA(false);
572                    {
573                    _loop1868:
574                    do {
575                            if ((_tokenSet_2.member(LA(1)))) {
576                                    mALPHA(false);
577                            }
578                            else {
579                                    break _loop1868;
580                            }
581                            
582                    } while (true);
583                    }
584                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
585                            _token = makeToken(_ttype);
586                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
587                    }
588                    _returnToken = _token;
589            }
590            
591            protected final void mALPHA(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
592                    int _ttype; Token _token=null; int _begin=text.length();
593                    _ttype = ALPHA;
594                    int _saveIndex;
595                    
596                    switch ( LA(1)) {
597                    case 'a':  case 'b':  case 'c':  case 'd':
598                    case 'e':  case 'f':  case 'g':  case 'h':
599                    case 'i':  case 'j':  case 'k':  case 'l':
600                    case 'm':  case 'n':  case 'o':  case 'p':
601                    case 'q':  case 'r':  case 's':  case 't':
602                    case 'u':  case 'v':  case 'w':  case 'x':
603                    case 'y':  case 'z':
604                    {
605                            matchRange('a','z');
606                            break;
607                    }
608                    case '$':
609                    {
610                            match('$');
611                            break;
612                    }
613                    default:
614                    {
615                            throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
616                    }
617                    }
618                    if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
619                            _token = makeToken(_ttype);
620                            _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
621                    }
622                    _returnToken = _token;
623            }
624            
625            
626            private static final long[] mk_tokenSet_0() {
627                    long[] data = new long[3988];
628                    data[0]=-17179869186L;
629                    data[1]=-1L;
630                    data[3]=-36028797027352577L;
631                    for (int i = 4; i<=127; i++) { data[i]=-1L; }
632                    for (int i = 193; i<=197; i++) { data[i]=-1L; }
633                    data[198]=65535L;
634                    for (int i = 204; i<=205; i++) { data[i]=-1L; }
635                    for (int i = 208; i<=243; i++) { data[i]=-1L; }
636                    data[244]=70368744177663L;
637                    for (int i = 312; i<=639; i++) { data[i]=-1L; }
638                    for (int i = 996; i<=1003; i++) { data[i]=-1L; }
639                    return data;
640            }
641            public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
642            private static final long[] mk_tokenSet_1() {
643                    long[] data = new long[2048];
644                    data[0]=-9218L;
645                    for (int i = 1; i<=127; i++) { data[i]=-1L; }
646                    for (int i = 193; i<=197; i++) { data[i]=-1L; }
647                    data[198]=65535L;
648                    for (int i = 204; i<=205; i++) { data[i]=-1L; }
649                    for (int i = 208; i<=243; i++) { data[i]=-1L; }
650                    data[244]=70368744177663L;
651                    for (int i = 312; i<=639; i++) { data[i]=-1L; }
652                    for (int i = 996; i<=1003; i++) { data[i]=-1L; }
653                    return data;
654            }
655            public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
656            private static final long[] mk_tokenSet_2() {
657                    long[] data = new long[1025];
658                    data[0]=68719476736L;
659                    data[1]=576460743713488896L;
660                    return data;
661            }
662            public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2());
663            
664            }