001/*
002 * Cobertura - http://cobertura.sourceforge.net/
003 *
004 * This file was taken from JavaNCSS
005 * http://www.kclee.com/clemens/java/javancss/
006 * Copyright (C) 2000 Chr. Clemens Lee <clemens a.t kclee d.o.t com>
007 *
008 * Cobertura is free software; you can redistribute it and/or modify
009 * it under the terms of the GNU General Public License as published
010 * by the Free Software Foundation; either version 2 of the License,
011 * or (at your option) any later version.
012 *
013 * Cobertura is distributed in the hope that it will be useful, but
014 * WITHOUT ANY WARRANTY; without even the implied warranty of
015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
016 * General Public License for more details.
017 *
018 * You should have received a copy of the GNU General Public License
019 * along with Cobertura; if not, write to the Free Software
020 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
021 * USA
022 */
023
024
025/*
026 *
027 * WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING  
028 *
029 * WARNING TO COBERTURA DEVELOPERS
030 *
031 * DO NOT MODIFY THIS FILE!
032 *
033 * MODIFY THE FILES UNDER THE JAVANCSS DIRECTORY LOCATED AT THE ROOT OF THE COBERTURA PROJECT.
034 *
035 * FOLLOW THE PROCEDURE FOR MERGING THE LATEST JAVANCSS INTO COBERTURA LOCATED AT
036 * javancss/coberturaREADME.txt
037 *
038 * WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   
039 */
040/* Generated By:JavaCC: Do not edit this line. JavaParser.java */
041package net.sourceforge.cobertura.javancss.parser;
042
043import java.util.*;
044
045import net.sourceforge.cobertura.javancss.ccl.Util;
046
047import net.sourceforge.cobertura.javancss.FunctionMetric;
048import net.sourceforge.cobertura.javancss.ObjectMetric;
049import net.sourceforge.cobertura.javancss.PackageMetric;
050
051/**
052 * Java source code parser based on a grammar compiled by
053 * JavaCC from Java1.1.jj to the JavaParser class.<p>
054 *
055 * This class is responsible for parsing Java code and counting
056 * all metrics during this parsing process.
057 * The rest of the application is only responsible for invoking
058 * this parser in a convenient way and to present the results
059 * to the user.<p>
060 *
061 * This grammar is based on the Java grammar that comes as an
062 * example with JavaCC, but has been extended to collect the
063 * metrics data (and adapted to support real life and jdk 1.4
064 * Java sources as well).
065 *
066 * @author    Sriram Sankar (original JavaCC grammar)
067 *            , Chr. Clemens Lee <clemens@kclee.com> (JavaNCSS metrics)
068 *            , additional counting of javadoc comments done by
069 *              Emilio Gongora, <emilio@sms.nl> and
070 *              Guillermo Rodriguez, <guille@sms.nl>.
071 *            Anonymous class count patch by Vesa Karvonnen, <vesa_karvonen@hotmail.com> 2002-10-30.
072 * @version   2000-01-31 $Id: Java1.1.jj 193 2009-06-12 13:35:12Z reynaud_seb $
073 */
074public class JavaParser implements JavaParserInterface, JavaParserConstants {
075    {
076        /* // DEBUG MODE
077        Util.setDebug( true );
078        // */
079    }
080    private boolean _bReturn         = false;
081    private int     _ncss            = 0;     // general counter
082    private int     _loc             = 0;
083    private int     _cyc             = 1;
084    private int     _localCases      = 0;
085    private String  _sName           = "";    // name of last token
086    private String  _sParameter      = "";
087    private String  _sPackage        = "";
088    private String  _sClass          = "";
089    private String  _sFunction       = "";
090    private int     _functions       = 0;     // number of functions in this class
091    //private int     _topLevelClasses = 0;
092    private int     _classes         = 0;
093    private int     _classLevel      = 0;
094    private int     _anonClassCount  = 1;
095
096    private int     _jvdcLines = 0;           // added by SMS
097    private int     _jvdc      = 0;
098    private boolean _bPrivate  = true;//false;        // added by SMS
099    private boolean _bPublic   = true;        // added by SMS
100
101    private int _nbligne = 0; //Added by REYNAUD Sebastien (LOGICA)
102
103    /**
104     * For each class the number of formal
105     * comments in toplevel methods, constructors, inner
106     * classes, and for the class itself are counted.
107     * The top level comment has to be directly before
108     * the class definition, not before the package or
109     * import statement as it is often seen in source code
110     * examples (at the beginning of your source files you
111     * should instead put your copyright notice).
112     */
113    private int    _javadocs   = 0;              // global javadocs
114    private List/*<FunctionMetric>*/ _vFunctions = new ArrayList();   // holds the statistics for each method
115
116    /**
117     * Metrics for each class/interface are stored in this
118     * vector.
119     */
120    private List/*<ObjectMetric>*/ _vClasses = new ArrayList();
121    private List _vImports = new ArrayList();
122    private Object[] _aoPackage = null;
123    private Map/*<String,PackageMetric>*/ _htPackage = new HashMap();
124    private PackageMetric _pPackageMetric;
125
126    private Token _tmpToken = null;
127    /** Argh, too much of a state machine. */
128    private Token _tmpResultToken = null;
129
130    private String _formatPackage(String sPackage_) {
131        if (sPackage_.equals("")) {
132            return ".";
133        }
134
135        return sPackage_.substring(0, sPackage_.length() - 1);
136    }
137
138    public void parse() throws Exception {
139      CompilationUnit();
140    }
141
142    public void parseImportUnit() throws Exception {
143      ImportUnit();
144    }
145
146    public int getNcss() {
147        return _ncss;
148    }
149
150    public int getLOC() {
151        return _loc;
152    }
153
154    // added by SMS
155    public int getJvdc() {
156        return _jvdc;
157    }
158
159    /*public int getTopLevelClasses() {
160      return _topLevelClasses;
161      }*/
162
163    public List/*<FunctionMetric>*/ getFunction() {
164        return _vFunctions;
165    }
166
167    /**
168     * @return Top level classes in sorted order
169     */
170    public List/*<ObjectMetric>*/ getObject() {
171        Collections.sort(_vClasses);
172        return _vClasses;
173    }
174
175    /**
176     * @return The empty package consists of the name ".".
177     */
178    public Map/*<String,PackageMetric>*/ getPackage() {
179        return _htPackage;
180    }
181
182    public List getImports() {
183        return _vImports;
184    }
185
186    /**
187     * name, beginLine, ...
188     */
189    public Object[] getPackageObjects() {
190        return _aoPackage;
191    }
192
193    /**
194     * if javancss is used with cat *.java a long
195     * input stream might get generated, so line
196     * number information in case of an parse exception
197     * is not very useful.
198     */
199    public String getLastFunction() {
200        return _sPackage + _sClass + _sFunction;
201    }
202
203   /**
204    * Class to hold modifiers.
205    */
206   static public final class ModifierSet
207   {
208     /* Definitions of the bits in the modifiers field.  */
209     public static final int PUBLIC = 0x0001;
210     public static final int PROTECTED = 0x0002;
211     public static final int PRIVATE = 0x0004;
212     public static final int ABSTRACT = 0x0008;
213     public static final int STATIC = 0x0010;
214     public static final int FINAL = 0x0020;
215     public static final int SYNCHRONIZED = 0x0040;
216     public static final int NATIVE = 0x0080;
217     public static final int TRANSIENT = 0x0100;
218     public static final int VOLATILE = 0x0200;
219     public static final int STRICTFP = 0x1000;
220
221     /** A set of accessors that indicate whether the specified modifier
222         is in the set. */
223
224     public boolean isPublic(int modifiers)
225     {
226       return (modifiers & PUBLIC) != 0;
227     }
228
229     public boolean isProtected(int modifiers)
230     {
231       return (modifiers & PROTECTED) != 0;
232     }
233
234     public boolean isPrivate(int modifiers)
235     {
236       return (modifiers & PRIVATE) != 0;
237     }
238
239     public boolean isStatic(int modifiers)
240     {
241       return (modifiers & STATIC) != 0;
242     }
243
244     public boolean isAbstract(int modifiers)
245     {
246       return (modifiers & ABSTRACT) != 0;
247     }
248
249     public boolean isFinal(int modifiers)
250     {
251       return (modifiers & FINAL) != 0;
252     }
253
254     public boolean isNative(int modifiers)
255     {
256       return (modifiers & NATIVE) != 0;
257     }
258
259     public boolean isStrictfp(int modifiers)
260     {
261       return (modifiers & STRICTFP) != 0;
262     }
263
264     public boolean isSynchronized(int modifiers)
265     {
266       return (modifiers & SYNCHRONIZED) != 0;
267     }
268
269     public boolean isTransient(int modifiers)
270      {
271       return (modifiers & TRANSIENT) != 0;
272     }
273
274     public boolean isVolatile(int modifiers)
275     {
276       return (modifiers & VOLATILE) != 0;
277     }
278
279     /**
280      * Removes the given modifier.
281      */
282     static int removeModifier(int modifiers, int mod)
283     {
284        return modifiers & ~mod;
285     }
286   }
287
288/*****************************************
289 * THE JAVA LANGUAGE GRAMMAR STARTS HERE *
290 *****************************************/
291
292/*
293 * Program structuring syntax follows.
294 */
295  final public void CompilationUnit() throws ParseException {
296    int oldNcss = 0;
297
298    // added by SMS
299    int oldFormal = 0;
300    int oldSingle = 0;
301    int oldMulti  = 0;
302
303    JavaParserTokenManager._iSingleComments = 0;
304    JavaParserTokenManager._iMultiComments = 0;
305    JavaParserTokenManager._iFormalComments = 0;
306
307    JavaParserTokenManager._iMultiCommentsLast = 0;
308
309    _bPrivate = true;//false;
310
311        JavaParserTokenManager.nbligne = 1;
312                _sPackage = "";
313                _pPackageMetric = new PackageMetric();      // this object manages the metrics
314
315    if (jj_2_1(2147483647)) {
316      PackageDeclaration();
317    } else {
318      ;
319    }
320    label_1:
321    while (true) {
322      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
323      case IMPORT:
324        ;
325        break;
326      default:
327        jj_la1[0] = jj_gen;
328        break label_1;
329      }
330      ImportDeclaration();
331    }
332    label_2:
333    while (true) {
334      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
335      case ABSTRACT:
336      case CLASS:
337      case ENUM:
338      case FINAL:
339      case INTERFACE:
340      case NATIVE:
341      case PRIVATE:
342      case PROTECTED:
343      case PUBLIC:
344      case STATIC:
345      case TESTAAAA:
346      case SYNCHRONIZED:
347      case TRANSIENT:
348      case VOLATILE:
349      case SEMICOLON:
350      case AT:
351        ;
352        break;
353      default:
354        jj_la1[1] = jj_gen;
355        break label_2;
356      }
357      TypeDeclaration();
358    }
359             // Package classes and functions are set inside
360             // class and interface bodies.
361             _pPackageMetric.ncss = _ncss;
362
363             // added by SMS
364             _pPackageMetric.javadocsLn = JavaParserTokenManager._iFormalComments;
365             _pPackageMetric.singleLn   = JavaParserTokenManager._iSingleComments;
366             _pPackageMetric.multiLn    = JavaParserTokenManager._iMultiComments;
367             //
368
369             _htPackage.put(_formatPackage(_sPackage),
370                            _pPackageMetric);
371    label_3:
372    while (true) {
373      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
374      case IMPORT:
375      case PACKAGE:
376      case AT:
377        ;
378        break;
379      default:
380        jj_la1[2] = jj_gen;
381        break label_3;
382      }
383      oldNcss = _ncss;
384      _sPackage = "";
385      _pPackageMetric = new PackageMetric();
386
387      // added by SMS
388      oldFormal = JavaParserTokenManager._iFormalComments;
389      oldSingle = JavaParserTokenManager._iSingleComments;
390      oldMulti  = JavaParserTokenManager._iMultiComments;
391      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
392      case PACKAGE:
393      case AT:
394        PackageDeclaration();
395        break;
396      case IMPORT:
397        ImportDeclaration();
398        break;
399      default:
400        jj_la1[3] = jj_gen;
401        jj_consume_token(-1);
402        throw new ParseException();
403      }
404      label_4:
405      while (true) {
406        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
407        case IMPORT:
408          ;
409          break;
410        default:
411          jj_la1[4] = jj_gen;
412          break label_4;
413        }
414        ImportDeclaration();
415      }
416      label_5:
417      while (true) {
418        TypeDeclaration();
419        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
420        case ABSTRACT:
421        case CLASS:
422        case ENUM:
423        case FINAL:
424        case INTERFACE:
425        case NATIVE:
426        case PRIVATE:
427        case PROTECTED:
428        case PUBLIC:
429        case STATIC:
430        case TESTAAAA:
431        case SYNCHRONIZED:
432        case TRANSIENT:
433        case VOLATILE:
434        case SEMICOLON:
435        case AT:
436          ;
437          break;
438        default:
439          jj_la1[5] = jj_gen;
440          break label_5;
441        }
442      }
443      // Package classes and functions are set inside
444      // class and interface bodies.
445      _pPackageMetric.ncss = _ncss - oldNcss;
446
447      // added by SMS
448      _pPackageMetric.javadocsLn = JavaParserTokenManager._iFormalComments - oldFormal;
449      _pPackageMetric.singleLn   = JavaParserTokenManager._iSingleComments - oldSingle;
450      _pPackageMetric.multiLn    = JavaParserTokenManager._iMultiComments  - oldMulti;
451      //
452
453      PackageMetric pckmPrevious = (PackageMetric)_htPackage.
454             get(_formatPackage(_sPackage));
455      _pPackageMetric.add(pckmPrevious);
456      _htPackage.put(_formatPackage(_sPackage),
457                     _pPackageMetric);
458    }
459    jj_consume_token(0);
460             Token pToken = getToken(1);
461             _loc = pToken.endLine;
462             _nbligne = JavaParserTokenManager.nbligne; //Added by REYNAUD Sebastien (LOGICA)
463
464  }
465
466  final public void ImportUnit() throws ParseException {
467    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
468    case PACKAGE:
469    case AT:
470      PackageDeclaration();
471      break;
472    default:
473      jj_la1[6] = jj_gen;
474      ;
475    }
476    label_6:
477    while (true) {
478      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
479      case IMPORT:
480        ;
481        break;
482      default:
483        jj_la1[7] = jj_gen;
484        break label_6;
485      }
486      ImportDeclaration();
487    }
488    label_7:
489    while (true) {
490      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
491      case ABSTRACT:
492      case FINAL:
493      case PUBLIC:
494      case TESTAAAA:
495      case SYNCHRONIZED:
496        ;
497        break;
498      default:
499        jj_la1[8] = jj_gen;
500        break label_7;
501      }
502      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
503      case ABSTRACT:
504        jj_consume_token(ABSTRACT);
505        break;
506      case FINAL:
507        jj_consume_token(FINAL);
508        break;
509      case PUBLIC:
510        jj_consume_token(PUBLIC);
511        break;
512      case SYNCHRONIZED:
513        jj_consume_token(SYNCHRONIZED);
514        break;
515      case TESTAAAA:
516        jj_consume_token(TESTAAAA);
517        break;
518      default:
519        jj_la1[9] = jj_gen;
520        jj_consume_token(-1);
521        throw new ParseException();
522      }
523    }
524    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
525    case CLASS:
526      jj_consume_token(CLASS);
527      break;
528    case INTERFACE:
529      jj_consume_token(INTERFACE);
530      break;
531    default:
532      jj_la1[10] = jj_gen;
533      jj_consume_token(-1);
534      throw new ParseException();
535    }
536  }
537
538  final public void PackageDeclaration() throws ParseException {
539    int beginLine = 1;
540    int beginColumn = 1;
541    label_8:
542    while (true) {
543      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
544      case AT:
545        ;
546        break;
547      default:
548        jj_la1[11] = jj_gen;
549        break label_8;
550      }
551      Annotation();
552    }
553    jj_consume_token(PACKAGE);
554      _anonClassCount = 1;
555
556      Token pToken = getToken( 0 );
557      beginLine = pToken.beginLine ;
558      beginColumn = pToken.beginColumn;
559      _aoPackage = new Object[ 5 ];
560    Name();
561      _aoPackage[ 0 ] = _sName;
562      _aoPackage[ 1 ] = new Integer( beginLine );
563      _aoPackage[ 2 ] = new Integer( beginColumn );
564    jj_consume_token(SEMICOLON);
565      _aoPackage[ 3 ] = new Integer( getToken( 0 ).endLine );
566      _aoPackage[ 4 ] = new Integer( getToken( 0 ).endColumn );
567      _ncss++;
568      Util.debug( "_ncss++" );
569      _sPackage = _sName + ".";
570  }
571
572  final public void ImportDeclaration() throws ParseException {
573    int beginLine = 1;
574    int beginColumn = 1;
575    Object[] aoImport = null;
576    jj_consume_token(IMPORT);
577      Token pToken = getToken( 0 );
578      beginLine = pToken.beginLine ;
579      beginColumn = pToken.beginColumn;
580    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
581    case STATIC:
582      jj_consume_token(STATIC);
583      break;
584    default:
585      jj_la1[12] = jj_gen;
586      ;
587    }
588    Name();
589      aoImport = new Object[ 5 ];
590      aoImport[ 0 ] = _sName;
591      aoImport[ 1 ] = new Integer( beginLine );
592      aoImport[ 2 ] = new Integer( beginColumn );
593    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
594    case DOT:
595      jj_consume_token(DOT);
596      jj_consume_token(STAR);
597              aoImport[ 0 ] = aoImport[ 0 ].toString() + ".*";
598      break;
599    default:
600      jj_la1[13] = jj_gen;
601      ;
602    }
603    jj_consume_token(SEMICOLON);
604      aoImport[ 3 ] = new Integer( getToken( 0 ).endLine );
605      aoImport[ 4 ] = new Integer( getToken( 0 ).endColumn );
606      _vImports.add( aoImport );
607      _ncss++;
608      Util.debug( "_ncss++" );
609  }
610
611  final public void TypeDeclaration() throws ParseException {
612   int modifiers;
613    if (jj_2_2(2147483647)) {
614      ClassDeclaration();
615    } else if (jj_2_3(2147483647)) {
616      modifiers = Modifiers();
617      EnumDeclaration(modifiers);
618    } else if (jj_2_4(2147483647)) {
619      InterfaceDeclaration();
620    } else {
621      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
622      case ABSTRACT:
623      case FINAL:
624      case NATIVE:
625      case PRIVATE:
626      case PROTECTED:
627      case PUBLIC:
628      case STATIC:
629      case TESTAAAA:
630      case SYNCHRONIZED:
631      case TRANSIENT:
632      case VOLATILE:
633      case AT:
634        modifiers = Modifiers();
635        AnnotationTypeDeclaration(modifiers);
636        break;
637      case SEMICOLON:
638        jj_consume_token(SEMICOLON);
639        break;
640      default:
641        jj_la1[14] = jj_gen;
642        jj_consume_token(-1);
643        throw new ParseException();
644      }
645    }
646  }
647
648/*
649 * Declaration syntax follows.
650 */
651  final public void ClassDeclaration() throws ParseException {
652    Token tmpToken = null;
653    _javadocs = 0;
654    ObjectMetric metric = null;
655
656    // added by SMS
657    int oldSingle = 0;
658    int oldMulti  = 0;
659
660    _jvdcLines    = 0;
661    boolean bTemp = _bPublic;
662    _bPublic      = false;
663    //
664
665        //Added by REYNAUD Sebastien (LOGICA)
666        Token myToken = null;
667    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
668    case AT:
669         myToken = getToken(1);
670      Annotation();
671         tmpToken = myToken;
672      break;
673    default:
674      jj_la1[15] = jj_gen;
675      ;
676    }
677    label_9:
678    while (true) {
679      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
680      case AT:
681        ;
682        break;
683      default:
684        jj_la1[16] = jj_gen;
685        break label_9;
686      }
687      Annotation();
688    }
689    label_10:
690    while (true) {
691      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
692      case ABSTRACT:
693      case FINAL:
694      case PUBLIC:
695      case TESTAAAA:
696      case SYNCHRONIZED:
697        ;
698        break;
699      default:
700        jj_la1[17] = jj_gen;
701        break label_10;
702      }
703      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
704      case ABSTRACT:
705        jj_consume_token(ABSTRACT);
706      if ( tmpToken == null ) {
707          tmpToken = getToken( 0 );
708      }
709        break;
710      case FINAL:
711        jj_consume_token(FINAL);
712      if ( tmpToken == null ) {
713          tmpToken = getToken( 0 );
714      }
715        break;
716      case PUBLIC:
717        jj_consume_token(PUBLIC);
718      _bPublic = true;         // added by SMS
719      if ( tmpToken == null ) {
720          tmpToken = getToken( 0 );
721      }
722        break;
723      case SYNCHRONIZED:
724        jj_consume_token(SYNCHRONIZED);
725      if ( tmpToken == null ) {
726          tmpToken = getToken( 0 );
727      }
728        break;
729      case TESTAAAA:
730        jj_consume_token(TESTAAAA);
731      if ( tmpToken == null ) {
732          tmpToken = getToken( 0 );
733      }
734        break;
735      default:
736        jj_la1[18] = jj_gen;
737        jj_consume_token(-1);
738        throw new ParseException();
739      }
740    }
741      if ( tmpToken == null ) {
742          tmpToken = getToken( 1 );
743      }
744      while( tmpToken.specialToken != null ) {
745          if ( tmpToken.specialToken.image.startsWith( "/**" ) ) {
746              _javadocs++;
747              Util.debug( "ClassDeclaration()._javadocs++" );
748              if (_bPublic || _bPrivate) {
749                  Util.debug( "_jvdc++" );
750                  _jvdc++;
751                  _jvdcLines += JavaParserTokenManager._iMultiCommentsLast;
752                  JavaParserTokenManager._iFormalComments += JavaParserTokenManager._iMultiCommentsLast;
753              }
754              JavaParserTokenManager._iMultiComments -= JavaParserTokenManager._iMultiCommentsLast;
755              break;
756          }  else if ( tmpToken.specialToken.image.startsWith( "/*" ) ) {
757              break;
758          }
759
760          //System.out.println("\n"+tmpToken.specialToken.image);
761
762          tmpToken = tmpToken.specialToken;
763      }
764
765      oldSingle = JavaParserTokenManager._iSingleComments;
766      oldMulti = JavaParserTokenManager._iMultiComments;
767    UnmodifiedClassDeclaration();
768             /* removed by SMS
769             while( tmpToken.specialToken != null ) {
770                 if ( tmpToken.specialToken.image.startsWith( "/**" ) ) {
771                     _javadocs++;
772                 }
773                 tmpToken = tmpToken.specialToken;
774             }
775             */
776             metric = (ObjectMetric)_vClasses.get( _vClasses.size() - 1);
777             metric.javadocs = _javadocs;
778
779             // added by SMS
780             metric.javadocsLn = _jvdcLines;
781             metric.singleLn = JavaParserTokenManager._iSingleComments - oldSingle;
782             metric.multiLn = JavaParserTokenManager._iMultiComments - oldMulti;
783             //
784
785            // added by SMS
786            _bPublic = bTemp;
787  }
788
789  final public void UnmodifiedClassDeclaration() throws ParseException {
790        String sOldClass = _sClass;
791        int oldNcss = _ncss;
792        int oldFunctions = _functions;
793        int oldClasses = _classes;
794
795        //Added by REYNAUD Sebastien (LOGICA)
796        ObjectMetric metric = new ObjectMetric();
797        if (_classLevel == 0) {
798                metric.firstLine = JavaParserTokenManager.nbligne;
799        }
800                if (!_sClass.equals("")) {
801                        _sClass += ".";
802                }
803                _sClass += getToken(2).image;
804                _classLevel ++;
805    Modifiers();
806    jj_consume_token(CLASS);
807    Identifier();
808    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
809    case LT:
810      TypeParameters();
811      break;
812    default:
813      jj_la1[19] = jj_gen;
814      ;
815    }
816    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
817    case EXTENDS:
818      jj_consume_token(EXTENDS);
819      Name();
820      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
821      case LT:
822        TypeArguments();
823        break;
824      default:
825        jj_la1[20] = jj_gen;
826        ;
827      }
828      label_11:
829      while (true) {
830        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
831        case DOT:
832          ;
833          break;
834        default:
835          jj_la1[21] = jj_gen;
836          break label_11;
837        }
838        jj_consume_token(DOT);
839        Name();
840        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
841        case LT:
842          TypeArguments();
843          break;
844        default:
845          jj_la1[22] = jj_gen;
846          ;
847        }
848      }
849      break;
850    default:
851      jj_la1[23] = jj_gen;
852      ;
853    }
854    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
855    case IMPLEMENTS:
856      jj_consume_token(IMPLEMENTS);
857      NameList();
858      break;
859    default:
860      jj_la1[24] = jj_gen;
861      ;
862    }
863    ClassBody();
864                _ncss++;
865                Util.debug( "_ncss++" );
866                _classLevel--;
867                if (_classLevel == 0) {
868                        //_topLevelClasses++;
869
870                        //ObjectMetric metric = new ObjectMetric(); //Removed by REYNAUD Sebastien (LOGICA)
871
872                        metric.name = _sPackage + _sClass;
873                        metric.ncss = _ncss - oldNcss;
874                        metric.functions = _functions - oldFunctions;
875                        metric.classes = _classes - oldClasses;
876                        Token lastToken = getToken( 0 );
877                        //metric.add( new Integer( lastToken.endLine ) );
878                        //metric.add( new Integer( lastToken.endColumn ) );
879                        //metric.add( new Integer( _javadocs ) );
880                        _vClasses.add( metric );
881                        _pPackageMetric.functions += _functions - oldFunctions;
882                        _pPackageMetric.classes++;
883
884                        // added by SMS
885                        _pPackageMetric.javadocs += _javadocs;
886                        //_pPackageMetric.javadocsLn += JavaParserTokenManager._iFormalComments - oldFormal;
887                        //_pPackageMetric.singleLn += JavaParserTokenManager._iSingleComments - oldSingle;
888                        //_pPackageMetric.multiLn += JavaParserTokenManager._iMultiComments - oldMulti;
889                        //
890                }
891
892                _functions = oldFunctions;
893                _classes = oldClasses + 1;
894                _sClass = sOldClass;
895  }
896
897  final public void ClassBody() throws ParseException {
898    jj_consume_token(LBRACE);
899    label_12:
900    while (true) {
901      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
902      case ABSTRACT:
903      case ASSERT:
904      case BOOLEAN:
905      case BYTE:
906      case CHAR:
907      case CLASS:
908      case DOUBLE:
909      case ENUM:
910      case FINAL:
911      case FLOAT:
912      case INT:
913      case INTERFACE:
914      case LONG:
915      case NATIVE:
916      case PRIVATE:
917      case PROTECTED:
918      case PUBLIC:
919      case SHORT:
920      case STATIC:
921      case TESTAAAA:
922      case SYNCHRONIZED:
923      case TRANSIENT:
924      case VOID:
925      case VOLATILE:
926      case IDENTIFIER:
927      case LBRACE:
928      case SEMICOLON:
929      case AT:
930      case LT:
931        ;
932        break;
933      default:
934        jj_la1[25] = jj_gen;
935        break label_12;
936      }
937      ClassBodyDeclaration();
938    }
939    jj_consume_token(RBRACE);
940  }
941
942  final public void NestedClassDeclaration() throws ParseException {
943    // added by SMS
944    Token tmpToken = null;
945
946    boolean bTemp = _bPublic;
947    _bPublic = false;
948    boolean bPublic = false;
949
950        //Added by REYNAUD Sebastien (LOGICA)
951        Token myToken = null;
952    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
953    case AT:
954         myToken = getToken(1);
955      Annotation();
956         tmpToken = myToken;
957      break;
958    default:
959      jj_la1[26] = jj_gen;
960      ;
961    }
962    label_13:
963    while (true) {
964      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
965      case AT:
966        ;
967        break;
968      default:
969        jj_la1[27] = jj_gen;
970        break label_13;
971      }
972      Annotation();
973    }
974        if(tmpToken==null)
975        {
976                tmpToken = getToken( 1 );
977        }
978    label_14:
979    while (true) {
980      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
981      case ABSTRACT:
982      case FINAL:
983      case PRIVATE:
984      case PROTECTED:
985      case PUBLIC:
986      case STATIC:
987      case TESTAAAA:
988        ;
989        break;
990      default:
991        jj_la1[28] = jj_gen;
992        break label_14;
993      }
994      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
995      case STATIC:
996        jj_consume_token(STATIC);
997        break;
998      case ABSTRACT:
999        jj_consume_token(ABSTRACT);
1000        break;
1001      case FINAL:
1002        jj_consume_token(FINAL);
1003        break;
1004      case PUBLIC:
1005        jj_consume_token(PUBLIC);
1006               bPublic = true;
1007        break;
1008      case PROTECTED:
1009        jj_consume_token(PROTECTED);
1010                  bPublic = true;
1011        break;
1012      case PRIVATE:
1013        jj_consume_token(PRIVATE);
1014        break;
1015      case TESTAAAA:
1016        jj_consume_token(TESTAAAA);
1017        break;
1018      default:
1019        jj_la1[29] = jj_gen;
1020        jj_consume_token(-1);
1021        throw new ParseException();
1022      }
1023    }
1024                        //tmpToken = getToken( 0 );//Removed by REYNAUD Sebastien (LOGICA)
1025
1026                while( tmpToken.specialToken != null ) {
1027                    if ( tmpToken.specialToken.image.startsWith( "/**" ) ) {
1028                        _javadocs++;
1029                        Util.debug( "NestedClassDeclaration()._javadocs++" );
1030                        if ((_bPublic && bPublic) || _bPrivate) {
1031                            Util.debug( "_jvdc++" );
1032                            _jvdc++;
1033                            _jvdcLines += JavaParserTokenManager._iMultiCommentsLast;
1034                            JavaParserTokenManager._iFormalComments += JavaParserTokenManager._iMultiCommentsLast;
1035                        }
1036                        JavaParserTokenManager._iMultiComments -= JavaParserTokenManager._iMultiCommentsLast;
1037                        break;
1038                    }  else if ( tmpToken.specialToken.image.startsWith( "/*" ) ) {
1039                        break;
1040                    }
1041
1042                    //System.out.println("\n"+tmpToken.specialToken.image);
1043
1044                    tmpToken = tmpToken.specialToken;
1045                }
1046    UnmodifiedClassDeclaration();
1047       //added by SMS
1048      _bPublic = bTemp;
1049  }
1050
1051  final public void ClassBodyDeclaration() throws ParseException {
1052    int modifiers;
1053    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1054    case SEMICOLON:
1055      EmptyStatement();
1056      break;
1057    default:
1058      jj_la1[31] = jj_gen;
1059      if (jj_2_5(2)) {
1060        Initializer();
1061      } else if (jj_2_6(2147483647)) {
1062        modifiers = Modifiers();
1063        AnnotationTypeDeclaration(modifiers);
1064      } else if (jj_2_7(2147483647)) {
1065        CreationAnnotation();
1066      } else if (jj_2_8(2147483647)) {
1067        NestedClassDeclaration();
1068      } else if (jj_2_9(2147483647)) {
1069        //LOOKAHEAD( ( "static" | "abstract" | "final" | "public" | "protected" | "private" | "strictfp" )* "interface" )
1070          modifiers = Modifiers();
1071        NestedInterfaceDeclaration();
1072      } else if (jj_2_10(2147483647)) {
1073        modifiers = Modifiers();
1074        EnumDeclaration(modifiers);
1075      } else if (jj_2_11(2147483647)) {
1076        ConstructorDeclaration();
1077      } else if (jj_2_12(2147483647)) {
1078        MethodDeclaration();
1079      } else {
1080        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1081        case BOOLEAN:
1082        case BYTE:
1083        case CHAR:
1084        case DOUBLE:
1085        case FINAL:
1086        case FLOAT:
1087        case INT:
1088        case LONG:
1089        case PRIVATE:
1090        case PROTECTED:
1091        case PUBLIC:
1092        case SHORT:
1093        case STATIC:
1094        case TRANSIENT:
1095        case VOLATILE:
1096        case IDENTIFIER:
1097        case AT:
1098          label_15:
1099          while (true) {
1100            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1101            case AT:
1102              ;
1103              break;
1104            default:
1105              jj_la1[30] = jj_gen;
1106              break label_15;
1107            }
1108            Annotation();
1109          }
1110          FieldDeclaration();
1111          break;
1112        default:
1113          jj_la1[32] = jj_gen;
1114          jj_consume_token(-1);
1115          throw new ParseException();
1116        }
1117      }
1118    }
1119  }
1120
1121// This production is to determine lookahead only.
1122  final public void MethodDeclarationLookahead() throws ParseException {
1123    label_16:
1124    while (true) {
1125      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1126      case AT:
1127        ;
1128        break;
1129      default:
1130        jj_la1[33] = jj_gen;
1131        break label_16;
1132      }
1133      Annotation();
1134    }
1135    label_17:
1136    while (true) {
1137      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1138      case ABSTRACT:
1139      case FINAL:
1140      case NATIVE:
1141      case PRIVATE:
1142      case PROTECTED:
1143      case PUBLIC:
1144      case STATIC:
1145      case TESTAAAA:
1146      case SYNCHRONIZED:
1147        ;
1148        break;
1149      default:
1150        jj_la1[34] = jj_gen;
1151        break label_17;
1152      }
1153      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1154      case PUBLIC:
1155        jj_consume_token(PUBLIC);
1156        break;
1157      case PROTECTED:
1158        jj_consume_token(PROTECTED);
1159        break;
1160      case PRIVATE:
1161        jj_consume_token(PRIVATE);
1162        break;
1163      case STATIC:
1164        jj_consume_token(STATIC);
1165        break;
1166      case ABSTRACT:
1167        jj_consume_token(ABSTRACT);
1168        break;
1169      case FINAL:
1170        jj_consume_token(FINAL);
1171        break;
1172      case NATIVE:
1173        jj_consume_token(NATIVE);
1174        break;
1175      case SYNCHRONIZED:
1176        jj_consume_token(SYNCHRONIZED);
1177        break;
1178      case TESTAAAA:
1179        jj_consume_token(TESTAAAA);
1180        break;
1181      default:
1182        jj_la1[35] = jj_gen;
1183        jj_consume_token(-1);
1184        throw new ParseException();
1185      }
1186    }
1187    label_18:
1188    while (true) {
1189      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1190      case AT:
1191        ;
1192        break;
1193      default:
1194        jj_la1[36] = jj_gen;
1195        break label_18;
1196      }
1197      Annotation();
1198    }
1199    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1200    case LT:
1201      TypeParameters();
1202      break;
1203    default:
1204      jj_la1[37] = jj_gen;
1205      ;
1206    }
1207    ResultType();
1208    Identifier();
1209    jj_consume_token(LPAREN);
1210  }
1211
1212  final public void InterfaceDeclaration() throws ParseException {
1213        Token tmpToken = null;
1214        _javadocs = 0;
1215        //boolean bClassComment = false;
1216        ObjectMetric metric = null;
1217
1218        // added by SMS
1219        int oldSingle;
1220        int oldMulti;
1221
1222        _jvdcLines = 0;
1223        boolean bTemp = _bPublic;
1224        _bPublic = false;
1225        //
1226
1227        //Added by REYNAUD Sebastien (LOGICA)
1228        Token myToken=null;
1229    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1230    case AT:
1231         myToken = getToken(1);
1232      Annotation();
1233         tmpToken = myToken;
1234      break;
1235    default:
1236      jj_la1[38] = jj_gen;
1237      ;
1238    }
1239    label_19:
1240    while (true) {
1241      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1242      case AT:
1243        ;
1244        break;
1245      default:
1246        jj_la1[39] = jj_gen;
1247        break label_19;
1248      }
1249      Annotation();
1250    }
1251    label_20:
1252    while (true) {
1253      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1254      case ABSTRACT:
1255      case PUBLIC:
1256      case TESTAAAA:
1257        ;
1258        break;
1259      default:
1260        jj_la1[40] = jj_gen;
1261        break label_20;
1262      }
1263      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1264      case TESTAAAA:
1265        jj_consume_token(TESTAAAA);
1266        break;
1267      case ABSTRACT:
1268        jj_consume_token(ABSTRACT);
1269      if ( tmpToken == null ) {
1270          tmpToken = getToken( 0 );
1271      }
1272        break;
1273      case PUBLIC:
1274        jj_consume_token(PUBLIC);
1275      _bPublic = true;         // added by SMS
1276      if ( tmpToken == null ) {
1277          tmpToken = getToken( 0 );
1278      }
1279        break;
1280      default:
1281        jj_la1[41] = jj_gen;
1282        jj_consume_token(-1);
1283        throw new ParseException();
1284      }
1285    }
1286      if ( tmpToken == null ) {
1287          tmpToken = getToken( 1 );
1288      }
1289                while( tmpToken.specialToken != null ) {
1290                    if ( tmpToken.specialToken.image.startsWith( "/**" ) ) {
1291                        _javadocs++;
1292                        Util.debug( "InterfaceDeclaration()._javadocs++" );
1293                        if (_bPublic || _bPrivate) {
1294                            Util.debug( "_jvdc++" );
1295                            _jvdc++;
1296                            _jvdcLines += JavaParserTokenManager._iMultiCommentsLast;
1297                            JavaParserTokenManager._iFormalComments += JavaParserTokenManager._iMultiCommentsLast;
1298                        }
1299                        JavaParserTokenManager._iMultiComments -= JavaParserTokenManager._iMultiCommentsLast;
1300                        break;
1301                    }  else if ( tmpToken.specialToken.image.startsWith( "/*" ) ) {
1302                        break;
1303                    }
1304
1305                    //System.out.println("\n"+tmpToken.specialToken.image);
1306
1307                    tmpToken = tmpToken.specialToken;
1308                }
1309
1310                oldSingle = JavaParserTokenManager._iSingleComments;
1311                oldMulti = JavaParserTokenManager._iMultiComments;
1312    UnmodifiedInterfaceDeclaration();
1313             /* removed by SMS
1314             while( tmpToken.specialToken != null ) {
1315                 if ( tmpToken.specialToken.image.startsWith( "/**" ) ) {
1316                     _javadocs++;
1317                     bClassComment = true;
1318                 }
1319                 tmpToken = tmpToken.specialToken;
1320                 }*/
1321             metric = (ObjectMetric)_vClasses.get( _vClasses.size() - 1 );
1322             metric.javadocs = _javadocs;
1323
1324             // added by SMS
1325             metric.javadocsLn = _jvdcLines;
1326             metric.singleLn = JavaParserTokenManager._iSingleComments - oldSingle;
1327             metric.multiLn = JavaParserTokenManager._iMultiComments - oldMulti;
1328             //
1329
1330            // added by SMS
1331            _bPublic = bTemp;
1332  }
1333
1334  final public void NestedInterfaceDeclaration() throws ParseException {
1335    // added by SMS
1336    Token tmpToken = null;
1337
1338    boolean bTemp = _bPublic;
1339    _bPublic = false;
1340    boolean bPublic = false;
1341
1342        //Added by REYNAUD Sebastien (LOGICA)
1343        Token myToken=null;
1344    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1345    case AT:
1346         myToken = getToken(1);
1347      Annotation();
1348         tmpToken = myToken;
1349      break;
1350    default:
1351      jj_la1[42] = jj_gen;
1352      ;
1353    }
1354    label_21:
1355    while (true) {
1356      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1357      case AT:
1358        ;
1359        break;
1360      default:
1361        jj_la1[43] = jj_gen;
1362        break label_21;
1363      }
1364      Annotation();
1365    }
1366        if(tmpToken==null)
1367        {
1368                tmpToken = getToken( 1 );
1369        }
1370    label_22:
1371    while (true) {
1372      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1373      case ABSTRACT:
1374      case FINAL:
1375      case PRIVATE:
1376      case PROTECTED:
1377      case PUBLIC:
1378      case STATIC:
1379      case TESTAAAA:
1380        ;
1381        break;
1382      default:
1383        jj_la1[44] = jj_gen;
1384        break label_22;
1385      }
1386      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1387      case STATIC:
1388        jj_consume_token(STATIC);
1389        break;
1390      case ABSTRACT:
1391        jj_consume_token(ABSTRACT);
1392        break;
1393      case FINAL:
1394        jj_consume_token(FINAL);
1395        break;
1396      case PUBLIC:
1397        jj_consume_token(PUBLIC);
1398               bPublic = true;
1399        break;
1400      case PROTECTED:
1401        jj_consume_token(PROTECTED);
1402                  bPublic = true;
1403        break;
1404      case PRIVATE:
1405        jj_consume_token(PRIVATE);
1406        break;
1407      case TESTAAAA:
1408        jj_consume_token(TESTAAAA);
1409        break;
1410      default:
1411        jj_la1[45] = jj_gen;
1412        jj_consume_token(-1);
1413        throw new ParseException();
1414      }
1415    }
1416                        //tmpToken = getToken( 0 );     //Removed by REYNAUD Sebastien (LOGICA)
1417
1418                while( tmpToken.specialToken != null ) {
1419                    if ( tmpToken.specialToken.image.startsWith( "/**" ) ) {
1420                        _javadocs++;
1421                        if ((_bPublic && bPublic) || _bPrivate) {
1422                            Util.debug( "_jvdc++" );
1423                            _jvdc++;
1424                            _jvdcLines += JavaParserTokenManager._iMultiCommentsLast;
1425                            JavaParserTokenManager._iFormalComments += JavaParserTokenManager._iMultiCommentsLast;
1426                        }
1427                        JavaParserTokenManager._iMultiComments -= JavaParserTokenManager._iMultiCommentsLast;
1428                        break;
1429                    }  else if ( tmpToken.specialToken.image.startsWith( "/*" ) ) {
1430                        break;
1431                    }
1432
1433                    //System.out.println("\n"+tmpToken.specialToken.image);
1434
1435                    tmpToken = tmpToken.specialToken;
1436                }
1437    UnmodifiedInterfaceDeclaration();
1438      // added by SMS
1439      _bPublic = bTemp;
1440  }
1441
1442  final public void UnmodifiedInterfaceDeclaration() throws ParseException {
1443        String sOldClass = _sClass;
1444        int oldNcss = _ncss;
1445        int oldFunctions = _functions;
1446        int oldClasses = _classes;
1447
1448
1449                //Added by REYNAUD Sebastien (LOGICA)
1450                ObjectMetric metric = new ObjectMetric();
1451                metric.firstLine = JavaParserTokenManager.nbligne;
1452                if (!_sClass.equals("")) {
1453                        _sClass += ".";
1454                }
1455                _sClass += getToken(2).image;
1456                _classLevel ++;
1457    jj_consume_token(INTERFACE);
1458    Identifier();
1459    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1460    case LT:
1461      TypeParameters();
1462      break;
1463    default:
1464      jj_la1[46] = jj_gen;
1465      ;
1466    }
1467    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1468    case EXTENDS:
1469      jj_consume_token(EXTENDS);
1470      NameList();
1471      break;
1472    default:
1473      jj_la1[47] = jj_gen;
1474      ;
1475    }
1476    jj_consume_token(LBRACE);
1477    label_23:
1478    while (true) {
1479      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1480      case ABSTRACT:
1481      case BOOLEAN:
1482      case BYTE:
1483      case CHAR:
1484      case CLASS:
1485      case DOUBLE:
1486      case ENUM:
1487      case FINAL:
1488      case FLOAT:
1489      case INT:
1490      case INTERFACE:
1491      case LONG:
1492      case NATIVE:
1493      case PRIVATE:
1494      case PROTECTED:
1495      case PUBLIC:
1496      case SHORT:
1497      case STATIC:
1498      case TESTAAAA:
1499      case SYNCHRONIZED:
1500      case TRANSIENT:
1501      case VOID:
1502      case VOLATILE:
1503      case IDENTIFIER:
1504      case SEMICOLON:
1505      case AT:
1506      case LT:
1507        ;
1508        break;
1509      default:
1510        jj_la1[48] = jj_gen;
1511        break label_23;
1512      }
1513      InterfaceMemberDeclaration();
1514    }
1515    jj_consume_token(RBRACE);
1516                _ncss++;
1517                Util.debug( "_ncss++" );
1518                _classLevel--;
1519                if (_classLevel == 0)
1520                {
1521                        //_topLevelClasses++;
1522
1523                        //ObjectMetric metric = new ObjectMetric(); //Removed by REYNAUD Sebastien (LOGICA)
1524
1525                        metric.name = _sPackage + _sClass;
1526                        metric.ncss = _ncss - oldNcss;
1527                        metric.functions = _functions - oldFunctions;
1528                        metric.classes = _classes - oldClasses;
1529                        //metric.add( Util.getConstantObject() );
1530                        //metric.add( Util.getConstantObject() );
1531                        _vClasses.add( metric );
1532                        _pPackageMetric.functions += _functions - oldFunctions;
1533                        _pPackageMetric.classes++;
1534
1535                        // added by SMS
1536                        _pPackageMetric.javadocs += _javadocs;
1537                        //_pPackageMetric.javadocsLn += JavaParserTokenManager._iFormalComments - oldFormal;
1538                        //_pPackageMetric.singleLn += JavaParserTokenManager._iSingleComments - oldSingle;
1539                        //_pPackageMetric.multiLn += JavaParserTokenManager._iMultiComments - oldMulti;
1540                        //
1541                }
1542
1543                _functions = oldFunctions;
1544                _classes = oldClasses + 1;
1545                _sClass = sOldClass;
1546  }
1547
1548  final public void InterfaceMemberDeclaration() throws ParseException {
1549   int modifiers;
1550    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1551    case SEMICOLON:
1552      EmptyStatement();
1553      break;
1554    default:
1555      jj_la1[49] = jj_gen;
1556      if (jj_2_13(2147483647)) {
1557        NestedClassDeclaration();
1558      } else if (jj_2_14(2147483647)) {
1559        NestedInterfaceDeclaration();
1560      } else if (jj_2_15(2147483647)) {
1561        modifiers = Modifiers();
1562        EnumDeclaration(modifiers);
1563      } else if (jj_2_16(2147483647)) {
1564        MethodDeclaration();
1565      } else {
1566        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1567        case ABSTRACT:
1568        case BOOLEAN:
1569        case BYTE:
1570        case CHAR:
1571        case DOUBLE:
1572        case FINAL:
1573        case FLOAT:
1574        case INT:
1575        case LONG:
1576        case NATIVE:
1577        case PRIVATE:
1578        case PROTECTED:
1579        case PUBLIC:
1580        case SHORT:
1581        case STATIC:
1582        case TESTAAAA:
1583        case SYNCHRONIZED:
1584        case TRANSIENT:
1585        case VOLATILE:
1586        case IDENTIFIER:
1587        case AT:
1588          modifiers = Modifiers();
1589          FieldDeclaration();
1590          break;
1591        default:
1592          jj_la1[50] = jj_gen;
1593          jj_consume_token(-1);
1594          throw new ParseException();
1595        }
1596      }
1597    }
1598  }
1599
1600  final public void FieldDeclaration() throws ParseException {
1601    // added by SMS
1602    Token tmpToken = null;
1603    boolean bPublic = false;
1604    label_24:
1605    while (true) {
1606      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1607      case FINAL:
1608      case PRIVATE:
1609      case PROTECTED:
1610      case PUBLIC:
1611      case STATIC:
1612      case TRANSIENT:
1613      case VOLATILE:
1614        ;
1615        break;
1616      default:
1617        jj_la1[51] = jj_gen;
1618        break label_24;
1619      }
1620      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1621      case PUBLIC:
1622        jj_consume_token(PUBLIC);
1623               bPublic = true;
1624        break;
1625      case PROTECTED:
1626        jj_consume_token(PROTECTED);
1627                  bPublic = true;
1628        break;
1629      case PRIVATE:
1630        jj_consume_token(PRIVATE);
1631        break;
1632      case STATIC:
1633        jj_consume_token(STATIC);
1634        break;
1635      case FINAL:
1636        jj_consume_token(FINAL);
1637        break;
1638      case TRANSIENT:
1639        jj_consume_token(TRANSIENT);
1640        break;
1641      case VOLATILE:
1642        jj_consume_token(VOLATILE);
1643        break;
1644      default:
1645        jj_la1[52] = jj_gen;
1646        jj_consume_token(-1);
1647        throw new ParseException();
1648      }
1649    }
1650                tmpToken = getToken( 0 );
1651
1652                while( tmpToken.specialToken != null )
1653                {
1654                    if ( tmpToken.specialToken.image.startsWith( "/**" ) )
1655                    {
1656                        if ((bPublic && _bPublic) || _bPrivate)
1657                        {
1658                            //_javadocs++;
1659                            Util.debug( "_jvdc++" );
1660                            _jvdc++;
1661                            _jvdcLines += JavaParserTokenManager._iMultiCommentsLast;
1662                            JavaParserTokenManager._iFormalComments += JavaParserTokenManager._iMultiCommentsLast;
1663                        }
1664                        JavaParserTokenManager._iMultiComments -= JavaParserTokenManager._iMultiCommentsLast;
1665                        break;
1666                    }
1667                    else if ( tmpToken.specialToken.image.startsWith( "/*" ) )
1668                    {
1669                        break;
1670                    }
1671
1672                    //System.out.println("\n"+tmpToken.specialToken.image);
1673
1674                    tmpToken = tmpToken.specialToken;
1675                }
1676    label_25:
1677    while (true) {
1678      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1679      case AT:
1680        ;
1681        break;
1682      default:
1683        jj_la1[53] = jj_gen;
1684        break label_25;
1685      }
1686      Annotation();
1687    }
1688    Type();
1689    VariableDeclarator();
1690    label_26:
1691    while (true) {
1692      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1693      case COMMA:
1694        ;
1695        break;
1696      default:
1697        jj_la1[54] = jj_gen;
1698        break label_26;
1699      }
1700      jj_consume_token(COMMA);
1701      VariableDeclarator();
1702    }
1703    jj_consume_token(SEMICOLON);
1704    _ncss++; Util.debug( "_ncss++" );
1705  }
1706
1707  final public void VariableDeclarator() throws ParseException {
1708    VariableDeclaratorId();
1709    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1710    case ASSIGN:
1711      jj_consume_token(ASSIGN);
1712      VariableInitializer();
1713      break;
1714    default:
1715      jj_la1[55] = jj_gen;
1716      ;
1717    }
1718  }
1719
1720  final public void VariableDeclaratorId() throws ParseException {
1721    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1722    case ENUM:
1723      jj_consume_token(ENUM);
1724      break;
1725    case ASSERT:
1726    case IDENTIFIER:
1727      Identifier();
1728      break;
1729    default:
1730      jj_la1[56] = jj_gen;
1731      jj_consume_token(-1);
1732      throw new ParseException();
1733    }
1734    label_27:
1735    while (true) {
1736      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1737      case LBRACKET:
1738        ;
1739        break;
1740      default:
1741        jj_la1[57] = jj_gen;
1742        break label_27;
1743      }
1744      jj_consume_token(LBRACKET);
1745      jj_consume_token(RBRACKET);
1746                                          _sName += "[]";
1747    }
1748  }
1749
1750  final public void VariableInitializer() throws ParseException {
1751    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1752    case LBRACE:
1753      ArrayInitializer();
1754      break;
1755    case ASSERT:
1756    case BOOLEAN:
1757    case BYTE:
1758    case CHAR:
1759    case DOUBLE:
1760    case ENUM:
1761    case FALSE:
1762    case FLOAT:
1763    case INT:
1764    case LONG:
1765    case NEW:
1766    case NULL:
1767    case SHORT:
1768    case SUPER:
1769    case THIS:
1770    case TRUE:
1771    case VOID:
1772    case INTEGER_LITERAL:
1773    case FLOATING_POINT_LITERAL:
1774    case CHARACTER_LITERAL:
1775    case STRING_LITERAL:
1776    case IDENTIFIER:
1777    case LPAREN:
1778    case BANG:
1779    case TILDE:
1780    case INCR:
1781    case DECR:
1782    case PLUS:
1783    case MINUS:
1784      Expression();
1785      break;
1786    default:
1787      jj_la1[58] = jj_gen;
1788      jj_consume_token(-1);
1789      throw new ParseException();
1790    }
1791  }
1792
1793  final public void ArrayInitializer() throws ParseException {
1794    jj_consume_token(LBRACE);
1795    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1796    case ASSERT:
1797    case BOOLEAN:
1798    case BYTE:
1799    case CHAR:
1800    case DOUBLE:
1801    case ENUM:
1802    case FALSE:
1803    case FLOAT:
1804    case INT:
1805    case LONG:
1806    case NEW:
1807    case NULL:
1808    case SHORT:
1809    case SUPER:
1810    case THIS:
1811    case TRUE:
1812    case VOID:
1813    case INTEGER_LITERAL:
1814    case FLOATING_POINT_LITERAL:
1815    case CHARACTER_LITERAL:
1816    case STRING_LITERAL:
1817    case IDENTIFIER:
1818    case LPAREN:
1819    case LBRACE:
1820    case BANG:
1821    case TILDE:
1822    case INCR:
1823    case DECR:
1824    case PLUS:
1825    case MINUS:
1826      VariableInitializer();
1827      label_28:
1828      while (true) {
1829        if (jj_2_17(2)) {
1830          ;
1831        } else {
1832          break label_28;
1833        }
1834        jj_consume_token(COMMA);
1835        VariableInitializer();
1836      }
1837      break;
1838    default:
1839      jj_la1[59] = jj_gen;
1840      ;
1841    }
1842    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1843    case COMMA:
1844      jj_consume_token(COMMA);
1845      break;
1846    default:
1847      jj_la1[60] = jj_gen;
1848      ;
1849    }
1850    jj_consume_token(RBRACE);
1851  }
1852
1853  final public void MethodDeclaration() throws ParseException {
1854    int oldNcss = _ncss;
1855    int oldFunctions = _functions;
1856    String sOldFunction = _sFunction;
1857    int oldcyc = _cyc;
1858    boolean bOldReturn = _bReturn;
1859    Token tmpToken = null;
1860    int jvdc = 0;
1861
1862    // added by SMS
1863    int jvdcLines = 0;
1864    int oldSingle;
1865    int oldMulti;
1866    boolean bPublic = false;
1867    //
1868
1869        //Added by REYNAUD Sebastien (LOGICA)
1870        Token myToken = null;
1871        _tmpToken=null;
1872        //
1873
1874        //Added by REYNAUD Sebastien (LOGICA)
1875        FunctionMetric functionMetrics = new FunctionMetric();
1876        functionMetrics.firstLine = JavaParserTokenManager.nbligne;
1877    if ( _tmpToken != null )
1878    {
1879        tmpToken = _tmpToken;
1880    }
1881    label_29:
1882    while (true) {
1883      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1884      case AT:
1885        ;
1886        break;
1887      default:
1888        jj_la1[61] = jj_gen;
1889        break label_29;
1890      }
1891         myToken = getToken(1);
1892      Annotation();
1893      if ( tmpToken == null ) {
1894
1895          //tmpToken = getToken( 0 ); //Removed by REYNAUD Sebastien (LOGICA)
1896
1897                //Added by REYNAUD Sebastien (LOGICA)
1898                tmpToken = myToken;
1899                //
1900      }
1901    }
1902    label_30:
1903    while (true) {
1904      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1905      case ABSTRACT:
1906      case FINAL:
1907      case NATIVE:
1908      case PRIVATE:
1909      case PROTECTED:
1910      case PUBLIC:
1911      case STATIC:
1912      case TESTAAAA:
1913      case SYNCHRONIZED:
1914        ;
1915        break;
1916      default:
1917        jj_la1[62] = jj_gen;
1918        break label_30;
1919      }
1920      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1921      case PUBLIC:
1922        jj_consume_token(PUBLIC);
1923               bPublic = true;
1924      if ( tmpToken == null ) {
1925          tmpToken = getToken( 0 );
1926      }
1927        break;
1928      case PROTECTED:
1929        jj_consume_token(PROTECTED);
1930                    bPublic = true;
1931      if ( tmpToken == null ) {
1932          tmpToken = getToken( 0 );
1933      }
1934        break;
1935      case PRIVATE:
1936        jj_consume_token(PRIVATE);
1937      if ( tmpToken == null ) {
1938          tmpToken = getToken( 0 );
1939      }
1940        break;
1941      case STATIC:
1942        jj_consume_token(STATIC);
1943      if ( tmpToken == null ) {
1944          tmpToken = getToken( 0 );
1945      }
1946        break;
1947      case ABSTRACT:
1948        jj_consume_token(ABSTRACT);
1949      if ( tmpToken == null ) {
1950          tmpToken = getToken( 0 );
1951      }
1952        break;
1953      case FINAL:
1954        jj_consume_token(FINAL);
1955      if ( tmpToken == null ) {
1956          tmpToken = getToken( 0 );
1957      }
1958        break;
1959      case NATIVE:
1960        jj_consume_token(NATIVE);
1961      if ( tmpToken == null ) {
1962          tmpToken = getToken( 0 );
1963      }
1964        break;
1965      case SYNCHRONIZED:
1966        jj_consume_token(SYNCHRONIZED);
1967      if ( tmpToken == null ) {
1968          tmpToken = getToken( 0 );
1969      }
1970        break;
1971      case TESTAAAA:
1972        jj_consume_token(TESTAAAA);
1973      if ( tmpToken == null ) {
1974          tmpToken = getToken( 0 );
1975      }
1976        break;
1977      default:
1978        jj_la1[63] = jj_gen;
1979        jj_consume_token(-1);
1980        throw new ParseException();
1981      }
1982    }
1983    label_31:
1984    while (true) {
1985      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1986      case AT:
1987        ;
1988        break;
1989      default:
1990        jj_la1[64] = jj_gen;
1991        break label_31;
1992      }
1993      Annotation();
1994    }
1995    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1996    case LT:
1997      TypeParameters();
1998      break;
1999    default:
2000      jj_la1[65] = jj_gen;
2001      ;
2002    }
2003               _tmpResultToken = null;
2004    ResultType();
2005            if ( tmpToken == null )
2006            {
2007                tmpToken = _tmpResultToken;
2008                if ( tmpToken == null )
2009                {
2010                    tmpToken = getToken( 0 );
2011                }
2012                Util.debug( "result type tmpToken: " + tmpToken );
2013            }
2014    MethodDeclarator();
2015    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2016    case THROWS:
2017      jj_consume_token(THROWS);
2018      NameList();
2019      break;
2020    default:
2021      jj_la1[66] = jj_gen;
2022      ;
2023    }
2024                _cyc = 1;
2025                _bReturn = false;
2026    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2027    case LBRACE:
2028      Block();
2029      break;
2030    case SEMICOLON:
2031      jj_consume_token(SEMICOLON);
2032      break;
2033    default:
2034      jj_la1[67] = jj_gen;
2035      jj_consume_token(-1);
2036      throw new ParseException();
2037    }
2038  // added by SMS
2039  {
2040      Util.debug( "Token: " + String.valueOf( tmpToken.image ) );
2041      while( tmpToken.specialToken != null )
2042      {
2043          Util.debug( "Token comment: " + String.valueOf( tmpToken.specialToken.image ) );
2044          if ( tmpToken.specialToken.image.startsWith( "/**" ) )
2045          {
2046              _javadocs++;
2047              Util.debug( "MethodDeclaration()._javadocs++" );
2048              jvdc++;
2049              if ((bPublic && _bPublic) || _bPrivate) {
2050                  Util.debug( "_jvdc++" );
2051                  _jvdc++;
2052                  jvdcLines = JavaParserTokenManager._iMultiCommentsLast;
2053                  _jvdcLines += jvdcLines;
2054                  JavaParserTokenManager._iFormalComments += jvdcLines;
2055              }
2056              JavaParserTokenManager._iMultiComments -= jvdcLines;
2057              break;
2058          }  else if ( tmpToken.specialToken.image.startsWith( "/*" ) ) {
2059              jvdcLines = 0;
2060              break;
2061          }
2062
2063          //System.out.println("\n"+tmpToken.specialToken.image);
2064
2065          tmpToken = tmpToken.specialToken;
2066      }
2067
2068      oldSingle = JavaParserTokenManager._iSingleComments;
2069      oldMulti = JavaParserTokenManager._iMultiComments;
2070  }
2071
2072
2073             // removed by ccl
2074             /*
2075             while( tmpToken.specialToken != null ) {
2076                 if ( tmpToken.specialToken.image.startsWith( "/**" ) ) {
2077                     jvdc++;
2078                     _javadocs++;
2079                 }
2080                 tmpToken = tmpToken.specialToken;
2081             }
2082             */
2083             // removed by SMS
2084             /*
2085               while( tmpToken.specialToken != null ) {
2086               if ( tmpToken.specialToken.image.startsWith( "/**" ) ) {
2087               jvdc++;
2088               _javadocs++;
2089               _bJavadoc = true;
2090               }
2091
2092               tmpToken = tmpToken.specialToken;
2093               }
2094             */
2095
2096             if (_bReturn)
2097             {
2098                 _cyc--;
2099             }
2100             _ncss++;
2101             Util.debug( "MethodDeclaration()._ncss++" );
2102
2103             //FunctionMetric functionMetrics = new FunctionMetric(); //Removed by REYNAUD Sebastien (LOGICA)
2104
2105             functionMetrics.name = _sPackage + _sClass + _sFunction;
2106             functionMetrics.ncss = _ncss - oldNcss;
2107             functionMetrics.ccn = _cyc;
2108             functionMetrics.javadocs = jvdc;
2109
2110             // added by SMS
2111             functionMetrics.javadocsLn = 0; //jvdcLines;
2112             functionMetrics.singleLn = 0; //JavaParserTokenManager._iSingleComments - oldSingle;
2113             functionMetrics.multiLn = 0; //JavaParserTokenManager._iMultiComments - oldMulti;
2114             //
2115
2116             // specially added for Cobertura
2117             // Commenting out for now until the rest of patch 2353196 is applied.
2118             //functionMetrics.beginLine = (new Integer(beginLine));
2119             //functionMetrics.endLine = (new Integer(endLine));
2120
2121             _vFunctions.add(functionMetrics);
2122             _sFunction = sOldFunction;
2123             _functions = oldFunctions + 1;
2124             _cyc = oldcyc;
2125             _bReturn = bOldReturn;
2126
2127                //Added by REYNAUD Sebastien (LOGICA)
2128                _tmpToken = null;
2129                //
2130
2131  }
2132
2133  final public void MethodDeclarator() throws ParseException {
2134                _sFunction = "." + getToken(1).image;
2135    Identifier();
2136    FormalParameters();
2137                _sFunction += _sParameter;
2138    label_32:
2139    while (true) {
2140      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2141      case LBRACKET:
2142        ;
2143        break;
2144      default:
2145        jj_la1[68] = jj_gen;
2146        break label_32;
2147      }
2148      jj_consume_token(LBRACKET);
2149      jj_consume_token(RBRACKET);
2150              _sFunction += "[]";
2151    }
2152  }
2153
2154  final public void FormalParameters() throws ParseException {
2155                _sParameter = "(";
2156    jj_consume_token(LPAREN);
2157    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2158    case ABSTRACT:
2159    case BOOLEAN:
2160    case BYTE:
2161    case CHAR:
2162    case DOUBLE:
2163    case FINAL:
2164    case FLOAT:
2165    case INT:
2166    case LONG:
2167    case NATIVE:
2168    case PRIVATE:
2169    case PROTECTED:
2170    case PUBLIC:
2171    case SHORT:
2172    case STATIC:
2173    case TESTAAAA:
2174    case SYNCHRONIZED:
2175    case TRANSIENT:
2176    case VOLATILE:
2177    case IDENTIFIER:
2178    case AT:
2179      FormalParameter();
2180                            _sParameter += _sName;
2181      label_33:
2182      while (true) {
2183        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2184        case COMMA:
2185          ;
2186          break;
2187        default:
2188          jj_la1[69] = jj_gen;
2189          break label_33;
2190        }
2191        jj_consume_token(COMMA);
2192        FormalParameter();
2193                            _sParameter += "," + _sName;
2194      }
2195      break;
2196    default:
2197      jj_la1[70] = jj_gen;
2198      ;
2199    }
2200    jj_consume_token(RPAREN);
2201                _sParameter += ")";
2202  }
2203
2204  final public void FormalParameter() throws ParseException {
2205    Modifiers();
2206    Type();
2207    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2208    case ELLIPSIS:
2209      jj_consume_token(ELLIPSIS);
2210      break;
2211    default:
2212      jj_la1[71] = jj_gen;
2213      ;
2214    }
2215    VariableDeclaratorId();
2216  }
2217
2218  final public void ConstructorDeclaration() throws ParseException {
2219        int oldNcss = _ncss;
2220        int oldFunctions = _functions;
2221        String sOldFunction = _sFunction;
2222        int oldcyc = _cyc;
2223        boolean bOldReturn = _bReturn;
2224        Token tmpToken = null;
2225        int jvdc = 0;
2226
2227        // added by SMS
2228        int oldSingle;
2229        int oldMulti;
2230        int jvdcLines = 0;
2231        boolean bPublic = false;
2232        //
2233
2234        //Added by REYNAUD Sebastien (LOGICA)
2235        Token myToken = null;
2236        //
2237
2238        //Added by REYNAUD Sebastien (LOGICA)
2239        FunctionMetric functionMetrics = new FunctionMetric();
2240        functionMetrics.firstLine = JavaParserTokenManager.nbligne;
2241    label_34:
2242    while (true) {
2243      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2244      case AT:
2245        ;
2246        break;
2247      default:
2248        jj_la1[72] = jj_gen;
2249        break label_34;
2250      }
2251         myToken = getToken(1);
2252      Annotation();
2253        if ( tmpToken == null )
2254                {
2255                        tmpToken = myToken;
2256        }
2257    }
2258    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2259    case PRIVATE:
2260    case PROTECTED:
2261    case PUBLIC:
2262      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2263      case PUBLIC:
2264        jj_consume_token(PUBLIC);
2265               bPublic = true;
2266      if ( tmpToken == null ) {
2267          tmpToken = getToken( 0 );
2268      }
2269        break;
2270      case PROTECTED:
2271        jj_consume_token(PROTECTED);
2272                 bPublic = true;
2273      if ( tmpToken == null ) {
2274          tmpToken = getToken( 0 );
2275      }
2276        break;
2277      case PRIVATE:
2278        jj_consume_token(PRIVATE);
2279      if ( tmpToken == null ) {
2280          tmpToken = getToken( 0 );
2281      }
2282        break;
2283      default:
2284        jj_la1[73] = jj_gen;
2285        jj_consume_token(-1);
2286        throw new ParseException();
2287      }
2288      break;
2289    default:
2290      jj_la1[74] = jj_gen;
2291      ;
2292    }
2293    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2294    case LT:
2295      TypeParameters();
2296      break;
2297    default:
2298      jj_la1[75] = jj_gen;
2299      ;
2300    }
2301    Identifier();
2302            if ( tmpToken == null ) {
2303                tmpToken = getToken( 0 );
2304            }
2305                _cyc = 1;
2306                _sFunction = _sPackage + _sClass + "." + getToken(0).image;
2307    FormalParameters();
2308                _sFunction += _sParameter;
2309                _bReturn = false;
2310    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2311    case THROWS:
2312      jj_consume_token(THROWS);
2313      NameList();
2314      break;
2315    default:
2316      jj_la1[76] = jj_gen;
2317      ;
2318    }
2319    jj_consume_token(LBRACE);
2320    if (jj_2_18(2147483647)) {
2321      ExplicitConstructorInvocation();
2322    } else {
2323      ;
2324    }
2325    if (jj_2_19(2147483647)) {
2326      ExplicitConstructorInvocation();
2327    } else {
2328      ;
2329    }
2330                while( tmpToken.specialToken != null ) {
2331                    if ( tmpToken.specialToken.image.startsWith( "/**" ) ) {
2332                        _javadocs++;
2333                        jvdc++;
2334                        if ((bPublic && _bPublic) || _bPrivate) {
2335                            Util.debug( "_jvdc++" );
2336                            _jvdc++;
2337                            jvdcLines = JavaParserTokenManager._iMultiCommentsLast;
2338                            _jvdcLines += jvdcLines;
2339                            JavaParserTokenManager._iFormalComments += jvdcLines;
2340                        }
2341                        JavaParserTokenManager._iMultiComments -= jvdcLines;
2342                        break;
2343                    }  else if ( tmpToken.specialToken.image.startsWith( "/*" ) ) {
2344                        jvdcLines = 0;
2345                        break;
2346                    }
2347
2348                    //System.out.println("\n"+tmpToken.specialToken.image);
2349
2350                    tmpToken = tmpToken.specialToken;
2351                }
2352
2353
2354                oldSingle = JavaParserTokenManager._iSingleComments;
2355                oldMulti = JavaParserTokenManager._iMultiComments;
2356    label_35:
2357    while (true) {
2358      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2359      case ABSTRACT:
2360      case ASSERT:
2361      case BOOLEAN:
2362      case BREAK:
2363      case BYTE:
2364      case CHAR:
2365      case CLASS:
2366      case CONTINUE:
2367      case DO:
2368      case DOUBLE:
2369      case ENUM:
2370      case FALSE:
2371      case FINAL:
2372      case FLOAT:
2373      case FOR:
2374      case IF:
2375      case INT:
2376      case INTERFACE:
2377      case LONG:
2378      case NATIVE:
2379      case NEW:
2380      case NULL:
2381      case PRIVATE:
2382      case PROTECTED:
2383      case PUBLIC:
2384      case RETURN:
2385      case SHORT:
2386      case STATIC:
2387      case TESTAAAA:
2388      case SUPER:
2389      case SWITCH:
2390      case SYNCHRONIZED:
2391      case THIS:
2392      case THROW:
2393      case TRANSIENT:
2394      case TRUE:
2395      case TRY:
2396      case VOID:
2397      case VOLATILE:
2398      case WHILE:
2399      case INTEGER_LITERAL:
2400      case FLOATING_POINT_LITERAL:
2401      case CHARACTER_LITERAL:
2402      case STRING_LITERAL:
2403      case IDENTIFIER:
2404      case LPAREN:
2405      case LBRACE:
2406      case SEMICOLON:
2407      case AT:
2408      case INCR:
2409      case DECR:
2410        ;
2411        break;
2412      default:
2413        jj_la1[77] = jj_gen;
2414        break label_35;
2415      }
2416      BlockStatement();
2417    }
2418    jj_consume_token(RBRACE);
2419            /*
2420                while( tmpToken.specialToken != null ) {
2421                    if ( tmpToken.specialToken.image.startsWith( "/**" ) ) {
2422                        jvdc++;
2423                        _javadocs++;
2424                    }
2425                    tmpToken = tmpToken.specialToken;
2426                }
2427            */
2428                if (_bReturn) {
2429                        _cyc--;
2430                }
2431                _ncss++;
2432                Util.debug( "_ncss++" );
2433
2434                //FunctionMetric functionMetrics = new FunctionMetric(); //Removed by REYNAUD Sebastien (LOGICA)
2435
2436                functionMetrics.name = _sFunction;
2437                functionMetrics.ncss = _ncss - oldNcss;
2438                functionMetrics.ccn = _cyc;
2439                functionMetrics.javadocs = jvdc;
2440
2441                // added by SMS
2442                functionMetrics.javadocsLn = jvdcLines;
2443                functionMetrics.singleLn = JavaParserTokenManager._iSingleComments - oldSingle;
2444                functionMetrics.multiLn = JavaParserTokenManager._iMultiComments - oldMulti;
2445                //
2446                // specially added for Cobertura
2447                // Commenting out for now until the rest of patch 2353196 is applied.
2448                //functionMetrics.endLine = beginLine;
2449                //functionMetrics.endLine = endLine;
2450
2451                _vFunctions.add(functionMetrics);
2452                _sFunction = sOldFunction;
2453                _functions = oldFunctions + 1;
2454                _cyc = oldcyc;
2455                _bReturn = bOldReturn;
2456
2457                //Added by REYNAUD Sebastien (LOGICA)
2458                _tmpToken = null;
2459                //
2460
2461  }
2462
2463  final public void ExplicitConstructorInvocation() throws ParseException {
2464    if (jj_2_21(2147483647)) {
2465      jj_consume_token(THIS);
2466      Arguments();
2467      jj_consume_token(SEMICOLON);
2468           _ncss++;       Util.debug( "_ncss++" );
2469    } else {
2470      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2471      case ASSERT:
2472      case BOOLEAN:
2473      case BYTE:
2474      case CHAR:
2475      case DOUBLE:
2476      case ENUM:
2477      case FALSE:
2478      case FLOAT:
2479      case INT:
2480      case LONG:
2481      case NEW:
2482      case NULL:
2483      case SHORT:
2484      case SUPER:
2485      case THIS:
2486      case TRUE:
2487      case VOID:
2488      case INTEGER_LITERAL:
2489      case FLOATING_POINT_LITERAL:
2490      case CHARACTER_LITERAL:
2491      case STRING_LITERAL:
2492      case IDENTIFIER:
2493      case LPAREN:
2494        if (jj_2_20(2147483647)) {
2495          PrimaryExpression();
2496          jj_consume_token(DOT);
2497        } else {
2498          ;
2499        }
2500        jj_consume_token(SUPER);
2501        Arguments();
2502        jj_consume_token(SEMICOLON);
2503    _ncss++;       Util.debug( "_ncss++" );
2504//System.out.println( "\n\nAfter ExplicitConstructorInvocation\n" );
2505
2506        break;
2507      default:
2508        jj_la1[78] = jj_gen;
2509        jj_consume_token(-1);
2510        throw new ParseException();
2511      }
2512    }
2513  }
2514
2515  final public void Initializer() throws ParseException {
2516    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2517    case STATIC:
2518      jj_consume_token(STATIC);
2519      break;
2520    default:
2521      jj_la1[79] = jj_gen;
2522      ;
2523    }
2524    Block();
2525          _ncss++;       Util.debug( "_ncss++" );
2526  }
2527
2528/*
2529 * Type, name and expression syntax follows.
2530 */
2531  final public void Type() throws ParseException {
2532    if (jj_2_22(2)) {
2533      ReferenceType();
2534    } else {
2535      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2536      case BOOLEAN:
2537      case BYTE:
2538      case CHAR:
2539      case DOUBLE:
2540      case FLOAT:
2541      case INT:
2542      case LONG:
2543      case SHORT:
2544        PrimitiveType();
2545                  _sName = getToken(0).image;
2546        break;
2547      default:
2548        jj_la1[80] = jj_gen;
2549        jj_consume_token(-1);
2550        throw new ParseException();
2551      }
2552    }
2553  }
2554
2555/*
2556ccl 2008-01-24
2557{
2558  ( PrimitiveType()
2559          {
2560                  _sName = getToken(0).image;
2561          }
2562    | Name()
2563    [TypeArguments() ["." Identifier()] ]
2564) ( "[" "]" { _sName += "[]"; } )*
2565}
2566*/
2567
2568/*
2569 * Takes special consideration for assert.
2570 */
2571  final public void FieldTypeLookahead() throws ParseException {
2572    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2573    case BOOLEAN:
2574    case BYTE:
2575    case CHAR:
2576    case DOUBLE:
2577    case FLOAT:
2578    case INT:
2579    case LONG:
2580    case SHORT:
2581      PrimitiveType();
2582      break;
2583    case IDENTIFIER:
2584      FieldTypeNameLookahead();
2585      break;
2586    default:
2587      jj_la1[81] = jj_gen;
2588      jj_consume_token(-1);
2589      throw new ParseException();
2590    }
2591    label_36:
2592    while (true) {
2593      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2594      case LBRACKET:
2595        ;
2596        break;
2597      default:
2598        jj_la1[82] = jj_gen;
2599        break label_36;
2600      }
2601      jj_consume_token(LBRACKET);
2602      jj_consume_token(RBRACKET);
2603    }
2604  }
2605
2606  final public void PrimitiveType() throws ParseException {
2607    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2608    case BOOLEAN:
2609      jj_consume_token(BOOLEAN);
2610      break;
2611    case CHAR:
2612      jj_consume_token(CHAR);
2613      break;
2614    case BYTE:
2615      jj_consume_token(BYTE);
2616      break;
2617    case SHORT:
2618      jj_consume_token(SHORT);
2619      break;
2620    case INT:
2621      jj_consume_token(INT);
2622      break;
2623    case LONG:
2624      jj_consume_token(LONG);
2625      break;
2626    case FLOAT:
2627      jj_consume_token(FLOAT);
2628      break;
2629    case DOUBLE:
2630      jj_consume_token(DOUBLE);
2631      break;
2632    default:
2633      jj_la1[83] = jj_gen;
2634      jj_consume_token(-1);
2635      throw new ParseException();
2636    }
2637  }
2638
2639  final public void ResultType() throws ParseException {
2640    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2641    case VOID:
2642      jj_consume_token(VOID);
2643      break;
2644    case BOOLEAN:
2645    case BYTE:
2646    case CHAR:
2647    case DOUBLE:
2648    case FLOAT:
2649    case INT:
2650    case LONG:
2651    case SHORT:
2652    case IDENTIFIER:
2653      Type();
2654      break;
2655    default:
2656      jj_la1[84] = jj_gen;
2657      jj_consume_token(-1);
2658      throw new ParseException();
2659    }
2660  }
2661
2662  final public void Name() throws ParseException {
2663    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2664    case ENUM:
2665      jj_consume_token(ENUM);
2666      break;
2667    case ASSERT:
2668    case IDENTIFIER:
2669      Identifier();
2670      break;
2671    default:
2672      jj_la1[85] = jj_gen;
2673      jj_consume_token(-1);
2674      throw new ParseException();
2675    }
2676                _sName = getToken(0).image;
2677                _tmpResultToken = getToken( 0 );
2678                Util.debug( "Name._tmpResultToken: " + _tmpResultToken );
2679    label_37:
2680    while (true) {
2681      if (jj_2_23(2)) {
2682        ;
2683      } else {
2684        break label_37;
2685      }
2686      jj_consume_token(DOT);
2687      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2688      case ENUM:
2689        jj_consume_token(ENUM);
2690        break;
2691      case ASSERT:
2692      case IDENTIFIER:
2693        Identifier();
2694        break;
2695      default:
2696        jj_la1[86] = jj_gen;
2697        jj_consume_token(-1);
2698        throw new ParseException();
2699      }
2700                _sName += "." + getToken(0).image;
2701    }
2702  }
2703
2704/**
2705 * Takes special consideration for assert.
2706 */
2707  final public void FieldTypeNameLookahead() throws ParseException {
2708    jj_consume_token(IDENTIFIER);
2709    label_38:
2710    while (true) {
2711      if (jj_2_24(2)) {
2712        ;
2713      } else {
2714        break label_38;
2715      }
2716      jj_consume_token(DOT);
2717      Identifier();
2718    }
2719  }
2720
2721  final public void NameList() throws ParseException {
2722    Name();
2723    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2724    case LT:
2725      TypeArguments();
2726      break;
2727    default:
2728      jj_la1[87] = jj_gen;
2729      ;
2730    }
2731    label_39:
2732    while (true) {
2733      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2734      case COMMA:
2735        ;
2736        break;
2737      default:
2738        jj_la1[88] = jj_gen;
2739        break label_39;
2740      }
2741      jj_consume_token(COMMA);
2742      Name();
2743      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2744      case LT:
2745        TypeArguments();
2746        break;
2747      default:
2748        jj_la1[89] = jj_gen;
2749        ;
2750      }
2751    }
2752  }
2753
2754/*
2755 * Expression syntax follows.
2756 */
2757  final public void Expression() throws ParseException {
2758    ConditionalExpression();
2759  }
2760
2761/*Removed by REYNAUD Sebastien (LOGICA)
2762void Assignment() :
2763{}
2764{
2765  PrimaryExpression() AssignmentOperator() Expression()
2766}
2767*/
2768  final public void AssignmentOperator() throws ParseException {
2769    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2770    case ASSIGN:
2771      jj_consume_token(ASSIGN);
2772      break;
2773    case STARASSIGN:
2774      jj_consume_token(STARASSIGN);
2775      break;
2776    case SLASHASSIGN:
2777      jj_consume_token(SLASHASSIGN);
2778      break;
2779    case REMASSIGN:
2780      jj_consume_token(REMASSIGN);
2781      break;
2782    case PLUSASSIGN:
2783      jj_consume_token(PLUSASSIGN);
2784      break;
2785    case MINUSASSIGN:
2786      jj_consume_token(MINUSASSIGN);
2787      break;
2788    case LSHIFTASSIGN:
2789      jj_consume_token(LSHIFTASSIGN);
2790      break;
2791    case RSIGNEDSHIFTASSIGN:
2792      jj_consume_token(RSIGNEDSHIFTASSIGN);
2793      break;
2794    case RUNSIGNEDSHIFTASSIGN:
2795      jj_consume_token(RUNSIGNEDSHIFTASSIGN);
2796      break;
2797    case ANDASSIGN:
2798      jj_consume_token(ANDASSIGN);
2799      break;
2800    case XORASSIGN:
2801      jj_consume_token(XORASSIGN);
2802      break;
2803    case ORASSIGN:
2804      jj_consume_token(ORASSIGN);
2805      break;
2806    default:
2807      jj_la1[90] = jj_gen;
2808      jj_consume_token(-1);
2809      throw new ParseException();
2810    }
2811  }
2812
2813  final public void ConditionalExpression() throws ParseException {
2814    ConditionalOrExpression();
2815    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2816    case HOOK:
2817      jj_consume_token(HOOK);
2818      Expression();
2819      jj_consume_token(COLON);
2820      ConditionalExpression();
2821                                                                             _cyc++;
2822      break;
2823    default:
2824      jj_la1[91] = jj_gen;
2825      ;
2826    }
2827  }
2828
2829  final public void ConditionalOrExpression() throws ParseException {
2830    ConditionalAndExpression();
2831    label_40:
2832    while (true) {
2833      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2834      case SC_OR:
2835        ;
2836        break;
2837      default:
2838        jj_la1[92] = jj_gen;
2839        break label_40;
2840      }
2841      jj_consume_token(SC_OR);
2842                                      _cyc++;
2843      ConditionalAndExpression();
2844    }
2845  }
2846
2847  final public void ConditionalAndExpression() throws ParseException {
2848    InclusiveOrExpression();
2849    label_41:
2850    while (true) {
2851      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2852      case SC_AND:
2853        ;
2854        break;
2855      default:
2856        jj_la1[93] = jj_gen;
2857        break label_41;
2858      }
2859      jj_consume_token(SC_AND);
2860                                   _cyc++;
2861      InclusiveOrExpression();
2862    }
2863  }
2864
2865  final public void InclusiveOrExpression() throws ParseException {
2866    ExclusiveOrExpression();
2867    label_42:
2868    while (true) {
2869      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2870      case BIT_OR:
2871        ;
2872        break;
2873      default:
2874        jj_la1[94] = jj_gen;
2875        break label_42;
2876      }
2877      jj_consume_token(BIT_OR);
2878      ExclusiveOrExpression();
2879    }
2880  }
2881
2882  final public void ExclusiveOrExpression() throws ParseException {
2883    AndExpression();
2884    label_43:
2885    while (true) {
2886      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2887      case XOR:
2888        ;
2889        break;
2890      default:
2891        jj_la1[95] = jj_gen;
2892        break label_43;
2893      }
2894      jj_consume_token(XOR);
2895      AndExpression();
2896    }
2897  }
2898
2899  final public void AndExpression() throws ParseException {
2900    EqualityExpression();
2901    label_44:
2902    while (true) {
2903      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2904      case BIT_AND:
2905        ;
2906        break;
2907      default:
2908        jj_la1[96] = jj_gen;
2909        break label_44;
2910      }
2911      jj_consume_token(BIT_AND);
2912      EqualityExpression();
2913    }
2914  }
2915
2916/* Removed by REYNAUD Sebastien (LOGICA)
2917void EqualityExpression() :
2918{}
2919{
2920  InstanceOfExpression() ( ( "==" | "!=" ) InstanceOfExpression() )*
2921}
2922*/
2923
2924//Added by REYNAUD Sebastien (LOGICA)
2925  final public void EqualityExpression() throws ParseException {
2926    AssigmentExpression();
2927    label_45:
2928    while (true) {
2929      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2930      case EQ:
2931      case NE:
2932        ;
2933        break;
2934      default:
2935        jj_la1[97] = jj_gen;
2936        break label_45;
2937      }
2938      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2939      case EQ:
2940        jj_consume_token(EQ);
2941        break;
2942      case NE:
2943        jj_consume_token(NE);
2944        break;
2945      default:
2946        jj_la1[98] = jj_gen;
2947        jj_consume_token(-1);
2948        throw new ParseException();
2949      }
2950      AssigmentExpression();
2951    }
2952  }
2953
2954  final public void AssigmentExpression() throws ParseException {
2955    InstanceOfExpression();
2956    label_46:
2957    while (true) {
2958      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2959      case ASSIGN:
2960        ;
2961        break;
2962      default:
2963        jj_la1[99] = jj_gen;
2964        break label_46;
2965      }
2966      jj_consume_token(ASSIGN);
2967      InstanceOfExpression();
2968    }
2969  }
2970
2971//
2972  final public void InstanceOfExpression() throws ParseException {
2973    RelationalExpression();
2974    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2975    case INSTANCEOF:
2976      jj_consume_token(INSTANCEOF);
2977      Type();
2978      break;
2979    default:
2980      jj_la1[100] = jj_gen;
2981      ;
2982    }
2983  }
2984
2985  final public void RelationalExpression() throws ParseException {
2986    ShiftExpression();
2987    label_47:
2988    while (true) {
2989      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2990      case GT:
2991      case LT:
2992      case LE:
2993      case GE:
2994        ;
2995        break;
2996      default:
2997        jj_la1[101] = jj_gen;
2998        break label_47;
2999      }
3000      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3001      case LT:
3002        jj_consume_token(LT);
3003        break;
3004      case GT:
3005        jj_consume_token(GT);
3006        break;
3007      case LE:
3008        jj_consume_token(LE);
3009        break;
3010      case GE:
3011        jj_consume_token(GE);
3012        break;
3013      default:
3014        jj_la1[102] = jj_gen;
3015        jj_consume_token(-1);
3016        throw new ParseException();
3017      }
3018      ShiftExpression();
3019    }
3020  }
3021
3022  final public void ShiftExpression() throws ParseException {
3023    AdditiveExpression();
3024    label_48:
3025    while (true) {
3026      if (jj_2_25(3)) {
3027        ;
3028      } else {
3029        break label_48;
3030      }
3031      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3032      case LSHIFT:
3033        jj_consume_token(LSHIFT);
3034        break;
3035      case GT:
3036        jj_consume_token(GT);
3037        jj_consume_token(GT);
3038        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3039        case GT:
3040          jj_consume_token(GT);
3041          break;
3042        default:
3043          jj_la1[103] = jj_gen;
3044          ;
3045        }
3046        break;
3047      default:
3048        jj_la1[104] = jj_gen;
3049        jj_consume_token(-1);
3050        throw new ParseException();
3051      }
3052      AdditiveExpression();
3053    }
3054  }
3055
3056  final public void AdditiveExpression() throws ParseException {
3057    MultiplicativeExpression();
3058    label_49:
3059    while (true) {
3060      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3061      case PLUS:
3062      case MINUS:
3063        ;
3064        break;
3065      default:
3066        jj_la1[105] = jj_gen;
3067        break label_49;
3068      }
3069      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3070      case PLUS:
3071        jj_consume_token(PLUS);
3072        break;
3073      case MINUS:
3074        jj_consume_token(MINUS);
3075        break;
3076      default:
3077        jj_la1[106] = jj_gen;
3078        jj_consume_token(-1);
3079        throw new ParseException();
3080      }
3081      MultiplicativeExpression();
3082    }
3083  }
3084
3085  final public void MultiplicativeExpression() throws ParseException {
3086    UnaryExpression();
3087    label_50:
3088    while (true) {
3089      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3090      case STAR:
3091      case SLASH:
3092      case REM:
3093        ;
3094        break;
3095      default:
3096        jj_la1[107] = jj_gen;
3097        break label_50;
3098      }
3099      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3100      case STAR:
3101        jj_consume_token(STAR);
3102        break;
3103      case SLASH:
3104        jj_consume_token(SLASH);
3105        break;
3106      case REM:
3107        jj_consume_token(REM);
3108        break;
3109      default:
3110        jj_la1[108] = jj_gen;
3111        jj_consume_token(-1);
3112        throw new ParseException();
3113      }
3114      UnaryExpression();
3115    }
3116  }
3117
3118  final public void UnaryExpression() throws ParseException {
3119    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3120    case PLUS:
3121    case MINUS:
3122      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3123      case PLUS:
3124        jj_consume_token(PLUS);
3125        break;
3126      case MINUS:
3127        jj_consume_token(MINUS);
3128        break;
3129      default:
3130        jj_la1[109] = jj_gen;
3131        jj_consume_token(-1);
3132        throw new ParseException();
3133      }
3134      UnaryExpression();
3135      break;
3136    case INCR:
3137      PreIncrementExpression();
3138      break;
3139    case DECR:
3140      PreDecrementExpression();
3141      break;
3142    case ASSERT:
3143    case BOOLEAN:
3144    case BYTE:
3145    case CHAR:
3146    case DOUBLE:
3147    case ENUM:
3148    case FALSE:
3149    case FLOAT:
3150    case INT:
3151    case LONG:
3152    case NEW:
3153    case NULL:
3154    case SHORT:
3155    case SUPER:
3156    case THIS:
3157    case TRUE:
3158    case VOID:
3159    case INTEGER_LITERAL:
3160    case FLOATING_POINT_LITERAL:
3161    case CHARACTER_LITERAL:
3162    case STRING_LITERAL:
3163    case IDENTIFIER:
3164    case LPAREN:
3165    case BANG:
3166    case TILDE:
3167      UnaryExpressionNotPlusMinus();
3168      break;
3169    default:
3170      jj_la1[110] = jj_gen;
3171      jj_consume_token(-1);
3172      throw new ParseException();
3173    }
3174  }
3175
3176  final public void PreIncrementExpression() throws ParseException {
3177    jj_consume_token(INCR);
3178    PrimaryExpression();
3179  }
3180
3181  final public void PreDecrementExpression() throws ParseException {
3182    jj_consume_token(DECR);
3183    PrimaryExpression();
3184  }
3185
3186  final public void UnaryExpressionNotPlusMinus() throws ParseException {
3187    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3188    case BANG:
3189    case TILDE:
3190      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3191      case TILDE:
3192        jj_consume_token(TILDE);
3193        break;
3194      case BANG:
3195        jj_consume_token(BANG);
3196        break;
3197      default:
3198        jj_la1[111] = jj_gen;
3199        jj_consume_token(-1);
3200        throw new ParseException();
3201      }
3202      UnaryExpression();
3203      break;
3204    default:
3205      jj_la1[112] = jj_gen;
3206      if (jj_2_26(2147483647)) {
3207        CastExpression();
3208      } else {
3209        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3210        case ASSERT:
3211        case BOOLEAN:
3212        case BYTE:
3213        case CHAR:
3214        case DOUBLE:
3215        case ENUM:
3216        case FALSE:
3217        case FLOAT:
3218        case INT:
3219        case LONG:
3220        case NEW:
3221        case NULL:
3222        case SHORT:
3223        case SUPER:
3224        case THIS:
3225        case TRUE:
3226        case VOID:
3227        case INTEGER_LITERAL:
3228        case FLOATING_POINT_LITERAL:
3229        case CHARACTER_LITERAL:
3230        case STRING_LITERAL:
3231        case IDENTIFIER:
3232        case LPAREN:
3233          PostfixExpression();
3234          break;
3235        default:
3236          jj_la1[113] = jj_gen;
3237          jj_consume_token(-1);
3238          throw new ParseException();
3239        }
3240      }
3241    }
3242  }
3243
3244// This production is to determine lookahead only.  The LOOKAHEAD specifications
3245// below are not used, but they are there just to indicate that we know about
3246// this.
3247  final public void CastLookahead() throws ParseException {
3248    if (jj_2_27(2)) {
3249      jj_consume_token(LPAREN);
3250      PrimitiveType();
3251    } else if (jj_2_28(2147483647)) {
3252      jj_consume_token(LPAREN);
3253      Type();
3254      jj_consume_token(LBRACKET);
3255      jj_consume_token(RBRACKET);
3256    } else {
3257      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3258      case LPAREN:
3259        jj_consume_token(LPAREN);
3260        Type();
3261        jj_consume_token(RPAREN);
3262        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3263        case TILDE:
3264          jj_consume_token(TILDE);
3265          break;
3266        case BANG:
3267          jj_consume_token(BANG);
3268          break;
3269        case LPAREN:
3270          jj_consume_token(LPAREN);
3271          break;
3272        case ASSERT:
3273        case IDENTIFIER:
3274          Identifier();
3275          break;
3276        case THIS:
3277          jj_consume_token(THIS);
3278          break;
3279        case SUPER:
3280          jj_consume_token(SUPER);
3281          break;
3282        case NEW:
3283          jj_consume_token(NEW);
3284          break;
3285        case FALSE:
3286        case NULL:
3287        case TRUE:
3288        case INTEGER_LITERAL:
3289        case FLOATING_POINT_LITERAL:
3290        case CHARACTER_LITERAL:
3291        case STRING_LITERAL:
3292          Literal();
3293          break;
3294        default:
3295          jj_la1[114] = jj_gen;
3296          jj_consume_token(-1);
3297          throw new ParseException();
3298        }
3299        break;
3300      default:
3301        jj_la1[115] = jj_gen;
3302        jj_consume_token(-1);
3303        throw new ParseException();
3304      }
3305    }
3306  }
3307
3308// To fix bug Test48.java. Clemens [2000-10-03]
3309  final public void PostfixLookahead() throws ParseException {
3310    jj_consume_token(LPAREN);
3311    Name();
3312    label_51:
3313    while (true) {
3314      if (jj_2_29(2)) {
3315        ;
3316      } else {
3317        break label_51;
3318      }
3319      jj_consume_token(LBRACKET);
3320      jj_consume_token(RBRACKET);
3321    }
3322    jj_consume_token(DOT);
3323  }
3324
3325  final public void PostfixExpression() throws ParseException {
3326    PrimaryExpression();
3327    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3328    case INCR:
3329    case DECR:
3330      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3331      case INCR:
3332        jj_consume_token(INCR);
3333        break;
3334      case DECR:
3335        jj_consume_token(DECR);
3336        break;
3337      default:
3338        jj_la1[116] = jj_gen;
3339        jj_consume_token(-1);
3340        throw new ParseException();
3341      }
3342      break;
3343    default:
3344      jj_la1[117] = jj_gen;
3345      ;
3346    }
3347  }
3348
3349  final public void CastExpression() throws ParseException {
3350    if (jj_2_30(2147483647)) {
3351      jj_consume_token(LPAREN);
3352      Type();
3353      jj_consume_token(RPAREN);
3354      UnaryExpression();
3355    } else {
3356      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3357      case LPAREN:
3358        jj_consume_token(LPAREN);
3359        Type();
3360        jj_consume_token(RPAREN);
3361        UnaryExpressionNotPlusMinus();
3362        break;
3363      default:
3364        jj_la1[118] = jj_gen;
3365        jj_consume_token(-1);
3366        throw new ParseException();
3367      }
3368    }
3369  }
3370
3371  final public void PrimaryExpression() throws ParseException {
3372    PrimaryPrefix();
3373    label_52:
3374    while (true) {
3375      if (jj_2_31(2)) {
3376        ;
3377      } else {
3378        break label_52;
3379      }
3380      PrimarySuffix();
3381    }
3382  }
3383
3384  final public void PrimaryPrefix() throws ParseException {
3385    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3386    case FALSE:
3387    case NULL:
3388    case TRUE:
3389    case INTEGER_LITERAL:
3390    case FLOATING_POINT_LITERAL:
3391    case CHARACTER_LITERAL:
3392    case STRING_LITERAL:
3393      Literal();
3394      break;
3395    case THIS:
3396      jj_consume_token(THIS);
3397      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3398      case DOT:
3399        jj_consume_token(DOT);
3400        break;
3401      default:
3402        jj_la1[119] = jj_gen;
3403        ;
3404      }
3405      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3406      case NEW:
3407        jj_consume_token(NEW);
3408        break;
3409      default:
3410        jj_la1[120] = jj_gen;
3411        ;
3412      }
3413      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3414      case ASSERT:
3415      case IDENTIFIER:
3416        Identifier();
3417        break;
3418      default:
3419        jj_la1[121] = jj_gen;
3420        ;
3421      }
3422      break;
3423    default:
3424      jj_la1[124] = jj_gen;
3425      if (jj_2_33(2)) {
3426        jj_consume_token(SUPER);
3427        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3428        case DOT:
3429          jj_consume_token(DOT);
3430          break;
3431        default:
3432          jj_la1[122] = jj_gen;
3433          ;
3434        }
3435        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3436        case ASSERT:
3437        case IDENTIFIER:
3438          Identifier();
3439          break;
3440        default:
3441          jj_la1[123] = jj_gen;
3442          ;
3443        }
3444      } else {
3445        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3446        case LPAREN:
3447          jj_consume_token(LPAREN);
3448          Expression();
3449          jj_consume_token(RPAREN);
3450          break;
3451        case NEW:
3452          AllocationExpression();
3453          break;
3454        default:
3455          jj_la1[125] = jj_gen;
3456          if (jj_2_34(2147483647)) {
3457            ResultType();
3458            jj_consume_token(DOT);
3459            jj_consume_token(CLASS);
3460          } else {
3461            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3462            case ASSERT:
3463            case ENUM:
3464            case IDENTIFIER:
3465              Name();
3466              if (jj_2_32(3)) {
3467                jj_consume_token(DOT);
3468                jj_consume_token(SUPER);
3469                jj_consume_token(DOT);
3470                Identifier();
3471              } else {
3472                ;
3473              }
3474              break;
3475            default:
3476              jj_la1[126] = jj_gen;
3477              jj_consume_token(-1);
3478              throw new ParseException();
3479            }
3480          }
3481        }
3482      }
3483    }
3484  }
3485
3486  final public void PrimarySuffix() throws ParseException {
3487    if (jj_2_35(2)) {
3488      jj_consume_token(DOT);
3489      jj_consume_token(THIS);
3490    } else if (jj_2_36(2)) {
3491      jj_consume_token(DOT);
3492      AllocationExpression();
3493    } else if (jj_2_37(3)) {
3494      MemberSelector();
3495    } else {
3496      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3497      case LBRACKET:
3498        jj_consume_token(LBRACKET);
3499        Expression();
3500        jj_consume_token(RBRACKET);
3501        break;
3502      case DOT:
3503        jj_consume_token(DOT);
3504        Identifier();
3505        break;
3506      case LPAREN:
3507        Arguments();
3508        break;
3509      default:
3510        jj_la1[127] = jj_gen;
3511        jj_consume_token(-1);
3512        throw new ParseException();
3513      }
3514    }
3515  }
3516
3517  final public void Literal() throws ParseException {
3518    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3519    case INTEGER_LITERAL:
3520      jj_consume_token(INTEGER_LITERAL);
3521      break;
3522    case FLOATING_POINT_LITERAL:
3523      jj_consume_token(FLOATING_POINT_LITERAL);
3524      break;
3525    case CHARACTER_LITERAL:
3526      jj_consume_token(CHARACTER_LITERAL);
3527      break;
3528    case STRING_LITERAL:
3529      jj_consume_token(STRING_LITERAL);
3530      break;
3531    case FALSE:
3532    case TRUE:
3533      BooleanLiteral();
3534      break;
3535    case NULL:
3536      NullLiteral();
3537      break;
3538    default:
3539      jj_la1[128] = jj_gen;
3540      jj_consume_token(-1);
3541      throw new ParseException();
3542    }
3543  }
3544
3545  final public void BooleanLiteral() throws ParseException {
3546    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3547    case TRUE:
3548      jj_consume_token(TRUE);
3549      break;
3550    case FALSE:
3551      jj_consume_token(FALSE);
3552      break;
3553    default:
3554      jj_la1[129] = jj_gen;
3555      jj_consume_token(-1);
3556      throw new ParseException();
3557    }
3558  }
3559
3560  final public void NullLiteral() throws ParseException {
3561    jj_consume_token(NULL);
3562  }
3563
3564  final public void Arguments() throws ParseException {
3565    jj_consume_token(LPAREN);
3566    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3567    case ASSERT:
3568    case BOOLEAN:
3569    case BYTE:
3570    case CHAR:
3571    case DOUBLE:
3572    case ENUM:
3573    case FALSE:
3574    case FLOAT:
3575    case INT:
3576    case LONG:
3577    case NEW:
3578    case NULL:
3579    case SHORT:
3580    case SUPER:
3581    case THIS:
3582    case TRUE:
3583    case VOID:
3584    case INTEGER_LITERAL:
3585    case FLOATING_POINT_LITERAL:
3586    case CHARACTER_LITERAL:
3587    case STRING_LITERAL:
3588    case IDENTIFIER:
3589    case LPAREN:
3590    case BANG:
3591    case TILDE:
3592    case INCR:
3593    case DECR:
3594    case PLUS:
3595    case MINUS:
3596      ArgumentList();
3597      break;
3598    default:
3599      jj_la1[130] = jj_gen;
3600      ;
3601    }
3602    jj_consume_token(RPAREN);
3603  }
3604
3605  final public void ArgumentList() throws ParseException {
3606    Expression();
3607    label_53:
3608    while (true) {
3609      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3610      case COMMA:
3611        ;
3612        break;
3613      default:
3614        jj_la1[131] = jj_gen;
3615        break label_53;
3616      }
3617      jj_consume_token(COMMA);
3618      Expression();
3619    }
3620  }
3621
3622  final public void AllocationExpression() throws ParseException {
3623        String sOldClass = _sClass;
3624        //int oldNcss = _ncss;
3625        int oldFunctions = _functions;
3626        int oldClasses = _classes;
3627        String sName;
3628    if (jj_2_38(2)) {
3629      jj_consume_token(NEW);
3630      PrimitiveType();
3631      ArrayDimsAndInits();
3632    } else {
3633      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3634      case NEW:
3635        jj_consume_token(NEW);
3636        Name();
3637                          sName = _sName;
3638        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3639        case LT:
3640          TypeArguments();
3641          break;
3642        default:
3643          jj_la1[132] = jj_gen;
3644          ;
3645        }
3646        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3647        case LBRACKET:
3648          ArrayDimsAndInits();
3649          break;
3650        case LPAREN:
3651          Arguments();
3652          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3653          case LBRACE:
3654                         if (!_sClass.equals("")) {
3655                                 _sClass += ".";
3656                         }
3657                         /*_sClass += sName;*/
3658                         _sClass += sName + "$" + _anonClassCount ;
3659
3660                         _classLevel ++;
3661            ClassBody();
3662                                _classLevel--;
3663                                _functions = oldFunctions;
3664                                _classes = oldClasses + 1;
3665                                _sClass = sOldClass;
3666            break;
3667          default:
3668            jj_la1[133] = jj_gen;
3669            ;
3670          }
3671          break;
3672        default:
3673          jj_la1[134] = jj_gen;
3674          jj_consume_token(-1);
3675          throw new ParseException();
3676        }
3677        break;
3678      default:
3679        jj_la1[135] = jj_gen;
3680        jj_consume_token(-1);
3681        throw new ParseException();
3682      }
3683    }
3684  }
3685
3686/*
3687 * The third LOOKAHEAD specification below is to parse to PrimarySuffix
3688 * if there is an expression between the "[...]".
3689 */
3690  final public void ArrayDimsAndInits() throws ParseException {
3691    if (jj_2_41(2)) {
3692      label_54:
3693      while (true) {
3694        jj_consume_token(LBRACKET);
3695        Expression();
3696        jj_consume_token(RBRACKET);
3697        if (jj_2_39(2)) {
3698          ;
3699        } else {
3700          break label_54;
3701        }
3702      }
3703      label_55:
3704      while (true) {
3705        if (jj_2_40(2)) {
3706          ;
3707        } else {
3708          break label_55;
3709        }
3710        jj_consume_token(LBRACKET);
3711        jj_consume_token(RBRACKET);
3712      }
3713    } else {
3714      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3715      case LBRACKET:
3716        label_56:
3717        while (true) {
3718          jj_consume_token(LBRACKET);
3719          jj_consume_token(RBRACKET);
3720          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3721          case LBRACKET:
3722            ;
3723            break;
3724          default:
3725            jj_la1[136] = jj_gen;
3726            break label_56;
3727          }
3728        }
3729        ArrayInitializer();
3730        break;
3731      default:
3732        jj_la1[137] = jj_gen;
3733        jj_consume_token(-1);
3734        throw new ParseException();
3735      }
3736    }
3737  }
3738
3739/*
3740 * Statement syntax follows.
3741 */
3742  final public void Statement() throws ParseException {
3743        _bReturn = false;
3744    if (jj_2_42(2)) {
3745      LabeledStatement();
3746    } else if (jj_2_43(2147483647)) {
3747      AssertStatement();
3748    } else {
3749      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3750      case LBRACE:
3751        Block();
3752        break;
3753      case SEMICOLON:
3754        EmptyStatement();
3755        break;
3756      case ASSERT:
3757      case BOOLEAN:
3758      case BYTE:
3759      case CHAR:
3760      case DOUBLE:
3761      case ENUM:
3762      case FALSE:
3763      case FLOAT:
3764      case INT:
3765      case LONG:
3766      case NEW:
3767      case NULL:
3768      case SHORT:
3769      case SUPER:
3770      case THIS:
3771      case TRUE:
3772      case VOID:
3773      case INTEGER_LITERAL:
3774      case FLOATING_POINT_LITERAL:
3775      case CHARACTER_LITERAL:
3776      case STRING_LITERAL:
3777      case IDENTIFIER:
3778      case LPAREN:
3779      case INCR:
3780      case DECR:
3781        StatementExpression();
3782        jj_consume_token(SEMICOLON);
3783          _ncss++;       Util.debug( "_ncss++" );
3784        break;
3785      case SWITCH:
3786        SwitchStatement();
3787        break;
3788      case IF:
3789        IfStatement();
3790          _cyc++;
3791        break;
3792      case WHILE:
3793        WhileStatement();
3794          _cyc++;
3795        break;
3796      case DO:
3797        DoStatement();
3798          _cyc++;
3799        break;
3800      case FOR:
3801        ForStatement();
3802          _cyc++;
3803        break;
3804      case BREAK:
3805        BreakStatement();
3806        break;
3807      case CONTINUE:
3808        ContinueStatement();
3809        break;
3810      case RETURN:
3811        ReturnStatement();
3812        break;
3813      case THROW:
3814        ThrowStatement();
3815        break;
3816      case SYNCHRONIZED:
3817        SynchronizedStatement();
3818        break;
3819      case TRY:
3820        TryStatement();
3821        break;
3822      default:
3823        jj_la1[138] = jj_gen;
3824        jj_consume_token(-1);
3825        throw new ParseException();
3826      }
3827    }
3828  }
3829
3830  final public void LabeledStatement() throws ParseException {
3831    Identifier();
3832    jj_consume_token(COLON);
3833    Statement();
3834          _ncss++;       Util.debug( "_ncss++" );
3835  }
3836
3837  final public void AssertStatementLookahead() throws ParseException {
3838    jj_consume_token(ASSERT);
3839    Expression();
3840  }
3841
3842  final public void AssertStatement() throws ParseException {
3843    jj_consume_token(ASSERT);
3844    Expression();
3845    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3846    case COLON:
3847      jj_consume_token(COLON);
3848      Expression();
3849      break;
3850    default:
3851      jj_la1[139] = jj_gen;
3852      ;
3853    }
3854    jj_consume_token(SEMICOLON);
3855    _ncss++;       Util.debug( "_ncss++" );
3856  }
3857
3858  final public void Block() throws ParseException {
3859    jj_consume_token(LBRACE);
3860    label_57:
3861    while (true) {
3862      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3863      case ABSTRACT:
3864      case ASSERT:
3865      case BOOLEAN:
3866      case BREAK:
3867      case BYTE:
3868      case CHAR:
3869      case CLASS:
3870      case CONTINUE:
3871      case DO:
3872      case DOUBLE:
3873      case ENUM:
3874      case FALSE:
3875      case FINAL:
3876      case FLOAT:
3877      case FOR:
3878      case IF:
3879      case INT:
3880      case INTERFACE:
3881      case LONG:
3882      case NATIVE:
3883      case NEW:
3884      case NULL:
3885      case PRIVATE:
3886      case PROTECTED:
3887      case PUBLIC:
3888      case RETURN:
3889      case SHORT:
3890      case STATIC:
3891      case TESTAAAA:
3892      case SUPER:
3893      case SWITCH:
3894      case SYNCHRONIZED:
3895      case THIS:
3896      case THROW:
3897      case TRANSIENT:
3898      case TRUE:
3899      case TRY:
3900      case VOID:
3901      case VOLATILE:
3902      case WHILE:
3903      case INTEGER_LITERAL:
3904      case FLOATING_POINT_LITERAL:
3905      case CHARACTER_LITERAL:
3906      case STRING_LITERAL:
3907      case IDENTIFIER:
3908      case LPAREN:
3909      case LBRACE:
3910      case SEMICOLON:
3911      case AT:
3912      case INCR:
3913      case DECR:
3914        ;
3915        break;
3916      default:
3917        jj_la1[140] = jj_gen;
3918        break label_57;
3919      }
3920      BlockStatement();
3921    }
3922    jj_consume_token(RBRACE);
3923  }
3924
3925  final public void BlockStatement() throws ParseException {
3926    if (jj_2_44(2147483647)) {
3927      LocalVariableDeclaration();
3928      jj_consume_token(SEMICOLON);
3929                _ncss++;       Util.debug( "_ncss++" );
3930    } else {
3931      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3932      case ASSERT:
3933      case BOOLEAN:
3934      case BREAK:
3935      case BYTE:
3936      case CHAR:
3937      case CONTINUE:
3938      case DO:
3939      case DOUBLE:
3940      case ENUM:
3941      case FALSE:
3942      case FLOAT:
3943      case FOR:
3944      case IF:
3945      case INT:
3946      case LONG:
3947      case NEW:
3948      case NULL:
3949      case RETURN:
3950      case SHORT:
3951      case SUPER:
3952      case SWITCH:
3953      case SYNCHRONIZED:
3954      case THIS:
3955      case THROW:
3956      case TRUE:
3957      case TRY:
3958      case VOID:
3959      case WHILE:
3960      case INTEGER_LITERAL:
3961      case FLOATING_POINT_LITERAL:
3962      case CHARACTER_LITERAL:
3963      case STRING_LITERAL:
3964      case IDENTIFIER:
3965      case LPAREN:
3966      case LBRACE:
3967      case SEMICOLON:
3968      case INCR:
3969      case DECR:
3970        Statement();
3971        break;
3972      case ABSTRACT:
3973      case CLASS:
3974      case FINAL:
3975      case NATIVE:
3976      case PRIVATE:
3977      case PROTECTED:
3978      case PUBLIC:
3979      case STATIC:
3980      case TESTAAAA:
3981      case TRANSIENT:
3982      case VOLATILE:
3983      case AT:
3984        UnmodifiedClassDeclaration();
3985        break;
3986      case INTERFACE:
3987        UnmodifiedInterfaceDeclaration();
3988        break;
3989      default:
3990        jj_la1[141] = jj_gen;
3991        jj_consume_token(-1);
3992        throw new ParseException();
3993      }
3994    }
3995  }
3996
3997/*void LocalVariableDeclaration() :
3998{}
3999{
4000  [ "final" ] Type() VariableDeclarator() ( "," VariableDeclarator() )*
4001}*/
4002  final public void LocalVariableDeclaration() throws ParseException {
4003    Modifiers();
4004    Type();
4005    VariableDeclarator();
4006    label_58:
4007    while (true) {
4008      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4009      case COMMA:
4010        ;
4011        break;
4012      default:
4013        jj_la1[142] = jj_gen;
4014        break label_58;
4015      }
4016      jj_consume_token(COMMA);
4017      VariableDeclarator();
4018    }
4019  }
4020
4021  final public void EmptyStatement() throws ParseException {
4022    jj_consume_token(SEMICOLON);
4023  }
4024
4025  final public void StatementExpression() throws ParseException {
4026    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4027    case INCR:
4028      PreIncrementExpression();
4029      break;
4030    case DECR:
4031      PreDecrementExpression();
4032      break;
4033    case ASSERT:
4034    case BOOLEAN:
4035    case BYTE:
4036    case CHAR:
4037    case DOUBLE:
4038    case ENUM:
4039    case FALSE:
4040    case FLOAT:
4041    case INT:
4042    case LONG:
4043    case NEW:
4044    case NULL:
4045    case SHORT:
4046    case SUPER:
4047    case THIS:
4048    case TRUE:
4049    case VOID:
4050    case INTEGER_LITERAL:
4051    case FLOATING_POINT_LITERAL:
4052    case CHARACTER_LITERAL:
4053    case STRING_LITERAL:
4054    case IDENTIFIER:
4055    case LPAREN:
4056      PrimaryExpression();
4057      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4058      case ASSIGN:
4059      case INCR:
4060      case DECR:
4061      case PLUSASSIGN:
4062      case MINUSASSIGN:
4063      case STARASSIGN:
4064      case SLASHASSIGN:
4065      case ANDASSIGN:
4066      case ORASSIGN:
4067      case XORASSIGN:
4068      case REMASSIGN:
4069      case LSHIFTASSIGN:
4070      case RSIGNEDSHIFTASSIGN:
4071      case RUNSIGNEDSHIFTASSIGN:
4072        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4073        case INCR:
4074          jj_consume_token(INCR);
4075          break;
4076        case DECR:
4077          jj_consume_token(DECR);
4078          break;
4079        case ASSIGN:
4080        case PLUSASSIGN:
4081        case MINUSASSIGN:
4082        case STARASSIGN:
4083        case SLASHASSIGN:
4084        case ANDASSIGN:
4085        case ORASSIGN:
4086        case XORASSIGN:
4087        case REMASSIGN:
4088        case LSHIFTASSIGN:
4089        case RSIGNEDSHIFTASSIGN:
4090        case RUNSIGNEDSHIFTASSIGN:
4091          AssignmentOperator();
4092          Expression();
4093          break;
4094        default:
4095          jj_la1[143] = jj_gen;
4096          jj_consume_token(-1);
4097          throw new ParseException();
4098        }
4099        break;
4100      default:
4101        jj_la1[144] = jj_gen;
4102        ;
4103      }
4104      break;
4105    default:
4106      jj_la1[145] = jj_gen;
4107      jj_consume_token(-1);
4108      throw new ParseException();
4109    }
4110  }
4111
4112  final public void SwitchStatement() throws ParseException {
4113                _localCases = 0;
4114    jj_consume_token(SWITCH);
4115    jj_consume_token(LPAREN);
4116    Expression();
4117    jj_consume_token(RPAREN);
4118    jj_consume_token(LBRACE);
4119    label_59:
4120    while (true) {
4121      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4122      case CASE:
4123      case _DEFAULT:
4124        ;
4125        break;
4126      default:
4127        jj_la1[146] = jj_gen;
4128        break label_59;
4129      }
4130      SwitchLabel();
4131      label_60:
4132      while (true) {
4133        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4134        case ABSTRACT:
4135        case ASSERT:
4136        case BOOLEAN:
4137        case BREAK:
4138        case BYTE:
4139        case CHAR:
4140        case CLASS:
4141        case CONTINUE:
4142        case DO:
4143        case DOUBLE:
4144        case ENUM:
4145        case FALSE:
4146        case FINAL:
4147        case FLOAT:
4148        case FOR:
4149        case IF:
4150        case INT:
4151        case INTERFACE:
4152        case LONG:
4153        case NATIVE:
4154        case NEW:
4155        case NULL:
4156        case PRIVATE:
4157        case PROTECTED:
4158        case PUBLIC:
4159        case RETURN:
4160        case SHORT:
4161        case STATIC:
4162        case TESTAAAA:
4163        case SUPER:
4164        case SWITCH:
4165        case SYNCHRONIZED:
4166        case THIS:
4167        case THROW:
4168        case TRANSIENT:
4169        case TRUE:
4170        case TRY:
4171        case VOID:
4172        case VOLATILE:
4173        case WHILE:
4174        case INTEGER_LITERAL:
4175        case FLOATING_POINT_LITERAL:
4176        case CHARACTER_LITERAL:
4177        case STRING_LITERAL:
4178        case IDENTIFIER:
4179        case LPAREN:
4180        case LBRACE:
4181        case SEMICOLON:
4182        case AT:
4183        case INCR:
4184        case DECR:
4185          ;
4186          break;
4187        default:
4188          jj_la1[147] = jj_gen;
4189          break label_60;
4190        }
4191        BlockStatement();
4192      }
4193    }
4194    jj_consume_token(RBRACE);
4195          _ncss++;       Util.debug( "_ncss++" );
4196  }
4197
4198  final public void SwitchLabel() throws ParseException {
4199    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4200    case CASE:
4201      jj_consume_token(CASE);
4202      Expression();
4203      jj_consume_token(COLON);
4204                _ncss++;
4205                Util.debug( "_ncss++" );
4206                _localCases++;
4207                _cyc++;
4208      break;
4209    case _DEFAULT:
4210      jj_consume_token(_DEFAULT);
4211      jj_consume_token(COLON);
4212                _ncss++;       Util.debug( "_ncss++" );
4213      break;
4214    default:
4215      jj_la1[148] = jj_gen;
4216      jj_consume_token(-1);
4217      throw new ParseException();
4218    }
4219  }
4220
4221  final public void IfStatement() throws ParseException {
4222    jj_consume_token(IF);
4223    jj_consume_token(LPAREN);
4224    Expression();
4225    jj_consume_token(RPAREN);
4226    Statement();
4227    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4228    case ELSE:
4229      jj_consume_token(ELSE);
4230                                                                _ncss++;       Util.debug( "_ncss++" );
4231      Statement();
4232      break;
4233    default:
4234      jj_la1[149] = jj_gen;
4235      ;
4236    }
4237          _ncss++;       Util.debug( "_ncss++" );
4238  }
4239
4240  final public void WhileStatement() throws ParseException {
4241    jj_consume_token(WHILE);
4242    jj_consume_token(LPAREN);
4243    Expression();
4244    jj_consume_token(RPAREN);
4245    Statement();
4246          _ncss++;       Util.debug( "_ncss++" );
4247  }
4248
4249  final public void DoStatement() throws ParseException {
4250    jj_consume_token(DO);
4251    Statement();
4252    jj_consume_token(WHILE);
4253    jj_consume_token(LPAREN);
4254    Expression();
4255    jj_consume_token(RPAREN);
4256    jj_consume_token(SEMICOLON);
4257          _ncss++;       Util.debug( "_ncss++" );
4258  }
4259
4260  final public void ForStatement() throws ParseException {
4261    jj_consume_token(FOR);
4262    jj_consume_token(LPAREN);
4263    if (jj_2_45(2147483647)) {
4264      Modifiers();
4265      Type();
4266      jj_consume_token(IDENTIFIER);
4267      jj_consume_token(COLON);
4268      Expression();
4269    } else {
4270      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4271      case ABSTRACT:
4272      case ASSERT:
4273      case BOOLEAN:
4274      case BYTE:
4275      case CHAR:
4276      case DOUBLE:
4277      case ENUM:
4278      case FALSE:
4279      case FINAL:
4280      case FLOAT:
4281      case INT:
4282      case LONG:
4283      case NATIVE:
4284      case NEW:
4285      case NULL:
4286      case PRIVATE:
4287      case PROTECTED:
4288      case PUBLIC:
4289      case SHORT:
4290      case STATIC:
4291      case TESTAAAA:
4292      case SUPER:
4293      case SYNCHRONIZED:
4294      case THIS:
4295      case TRANSIENT:
4296      case TRUE:
4297      case VOID:
4298      case VOLATILE:
4299      case INTEGER_LITERAL:
4300      case FLOATING_POINT_LITERAL:
4301      case CHARACTER_LITERAL:
4302      case STRING_LITERAL:
4303      case IDENTIFIER:
4304      case LPAREN:
4305      case SEMICOLON:
4306      case AT:
4307      case INCR:
4308      case DECR:
4309        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4310        case ABSTRACT:
4311        case ASSERT:
4312        case BOOLEAN:
4313        case BYTE:
4314        case CHAR:
4315        case DOUBLE:
4316        case ENUM:
4317        case FALSE:
4318        case FINAL:
4319        case FLOAT:
4320        case INT:
4321        case LONG:
4322        case NATIVE:
4323        case NEW:
4324        case NULL:
4325        case PRIVATE:
4326        case PROTECTED:
4327        case PUBLIC:
4328        case SHORT:
4329        case STATIC:
4330        case TESTAAAA:
4331        case SUPER:
4332        case SYNCHRONIZED:
4333        case THIS:
4334        case TRANSIENT:
4335        case TRUE:
4336        case VOID:
4337        case VOLATILE:
4338        case INTEGER_LITERAL:
4339        case FLOATING_POINT_LITERAL:
4340        case CHARACTER_LITERAL:
4341        case STRING_LITERAL:
4342        case IDENTIFIER:
4343        case LPAREN:
4344        case AT:
4345        case INCR:
4346        case DECR:
4347          ForInit();
4348          break;
4349        default:
4350          jj_la1[150] = jj_gen;
4351          ;
4352        }
4353        jj_consume_token(SEMICOLON);
4354        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4355        case ASSERT:
4356        case BOOLEAN:
4357        case BYTE:
4358        case CHAR:
4359        case DOUBLE:
4360        case ENUM:
4361        case FALSE:
4362        case FLOAT:
4363        case INT:
4364        case LONG:
4365        case NEW:
4366        case NULL:
4367        case SHORT:
4368        case SUPER:
4369        case THIS:
4370        case TRUE:
4371        case VOID:
4372        case INTEGER_LITERAL:
4373        case FLOATING_POINT_LITERAL:
4374        case CHARACTER_LITERAL:
4375        case STRING_LITERAL:
4376        case IDENTIFIER:
4377        case LPAREN:
4378        case BANG:
4379        case TILDE:
4380        case INCR:
4381        case DECR:
4382        case PLUS:
4383        case MINUS:
4384          Expression();
4385          break;
4386        default:
4387          jj_la1[151] = jj_gen;
4388          ;
4389        }
4390        jj_consume_token(SEMICOLON);
4391        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4392        case ASSERT:
4393        case BOOLEAN:
4394        case BYTE:
4395        case CHAR:
4396        case DOUBLE:
4397        case ENUM:
4398        case FALSE:
4399        case FLOAT:
4400        case INT:
4401        case LONG:
4402        case NEW:
4403        case NULL:
4404        case SHORT:
4405        case SUPER:
4406        case THIS:
4407        case TRUE:
4408        case VOID:
4409        case INTEGER_LITERAL:
4410        case FLOATING_POINT_LITERAL:
4411        case CHARACTER_LITERAL:
4412        case STRING_LITERAL:
4413        case IDENTIFIER:
4414        case LPAREN:
4415        case INCR:
4416        case DECR:
4417          ForUpdate();
4418          break;
4419        default:
4420          jj_la1[152] = jj_gen;
4421          ;
4422        }
4423        break;
4424      default:
4425        jj_la1[153] = jj_gen;
4426        jj_consume_token(-1);
4427        throw new ParseException();
4428      }
4429    }
4430    jj_consume_token(RPAREN);
4431    Statement();
4432          _ncss++;       Util.debug( "_ncss++" );
4433  }
4434
4435  final public void ForInit() throws ParseException {
4436    if (jj_2_46(2147483647)) {
4437      LocalVariableDeclaration();
4438    } else {
4439      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4440      case ASSERT:
4441      case BOOLEAN:
4442      case BYTE:
4443      case CHAR:
4444      case DOUBLE:
4445      case ENUM:
4446      case FALSE:
4447      case FLOAT:
4448      case INT:
4449      case LONG:
4450      case NEW:
4451      case NULL:
4452      case SHORT:
4453      case SUPER:
4454      case THIS:
4455      case TRUE:
4456      case VOID:
4457      case INTEGER_LITERAL:
4458      case FLOATING_POINT_LITERAL:
4459      case CHARACTER_LITERAL:
4460      case STRING_LITERAL:
4461      case IDENTIFIER:
4462      case LPAREN:
4463      case INCR:
4464      case DECR:
4465        StatementExpressionList();
4466        break;
4467      default:
4468        jj_la1[154] = jj_gen;
4469        jj_consume_token(-1);
4470        throw new ParseException();
4471      }
4472    }
4473  }
4474
4475  final public void StatementExpressionList() throws ParseException {
4476    StatementExpression();
4477    label_61:
4478    while (true) {
4479      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4480      case COMMA:
4481        ;
4482        break;
4483      default:
4484        jj_la1[155] = jj_gen;
4485        break label_61;
4486      }
4487      jj_consume_token(COMMA);
4488      StatementExpression();
4489    }
4490  }
4491
4492  final public void ForUpdate() throws ParseException {
4493    StatementExpressionList();
4494  }
4495
4496  final public void BreakStatement() throws ParseException {
4497    jj_consume_token(BREAK);
4498    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4499    case ASSERT:
4500    case IDENTIFIER:
4501      Identifier();
4502      break;
4503    default:
4504      jj_la1[156] = jj_gen;
4505      ;
4506    }
4507    jj_consume_token(SEMICOLON);
4508          _ncss++;       Util.debug( "_ncss++" );
4509  }
4510
4511  final public void ContinueStatement() throws ParseException {
4512    jj_consume_token(CONTINUE);
4513    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4514    case ASSERT:
4515    case IDENTIFIER:
4516      Identifier();
4517      break;
4518    default:
4519      jj_la1[157] = jj_gen;
4520      ;
4521    }
4522    jj_consume_token(SEMICOLON);
4523          _ncss++;       Util.debug( "_ncss++" );
4524  }
4525
4526  final public void ReturnStatement() throws ParseException {
4527    jj_consume_token(RETURN);
4528    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4529    case ASSERT:
4530    case BOOLEAN:
4531    case BYTE:
4532    case CHAR:
4533    case DOUBLE:
4534    case ENUM:
4535    case FALSE:
4536    case FLOAT:
4537    case INT:
4538    case LONG:
4539    case NEW:
4540    case NULL:
4541    case SHORT:
4542    case SUPER:
4543    case THIS:
4544    case TRUE:
4545    case VOID:
4546    case INTEGER_LITERAL:
4547    case FLOATING_POINT_LITERAL:
4548    case CHARACTER_LITERAL:
4549    case STRING_LITERAL:
4550    case IDENTIFIER:
4551    case LPAREN:
4552    case BANG:
4553    case TILDE:
4554    case INCR:
4555    case DECR:
4556    case PLUS:
4557    case MINUS:
4558      Expression();
4559      break;
4560    default:
4561      jj_la1[158] = jj_gen;
4562      ;
4563    }
4564    jj_consume_token(SEMICOLON);
4565                _ncss++;
4566                Util.debug( "_ncss++" );
4567                _cyc++;
4568                _bReturn = true;
4569  }
4570
4571  final public void ThrowStatement() throws ParseException {
4572    jj_consume_token(THROW);
4573    Expression();
4574    jj_consume_token(SEMICOLON);
4575                _ncss++;
4576                Util.debug( "_ncss++" );
4577                _cyc++;
4578  }
4579
4580  final public void SynchronizedStatement() throws ParseException {
4581    jj_consume_token(SYNCHRONIZED);
4582    jj_consume_token(LPAREN);
4583    Expression();
4584    jj_consume_token(RPAREN);
4585    Block();
4586          _ncss++;       Util.debug( "_ncss++" );
4587  }
4588
4589  final public void TryStatement() throws ParseException {
4590    jj_consume_token(TRY);
4591    TryWithResources();
4592    Block();
4593    label_62:
4594    while (true) {
4595      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4596      case CATCH:
4597        ;
4598        break;
4599      default:
4600        jj_la1[159] = jj_gen;
4601        break label_62;
4602      }
4603      jj_consume_token(CATCH);
4604      jj_consume_token(LPAREN);
4605      CatchParameter();
4606      jj_consume_token(RPAREN);
4607      Block();
4608                                               _ncss++;       Util.debug( "_ncss++" ); _cyc++;
4609    }
4610    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4611    case FINALLY:
4612      jj_consume_token(FINALLY);
4613      Block();
4614                        _ncss++;       Util.debug( "_ncss++" );
4615      break;
4616    default:
4617      jj_la1[160] = jj_gen;
4618      ;
4619    }
4620  }
4621
4622/** Try-with-resource parameter with jdk 7**/
4623  final public void TryWithResources() throws ParseException {
4624    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4625    case LPAREN:
4626      jj_consume_token(LPAREN);
4627      label_63:
4628      while (true) {
4629        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4630        case ASSERT:
4631        case BOOLEAN:
4632        case BYTE:
4633        case CHAR:
4634        case DOUBLE:
4635        case ENUM:
4636        case FALSE:
4637        case FLOAT:
4638        case INT:
4639        case LONG:
4640        case NEW:
4641        case NULL:
4642        case SHORT:
4643        case SUPER:
4644        case THIS:
4645        case TRUE:
4646        case VOID:
4647        case INTEGER_LITERAL:
4648        case FLOATING_POINT_LITERAL:
4649        case CHARACTER_LITERAL:
4650        case STRING_LITERAL:
4651        case IDENTIFIER:
4652        case LPAREN:
4653        case BANG:
4654        case TILDE:
4655        case INCR:
4656        case DECR:
4657        case PLUS:
4658        case MINUS:
4659          ;
4660          break;
4661        default:
4662          jj_la1[161] = jj_gen;
4663          break label_63;
4664        }
4665        Expression();
4666        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4667        case SEMICOLON:
4668          jj_consume_token(SEMICOLON);
4669          break;
4670        default:
4671          jj_la1[162] = jj_gen;
4672          ;
4673        }
4674      }
4675      jj_consume_token(RPAREN);
4676      break;
4677    default:
4678      jj_la1[163] = jj_gen;
4679      ;
4680    }
4681  }
4682
4683/** Multi-catch parameter with jdk 7 **/
4684  final public void CatchParameter() throws ParseException {
4685    Modifiers();
4686    ReferenceType();
4687    label_64:
4688    while (true) {
4689      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4690      case BIT_OR:
4691        ;
4692        break;
4693      default:
4694        jj_la1[164] = jj_gen;
4695        break label_64;
4696      }
4697      jj_consume_token(BIT_OR);
4698      ReferenceType();
4699    }
4700    VariableDeclaratorId();
4701  }
4702
4703  final public void Identifier() throws ParseException {
4704    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4705    case IDENTIFIER:
4706      jj_consume_token(IDENTIFIER);
4707      break;
4708    case ASSERT:
4709      jj_consume_token(ASSERT);
4710      break;
4711    default:
4712      jj_la1[165] = jj_gen;
4713      jj_consume_token(-1);
4714      throw new ParseException();
4715    }
4716  }
4717
4718/* Annotation syntax follows. */
4719  final public void Annotation() throws ParseException {
4720    if (jj_2_47(2147483647)) {
4721      NormalAnnotation();
4722    } else if (jj_2_48(2147483647)) {
4723      SingleMemberAnnotation();
4724    } else {
4725      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4726      case AT:
4727        MarkerAnnotation();
4728        break;
4729      default:
4730        jj_la1[166] = jj_gen;
4731        jj_consume_token(-1);
4732        throw new ParseException();
4733      }
4734    }
4735  }
4736
4737  final public void NormalAnnotation() throws ParseException {
4738    jj_consume_token(AT);
4739    Name();
4740    jj_consume_token(LPAREN);
4741    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4742    case IDENTIFIER:
4743      MemberValuePairs();
4744      break;
4745    default:
4746      jj_la1[167] = jj_gen;
4747      ;
4748    }
4749    jj_consume_token(RPAREN);
4750  }
4751
4752  final public void MarkerAnnotation() throws ParseException {
4753    jj_consume_token(AT);
4754    Name();
4755  }
4756
4757  final public void SingleMemberAnnotation() throws ParseException {
4758    jj_consume_token(AT);
4759    Name();
4760    jj_consume_token(LPAREN);
4761    MemberValue();
4762    jj_consume_token(RPAREN);
4763  }
4764
4765  final public void MemberValuePairs() throws ParseException {
4766    MemberValuePair();
4767    label_65:
4768    while (true) {
4769      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4770      case COMMA:
4771        ;
4772        break;
4773      default:
4774        jj_la1[168] = jj_gen;
4775        break label_65;
4776      }
4777      jj_consume_token(COMMA);
4778      MemberValuePair();
4779    }
4780  }
4781
4782  final public void MemberValuePair() throws ParseException {
4783    jj_consume_token(IDENTIFIER);
4784    jj_consume_token(ASSIGN);
4785    MemberValue();
4786  }
4787
4788  final public void MemberValue() throws ParseException {
4789    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4790    case AT:
4791      Annotation();
4792      break;
4793    case LBRACE:
4794      MemberValueArrayInitializer();
4795      break;
4796    case ASSERT:
4797    case BOOLEAN:
4798    case BYTE:
4799    case CHAR:
4800    case DOUBLE:
4801    case ENUM:
4802    case FALSE:
4803    case FLOAT:
4804    case INT:
4805    case LONG:
4806    case NEW:
4807    case NULL:
4808    case SHORT:
4809    case SUPER:
4810    case THIS:
4811    case TRUE:
4812    case VOID:
4813    case INTEGER_LITERAL:
4814    case FLOATING_POINT_LITERAL:
4815    case CHARACTER_LITERAL:
4816    case STRING_LITERAL:
4817    case IDENTIFIER:
4818    case LPAREN:
4819    case BANG:
4820    case TILDE:
4821    case INCR:
4822    case DECR:
4823    case PLUS:
4824    case MINUS:
4825      ConditionalExpression();
4826      break;
4827    default:
4828      jj_la1[169] = jj_gen;
4829      jj_consume_token(-1);
4830      throw new ParseException();
4831    }
4832  }
4833
4834  final public void MemberValueArrayInitializer() throws ParseException {
4835    jj_consume_token(LBRACE);
4836    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4837    case ASSERT:
4838    case BOOLEAN:
4839    case BYTE:
4840    case CHAR:
4841    case DOUBLE:
4842    case ENUM:
4843    case FALSE:
4844    case FLOAT:
4845    case INT:
4846    case LONG:
4847    case NEW:
4848    case NULL:
4849    case SHORT:
4850    case SUPER:
4851    case THIS:
4852    case TRUE:
4853    case VOID:
4854    case INTEGER_LITERAL:
4855    case FLOATING_POINT_LITERAL:
4856    case CHARACTER_LITERAL:
4857    case STRING_LITERAL:
4858    case IDENTIFIER:
4859    case LPAREN:
4860    case LBRACE:
4861    case AT:
4862    case BANG:
4863    case TILDE:
4864    case INCR:
4865    case DECR:
4866    case PLUS:
4867    case MINUS:
4868      MemberValue();
4869      break;
4870    default:
4871      jj_la1[170] = jj_gen;
4872      ;
4873    }
4874    label_66:
4875    while (true) {
4876      if (jj_2_49(2)) {
4877        ;
4878      } else {
4879        break label_66;
4880      }
4881      jj_consume_token(COMMA);
4882      MemberValue();
4883    }
4884    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4885    case COMMA:
4886      jj_consume_token(COMMA);
4887      break;
4888    default:
4889      jj_la1[171] = jj_gen;
4890      ;
4891    }
4892    jj_consume_token(RBRACE);
4893  }
4894
4895/*
4896 =================================================
4897 Java 1.5 stuff starts here
4898 =================================================
4899*/
4900
4901/* Annotation Types. */
4902
4903//Added by REYNAUD Sebastien (LOGICA)
4904  final public void CreationAnnotation() throws ParseException {
4905    jj_consume_token(AT);
4906    jj_consume_token(INTERFACE);
4907    jj_consume_token(IDENTIFIER);
4908    jj_consume_token(LBRACE);
4909    label_67:
4910    while (true) {
4911      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4912      case ABSTRACT:
4913      case BOOLEAN:
4914      case BYTE:
4915      case CHAR:
4916      case CLASS:
4917      case DOUBLE:
4918      case ENUM:
4919      case FINAL:
4920      case FLOAT:
4921      case INT:
4922      case INTERFACE:
4923      case LONG:
4924      case NATIVE:
4925      case PRIVATE:
4926      case PROTECTED:
4927      case PUBLIC:
4928      case SHORT:
4929      case STATIC:
4930      case TESTAAAA:
4931      case SYNCHRONIZED:
4932      case TRANSIENT:
4933      case VOLATILE:
4934      case IDENTIFIER:
4935      case SEMICOLON:
4936      case AT:
4937        ;
4938        break;
4939      default:
4940        jj_la1[172] = jj_gen;
4941        break label_67;
4942      }
4943      AnnotationTypeMemberDeclaration();
4944    }
4945    jj_consume_token(RBRACE);
4946  }
4947
4948//
4949  final public void AnnotationTypeDeclaration(int modifiers) throws ParseException {
4950    jj_consume_token(AT);
4951    jj_consume_token(INTERFACE);
4952    jj_consume_token(IDENTIFIER);
4953    AnnotationTypeBody();
4954  }
4955
4956  final public void AnnotationTypeBody() throws ParseException {
4957    jj_consume_token(LBRACE);
4958       _ncss++;       Util.debug( "_ncss++" );
4959    label_68:
4960    while (true) {
4961      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4962      case ABSTRACT:
4963      case BOOLEAN:
4964      case BYTE:
4965      case CHAR:
4966      case CLASS:
4967      case DOUBLE:
4968      case ENUM:
4969      case FINAL:
4970      case FLOAT:
4971      case INT:
4972      case INTERFACE:
4973      case LONG:
4974      case NATIVE:
4975      case PRIVATE:
4976      case PROTECTED:
4977      case PUBLIC:
4978      case SHORT:
4979      case STATIC:
4980      case TESTAAAA:
4981      case SYNCHRONIZED:
4982      case TRANSIENT:
4983      case VOLATILE:
4984      case IDENTIFIER:
4985      case SEMICOLON:
4986      case AT:
4987        ;
4988        break;
4989      default:
4990        jj_la1[173] = jj_gen;
4991        break label_68;
4992      }
4993      AnnotationTypeMemberDeclaration();
4994    }
4995    jj_consume_token(RBRACE);
4996  }
4997
4998  final public void AnnotationTypeMemberDeclaration() throws ParseException {
4999   int modifiers;
5000    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5001    case ABSTRACT:
5002    case BOOLEAN:
5003    case BYTE:
5004    case CHAR:
5005    case CLASS:
5006    case DOUBLE:
5007    case ENUM:
5008    case FINAL:
5009    case FLOAT:
5010    case INT:
5011    case INTERFACE:
5012    case LONG:
5013    case NATIVE:
5014    case PRIVATE:
5015    case PROTECTED:
5016    case PUBLIC:
5017    case SHORT:
5018    case STATIC:
5019    case TESTAAAA:
5020    case SYNCHRONIZED:
5021    case TRANSIENT:
5022    case VOLATILE:
5023    case IDENTIFIER:
5024    case AT:
5025      modifiers = Modifiers();
5026      if (jj_2_50(2147483647)) {
5027        Type();
5028        jj_consume_token(IDENTIFIER);
5029        jj_consume_token(LPAREN);
5030        jj_consume_token(RPAREN);
5031        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5032        case _DEFAULT:
5033          DefaultValue();
5034          break;
5035        default:
5036          jj_la1[174] = jj_gen;
5037          ;
5038        }
5039        jj_consume_token(SEMICOLON);
5040            _ncss++;
5041            Util.debug( "_ncss++" );
5042      } else {
5043        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5044        case CLASS:
5045        case INTERFACE:
5046          ClassOrInterfaceDeclaration(modifiers);
5047          break;
5048        case ENUM:
5049          EnumDeclaration(modifiers);
5050          break;
5051        case AT:
5052          AnnotationTypeDeclaration(modifiers);
5053          break;
5054        case BOOLEAN:
5055        case BYTE:
5056        case CHAR:
5057        case DOUBLE:
5058        case FLOAT:
5059        case INT:
5060        case LONG:
5061        case SHORT:
5062        case IDENTIFIER:
5063          FieldDeclaration15(modifiers);
5064          break;
5065        default:
5066          jj_la1[175] = jj_gen;
5067          jj_consume_token(-1);
5068          throw new ParseException();
5069        }
5070      }
5071      break;
5072    case SEMICOLON:
5073      jj_consume_token(SEMICOLON);
5074            _ncss++;
5075            Util.debug( "_ncss++" );
5076      break;
5077    default:
5078      jj_la1[176] = jj_gen;
5079      jj_consume_token(-1);
5080      throw new ParseException();
5081    }
5082  }
5083
5084  final public void DefaultValue() throws ParseException {
5085    jj_consume_token(_DEFAULT);
5086    MemberValue();
5087  }
5088
5089/*
5090 * Modifiers. We match all modifiers in a single rule to reduce the chances of
5091 * syntax errors for simple modifier mistakes. It will also enable us to give
5092 * better error messages.
5093 */
5094  final public int Modifiers() throws ParseException {
5095   int modifiers = 0;
5096   _tmpToken = null;
5097    label_69:
5098    while (true) {
5099      if (jj_2_51(2)) {
5100        ;
5101      } else {
5102        break label_69;
5103      }
5104      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5105      case PUBLIC:
5106        jj_consume_token(PUBLIC);
5107              modifiers |= ModifierSet.PUBLIC;
5108      if ( _tmpToken == null ) {
5109          _tmpToken = getToken( 0 );
5110      }
5111        break;
5112      case STATIC:
5113        jj_consume_token(STATIC);
5114              modifiers |= ModifierSet.STATIC;       if ( _tmpToken == null ) {
5115          _tmpToken = getToken( 0 );
5116      }
5117        break;
5118      case PROTECTED:
5119        jj_consume_token(PROTECTED);
5120                 modifiers |= ModifierSet.PROTECTED;       if ( _tmpToken == null ) {
5121       _tmpToken = getToken( 0 );
5122      }
5123        break;
5124      case PRIVATE:
5125        jj_consume_token(PRIVATE);
5126               modifiers |= ModifierSet.PRIVATE;       if ( _tmpToken == null ) {
5127          _tmpToken = getToken( 0 );
5128      }
5129        break;
5130      case FINAL:
5131        jj_consume_token(FINAL);
5132             modifiers |= ModifierSet.FINAL;       if ( _tmpToken == null ) {
5133       _tmpToken = getToken( 0 );
5134      }
5135        break;
5136      case ABSTRACT:
5137        jj_consume_token(ABSTRACT);
5138                modifiers |= ModifierSet.ABSTRACT;       if ( _tmpToken == null ) {
5139          _tmpToken = getToken( 0 );
5140      }
5141        break;
5142      case SYNCHRONIZED:
5143        jj_consume_token(SYNCHRONIZED);
5144                    modifiers |= ModifierSet.SYNCHRONIZED;       if ( _tmpToken == null ) {
5145          _tmpToken = getToken( 0 );
5146      }
5147        break;
5148      case NATIVE:
5149        jj_consume_token(NATIVE);
5150              modifiers |= ModifierSet.NATIVE;       if ( _tmpToken == null ) {
5151          _tmpToken = getToken( 0 );
5152      }
5153        break;
5154      case TRANSIENT:
5155        jj_consume_token(TRANSIENT);
5156                 modifiers |= ModifierSet.TRANSIENT;       if ( _tmpToken == null ) {
5157          _tmpToken = getToken( 0 );
5158      }
5159        break;
5160      case VOLATILE:
5161        jj_consume_token(VOLATILE);
5162                modifiers |= ModifierSet.VOLATILE;       if ( _tmpToken == null ) {
5163          _tmpToken = getToken( 0 );
5164      }
5165        break;
5166      case TESTAAAA:
5167        jj_consume_token(TESTAAAA);
5168                modifiers |= ModifierSet.STRICTFP;       if ( _tmpToken == null ) {
5169          _tmpToken = getToken( 0 );
5170      }
5171        break;
5172      case AT:
5173        Annotation();
5174        break;
5175      default:
5176        jj_la1[177] = jj_gen;
5177        jj_consume_token(-1);
5178        throw new ParseException();
5179      }
5180    }
5181    {if (true) return modifiers;}
5182    throw new Error("Missing return statement in function");
5183  }
5184
5185  final public void ClassOrInterfaceDeclaration(int modifiers) throws ParseException {
5186   boolean isInterface = false;
5187    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5188    case CLASS:
5189      jj_consume_token(CLASS);
5190      break;
5191    case INTERFACE:
5192      jj_consume_token(INTERFACE);
5193                            isInterface = true;
5194      break;
5195    default:
5196      jj_la1[178] = jj_gen;
5197      jj_consume_token(-1);
5198      throw new ParseException();
5199    }
5200    jj_consume_token(IDENTIFIER);
5201    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5202    case LT:
5203      TypeParameters();
5204      break;
5205    default:
5206      jj_la1[179] = jj_gen;
5207      ;
5208    }
5209    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5210    case EXTENDS:
5211      ExtendsList(isInterface);
5212      break;
5213    default:
5214      jj_la1[180] = jj_gen;
5215      ;
5216    }
5217    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5218    case IMPLEMENTS:
5219      ImplementsList(isInterface);
5220      break;
5221    default:
5222      jj_la1[181] = jj_gen;
5223      ;
5224    }
5225    ClassOrInterfaceBody(isInterface);
5226  }
5227
5228  final public void EnumDeclaration(int modifiers) throws ParseException {
5229        String sOldClass = _sClass;
5230        int oldClasses = _classes;
5231        int oldNcss = _ncss;
5232        int oldFunctions = _functions;
5233
5234        // Chris Povirk
5235        int oldSingle;
5236        int oldMulti;
5237      Util.debug( "EnumDeclaration().START" );
5238    jj_consume_token(ENUM);
5239    jj_consume_token(IDENTIFIER);
5240                if (!_sClass.equals("")) {
5241                        _sClass += ".";
5242                }
5243                _sClass += getToken(0).image;
5244                _classLevel ++;
5245    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5246    case IMPLEMENTS:
5247      ImplementsList(false);
5248      break;
5249    default:
5250      jj_la1[182] = jj_gen;
5251      ;
5252    }
5253        // Chris Povirk
5254      oldSingle = JavaParserTokenManager._iSingleComments;
5255      oldMulti = JavaParserTokenManager._iMultiComments;
5256    EnumBody();
5257             _classLevel--;
5258             if (_classLevel == 0) {
5259                 //_topLevelClasses++;
5260                 ObjectMetric metric = new ObjectMetric();
5261                 metric.name = _sPackage + _sClass;
5262                 metric.ncss = _ncss - oldNcss;
5263                 metric.functions = _functions - oldFunctions;
5264                 metric.classes = _classes - oldClasses;
5265                 Token lastToken = getToken( 0 );
5266                 //metric.add( new Integer( lastToken.endLine ) );
5267                 //metric.add( new Integer( lastToken.endColumn ) );
5268                 metric.javadocs = _javadocs;
5269
5270                 // Chris Povirk
5271                 metric.javadocsLn = _jvdcLines;
5272                 metric.singleLn = JavaParserTokenManager._iSingleComments - oldSingle;
5273                 metric.multiLn = JavaParserTokenManager._iMultiComments - oldMulti;
5274
5275                 _vClasses.add(metric);
5276                 _pPackageMetric.functions += _functions - oldFunctions;
5277                 _pPackageMetric.classes++;
5278
5279                 // added by SMS
5280                 _pPackageMetric.javadocs += _javadocs;
5281                 //_pPackageMetric.javadocsLn += JavaParserTokenManager._iFormalComments - oldFormal;
5282                 //_pPackageMetric.singleLn += JavaParserTokenManager._iSingleComments - oldSingle;
5283                 //_pPackageMetric.multiLn += Manager._iMultiComments - oldMulti;
5284                 //
5285             }
5286             _functions = oldFunctions;
5287             _classes = oldClasses + 1;
5288             _sClass = sOldClass;
5289  }
5290
5291  final public void TypeParameters() throws ParseException {
5292    jj_consume_token(LT);
5293    TypeParameter();
5294    label_70:
5295    while (true) {
5296      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5297      case COMMA:
5298        ;
5299        break;
5300      default:
5301        jj_la1[183] = jj_gen;
5302        break label_70;
5303      }
5304      jj_consume_token(COMMA);
5305      TypeParameter();
5306    }
5307    jj_consume_token(GT);
5308  }
5309
5310  final public void ExtendsList(boolean isInterface) throws ParseException {
5311   boolean extendsMoreThanOne = false;
5312    jj_consume_token(EXTENDS);
5313    ClassOrInterfaceType();
5314    label_71:
5315    while (true) {
5316      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5317      case COMMA:
5318        ;
5319        break;
5320      default:
5321        jj_la1[184] = jj_gen;
5322        break label_71;
5323      }
5324      jj_consume_token(COMMA);
5325      ClassOrInterfaceType();
5326                                  extendsMoreThanOne = true;
5327    }
5328      if (extendsMoreThanOne && !isInterface)
5329         {if (true) throw new ParseException("A class cannot extend more than one other class");}
5330  }
5331
5332  final public void ImplementsList(boolean isInterface) throws ParseException {
5333    jj_consume_token(IMPLEMENTS);
5334    ClassOrInterfaceType();
5335    label_72:
5336    while (true) {
5337      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5338      case COMMA:
5339        ;
5340        break;
5341      default:
5342        jj_la1[185] = jj_gen;
5343        break label_72;
5344      }
5345      jj_consume_token(COMMA);
5346      ClassOrInterfaceType();
5347    }
5348      if (isInterface)
5349         {if (true) throw new ParseException("An interface cannot implement other interfaces");}
5350  }
5351
5352  final public void ClassOrInterfaceBody(boolean isInterface) throws ParseException {
5353    jj_consume_token(LBRACE);
5354           _ncss++; Util.debug( "ClassOrInterfaceBody()._ncss++" );
5355    label_73:
5356    while (true) {
5357      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5358      case ABSTRACT:
5359      case ASSERT:
5360      case BOOLEAN:
5361      case BYTE:
5362      case CHAR:
5363      case CLASS:
5364      case DOUBLE:
5365      case ENUM:
5366      case FINAL:
5367      case FLOAT:
5368      case INT:
5369      case INTERFACE:
5370      case LONG:
5371      case NATIVE:
5372      case PRIVATE:
5373      case PROTECTED:
5374      case PUBLIC:
5375      case SHORT:
5376      case STATIC:
5377      case TESTAAAA:
5378      case SYNCHRONIZED:
5379      case TRANSIENT:
5380      case VOID:
5381      case VOLATILE:
5382      case IDENTIFIER:
5383      case LBRACE:
5384      case SEMICOLON:
5385      case AT:
5386      case LT:
5387        ;
5388        break;
5389      default:
5390        jj_la1[186] = jj_gen;
5391        break label_73;
5392      }
5393      ClassOrInterfaceBodyDeclaration(isInterface);
5394    }
5395    jj_consume_token(RBRACE);
5396  }
5397
5398  final public void EnumBody() throws ParseException {
5399    jj_consume_token(LBRACE);
5400               _ncss++;
5401               Util.debug( "_ncss++" );
5402    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5403    case ABSTRACT:
5404    case FINAL:
5405    case NATIVE:
5406    case PRIVATE:
5407    case PROTECTED:
5408    case PUBLIC:
5409    case STATIC:
5410    case TESTAAAA:
5411    case SYNCHRONIZED:
5412    case TRANSIENT:
5413    case VOLATILE:
5414    case IDENTIFIER:
5415    case AT:
5416      EnumConstant();
5417      label_74:
5418      while (true) {
5419        if (jj_2_52(2)) {
5420          ;
5421        } else {
5422          break label_74;
5423        }
5424        jj_consume_token(COMMA);
5425        EnumConstant();
5426      }
5427      break;
5428    default:
5429      jj_la1[187] = jj_gen;
5430      ;
5431    }
5432    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5433    case COMMA:
5434      jj_consume_token(COMMA);
5435      break;
5436    default:
5437      jj_la1[188] = jj_gen;
5438      ;
5439    }
5440    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5441    case SEMICOLON:
5442      jj_consume_token(SEMICOLON);
5443      label_75:
5444      while (true) {
5445        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5446        case ABSTRACT:
5447        case ASSERT:
5448        case BOOLEAN:
5449        case BYTE:
5450        case CHAR:
5451        case CLASS:
5452        case DOUBLE:
5453        case ENUM:
5454        case FINAL:
5455        case FLOAT:
5456        case INT:
5457        case INTERFACE:
5458        case LONG:
5459        case NATIVE:
5460        case PRIVATE:
5461        case PROTECTED:
5462        case PUBLIC:
5463        case SHORT:
5464        case STATIC:
5465        case TESTAAAA:
5466        case SYNCHRONIZED:
5467        case TRANSIENT:
5468        case VOID:
5469        case VOLATILE:
5470        case IDENTIFIER:
5471        case LBRACE:
5472        case SEMICOLON:
5473        case AT:
5474        case LT:
5475          ;
5476          break;
5477        default:
5478          jj_la1[189] = jj_gen;
5479          break label_75;
5480        }
5481        ClassOrInterfaceBodyDeclaration(false);
5482      }
5483      break;
5484    default:
5485      jj_la1[190] = jj_gen;
5486      ;
5487    }
5488    jj_consume_token(RBRACE);
5489  }
5490
5491  final public void TypeParameter() throws ParseException {
5492    jj_consume_token(IDENTIFIER);
5493    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5494    case EXTENDS:
5495      TypeBound();
5496      break;
5497    default:
5498      jj_la1[191] = jj_gen;
5499      ;
5500    }
5501  }
5502
5503  final public void ClassOrInterfaceType() throws ParseException {
5504    jj_consume_token(IDENTIFIER);
5505                _sName = getToken(0).image;
5506                if ( _tmpResultToken == null )
5507                {
5508                  _tmpResultToken = getToken( 0 );
5509                  Util.debug( "ClassOrInterfaceType._tmpResultToken: " + _tmpResultToken );
5510                }
5511    if (jj_2_53(4)) {
5512      TypeArguments();
5513    } else {
5514      ;
5515    }
5516    label_76:
5517    while (true) {
5518      if (jj_2_54(2)) {
5519        ;
5520      } else {
5521        break label_76;
5522      }
5523      jj_consume_token(DOT);
5524      jj_consume_token(IDENTIFIER);
5525                _sName += "." + getToken(0).image;
5526      if (jj_2_55(2)) {
5527        TypeArguments();
5528      } else {
5529        ;
5530      }
5531    }
5532  }
5533
5534  final public void ClassOrInterfaceBodyDeclaration(boolean isInterface) throws ParseException {
5535   //boolean isNestedInterface = false;
5536   int modifiers;
5537    if (jj_2_58(2)) {
5538      Initializer();
5539     if (isInterface)
5540        {if (true) throw new ParseException("An interface cannot have initializers");}
5541    } else {
5542      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5543      case ABSTRACT:
5544      case ASSERT:
5545      case BOOLEAN:
5546      case BYTE:
5547      case CHAR:
5548      case CLASS:
5549      case DOUBLE:
5550      case ENUM:
5551      case FINAL:
5552      case FLOAT:
5553      case INT:
5554      case INTERFACE:
5555      case LONG:
5556      case NATIVE:
5557      case PRIVATE:
5558      case PROTECTED:
5559      case PUBLIC:
5560      case SHORT:
5561      case STATIC:
5562      case TESTAAAA:
5563      case SYNCHRONIZED:
5564      case TRANSIENT:
5565      case VOID:
5566      case VOLATILE:
5567      case IDENTIFIER:
5568      case AT:
5569      case LT:
5570        modifiers = Modifiers();
5571        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5572        case CLASS:
5573        case INTERFACE:
5574          ClassOrInterfaceDeclaration(modifiers);
5575          break;
5576        case ENUM:
5577          EnumDeclaration(modifiers);
5578          break;
5579        default:
5580          jj_la1[192] = jj_gen;
5581          if (jj_2_56(2147483647)) {
5582            ConstructorDeclaration();
5583          } else if (jj_2_57(2147483647)) {
5584            FieldDeclaration15(modifiers);
5585          } else {
5586            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5587            case ABSTRACT:
5588            case BOOLEAN:
5589            case BYTE:
5590            case CHAR:
5591            case DOUBLE:
5592            case FINAL:
5593            case FLOAT:
5594            case INT:
5595            case LONG:
5596            case NATIVE:
5597            case PRIVATE:
5598            case PROTECTED:
5599            case PUBLIC:
5600            case SHORT:
5601            case STATIC:
5602            case TESTAAAA:
5603            case SYNCHRONIZED:
5604            case VOID:
5605            case IDENTIFIER:
5606            case AT:
5607            case LT:
5608              MethodDeclaration15(modifiers);
5609              break;
5610            default:
5611              jj_la1[193] = jj_gen;
5612              jj_consume_token(-1);
5613              throw new ParseException();
5614            }
5615          }
5616        }
5617        break;
5618      case SEMICOLON:
5619        jj_consume_token(SEMICOLON);
5620        break;
5621      default:
5622        jj_la1[194] = jj_gen;
5623        jj_consume_token(-1);
5624        throw new ParseException();
5625      }
5626    }
5627  }
5628
5629  final public void EnumConstant() throws ParseException {
5630    Modifiers();
5631    jj_consume_token(IDENTIFIER);
5632    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5633    case LPAREN:
5634      Arguments();
5635      break;
5636    default:
5637      jj_la1[195] = jj_gen;
5638      ;
5639    }
5640    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5641    case LBRACE:
5642      ClassOrInterfaceBody(false);
5643      break;
5644    default:
5645      jj_la1[196] = jj_gen;
5646      ;
5647    }
5648  }
5649
5650  final public void TypeBound() throws ParseException {
5651    jj_consume_token(EXTENDS);
5652    ClassOrInterfaceType();
5653    label_77:
5654    while (true) {
5655      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5656      case BIT_AND:
5657        ;
5658        break;
5659      default:
5660        jj_la1[197] = jj_gen;
5661        break label_77;
5662      }
5663      jj_consume_token(BIT_AND);
5664      ClassOrInterfaceType();
5665    }
5666  }
5667
5668  final public void TypeArguments() throws ParseException {
5669    jj_consume_token(LT);
5670    label_78:
5671    while (true) {
5672      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5673      case BOOLEAN:
5674      case BYTE:
5675      case CHAR:
5676      case DOUBLE:
5677      case FLOAT:
5678      case INT:
5679      case LONG:
5680      case SHORT:
5681      case IDENTIFIER:
5682      case HOOK:
5683        ;
5684        break;
5685      default:
5686        jj_la1[198] = jj_gen;
5687        break label_78;
5688      }
5689      TypeArgument();
5690      label_79:
5691      while (true) {
5692        if (jj_2_59(2)) {
5693          ;
5694        } else {
5695          break label_79;
5696        }
5697        jj_consume_token(COMMA);
5698        TypeArgument();
5699      }
5700    }
5701    jj_consume_token(GT);
5702  }
5703
5704  final public void TypeArgument() throws ParseException {
5705    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5706    case BOOLEAN:
5707    case BYTE:
5708    case CHAR:
5709    case DOUBLE:
5710    case FLOAT:
5711    case INT:
5712    case LONG:
5713    case SHORT:
5714    case IDENTIFIER:
5715      ReferenceType();
5716      break;
5717    case HOOK:
5718      jj_consume_token(HOOK);
5719      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5720      case EXTENDS:
5721      case SUPER:
5722        WildcardBounds();
5723        break;
5724      default:
5725        jj_la1[199] = jj_gen;
5726        ;
5727      }
5728      break;
5729    default:
5730      jj_la1[200] = jj_gen;
5731      jj_consume_token(-1);
5732      throw new ParseException();
5733    }
5734  }
5735
5736  final public void ReferenceType() throws ParseException {
5737    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5738    case BOOLEAN:
5739    case BYTE:
5740    case CHAR:
5741    case DOUBLE:
5742    case FLOAT:
5743    case INT:
5744    case LONG:
5745    case SHORT:
5746      PrimitiveType();
5747      label_80:
5748      while (true) {
5749        jj_consume_token(LBRACKET);
5750        jj_consume_token(RBRACKET);
5751                                            _sName += "[]";
5752        if (jj_2_60(2)) {
5753          ;
5754        } else {
5755          break label_80;
5756        }
5757      }
5758      break;
5759    case IDENTIFIER:
5760      ClassOrInterfaceType();
5761      label_81:
5762      while (true) {
5763        if (jj_2_61(2)) {
5764          ;
5765        } else {
5766          break label_81;
5767        }
5768        jj_consume_token(LBRACKET);
5769        jj_consume_token(RBRACKET);
5770                                                       _sName += "[]";
5771      }
5772      break;
5773    default:
5774      jj_la1[201] = jj_gen;
5775      jj_consume_token(-1);
5776      throw new ParseException();
5777    }
5778  }
5779
5780  final public void WildcardBounds() throws ParseException {
5781    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5782    case EXTENDS:
5783      jj_consume_token(EXTENDS);
5784      ReferenceType();
5785      break;
5786    case SUPER:
5787      jj_consume_token(SUPER);
5788      ReferenceType();
5789      break;
5790    default:
5791      jj_la1[202] = jj_gen;
5792      jj_consume_token(-1);
5793      throw new ParseException();
5794    }
5795  }
5796
5797  final public void FieldDeclaration15(int modifiers) throws ParseException {
5798    Type();
5799    VariableDeclarator();
5800    label_82:
5801    while (true) {
5802      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5803      case COMMA:
5804        ;
5805        break;
5806      default:
5807        jj_la1[203] = jj_gen;
5808        break label_82;
5809      }
5810      jj_consume_token(COMMA);
5811      VariableDeclarator();
5812    }
5813    jj_consume_token(SEMICOLON);
5814  }
5815
5816  final public void MethodDeclaration15(int modifiers) throws ParseException {
5817    MethodDeclaration();
5818  }
5819
5820  final public void MethodDeclarator15() throws ParseException {
5821    jj_consume_token(IDENTIFIER);
5822    FormalParameters();
5823    label_83:
5824    while (true) {
5825      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5826      case LBRACKET:
5827        ;
5828        break;
5829      default:
5830        jj_la1[204] = jj_gen;
5831        break label_83;
5832      }
5833      jj_consume_token(LBRACKET);
5834      jj_consume_token(RBRACKET);
5835    }
5836  }
5837
5838  final public void FormalParameters15() throws ParseException {
5839    jj_consume_token(LPAREN);
5840    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5841    case ABSTRACT:
5842    case BOOLEAN:
5843    case BYTE:
5844    case CHAR:
5845    case DOUBLE:
5846    case FINAL:
5847    case FLOAT:
5848    case INT:
5849    case LONG:
5850    case NATIVE:
5851    case PRIVATE:
5852    case PROTECTED:
5853    case PUBLIC:
5854    case SHORT:
5855    case STATIC:
5856    case TESTAAAA:
5857    case SYNCHRONIZED:
5858    case TRANSIENT:
5859    case VOLATILE:
5860    case IDENTIFIER:
5861    case AT:
5862      FormalParameter15();
5863      label_84:
5864      while (true) {
5865        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5866        case COMMA:
5867          ;
5868          break;
5869        default:
5870          jj_la1[205] = jj_gen;
5871          break label_84;
5872        }
5873        jj_consume_token(COMMA);
5874        FormalParameter15();
5875      }
5876      break;
5877    default:
5878      jj_la1[206] = jj_gen;
5879      ;
5880    }
5881    jj_consume_token(RPAREN);
5882  }
5883
5884  final public void FormalParameter15() throws ParseException {
5885    Modifiers();
5886    Type();
5887    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5888    case ELLIPSIS:
5889      jj_consume_token(ELLIPSIS);
5890      break;
5891    default:
5892      jj_la1[207] = jj_gen;
5893      ;
5894    }
5895    VariableDeclaratorId();
5896  }
5897
5898  final public void MemberSelector() throws ParseException {
5899    jj_consume_token(DOT);
5900    TypeArguments();
5901    jj_consume_token(IDENTIFIER);
5902  }
5903
5904  private boolean jj_2_1(int xla) {
5905    jj_la = xla; jj_lastpos = jj_scanpos = token;
5906    try { return !jj_3_1(); }
5907    catch(LookaheadSuccess ls) { return true; }
5908    finally { jj_save(0, xla); }
5909  }
5910
5911  private boolean jj_2_2(int xla) {
5912    jj_la = xla; jj_lastpos = jj_scanpos = token;
5913    try { return !jj_3_2(); }
5914    catch(LookaheadSuccess ls) { return true; }
5915    finally { jj_save(1, xla); }
5916  }
5917
5918  private boolean jj_2_3(int xla) {
5919    jj_la = xla; jj_lastpos = jj_scanpos = token;
5920    try { return !jj_3_3(); }
5921    catch(LookaheadSuccess ls) { return true; }
5922    finally { jj_save(2, xla); }
5923  }
5924
5925  private boolean jj_2_4(int xla) {
5926    jj_la = xla; jj_lastpos = jj_scanpos = token;
5927    try { return !jj_3_4(); }
5928    catch(LookaheadSuccess ls) { return true; }
5929    finally { jj_save(3, xla); }
5930  }
5931
5932  private boolean jj_2_5(int xla) {
5933    jj_la = xla; jj_lastpos = jj_scanpos = token;
5934    try { return !jj_3_5(); }
5935    catch(LookaheadSuccess ls) { return true; }
5936    finally { jj_save(4, xla); }
5937  }
5938
5939  private boolean jj_2_6(int xla) {
5940    jj_la = xla; jj_lastpos = jj_scanpos = token;
5941    try { return !jj_3_6(); }
5942    catch(LookaheadSuccess ls) { return true; }
5943    finally { jj_save(5, xla); }
5944  }
5945
5946  private boolean jj_2_7(int xla) {
5947    jj_la = xla; jj_lastpos = jj_scanpos = token;
5948    try { return !jj_3_7(); }
5949    catch(LookaheadSuccess ls) { return true; }
5950    finally { jj_save(6, xla); }
5951  }
5952
5953  private boolean jj_2_8(int xla) {
5954    jj_la = xla; jj_lastpos = jj_scanpos = token;
5955    try { return !jj_3_8(); }
5956    catch(LookaheadSuccess ls) { return true; }
5957    finally { jj_save(7, xla); }
5958  }
5959
5960  private boolean jj_2_9(int xla) {
5961    jj_la = xla; jj_lastpos = jj_scanpos = token;
5962    try { return !jj_3_9(); }
5963    catch(LookaheadSuccess ls) { return true; }
5964    finally { jj_save(8, xla); }
5965  }
5966
5967  private boolean jj_2_10(int xla) {
5968    jj_la = xla; jj_lastpos = jj_scanpos = token;
5969    try { return !jj_3_10(); }
5970    catch(LookaheadSuccess ls) { return true; }
5971    finally { jj_save(9, xla); }
5972  }
5973
5974  private boolean jj_2_11(int xla) {
5975    jj_la = xla; jj_lastpos = jj_scanpos = token;
5976    try { return !jj_3_11(); }
5977    catch(LookaheadSuccess ls) { return true; }
5978    finally { jj_save(10, xla); }
5979  }
5980
5981  private boolean jj_2_12(int xla) {
5982    jj_la = xla; jj_lastpos = jj_scanpos = token;
5983    try { return !jj_3_12(); }
5984    catch(LookaheadSuccess ls) { return true; }
5985    finally { jj_save(11, xla); }
5986  }
5987
5988  private boolean jj_2_13(int xla) {
5989    jj_la = xla; jj_lastpos = jj_scanpos = token;
5990    try { return !jj_3_13(); }
5991    catch(LookaheadSuccess ls) { return true; }
5992    finally { jj_save(12, xla); }
5993  }
5994
5995  private boolean jj_2_14(int xla) {
5996    jj_la = xla; jj_lastpos = jj_scanpos = token;
5997    try { return !jj_3_14(); }
5998    catch(LookaheadSuccess ls) { return true; }
5999    finally { jj_save(13, xla); }
6000  }
6001
6002  private boolean jj_2_15(int xla) {
6003    jj_la = xla; jj_lastpos = jj_scanpos = token;
6004    try { return !jj_3_15(); }
6005    catch(LookaheadSuccess ls) { return true; }
6006    finally { jj_save(14, xla); }
6007  }
6008
6009  private boolean jj_2_16(int xla) {
6010    jj_la = xla; jj_lastpos = jj_scanpos = token;
6011    try { return !jj_3_16(); }
6012    catch(LookaheadSuccess ls) { return true; }
6013    finally { jj_save(15, xla); }
6014  }
6015
6016  private boolean jj_2_17(int xla) {
6017    jj_la = xla; jj_lastpos = jj_scanpos = token;
6018    try { return !jj_3_17(); }
6019    catch(LookaheadSuccess ls) { return true; }
6020    finally { jj_save(16, xla); }
6021  }
6022
6023  private boolean jj_2_18(int xla) {
6024    jj_la = xla; jj_lastpos = jj_scanpos = token;
6025    try { return !jj_3_18(); }
6026    catch(LookaheadSuccess ls) { return true; }
6027    finally { jj_save(17, xla); }
6028  }
6029
6030  private boolean jj_2_19(int xla) {
6031    jj_la = xla; jj_lastpos = jj_scanpos = token;
6032    try { return !jj_3_19(); }
6033    catch(LookaheadSuccess ls) { return true; }
6034    finally { jj_save(18, xla); }
6035  }
6036
6037  private boolean jj_2_20(int xla) {
6038    jj_la = xla; jj_lastpos = jj_scanpos = token;
6039    try { return !jj_3_20(); }
6040    catch(LookaheadSuccess ls) { return true; }
6041    finally { jj_save(19, xla); }
6042  }
6043
6044  private boolean jj_2_21(int xla) {
6045    jj_la = xla; jj_lastpos = jj_scanpos = token;
6046    try { return !jj_3_21(); }
6047    catch(LookaheadSuccess ls) { return true; }
6048    finally { jj_save(20, xla); }
6049  }
6050
6051  private boolean jj_2_22(int xla) {
6052    jj_la = xla; jj_lastpos = jj_scanpos = token;
6053    try { return !jj_3_22(); }
6054    catch(LookaheadSuccess ls) { return true; }
6055    finally { jj_save(21, xla); }
6056  }
6057
6058  private boolean jj_2_23(int xla) {
6059    jj_la = xla; jj_lastpos = jj_scanpos = token;
6060    try { return !jj_3_23(); }
6061    catch(LookaheadSuccess ls) { return true; }
6062    finally { jj_save(22, xla); }
6063  }
6064
6065  private boolean jj_2_24(int xla) {
6066    jj_la = xla; jj_lastpos = jj_scanpos = token;
6067    try { return !jj_3_24(); }
6068    catch(LookaheadSuccess ls) { return true; }
6069    finally { jj_save(23, xla); }
6070  }
6071
6072  private boolean jj_2_25(int xla) {
6073    jj_la = xla; jj_lastpos = jj_scanpos = token;
6074    try { return !jj_3_25(); }
6075    catch(LookaheadSuccess ls) { return true; }
6076    finally { jj_save(24, xla); }
6077  }
6078
6079  private boolean jj_2_26(int xla) {
6080    jj_la = xla; jj_lastpos = jj_scanpos = token;
6081    try { return !jj_3_26(); }
6082    catch(LookaheadSuccess ls) { return true; }
6083    finally { jj_save(25, xla); }
6084  }
6085
6086  private boolean jj_2_27(int xla) {
6087    jj_la = xla; jj_lastpos = jj_scanpos = token;
6088    try { return !jj_3_27(); }
6089    catch(LookaheadSuccess ls) { return true; }
6090    finally { jj_save(26, xla); }
6091  }
6092
6093  private boolean jj_2_28(int xla) {
6094    jj_la = xla; jj_lastpos = jj_scanpos = token;
6095    try { return !jj_3_28(); }
6096    catch(LookaheadSuccess ls) { return true; }
6097    finally { jj_save(27, xla); }
6098  }
6099
6100  private boolean jj_2_29(int xla) {
6101    jj_la = xla; jj_lastpos = jj_scanpos = token;
6102    try { return !jj_3_29(); }
6103    catch(LookaheadSuccess ls) { return true; }
6104    finally { jj_save(28, xla); }
6105  }
6106
6107  private boolean jj_2_30(int xla) {
6108    jj_la = xla; jj_lastpos = jj_scanpos = token;
6109    try { return !jj_3_30(); }
6110    catch(LookaheadSuccess ls) { return true; }
6111    finally { jj_save(29, xla); }
6112  }
6113
6114  private boolean jj_2_31(int xla) {
6115    jj_la = xla; jj_lastpos = jj_scanpos = token;
6116    try { return !jj_3_31(); }
6117    catch(LookaheadSuccess ls) { return true; }
6118    finally { jj_save(30, xla); }
6119  }
6120
6121  private boolean jj_2_32(int xla) {
6122    jj_la = xla; jj_lastpos = jj_scanpos = token;
6123    try { return !jj_3_32(); }
6124    catch(LookaheadSuccess ls) { return true; }
6125    finally { jj_save(31, xla); }
6126  }
6127
6128  private boolean jj_2_33(int xla) {
6129    jj_la = xla; jj_lastpos = jj_scanpos = token;
6130    try { return !jj_3_33(); }
6131    catch(LookaheadSuccess ls) { return true; }
6132    finally { jj_save(32, xla); }
6133  }
6134
6135  private boolean jj_2_34(int xla) {
6136    jj_la = xla; jj_lastpos = jj_scanpos = token;
6137    try { return !jj_3_34(); }
6138    catch(LookaheadSuccess ls) { return true; }
6139    finally { jj_save(33, xla); }
6140  }
6141
6142  private boolean jj_2_35(int xla) {
6143    jj_la = xla; jj_lastpos = jj_scanpos = token;
6144    try { return !jj_3_35(); }
6145    catch(LookaheadSuccess ls) { return true; }
6146    finally { jj_save(34, xla); }
6147  }
6148
6149  private boolean jj_2_36(int xla) {
6150    jj_la = xla; jj_lastpos = jj_scanpos = token;
6151    try { return !jj_3_36(); }
6152    catch(LookaheadSuccess ls) { return true; }
6153    finally { jj_save(35, xla); }
6154  }
6155
6156  private boolean jj_2_37(int xla) {
6157    jj_la = xla; jj_lastpos = jj_scanpos = token;
6158    try { return !jj_3_37(); }
6159    catch(LookaheadSuccess ls) { return true; }
6160    finally { jj_save(36, xla); }
6161  }
6162
6163  private boolean jj_2_38(int xla) {
6164    jj_la = xla; jj_lastpos = jj_scanpos = token;
6165    try { return !jj_3_38(); }
6166    catch(LookaheadSuccess ls) { return true; }
6167    finally { jj_save(37, xla); }
6168  }
6169
6170  private boolean jj_2_39(int xla) {
6171    jj_la = xla; jj_lastpos = jj_scanpos = token;
6172    try { return !jj_3_39(); }
6173    catch(LookaheadSuccess ls) { return true; }
6174    finally { jj_save(38, xla); }
6175  }
6176
6177  private boolean jj_2_40(int xla) {
6178    jj_la = xla; jj_lastpos = jj_scanpos = token;
6179    try { return !jj_3_40(); }
6180    catch(LookaheadSuccess ls) { return true; }
6181    finally { jj_save(39, xla); }
6182  }
6183
6184  private boolean jj_2_41(int xla) {
6185    jj_la = xla; jj_lastpos = jj_scanpos = token;
6186    try { return !jj_3_41(); }
6187    catch(LookaheadSuccess ls) { return true; }
6188    finally { jj_save(40, xla); }
6189  }
6190
6191  private boolean jj_2_42(int xla) {
6192    jj_la = xla; jj_lastpos = jj_scanpos = token;
6193    try { return !jj_3_42(); }
6194    catch(LookaheadSuccess ls) { return true; }
6195    finally { jj_save(41, xla); }
6196  }
6197
6198  private boolean jj_2_43(int xla) {
6199    jj_la = xla; jj_lastpos = jj_scanpos = token;
6200    try { return !jj_3_43(); }
6201    catch(LookaheadSuccess ls) { return true; }
6202    finally { jj_save(42, xla); }
6203  }
6204
6205  private boolean jj_2_44(int xla) {
6206    jj_la = xla; jj_lastpos = jj_scanpos = token;
6207    try { return !jj_3_44(); }
6208    catch(LookaheadSuccess ls) { return true; }
6209    finally { jj_save(43, xla); }
6210  }
6211
6212  private boolean jj_2_45(int xla) {
6213    jj_la = xla; jj_lastpos = jj_scanpos = token;
6214    try { return !jj_3_45(); }
6215    catch(LookaheadSuccess ls) { return true; }
6216    finally { jj_save(44, xla); }
6217  }
6218
6219  private boolean jj_2_46(int xla) {
6220    jj_la = xla; jj_lastpos = jj_scanpos = token;
6221    try { return !jj_3_46(); }
6222    catch(LookaheadSuccess ls) { return true; }
6223    finally { jj_save(45, xla); }
6224  }
6225
6226  private boolean jj_2_47(int xla) {
6227    jj_la = xla; jj_lastpos = jj_scanpos = token;
6228    try { return !jj_3_47(); }
6229    catch(LookaheadSuccess ls) { return true; }
6230    finally { jj_save(46, xla); }
6231  }
6232
6233  private boolean jj_2_48(int xla) {
6234    jj_la = xla; jj_lastpos = jj_scanpos = token;
6235    try { return !jj_3_48(); }
6236    catch(LookaheadSuccess ls) { return true; }
6237    finally { jj_save(47, xla); }
6238  }
6239
6240  private boolean jj_2_49(int xla) {
6241    jj_la = xla; jj_lastpos = jj_scanpos = token;
6242    try { return !jj_3_49(); }
6243    catch(LookaheadSuccess ls) { return true; }
6244    finally { jj_save(48, xla); }
6245  }
6246
6247  private boolean jj_2_50(int xla) {
6248    jj_la = xla; jj_lastpos = jj_scanpos = token;
6249    try { return !jj_3_50(); }
6250    catch(LookaheadSuccess ls) { return true; }
6251    finally { jj_save(49, xla); }
6252  }
6253
6254  private boolean jj_2_51(int xla) {
6255    jj_la = xla; jj_lastpos = jj_scanpos = token;
6256    try { return !jj_3_51(); }
6257    catch(LookaheadSuccess ls) { return true; }
6258    finally { jj_save(50, xla); }
6259  }
6260
6261  private boolean jj_2_52(int xla) {
6262    jj_la = xla; jj_lastpos = jj_scanpos = token;
6263    try { return !jj_3_52(); }
6264    catch(LookaheadSuccess ls) { return true; }
6265    finally { jj_save(51, xla); }
6266  }
6267
6268  private boolean jj_2_53(int xla) {
6269    jj_la = xla; jj_lastpos = jj_scanpos = token;
6270    try { return !jj_3_53(); }
6271    catch(LookaheadSuccess ls) { return true; }
6272    finally { jj_save(52, xla); }
6273  }
6274
6275  private boolean jj_2_54(int xla) {
6276    jj_la = xla; jj_lastpos = jj_scanpos = token;
6277    try { return !jj_3_54(); }
6278    catch(LookaheadSuccess ls) { return true; }
6279    finally { jj_save(53, xla); }
6280  }
6281
6282  private boolean jj_2_55(int xla) {
6283    jj_la = xla; jj_lastpos = jj_scanpos = token;
6284    try { return !jj_3_55(); }
6285    catch(LookaheadSuccess ls) { return true; }
6286    finally { jj_save(54, xla); }
6287  }
6288
6289  private boolean jj_2_56(int xla) {
6290    jj_la = xla; jj_lastpos = jj_scanpos = token;
6291    try { return !jj_3_56(); }
6292    catch(LookaheadSuccess ls) { return true; }
6293    finally { jj_save(55, xla); }
6294  }
6295
6296  private boolean jj_2_57(int xla) {
6297    jj_la = xla; jj_lastpos = jj_scanpos = token;
6298    try { return !jj_3_57(); }
6299    catch(LookaheadSuccess ls) { return true; }
6300    finally { jj_save(56, xla); }
6301  }
6302
6303  private boolean jj_2_58(int xla) {
6304    jj_la = xla; jj_lastpos = jj_scanpos = token;
6305    try { return !jj_3_58(); }
6306    catch(LookaheadSuccess ls) { return true; }
6307    finally { jj_save(57, xla); }
6308  }
6309
6310  private boolean jj_2_59(int xla) {
6311    jj_la = xla; jj_lastpos = jj_scanpos = token;
6312    try { return !jj_3_59(); }
6313    catch(LookaheadSuccess ls) { return true; }
6314    finally { jj_save(58, xla); }
6315  }
6316
6317  private boolean jj_2_60(int xla) {
6318    jj_la = xla; jj_lastpos = jj_scanpos = token;
6319    try { return !jj_3_60(); }
6320    catch(LookaheadSuccess ls) { return true; }
6321    finally { jj_save(59, xla); }
6322  }
6323
6324  private boolean jj_2_61(int xla) {
6325    jj_la = xla; jj_lastpos = jj_scanpos = token;
6326    try { return !jj_3_61(); }
6327    catch(LookaheadSuccess ls) { return true; }
6328    finally { jj_save(60, xla); }
6329  }
6330
6331  private boolean jj_3R_307() {
6332    if (jj_scan_token(AT)) return true;
6333    if (jj_scan_token(INTERFACE)) return true;
6334    if (jj_scan_token(IDENTIFIER)) return true;
6335    if (jj_scan_token(LBRACE)) return true;
6336    Token xsp;
6337    while (true) {
6338      xsp = jj_scanpos;
6339      if (jj_3R_318()) { jj_scanpos = xsp; break; }
6340    }
6341    if (jj_scan_token(RBRACE)) return true;
6342    return false;
6343  }
6344
6345  private boolean jj_3R_411() {
6346    if (jj_3R_140()) return true;
6347    return false;
6348  }
6349
6350  private boolean jj_3R_391() {
6351    if (jj_3R_140()) return true;
6352    return false;
6353  }
6354
6355  private boolean jj_3R_264() {
6356    if (jj_3R_126()) return true;
6357    return false;
6358  }
6359
6360  private boolean jj_3R_392() {
6361    if (jj_scan_token(COMMA)) return true;
6362    if (jj_3R_98()) return true;
6363    Token xsp;
6364    xsp = jj_scanpos;
6365    if (jj_3R_411()) jj_scanpos = xsp;
6366    return false;
6367  }
6368
6369  private boolean jj_3R_108() {
6370    if (jj_3R_109()) return true;
6371    return false;
6372  }
6373
6374  private boolean jj_3R_366() {
6375    if (jj_3R_98()) return true;
6376    Token xsp;
6377    xsp = jj_scanpos;
6378    if (jj_3R_391()) jj_scanpos = xsp;
6379    while (true) {
6380      xsp = jj_scanpos;
6381      if (jj_3R_392()) { jj_scanpos = xsp; break; }
6382    }
6383    return false;
6384  }
6385
6386  private boolean jj_3R_194() {
6387    if (jj_scan_token(LBRACE)) return true;
6388    Token xsp;
6389    xsp = jj_scanpos;
6390    if (jj_3R_264()) jj_scanpos = xsp;
6391    while (true) {
6392      xsp = jj_scanpos;
6393      if (jj_3_49()) { jj_scanpos = xsp; break; }
6394    }
6395    xsp = jj_scanpos;
6396    if (jj_scan_token(85)) jj_scanpos = xsp;
6397    if (jj_scan_token(RBRACE)) return true;
6398    return false;
6399  }
6400
6401  private boolean jj_3R_355() {
6402    if (jj_scan_token(PROTECTED)) return true;
6403    return false;
6404  }
6405
6406  private boolean jj_3R_241() {
6407    if (jj_scan_token(COMMA)) return true;
6408    if (jj_3R_240()) return true;
6409    return false;
6410  }
6411
6412  private boolean jj_3R_354() {
6413    if (jj_scan_token(PUBLIC)) return true;
6414    return false;
6415  }
6416
6417  private boolean jj_3R_324() {
6418    Token xsp;
6419    xsp = jj_scanpos;
6420    if (jj_scan_token(53)) {
6421    jj_scanpos = xsp;
6422    if (jj_scan_token(14)) {
6423    jj_scanpos = xsp;
6424    if (jj_scan_token(32)) {
6425    jj_scanpos = xsp;
6426    if (jj_3R_354()) {
6427    jj_scanpos = xsp;
6428    if (jj_3R_355()) {
6429    jj_scanpos = xsp;
6430    if (jj_scan_token(48)) {
6431    jj_scanpos = xsp;
6432    if (jj_scan_token(54)) return true;
6433    }
6434    }
6435    }
6436    }
6437    }
6438    }
6439    return false;
6440  }
6441
6442  private boolean jj_3_24() {
6443    if (jj_scan_token(DOT)) return true;
6444    if (jj_3R_109()) return true;
6445    return false;
6446  }
6447
6448  private boolean jj_3R_170() {
6449    if (jj_3R_167()) return true;
6450    return false;
6451  }
6452
6453  private boolean jj_3R_169() {
6454    if (jj_3R_194()) return true;
6455    return false;
6456  }
6457
6458  private boolean jj_3R_323() {
6459    if (jj_3R_144()) return true;
6460    return false;
6461  }
6462
6463  private boolean jj_3R_126() {
6464    Token xsp;
6465    xsp = jj_scanpos;
6466    if (jj_3R_168()) {
6467    jj_scanpos = xsp;
6468    if (jj_3R_169()) {
6469    jj_scanpos = xsp;
6470    if (jj_3R_170()) return true;
6471    }
6472    }
6473    return false;
6474  }
6475
6476  private boolean jj_3R_168() {
6477    if (jj_3R_144()) return true;
6478    return false;
6479  }
6480
6481  private boolean jj_3R_322() {
6482    if (jj_3R_144()) return true;
6483    return false;
6484  }
6485
6486  private boolean jj_3R_240() {
6487    if (jj_scan_token(IDENTIFIER)) return true;
6488    if (jj_scan_token(ASSIGN)) return true;
6489    if (jj_3R_126()) return true;
6490    return false;
6491  }
6492
6493  private boolean jj_3R_309() {
6494    Token xsp;
6495    xsp = jj_scanpos;
6496    if (jj_3R_322()) jj_scanpos = xsp;
6497    while (true) {
6498      xsp = jj_scanpos;
6499      if (jj_3R_323()) { jj_scanpos = xsp; break; }
6500    }
6501    while (true) {
6502      xsp = jj_scanpos;
6503      if (jj_3R_324()) { jj_scanpos = xsp; break; }
6504    }
6505    if (jj_3R_227()) return true;
6506    return false;
6507  }
6508
6509  private boolean jj_3R_147() {
6510    if (jj_3R_109()) return true;
6511    return false;
6512  }
6513
6514  private boolean jj_3_23() {
6515    if (jj_scan_token(DOT)) return true;
6516    Token xsp;
6517    xsp = jj_scanpos;
6518    if (jj_scan_token(29)) {
6519    jj_scanpos = xsp;
6520    if (jj_3R_108()) return true;
6521    }
6522    return false;
6523  }
6524
6525  private boolean jj_3R_223() {
6526    if (jj_3R_240()) return true;
6527    Token xsp;
6528    while (true) {
6529      xsp = jj_scanpos;
6530      if (jj_3R_241()) { jj_scanpos = xsp; break; }
6531    }
6532    return false;
6533  }
6534
6535  private boolean jj_3R_209() {
6536    if (jj_3R_223()) return true;
6537    return false;
6538  }
6539
6540  private boolean jj_3R_125() {
6541    if (jj_scan_token(IDENTIFIER)) return true;
6542    if (jj_scan_token(ASSIGN)) return true;
6543    return false;
6544  }
6545
6546  private boolean jj_3R_196() {
6547    if (jj_scan_token(AT)) return true;
6548    if (jj_3R_98()) return true;
6549    if (jj_scan_token(LPAREN)) return true;
6550    if (jj_3R_126()) return true;
6551    if (jj_scan_token(RPAREN)) return true;
6552    return false;
6553  }
6554
6555  private boolean jj_3R_98() {
6556    Token xsp;
6557    xsp = jj_scanpos;
6558    if (jj_scan_token(29)) {
6559    jj_scanpos = xsp;
6560    if (jj_3R_147()) return true;
6561    }
6562    while (true) {
6563      xsp = jj_scanpos;
6564      if (jj_3_23()) { jj_scanpos = xsp; break; }
6565    }
6566    return false;
6567  }
6568
6569  private boolean jj_3R_197() {
6570    if (jj_scan_token(AT)) return true;
6571    if (jj_3R_98()) return true;
6572    return false;
6573  }
6574
6575  private boolean jj_3_48() {
6576    if (jj_scan_token(AT)) return true;
6577    if (jj_3R_98()) return true;
6578    if (jj_scan_token(LPAREN)) return true;
6579    return false;
6580  }
6581
6582  private boolean jj_3R_459() {
6583    if (jj_scan_token(BIT_OR)) return true;
6584    if (jj_3R_107()) return true;
6585    return false;
6586  }
6587
6588  private boolean jj_3R_195() {
6589    if (jj_scan_token(AT)) return true;
6590    if (jj_3R_98()) return true;
6591    if (jj_scan_token(LPAREN)) return true;
6592    Token xsp;
6593    xsp = jj_scanpos;
6594    if (jj_3R_209()) jj_scanpos = xsp;
6595    if (jj_scan_token(RPAREN)) return true;
6596    return false;
6597  }
6598
6599  private boolean jj_3_47() {
6600    if (jj_scan_token(AT)) return true;
6601    if (jj_3R_98()) return true;
6602    if (jj_scan_token(LPAREN)) return true;
6603    Token xsp;
6604    xsp = jj_scanpos;
6605    if (jj_3R_125()) {
6606    jj_scanpos = xsp;
6607    if (jj_scan_token(79)) return true;
6608    }
6609    return false;
6610  }
6611
6612  private boolean jj_3R_165() {
6613    if (jj_3R_114()) return true;
6614    return false;
6615  }
6616
6617  private boolean jj_3R_117() {
6618    Token xsp;
6619    xsp = jj_scanpos;
6620    if (jj_scan_token(64)) {
6621    jj_scanpos = xsp;
6622    if (jj_3R_165()) return true;
6623    }
6624    return false;
6625  }
6626
6627  private boolean jj_3R_176() {
6628    if (jj_3R_197()) return true;
6629    return false;
6630  }
6631
6632  private boolean jj_3R_175() {
6633    if (jj_3R_196()) return true;
6634    return false;
6635  }
6636
6637  private boolean jj_3R_144() {
6638    Token xsp;
6639    xsp = jj_scanpos;
6640    if (jj_3R_174()) {
6641    jj_scanpos = xsp;
6642    if (jj_3R_175()) {
6643    jj_scanpos = xsp;
6644    if (jj_3R_176()) return true;
6645    }
6646    }
6647    return false;
6648  }
6649
6650  private boolean jj_3R_174() {
6651    if (jj_3R_195()) return true;
6652    return false;
6653  }
6654
6655  private boolean jj_3R_109() {
6656    Token xsp;
6657    xsp = jj_scanpos;
6658    if (jj_scan_token(75)) {
6659    jj_scanpos = xsp;
6660    if (jj_scan_token(15)) return true;
6661    }
6662    return false;
6663  }
6664
6665  private boolean jj_3R_113() {
6666    Token xsp;
6667    xsp = jj_scanpos;
6668    if (jj_scan_token(16)) {
6669    jj_scanpos = xsp;
6670    if (jj_scan_token(21)) {
6671    jj_scanpos = xsp;
6672    if (jj_scan_token(18)) {
6673    jj_scanpos = xsp;
6674    if (jj_scan_token(52)) {
6675    jj_scanpos = xsp;
6676    if (jj_scan_token(41)) {
6677    jj_scanpos = xsp;
6678    if (jj_scan_token(43)) {
6679    jj_scanpos = xsp;
6680    if (jj_scan_token(34)) {
6681    jj_scanpos = xsp;
6682    if (jj_scan_token(27)) return true;
6683    }
6684    }
6685    }
6686    }
6687    }
6688    }
6689    }
6690    return false;
6691  }
6692
6693  private boolean jj_3R_452() {
6694    if (jj_3R_88()) return true;
6695    if (jj_3R_107()) return true;
6696    Token xsp;
6697    while (true) {
6698      xsp = jj_scanpos;
6699      if (jj_3R_459()) { jj_scanpos = xsp; break; }
6700    }
6701    if (jj_3R_380()) return true;
6702    return false;
6703  }
6704
6705  private boolean jj_3R_458() {
6706    if (jj_3R_120()) return true;
6707    Token xsp;
6708    xsp = jj_scanpos;
6709    if (jj_scan_token(84)) jj_scanpos = xsp;
6710    return false;
6711  }
6712
6713  private boolean jj_3R_451() {
6714    if (jj_scan_token(LPAREN)) return true;
6715    Token xsp;
6716    while (true) {
6717      xsp = jj_scanpos;
6718      if (jj_3R_458()) { jj_scanpos = xsp; break; }
6719    }
6720    if (jj_scan_token(RPAREN)) return true;
6721    return false;
6722  }
6723
6724  private boolean jj_3R_441() {
6725    Token xsp;
6726    xsp = jj_scanpos;
6727    if (jj_3R_451()) jj_scanpos = xsp;
6728    return false;
6729  }
6730
6731  private boolean jj_3R_443() {
6732    if (jj_scan_token(FINALLY)) return true;
6733    if (jj_3R_145()) return true;
6734    return false;
6735  }
6736
6737  private boolean jj_3R_442() {
6738    if (jj_scan_token(CATCH)) return true;
6739    if (jj_scan_token(LPAREN)) return true;
6740    if (jj_3R_452()) return true;
6741    if (jj_scan_token(RPAREN)) return true;
6742    if (jj_3R_145()) return true;
6743    return false;
6744  }
6745
6746  private boolean jj_3R_277() {
6747    if (jj_scan_token(TRY)) return true;
6748    if (jj_3R_441()) return true;
6749    if (jj_3R_145()) return true;
6750    Token xsp;
6751    while (true) {
6752      xsp = jj_scanpos;
6753      if (jj_3R_442()) { jj_scanpos = xsp; break; }
6754    }
6755    xsp = jj_scanpos;
6756    if (jj_3R_443()) jj_scanpos = xsp;
6757    return false;
6758  }
6759
6760  private boolean jj_3R_97() {
6761    if (jj_3R_146()) return true;
6762    return false;
6763  }
6764
6765  private boolean jj_3R_161() {
6766    if (jj_3R_113()) return true;
6767    return false;
6768  }
6769
6770  private boolean jj_3R_276() {
6771    if (jj_scan_token(SYNCHRONIZED)) return true;
6772    if (jj_scan_token(LPAREN)) return true;
6773    if (jj_3R_120()) return true;
6774    if (jj_scan_token(RPAREN)) return true;
6775    if (jj_3R_145()) return true;
6776    return false;
6777  }
6778
6779  private boolean jj_3R_114() {
6780    Token xsp;
6781    xsp = jj_scanpos;
6782    if (jj_3_22()) {
6783    jj_scanpos = xsp;
6784    if (jj_3R_161()) return true;
6785    }
6786    return false;
6787  }
6788
6789  private boolean jj_3_22() {
6790    if (jj_3R_107()) return true;
6791    return false;
6792  }
6793
6794  private boolean jj_3R_275() {
6795    if (jj_scan_token(THROW)) return true;
6796    if (jj_3R_120()) return true;
6797    if (jj_scan_token(SEMICOLON)) return true;
6798    return false;
6799  }
6800
6801  private boolean jj_3R_440() {
6802    if (jj_3R_120()) return true;
6803    return false;
6804  }
6805
6806  private boolean jj_3R_89() {
6807    Token xsp;
6808    xsp = jj_scanpos;
6809    if (jj_scan_token(53)) jj_scanpos = xsp;
6810    if (jj_3R_145()) return true;
6811    return false;
6812  }
6813
6814  private boolean jj_3_20() {
6815    if (jj_3R_106()) return true;
6816    if (jj_scan_token(DOT)) return true;
6817    return false;
6818  }
6819
6820  private boolean jj_3R_439() {
6821    if (jj_3R_109()) return true;
6822    return false;
6823  }
6824
6825  private boolean jj_3R_124() {
6826    if (jj_3R_109()) return true;
6827    return false;
6828  }
6829
6830  private boolean jj_3_21() {
6831    if (jj_scan_token(THIS)) return true;
6832    if (jj_scan_token(LPAREN)) return true;
6833    return false;
6834  }
6835
6836  private boolean jj_3R_274() {
6837    if (jj_scan_token(RETURN)) return true;
6838    Token xsp;
6839    xsp = jj_scanpos;
6840    if (jj_3R_440()) jj_scanpos = xsp;
6841    if (jj_scan_token(SEMICOLON)) return true;
6842    return false;
6843  }
6844
6845  private boolean jj_3R_464() {
6846    if (jj_scan_token(COMMA)) return true;
6847    if (jj_3R_266()) return true;
6848    return false;
6849  }
6850
6851  private boolean jj_3R_412() {
6852    if (jj_3R_106()) return true;
6853    if (jj_scan_token(DOT)) return true;
6854    return false;
6855  }
6856
6857  private boolean jj_3R_450() {
6858    if (jj_3R_457()) return true;
6859    return false;
6860  }
6861
6862  private boolean jj_3R_438() {
6863    if (jj_3R_109()) return true;
6864    return false;
6865  }
6866
6867  private boolean jj_3R_394() {
6868    Token xsp;
6869    xsp = jj_scanpos;
6870    if (jj_3R_412()) jj_scanpos = xsp;
6871    if (jj_scan_token(SUPER)) return true;
6872    if (jj_3R_192()) return true;
6873    if (jj_scan_token(SEMICOLON)) return true;
6874    return false;
6875  }
6876
6877  private boolean jj_3R_273() {
6878    if (jj_scan_token(CONTINUE)) return true;
6879    Token xsp;
6880    xsp = jj_scanpos;
6881    if (jj_3R_439()) jj_scanpos = xsp;
6882    if (jj_scan_token(SEMICOLON)) return true;
6883    return false;
6884  }
6885
6886  private boolean jj_3R_393() {
6887    if (jj_scan_token(THIS)) return true;
6888    if (jj_3R_192()) return true;
6889    if (jj_scan_token(SEMICOLON)) return true;
6890    return false;
6891  }
6892
6893  private boolean jj_3R_367() {
6894    Token xsp;
6895    xsp = jj_scanpos;
6896    if (jj_3R_393()) {
6897    jj_scanpos = xsp;
6898    if (jj_3R_394()) return true;
6899    }
6900    return false;
6901  }
6902
6903  private boolean jj_3R_96() {
6904    Token xsp;
6905    xsp = jj_scanpos;
6906    if (jj_scan_token(50)) {
6907    jj_scanpos = xsp;
6908    if (jj_scan_token(49)) {
6909    jj_scanpos = xsp;
6910    if (jj_scan_token(48)) return true;
6911    }
6912    }
6913    return false;
6914  }
6915
6916  private boolean jj_3R_272() {
6917    if (jj_scan_token(BREAK)) return true;
6918    Token xsp;
6919    xsp = jj_scanpos;
6920    if (jj_3R_438()) jj_scanpos = xsp;
6921    if (jj_scan_token(SEMICOLON)) return true;
6922    return false;
6923  }
6924
6925  private boolean jj_3R_457() {
6926    if (jj_3R_463()) return true;
6927    return false;
6928  }
6929
6930  private boolean jj_3_46() {
6931    Token xsp;
6932    xsp = jj_scanpos;
6933    if (jj_scan_token(32)) jj_scanpos = xsp;
6934    if (jj_3R_114()) return true;
6935    xsp = jj_scanpos;
6936    if (jj_scan_token(29)) {
6937    jj_scanpos = xsp;
6938    if (jj_3R_124()) return true;
6939    }
6940    return false;
6941  }
6942
6943  private boolean jj_3R_449() {
6944    if (jj_3R_120()) return true;
6945    return false;
6946  }
6947
6948  private boolean jj_3R_150() {
6949    if (jj_3R_144()) return true;
6950    return false;
6951  }
6952
6953  private boolean jj_3R_463() {
6954    if (jj_3R_266()) return true;
6955    Token xsp;
6956    while (true) {
6957      xsp = jj_scanpos;
6958      if (jj_3R_464()) { jj_scanpos = xsp; break; }
6959    }
6960    return false;
6961  }
6962
6963  private boolean jj_3R_151() {
6964    if (jj_3R_146()) return true;
6965    return false;
6966  }
6967
6968  private boolean jj_3R_149() {
6969    Token xsp;
6970    xsp = jj_scanpos;
6971    if (jj_scan_token(50)) {
6972    jj_scanpos = xsp;
6973    if (jj_scan_token(49)) {
6974    jj_scanpos = xsp;
6975    if (jj_scan_token(48)) {
6976    jj_scanpos = xsp;
6977    if (jj_scan_token(53)) {
6978    jj_scanpos = xsp;
6979    if (jj_scan_token(14)) {
6980    jj_scanpos = xsp;
6981    if (jj_scan_token(32)) {
6982    jj_scanpos = xsp;
6983    if (jj_scan_token(44)) {
6984    jj_scanpos = xsp;
6985    if (jj_scan_token(57)) {
6986    jj_scanpos = xsp;
6987    if (jj_scan_token(54)) return true;
6988    }
6989    }
6990    }
6991    }
6992    }
6993    }
6994    }
6995    }
6996    return false;
6997  }
6998
6999  private boolean jj_3R_148() {
7000    if (jj_3R_144()) return true;
7001    return false;
7002  }
7003
7004  private boolean jj_3R_99() {
7005    Token xsp;
7006    while (true) {
7007      xsp = jj_scanpos;
7008      if (jj_3R_148()) { jj_scanpos = xsp; break; }
7009    }
7010    while (true) {
7011      xsp = jj_scanpos;
7012      if (jj_3R_149()) { jj_scanpos = xsp; break; }
7013    }
7014    while (true) {
7015      xsp = jj_scanpos;
7016      if (jj_3R_150()) { jj_scanpos = xsp; break; }
7017    }
7018    xsp = jj_scanpos;
7019    if (jj_3R_151()) jj_scanpos = xsp;
7020    if (jj_3R_117()) return true;
7021    if (jj_3R_109()) return true;
7022    if (jj_scan_token(LPAREN)) return true;
7023    return false;
7024  }
7025
7026  private boolean jj_3R_435() {
7027    if (jj_scan_token(ELSE)) return true;
7028    if (jj_3R_225()) return true;
7029    return false;
7030  }
7031
7032  private boolean jj_3R_95() {
7033    if (jj_3R_144()) return true;
7034    return false;
7035  }
7036
7037  private boolean jj_3_11() {
7038    Token xsp;
7039    while (true) {
7040      xsp = jj_scanpos;
7041      if (jj_3R_95()) { jj_scanpos = xsp; break; }
7042    }
7043    xsp = jj_scanpos;
7044    if (jj_3R_96()) jj_scanpos = xsp;
7045    xsp = jj_scanpos;
7046    if (jj_3R_97()) jj_scanpos = xsp;
7047    if (jj_3R_98()) return true;
7048    if (jj_scan_token(LPAREN)) return true;
7049    return false;
7050  }
7051
7052  private boolean jj_3_12() {
7053    if (jj_3R_99()) return true;
7054    return false;
7055  }
7056
7057  private boolean jj_3R_462() {
7058    if (jj_3R_463()) return true;
7059    return false;
7060  }
7061
7062  private boolean jj_3_45() {
7063    if (jj_3R_88()) return true;
7064    if (jj_3R_114()) return true;
7065    if (jj_scan_token(IDENTIFIER)) return true;
7066    if (jj_scan_token(COLON)) return true;
7067    return false;
7068  }
7069
7070  private boolean jj_3R_461() {
7071    if (jj_3R_224()) return true;
7072    return false;
7073  }
7074
7075  private boolean jj_3R_456() {
7076    Token xsp;
7077    xsp = jj_scanpos;
7078    if (jj_3R_461()) {
7079    jj_scanpos = xsp;
7080    if (jj_3R_462()) return true;
7081    }
7082    return false;
7083  }
7084
7085  private boolean jj_3R_94() {
7086    Token xsp;
7087    xsp = jj_scanpos;
7088    if (jj_scan_token(53)) {
7089    jj_scanpos = xsp;
7090    if (jj_scan_token(14)) {
7091    jj_scanpos = xsp;
7092    if (jj_scan_token(32)) {
7093    jj_scanpos = xsp;
7094    if (jj_scan_token(50)) {
7095    jj_scanpos = xsp;
7096    if (jj_scan_token(49)) {
7097    jj_scanpos = xsp;
7098    if (jj_scan_token(48)) {
7099    jj_scanpos = xsp;
7100    if (jj_scan_token(54)) return true;
7101    }
7102    }
7103    }
7104    }
7105    }
7106    }
7107    return false;
7108  }
7109
7110  private boolean jj_3R_313() {
7111    if (jj_3R_144()) return true;
7112    return false;
7113  }
7114
7115  private boolean jj_3R_303() {
7116    Token xsp;
7117    while (true) {
7118      xsp = jj_scanpos;
7119      if (jj_3R_313()) { jj_scanpos = xsp; break; }
7120    }
7121    if (jj_3R_314()) return true;
7122    return false;
7123  }
7124
7125  private boolean jj_3R_353() {
7126    if (jj_scan_token(IMPLEMENTS)) return true;
7127    if (jj_3R_366()) return true;
7128    return false;
7129  }
7130
7131  private boolean jj_3R_302() {
7132    if (jj_3R_312()) return true;
7133    return false;
7134  }
7135
7136  private boolean jj_3R_301() {
7137    if (jj_3R_311()) return true;
7138    return false;
7139  }
7140
7141  private boolean jj_3_10() {
7142    if (jj_3R_88()) return true;
7143    if (jj_scan_token(ENUM)) return true;
7144    return false;
7145  }
7146
7147  private boolean jj_3R_448() {
7148    if (jj_3R_456()) return true;
7149    return false;
7150  }
7151
7152  private boolean jj_3R_436() {
7153    if (jj_3R_88()) return true;
7154    if (jj_3R_114()) return true;
7155    if (jj_scan_token(IDENTIFIER)) return true;
7156    if (jj_scan_token(COLON)) return true;
7157    if (jj_3R_120()) return true;
7158    return false;
7159  }
7160
7161  private boolean jj_3R_437() {
7162    Token xsp;
7163    xsp = jj_scanpos;
7164    if (jj_3R_448()) jj_scanpos = xsp;
7165    if (jj_scan_token(SEMICOLON)) return true;
7166    xsp = jj_scanpos;
7167    if (jj_3R_449()) jj_scanpos = xsp;
7168    if (jj_scan_token(SEMICOLON)) return true;
7169    xsp = jj_scanpos;
7170    if (jj_3R_450()) jj_scanpos = xsp;
7171    return false;
7172  }
7173
7174  private boolean jj_3R_91() {
7175    Token xsp;
7176    xsp = jj_scanpos;
7177    if (jj_scan_token(53)) {
7178    jj_scanpos = xsp;
7179    if (jj_scan_token(14)) {
7180    jj_scanpos = xsp;
7181    if (jj_scan_token(32)) {
7182    jj_scanpos = xsp;
7183    if (jj_scan_token(50)) {
7184    jj_scanpos = xsp;
7185    if (jj_scan_token(49)) {
7186    jj_scanpos = xsp;
7187    if (jj_scan_token(48)) {
7188    jj_scanpos = xsp;
7189    if (jj_scan_token(54)) return true;
7190    }
7191    }
7192    }
7193    }
7194    }
7195    }
7196    return false;
7197  }
7198
7199  private boolean jj_3_9() {
7200    if (jj_3R_88()) return true;
7201    if (jj_scan_token(INTERFACE)) return true;
7202    return false;
7203  }
7204
7205  private boolean jj_3R_271() {
7206    if (jj_scan_token(FOR)) return true;
7207    if (jj_scan_token(LPAREN)) return true;
7208    Token xsp;
7209    xsp = jj_scanpos;
7210    if (jj_3R_436()) {
7211    jj_scanpos = xsp;
7212    if (jj_3R_437()) return true;
7213    }
7214    if (jj_scan_token(RPAREN)) return true;
7215    if (jj_3R_225()) return true;
7216    return false;
7217  }
7218
7219  private boolean jj_3R_300() {
7220    if (jj_3R_88()) return true;
7221    if (jj_3R_310()) return true;
7222    return false;
7223  }
7224
7225  private boolean jj_3R_93() {
7226    if (jj_3R_144()) return true;
7227    return false;
7228  }
7229
7230  private boolean jj_3_8() {
7231    Token xsp;
7232    while (true) {
7233      xsp = jj_scanpos;
7234      if (jj_3R_93()) { jj_scanpos = xsp; break; }
7235    }
7236    while (true) {
7237      xsp = jj_scanpos;
7238      if (jj_3R_94()) { jj_scanpos = xsp; break; }
7239    }
7240    if (jj_scan_token(CLASS)) return true;
7241    return false;
7242  }
7243
7244  private boolean jj_3R_270() {
7245    if (jj_scan_token(DO)) return true;
7246    if (jj_3R_225()) return true;
7247    if (jj_scan_token(WHILE)) return true;
7248    if (jj_scan_token(LPAREN)) return true;
7249    if (jj_3R_120()) return true;
7250    if (jj_scan_token(RPAREN)) return true;
7251    if (jj_scan_token(SEMICOLON)) return true;
7252    return false;
7253  }
7254
7255  private boolean jj_3R_299() {
7256    if (jj_3R_88()) return true;
7257    if (jj_3R_309()) return true;
7258    return false;
7259  }
7260
7261  private boolean jj_3R_92() {
7262    if (jj_3R_144()) return true;
7263    return false;
7264  }
7265
7266  private boolean jj_3_7() {
7267    Token xsp;
7268    while (true) {
7269      xsp = jj_scanpos;
7270      if (jj_3R_92()) { jj_scanpos = xsp; break; }
7271    }
7272    if (jj_scan_token(AT)) return true;
7273    if (jj_scan_token(INTERFACE)) return true;
7274    return false;
7275  }
7276
7277  private boolean jj_3R_334() {
7278    if (jj_3R_198()) return true;
7279    return false;
7280  }
7281
7282  private boolean jj_3R_90() {
7283    if (jj_3R_144()) return true;
7284    return false;
7285  }
7286
7287  private boolean jj_3R_269() {
7288    if (jj_scan_token(WHILE)) return true;
7289    if (jj_scan_token(LPAREN)) return true;
7290    if (jj_3R_120()) return true;
7291    if (jj_scan_token(RPAREN)) return true;
7292    if (jj_3R_225()) return true;
7293    return false;
7294  }
7295
7296  private boolean jj_3_6() {
7297    Token xsp;
7298    while (true) {
7299      xsp = jj_scanpos;
7300      if (jj_3R_90()) { jj_scanpos = xsp; break; }
7301    }
7302    while (true) {
7303      xsp = jj_scanpos;
7304      if (jj_3R_91()) { jj_scanpos = xsp; break; }
7305    }
7306    if (jj_scan_token(AT)) return true;
7307    if (jj_scan_token(INTERFACE)) return true;
7308    return false;
7309  }
7310
7311  private boolean jj_3R_298() {
7312    if (jj_3R_308()) return true;
7313    return false;
7314  }
7315
7316  private boolean jj_3R_297() {
7317    if (jj_3R_307()) return true;
7318    return false;
7319  }
7320
7321  private boolean jj_3R_268() {
7322    if (jj_scan_token(IF)) return true;
7323    if (jj_scan_token(LPAREN)) return true;
7324    if (jj_3R_120()) return true;
7325    if (jj_scan_token(RPAREN)) return true;
7326    if (jj_3R_225()) return true;
7327    Token xsp;
7328    xsp = jj_scanpos;
7329    if (jj_3R_435()) jj_scanpos = xsp;
7330    return false;
7331  }
7332
7333  private boolean jj_3R_402() {
7334    if (jj_3R_140()) return true;
7335    return false;
7336  }
7337
7338  private boolean jj_3R_296() {
7339    if (jj_3R_88()) return true;
7340    if (jj_3R_306()) return true;
7341    return false;
7342  }
7343
7344  private boolean jj_3_5() {
7345    if (jj_3R_89()) return true;
7346    return false;
7347  }
7348
7349  private boolean jj_3R_447() {
7350    if (jj_3R_198()) return true;
7351    return false;
7352  }
7353
7354  private boolean jj_3R_293() {
7355    Token xsp;
7356    xsp = jj_scanpos;
7357    if (jj_scan_token(84)) {
7358    jj_scanpos = xsp;
7359    if (jj_3_5()) {
7360    jj_scanpos = xsp;
7361    if (jj_3R_296()) {
7362    jj_scanpos = xsp;
7363    if (jj_3R_297()) {
7364    jj_scanpos = xsp;
7365    if (jj_3R_298()) {
7366    jj_scanpos = xsp;
7367    if (jj_3R_299()) {
7368    jj_scanpos = xsp;
7369    if (jj_3R_300()) {
7370    jj_scanpos = xsp;
7371    if (jj_3R_301()) {
7372    jj_scanpos = xsp;
7373    if (jj_3R_302()) {
7374    jj_scanpos = xsp;
7375    if (jj_3R_303()) return true;
7376    }
7377    }
7378    }
7379    }
7380    }
7381    }
7382    }
7383    }
7384    }
7385    return false;
7386  }
7387
7388  private boolean jj_3R_385() {
7389    if (jj_scan_token(DOT)) return true;
7390    if (jj_3R_98()) return true;
7391    Token xsp;
7392    xsp = jj_scanpos;
7393    if (jj_3R_402()) jj_scanpos = xsp;
7394    return false;
7395  }
7396
7397  private boolean jj_3R_455() {
7398    if (jj_scan_token(_DEFAULT)) return true;
7399    if (jj_scan_token(COLON)) return true;
7400    return false;
7401  }
7402
7403  private boolean jj_3R_105() {
7404    if (jj_3R_106()) return true;
7405    if (jj_scan_token(DOT)) return true;
7406    return false;
7407  }
7408
7409  private boolean jj_3_19() {
7410    Token xsp;
7411    xsp = jj_scanpos;
7412    if (jj_3R_105()) jj_scanpos = xsp;
7413    if (jj_scan_token(SUPER)) return true;
7414    if (jj_scan_token(LPAREN)) return true;
7415    return false;
7416  }
7417
7418  private boolean jj_3_18() {
7419    if (jj_scan_token(THIS)) return true;
7420    if (jj_scan_token(LPAREN)) return true;
7421    return false;
7422  }
7423
7424  private boolean jj_3R_454() {
7425    if (jj_scan_token(CASE)) return true;
7426    if (jj_3R_120()) return true;
7427    if (jj_scan_token(COLON)) return true;
7428    return false;
7429  }
7430
7431  private boolean jj_3R_446() {
7432    Token xsp;
7433    xsp = jj_scanpos;
7434    if (jj_3R_454()) {
7435    jj_scanpos = xsp;
7436    if (jj_3R_455()) return true;
7437    }
7438    return false;
7439  }
7440
7441  private boolean jj_3R_434() {
7442    if (jj_3R_446()) return true;
7443    Token xsp;
7444    while (true) {
7445      xsp = jj_scanpos;
7446      if (jj_3R_447()) { jj_scanpos = xsp; break; }
7447    }
7448    return false;
7449  }
7450
7451  private boolean jj_3R_123() {
7452    if (jj_scan_token(LBRACKET)) return true;
7453    if (jj_scan_token(RBRACKET)) return true;
7454    return false;
7455  }
7456
7457  private boolean jj_3R_333() {
7458    if (jj_3R_367()) return true;
7459    return false;
7460  }
7461
7462  private boolean jj_3R_267() {
7463    if (jj_scan_token(SWITCH)) return true;
7464    if (jj_scan_token(LPAREN)) return true;
7465    if (jj_3R_120()) return true;
7466    if (jj_scan_token(RPAREN)) return true;
7467    if (jj_scan_token(LBRACE)) return true;
7468    Token xsp;
7469    while (true) {
7470      xsp = jj_scanpos;
7471      if (jj_3R_434()) { jj_scanpos = xsp; break; }
7472    }
7473    if (jj_scan_token(RBRACE)) return true;
7474    return false;
7475  }
7476
7477  private boolean jj_3R_418() {
7478    if (jj_scan_token(COMMA)) return true;
7479    if (jj_3R_344()) return true;
7480    return false;
7481  }
7482
7483  private boolean jj_3R_332() {
7484    if (jj_3R_367()) return true;
7485    return false;
7486  }
7487
7488  private boolean jj_3R_331() {
7489    if (jj_scan_token(THROWS)) return true;
7490    if (jj_3R_366()) return true;
7491    return false;
7492  }
7493
7494  private boolean jj_3R_453() {
7495    if (jj_3R_460()) return true;
7496    if (jj_3R_120()) return true;
7497    return false;
7498  }
7499
7500  private boolean jj_3R_445() {
7501    Token xsp;
7502    xsp = jj_scanpos;
7503    if (jj_scan_token(101)) {
7504    jj_scanpos = xsp;
7505    if (jj_scan_token(102)) {
7506    jj_scanpos = xsp;
7507    if (jj_3R_453()) return true;
7508    }
7509    }
7510    return false;
7511  }
7512
7513  private boolean jj_3R_288() {
7514    if (jj_3R_106()) return true;
7515    Token xsp;
7516    xsp = jj_scanpos;
7517    if (jj_3R_445()) jj_scanpos = xsp;
7518    return false;
7519  }
7520
7521  private boolean jj_3R_287() {
7522    if (jj_3R_217()) return true;
7523    return false;
7524  }
7525
7526  private boolean jj_3R_329() {
7527    if (jj_3R_146()) return true;
7528    return false;
7529  }
7530
7531  private boolean jj_3R_266() {
7532    Token xsp;
7533    xsp = jj_scanpos;
7534    if (jj_3R_286()) {
7535    jj_scanpos = xsp;
7536    if (jj_3R_287()) {
7537    jj_scanpos = xsp;
7538    if (jj_3R_288()) return true;
7539    }
7540    }
7541    return false;
7542  }
7543
7544  private boolean jj_3R_286() {
7545    if (jj_3R_216()) return true;
7546    return false;
7547  }
7548
7549  private boolean jj_3R_350() {
7550    if (jj_scan_token(PROTECTED)) return true;
7551    return false;
7552  }
7553
7554  private boolean jj_3R_349() {
7555    if (jj_scan_token(PUBLIC)) return true;
7556    return false;
7557  }
7558
7559  private boolean jj_3R_321() {
7560    Token xsp;
7561    xsp = jj_scanpos;
7562    if (jj_scan_token(53)) {
7563    jj_scanpos = xsp;
7564    if (jj_scan_token(14)) {
7565    jj_scanpos = xsp;
7566    if (jj_scan_token(32)) {
7567    jj_scanpos = xsp;
7568    if (jj_3R_349()) {
7569    jj_scanpos = xsp;
7570    if (jj_3R_350()) {
7571    jj_scanpos = xsp;
7572    if (jj_scan_token(48)) {
7573    jj_scanpos = xsp;
7574    if (jj_scan_token(54)) return true;
7575    }
7576    }
7577    }
7578    }
7579    }
7580    }
7581    return false;
7582  }
7583
7584  private boolean jj_3R_364() {
7585    if (jj_scan_token(PRIVATE)) return true;
7586    return false;
7587  }
7588
7589  private boolean jj_3R_320() {
7590    if (jj_3R_144()) return true;
7591    return false;
7592  }
7593
7594  private boolean jj_3R_363() {
7595    if (jj_scan_token(PROTECTED)) return true;
7596    return false;
7597  }
7598
7599  private boolean jj_3R_319() {
7600    if (jj_3R_144()) return true;
7601    return false;
7602  }
7603
7604  private boolean jj_3R_308() {
7605    Token xsp;
7606    xsp = jj_scanpos;
7607    if (jj_3R_319()) jj_scanpos = xsp;
7608    while (true) {
7609      xsp = jj_scanpos;
7610      if (jj_3R_320()) { jj_scanpos = xsp; break; }
7611    }
7612    while (true) {
7613      xsp = jj_scanpos;
7614      if (jj_3R_321()) { jj_scanpos = xsp; break; }
7615    }
7616    if (jj_3R_226()) return true;
7617    return false;
7618  }
7619
7620  private boolean jj_3R_362() {
7621    if (jj_scan_token(PUBLIC)) return true;
7622    return false;
7623  }
7624
7625  private boolean jj_3R_328() {
7626    Token xsp;
7627    xsp = jj_scanpos;
7628    if (jj_3R_362()) {
7629    jj_scanpos = xsp;
7630    if (jj_3R_363()) {
7631    jj_scanpos = xsp;
7632    if (jj_3R_364()) return true;
7633    }
7634    }
7635    return false;
7636  }
7637
7638  private boolean jj_3R_384() {
7639    if (jj_3R_140()) return true;
7640    return false;
7641  }
7642
7643  private boolean jj_3R_224() {
7644    if (jj_3R_88()) return true;
7645    if (jj_3R_114()) return true;
7646    if (jj_3R_344()) return true;
7647    Token xsp;
7648    while (true) {
7649      xsp = jj_scanpos;
7650      if (jj_3R_418()) { jj_scanpos = xsp; break; }
7651    }
7652    return false;
7653  }
7654
7655  private boolean jj_3R_327() {
7656    if (jj_3R_144()) return true;
7657    return false;
7658  }
7659
7660  private boolean jj_3R_311() {
7661    Token xsp;
7662    while (true) {
7663      xsp = jj_scanpos;
7664      if (jj_3R_327()) { jj_scanpos = xsp; break; }
7665    }
7666    xsp = jj_scanpos;
7667    if (jj_3R_328()) jj_scanpos = xsp;
7668    xsp = jj_scanpos;
7669    if (jj_3R_329()) jj_scanpos = xsp;
7670    if (jj_3R_109()) return true;
7671    if (jj_3R_330()) return true;
7672    xsp = jj_scanpos;
7673    if (jj_3R_331()) jj_scanpos = xsp;
7674    if (jj_scan_token(LBRACE)) return true;
7675    xsp = jj_scanpos;
7676    if (jj_3R_332()) jj_scanpos = xsp;
7677    xsp = jj_scanpos;
7678    if (jj_3R_333()) jj_scanpos = xsp;
7679    while (true) {
7680      xsp = jj_scanpos;
7681      if (jj_3R_334()) { jj_scanpos = xsp; break; }
7682    }
7683    if (jj_scan_token(RBRACE)) return true;
7684    return false;
7685  }
7686
7687  private boolean jj_3_44() {
7688    if (jj_3R_88()) return true;
7689    if (jj_3R_114()) return true;
7690    Token xsp;
7691    xsp = jj_scanpos;
7692    if (jj_scan_token(29)) {
7693    jj_scanpos = xsp;
7694    if (jj_scan_token(75)) return true;
7695    }
7696    xsp = jj_scanpos;
7697    if (jj_scan_token(84)) {
7698    jj_scanpos = xsp;
7699    if (jj_scan_token(88)) {
7700    jj_scanpos = xsp;
7701    if (jj_scan_token(85)) {
7702    jj_scanpos = xsp;
7703    if (jj_3R_123()) return true;
7704    }
7705    }
7706    }
7707    return false;
7708  }
7709
7710  private boolean jj_3R_213() {
7711    if (jj_3R_227()) return true;
7712    return false;
7713  }
7714
7715  private boolean jj_3R_212() {
7716    if (jj_3R_226()) return true;
7717    return false;
7718  }
7719
7720  private boolean jj_3R_290() {
7721    if (jj_3R_293()) return true;
7722    return false;
7723  }
7724
7725  private boolean jj_3R_211() {
7726    if (jj_3R_225()) return true;
7727    return false;
7728  }
7729
7730  private boolean jj_3R_352() {
7731    if (jj_scan_token(EXTENDS)) return true;
7732    if (jj_3R_98()) return true;
7733    Token xsp;
7734    xsp = jj_scanpos;
7735    if (jj_3R_384()) jj_scanpos = xsp;
7736    while (true) {
7737      xsp = jj_scanpos;
7738      if (jj_3R_385()) { jj_scanpos = xsp; break; }
7739    }
7740    return false;
7741  }
7742
7743  private boolean jj_3R_279() {
7744    if (jj_scan_token(LBRACE)) return true;
7745    Token xsp;
7746    while (true) {
7747      xsp = jj_scanpos;
7748      if (jj_3R_290()) { jj_scanpos = xsp; break; }
7749    }
7750    if (jj_scan_token(RBRACE)) return true;
7751    return false;
7752  }
7753
7754  private boolean jj_3R_198() {
7755    Token xsp;
7756    xsp = jj_scanpos;
7757    if (jj_3R_210()) {
7758    jj_scanpos = xsp;
7759    if (jj_3R_211()) {
7760    jj_scanpos = xsp;
7761    if (jj_3R_212()) {
7762    jj_scanpos = xsp;
7763    if (jj_3R_213()) return true;
7764    }
7765    }
7766    }
7767    return false;
7768  }
7769
7770  private boolean jj_3R_210() {
7771    if (jj_3R_224()) return true;
7772    if (jj_scan_token(SEMICOLON)) return true;
7773    return false;
7774  }
7775
7776  private boolean jj_3R_177() {
7777    if (jj_3R_198()) return true;
7778    return false;
7779  }
7780
7781  private boolean jj_3R_145() {
7782    if (jj_scan_token(LBRACE)) return true;
7783    Token xsp;
7784    while (true) {
7785      xsp = jj_scanpos;
7786      if (jj_3R_177()) { jj_scanpos = xsp; break; }
7787    }
7788    if (jj_scan_token(RBRACE)) return true;
7789    return false;
7790  }
7791
7792  private boolean jj_3R_433() {
7793    if (jj_scan_token(COLON)) return true;
7794    if (jj_3R_120()) return true;
7795    return false;
7796  }
7797
7798  private boolean jj_3R_351() {
7799    if (jj_3R_146()) return true;
7800    return false;
7801  }
7802
7803  private boolean jj_3R_389() {
7804    if (jj_3R_88()) return true;
7805    if (jj_3R_114()) return true;
7806    Token xsp;
7807    xsp = jj_scanpos;
7808    if (jj_scan_token(123)) jj_scanpos = xsp;
7809    if (jj_3R_380()) return true;
7810    return false;
7811  }
7812
7813  private boolean jj_3R_265() {
7814    if (jj_scan_token(ASSERT)) return true;
7815    if (jj_3R_120()) return true;
7816    Token xsp;
7817    xsp = jj_scanpos;
7818    if (jj_3R_433()) jj_scanpos = xsp;
7819    if (jj_scan_token(SEMICOLON)) return true;
7820    return false;
7821  }
7822
7823  private boolean jj_3R_122() {
7824    if (jj_scan_token(ASSERT)) return true;
7825    if (jj_3R_120()) return true;
7826    return false;
7827  }
7828
7829  private boolean jj_3R_365() {
7830    if (jj_3R_389()) return true;
7831    Token xsp;
7832    while (true) {
7833      xsp = jj_scanpos;
7834      if (jj_3R_390()) { jj_scanpos = xsp; break; }
7835    }
7836    return false;
7837  }
7838
7839  private boolean jj_3R_390() {
7840    if (jj_scan_token(COMMA)) return true;
7841    if (jj_3R_389()) return true;
7842    return false;
7843  }
7844
7845  private boolean jj_3R_330() {
7846    if (jj_scan_token(LPAREN)) return true;
7847    Token xsp;
7848    xsp = jj_scanpos;
7849    if (jj_3R_365()) jj_scanpos = xsp;
7850    if (jj_scan_token(RPAREN)) return true;
7851    return false;
7852  }
7853
7854  private boolean jj_3R_121() {
7855    if (jj_3R_109()) return true;
7856    if (jj_scan_token(COLON)) return true;
7857    if (jj_3R_225()) return true;
7858    return false;
7859  }
7860
7861  private boolean jj_3R_226() {
7862    if (jj_3R_88()) return true;
7863    if (jj_scan_token(CLASS)) return true;
7864    if (jj_3R_109()) return true;
7865    Token xsp;
7866    xsp = jj_scanpos;
7867    if (jj_3R_351()) jj_scanpos = xsp;
7868    xsp = jj_scanpos;
7869    if (jj_3R_352()) jj_scanpos = xsp;
7870    xsp = jj_scanpos;
7871    if (jj_3R_353()) jj_scanpos = xsp;
7872    if (jj_3R_279()) return true;
7873    return false;
7874  }
7875
7876  private boolean jj_3R_255() {
7877    if (jj_3R_277()) return true;
7878    return false;
7879  }
7880
7881  private boolean jj_3R_254() {
7882    if (jj_3R_276()) return true;
7883    return false;
7884  }
7885
7886  private boolean jj_3R_377() {
7887    if (jj_scan_token(LBRACKET)) return true;
7888    if (jj_scan_token(RBRACKET)) return true;
7889    return false;
7890  }
7891
7892  private boolean jj_3R_253() {
7893    if (jj_3R_275()) return true;
7894    return false;
7895  }
7896
7897  private boolean jj_3R_339() {
7898    if (jj_3R_109()) return true;
7899    if (jj_3R_330()) return true;
7900    Token xsp;
7901    while (true) {
7902      xsp = jj_scanpos;
7903      if (jj_3R_377()) { jj_scanpos = xsp; break; }
7904    }
7905    return false;
7906  }
7907
7908  private boolean jj_3R_252() {
7909    if (jj_3R_274()) return true;
7910    return false;
7911  }
7912
7913  private boolean jj_3R_119() {
7914    if (jj_scan_token(DOT)) return true;
7915    if (jj_3R_140()) return true;
7916    if (jj_scan_token(IDENTIFIER)) return true;
7917    return false;
7918  }
7919
7920  private boolean jj_3R_251() {
7921    if (jj_3R_273()) return true;
7922    return false;
7923  }
7924
7925  private boolean jj_3R_250() {
7926    if (jj_3R_272()) return true;
7927    return false;
7928  }
7929
7930  private boolean jj_3R_249() {
7931    if (jj_3R_271()) return true;
7932    return false;
7933  }
7934
7935  private boolean jj_3R_424() {
7936    if (jj_scan_token(COMMA)) return true;
7937    if (jj_3R_344()) return true;
7938    return false;
7939  }
7940
7941  private boolean jj_3_40() {
7942    if (jj_scan_token(LBRACKET)) return true;
7943    if (jj_scan_token(RBRACKET)) return true;
7944    return false;
7945  }
7946
7947  private boolean jj_3R_248() {
7948    if (jj_3R_270()) return true;
7949    return false;
7950  }
7951
7952  private boolean jj_3R_247() {
7953    if (jj_3R_269()) return true;
7954    return false;
7955  }
7956
7957  private boolean jj_3R_246() {
7958    if (jj_3R_268()) return true;
7959    return false;
7960  }
7961
7962  private boolean jj_3R_245() {
7963    if (jj_3R_267()) return true;
7964    return false;
7965  }
7966
7967  private boolean jj_3_43() {
7968    if (jj_3R_122()) return true;
7969    return false;
7970  }
7971
7972  private boolean jj_3R_244() {
7973    if (jj_3R_266()) return true;
7974    if (jj_scan_token(SEMICOLON)) return true;
7975    return false;
7976  }
7977
7978  private boolean jj_3_61() {
7979    if (jj_scan_token(LBRACKET)) return true;
7980    if (jj_scan_token(RBRACKET)) return true;
7981    return false;
7982  }
7983
7984  private boolean jj_3R_243() {
7985    if (jj_3R_145()) return true;
7986    return false;
7987  }
7988
7989  private boolean jj_3R_432() {
7990    if (jj_3R_312()) return true;
7991    return false;
7992  }
7993
7994  private boolean jj_3R_242() {
7995    if (jj_3R_265()) return true;
7996    return false;
7997  }
7998
7999  private boolean jj_3_42() {
8000    if (jj_3R_121()) return true;
8001    return false;
8002  }
8003
8004  private boolean jj_3R_225() {
8005    Token xsp;
8006    xsp = jj_scanpos;
8007    if (jj_3_42()) {
8008    jj_scanpos = xsp;
8009    if (jj_3R_242()) {
8010    jj_scanpos = xsp;
8011    if (jj_3R_243()) {
8012    jj_scanpos = xsp;
8013    if (jj_scan_token(84)) {
8014    jj_scanpos = xsp;
8015    if (jj_3R_244()) {
8016    jj_scanpos = xsp;
8017    if (jj_3R_245()) {
8018    jj_scanpos = xsp;
8019    if (jj_3R_246()) {
8020    jj_scanpos = xsp;
8021    if (jj_3R_247()) {
8022    jj_scanpos = xsp;
8023    if (jj_3R_248()) {
8024    jj_scanpos = xsp;
8025    if (jj_3R_249()) {
8026    jj_scanpos = xsp;
8027    if (jj_3R_250()) {
8028    jj_scanpos = xsp;
8029    if (jj_3R_251()) {
8030    jj_scanpos = xsp;
8031    if (jj_3R_252()) {
8032    jj_scanpos = xsp;
8033    if (jj_3R_253()) {
8034    jj_scanpos = xsp;
8035    if (jj_3R_254()) {
8036    jj_scanpos = xsp;
8037    if (jj_3R_255()) return true;
8038    }
8039    }
8040    }
8041    }
8042    }
8043    }
8044    }
8045    }
8046    }
8047    }
8048    }
8049    }
8050    }
8051    }
8052    }
8053    return false;
8054  }
8055
8056  private boolean jj_3_60() {
8057    if (jj_scan_token(LBRACKET)) return true;
8058    if (jj_scan_token(RBRACKET)) return true;
8059    return false;
8060  }
8061
8062  private boolean jj_3R_415() {
8063    if (jj_3R_114()) return true;
8064    if (jj_3R_344()) return true;
8065    Token xsp;
8066    while (true) {
8067      xsp = jj_scanpos;
8068      if (jj_3R_424()) { jj_scanpos = xsp; break; }
8069    }
8070    if (jj_scan_token(SEMICOLON)) return true;
8071    return false;
8072  }
8073
8074  private boolean jj_3R_263() {
8075    if (jj_scan_token(SUPER)) return true;
8076    if (jj_3R_107()) return true;
8077    return false;
8078  }
8079
8080  private boolean jj_3R_278() {
8081    if (jj_scan_token(LBRACKET)) return true;
8082    if (jj_scan_token(RBRACKET)) return true;
8083    return false;
8084  }
8085
8086  private boolean jj_3R_239() {
8087    Token xsp;
8088    xsp = jj_scanpos;
8089    if (jj_3R_262()) {
8090    jj_scanpos = xsp;
8091    if (jj_3R_263()) return true;
8092    }
8093    return false;
8094  }
8095
8096  private boolean jj_3R_262() {
8097    if (jj_scan_token(EXTENDS)) return true;
8098    if (jj_3R_107()) return true;
8099    return false;
8100  }
8101
8102  private boolean jj_3_39() {
8103    if (jj_scan_token(LBRACKET)) return true;
8104    if (jj_3R_120()) return true;
8105    if (jj_scan_token(RBRACKET)) return true;
8106    return false;
8107  }
8108
8109  private boolean jj_3R_256() {
8110    Token xsp;
8111    if (jj_3R_278()) return true;
8112    while (true) {
8113      xsp = jj_scanpos;
8114      if (jj_3R_278()) { jj_scanpos = xsp; break; }
8115    }
8116    if (jj_3R_180()) return true;
8117    return false;
8118  }
8119
8120  private boolean jj_3R_409() {
8121    if (jj_3R_416()) return true;
8122    return false;
8123  }
8124
8125  private boolean jj_3_59() {
8126    if (jj_scan_token(COMMA)) return true;
8127    if (jj_3R_143()) return true;
8128    return false;
8129  }
8130
8131  private boolean jj_3_41() {
8132    Token xsp;
8133    if (jj_3_39()) return true;
8134    while (true) {
8135      xsp = jj_scanpos;
8136      if (jj_3_39()) { jj_scanpos = xsp; break; }
8137    }
8138    while (true) {
8139      xsp = jj_scanpos;
8140      if (jj_3_40()) { jj_scanpos = xsp; break; }
8141    }
8142    return false;
8143  }
8144
8145  private boolean jj_3R_230() {
8146    Token xsp;
8147    xsp = jj_scanpos;
8148    if (jj_3_41()) {
8149    jj_scanpos = xsp;
8150    if (jj_3R_256()) return true;
8151    }
8152    return false;
8153  }
8154
8155  private boolean jj_3R_228() {
8156    if (jj_scan_token(BIT_AND)) return true;
8157    if (jj_3R_187()) return true;
8158    return false;
8159  }
8160
8161  private boolean jj_3R_156() {
8162    if (jj_3R_187()) return true;
8163    Token xsp;
8164    while (true) {
8165      xsp = jj_scanpos;
8166      if (jj_3_61()) { jj_scanpos = xsp; break; }
8167    }
8168    return false;
8169  }
8170
8171  private boolean jj_3R_155() {
8172    if (jj_3R_113()) return true;
8173    Token xsp;
8174    if (jj_3_60()) return true;
8175    while (true) {
8176      xsp = jj_scanpos;
8177      if (jj_3_60()) { jj_scanpos = xsp; break; }
8178    }
8179    return false;
8180  }
8181
8182  private boolean jj_3R_107() {
8183    Token xsp;
8184    xsp = jj_scanpos;
8185    if (jj_3R_155()) {
8186    jj_scanpos = xsp;
8187    if (jj_3R_156()) return true;
8188    }
8189    return false;
8190  }
8191
8192  private boolean jj_3R_222() {
8193    if (jj_3R_239()) return true;
8194    return false;
8195  }
8196
8197  private boolean jj_3R_257() {
8198    if (jj_3R_279()) return true;
8199    return false;
8200  }
8201
8202  private boolean jj_3R_173() {
8203    if (jj_scan_token(HOOK)) return true;
8204    Token xsp;
8205    xsp = jj_scanpos;
8206    if (jj_3R_222()) jj_scanpos = xsp;
8207    return false;
8208  }
8209
8210  private boolean jj_3R_143() {
8211    Token xsp;
8212    xsp = jj_scanpos;
8213    if (jj_3R_172()) {
8214    jj_scanpos = xsp;
8215    if (jj_3R_173()) return true;
8216    }
8217    return false;
8218  }
8219
8220  private boolean jj_3R_172() {
8221    if (jj_3R_107()) return true;
8222    return false;
8223  }
8224
8225  private boolean jj_3R_408() {
8226    if (jj_3R_192()) return true;
8227    return false;
8228  }
8229
8230  private boolean jj_3R_171() {
8231    if (jj_3R_143()) return true;
8232    Token xsp;
8233    while (true) {
8234      xsp = jj_scanpos;
8235      if (jj_3_59()) { jj_scanpos = xsp; break; }
8236    }
8237    return false;
8238  }
8239
8240  private boolean jj_3R_142() {
8241    if (jj_scan_token(LBRACKET)) return true;
8242    if (jj_scan_token(RBRACKET)) return true;
8243    return false;
8244  }
8245
8246  private boolean jj_3R_140() {
8247    if (jj_scan_token(LT)) return true;
8248    Token xsp;
8249    while (true) {
8250      xsp = jj_scanpos;
8251      if (jj_3R_171()) { jj_scanpos = xsp; break; }
8252    }
8253    if (jj_scan_token(GT)) return true;
8254    return false;
8255  }
8256
8257  private boolean jj_3R_233() {
8258    if (jj_3R_192()) return true;
8259    Token xsp;
8260    xsp = jj_scanpos;
8261    if (jj_3R_257()) jj_scanpos = xsp;
8262    return false;
8263  }
8264
8265  private boolean jj_3R_232() {
8266    if (jj_3R_230()) return true;
8267    return false;
8268  }
8269
8270  private boolean jj_3R_166() {
8271    if (jj_scan_token(NEW)) return true;
8272    if (jj_3R_98()) return true;
8273    Token xsp;
8274    xsp = jj_scanpos;
8275    if (jj_3R_231()) jj_scanpos = xsp;
8276    xsp = jj_scanpos;
8277    if (jj_3R_232()) {
8278    jj_scanpos = xsp;
8279    if (jj_3R_233()) return true;
8280    }
8281    return false;
8282  }
8283
8284  private boolean jj_3R_231() {
8285    if (jj_3R_140()) return true;
8286    return false;
8287  }
8288
8289  private boolean jj_3R_214() {
8290    if (jj_scan_token(EXTENDS)) return true;
8291    if (jj_3R_187()) return true;
8292    Token xsp;
8293    while (true) {
8294      xsp = jj_scanpos;
8295      if (jj_3R_228()) { jj_scanpos = xsp; break; }
8296    }
8297    return false;
8298  }
8299
8300  private boolean jj_3R_280() {
8301    if (jj_scan_token(COMMA)) return true;
8302    if (jj_3R_120()) return true;
8303    return false;
8304  }
8305
8306  private boolean jj_3R_118() {
8307    Token xsp;
8308    xsp = jj_scanpos;
8309    if (jj_3_38()) {
8310    jj_scanpos = xsp;
8311    if (jj_3R_166()) return true;
8312    }
8313    return false;
8314  }
8315
8316  private boolean jj_3_38() {
8317    if (jj_scan_token(NEW)) return true;
8318    if (jj_3R_113()) return true;
8319    if (jj_3R_230()) return true;
8320    return false;
8321  }
8322
8323  private boolean jj_3_57() {
8324    if (jj_3R_114()) return true;
8325    if (jj_scan_token(IDENTIFIER)) return true;
8326    Token xsp;
8327    while (true) {
8328      xsp = jj_scanpos;
8329      if (jj_3R_142()) { jj_scanpos = xsp; break; }
8330    }
8331    xsp = jj_scanpos;
8332    if (jj_scan_token(85)) {
8333    jj_scanpos = xsp;
8334    if (jj_scan_token(88)) {
8335    jj_scanpos = xsp;
8336    if (jj_scan_token(84)) return true;
8337    }
8338    }
8339    return false;
8340  }
8341
8342  private boolean jj_3R_141() {
8343    if (jj_3R_146()) return true;
8344    return false;
8345  }
8346
8347  private boolean jj_3R_139() {
8348    if (jj_3R_88()) return true;
8349    if (jj_scan_token(IDENTIFIER)) return true;
8350    Token xsp;
8351    xsp = jj_scanpos;
8352    if (jj_3R_408()) jj_scanpos = xsp;
8353    xsp = jj_scanpos;
8354    if (jj_3R_409()) jj_scanpos = xsp;
8355    return false;
8356  }
8357
8358  private boolean jj_3_56() {
8359    Token xsp;
8360    xsp = jj_scanpos;
8361    if (jj_3R_141()) jj_scanpos = xsp;
8362    if (jj_scan_token(IDENTIFIER)) return true;
8363    if (jj_scan_token(LPAREN)) return true;
8364    return false;
8365  }
8366
8367  private boolean jj_3R_340() {
8368    if (jj_scan_token(THROWS)) return true;
8369    if (jj_3R_366()) return true;
8370    return false;
8371  }
8372
8373  private boolean jj_3R_430() {
8374    if (jj_3R_432()) return true;
8375    return false;
8376  }
8377
8378  private boolean jj_3R_429() {
8379    if (jj_3R_415()) return true;
8380    return false;
8381  }
8382
8383  private boolean jj_3R_219() {
8384    if (jj_3R_120()) return true;
8385    Token xsp;
8386    while (true) {
8387      xsp = jj_scanpos;
8388      if (jj_3R_280()) { jj_scanpos = xsp; break; }
8389    }
8390    return false;
8391  }
8392
8393  private boolean jj_3R_428() {
8394    if (jj_3R_311()) return true;
8395    return false;
8396  }
8397
8398  private boolean jj_3R_206() {
8399    if (jj_3R_219()) return true;
8400    return false;
8401  }
8402
8403  private boolean jj_3R_427() {
8404    if (jj_3R_310()) return true;
8405    return false;
8406  }
8407
8408  private boolean jj_3R_426() {
8409    if (jj_3R_414()) return true;
8410    return false;
8411  }
8412
8413  private boolean jj_3R_341() {
8414    if (jj_3R_145()) return true;
8415    return false;
8416  }
8417
8418  private boolean jj_3R_192() {
8419    if (jj_scan_token(LPAREN)) return true;
8420    Token xsp;
8421    xsp = jj_scanpos;
8422    if (jj_3R_206()) jj_scanpos = xsp;
8423    if (jj_scan_token(RPAREN)) return true;
8424    return false;
8425  }
8426
8427  private boolean jj_3R_417() {
8428    if (jj_3R_88()) return true;
8429    Token xsp;
8430    xsp = jj_scanpos;
8431    if (jj_3R_426()) {
8432    jj_scanpos = xsp;
8433    if (jj_3R_427()) {
8434    jj_scanpos = xsp;
8435    if (jj_3R_428()) {
8436    jj_scanpos = xsp;
8437    if (jj_3R_429()) {
8438    jj_scanpos = xsp;
8439    if (jj_3R_430()) return true;
8440    }
8441    }
8442    }
8443    }
8444    return false;
8445  }
8446
8447  private boolean jj_3R_410() {
8448    Token xsp;
8449    xsp = jj_scanpos;
8450    if (jj_3_58()) {
8451    jj_scanpos = xsp;
8452    if (jj_3R_417()) {
8453    jj_scanpos = xsp;
8454    if (jj_scan_token(84)) return true;
8455    }
8456    }
8457    return false;
8458  }
8459
8460  private boolean jj_3_58() {
8461    if (jj_3R_89()) return true;
8462    return false;
8463  }
8464
8465  private boolean jj_3R_229() {
8466    Token xsp;
8467    xsp = jj_scanpos;
8468    if (jj_scan_token(62)) {
8469    jj_scanpos = xsp;
8470    if (jj_scan_token(31)) return true;
8471    }
8472    return false;
8473  }
8474
8475  private boolean jj_3_55() {
8476    if (jj_3R_140()) return true;
8477    return false;
8478  }
8479
8480  private boolean jj_3R_338() {
8481    if (jj_3R_146()) return true;
8482    return false;
8483  }
8484
8485  private boolean jj_3_4() {
8486    if (jj_3R_88()) return true;
8487    if (jj_scan_token(INTERFACE)) return true;
8488    return false;
8489  }
8490
8491  private boolean jj_3_54() {
8492    if (jj_scan_token(DOT)) return true;
8493    if (jj_scan_token(IDENTIFIER)) return true;
8494    Token xsp;
8495    xsp = jj_scanpos;
8496    if (jj_3_55()) jj_scanpos = xsp;
8497    return false;
8498  }
8499
8500  private boolean jj_3R_87() {
8501    Token xsp;
8502    xsp = jj_scanpos;
8503    if (jj_scan_token(14)) {
8504    jj_scanpos = xsp;
8505    if (jj_scan_token(32)) {
8506    jj_scanpos = xsp;
8507    if (jj_scan_token(50)) {
8508    jj_scanpos = xsp;
8509    if (jj_scan_token(57)) {
8510    jj_scanpos = xsp;
8511    if (jj_scan_token(54)) return true;
8512    }
8513    }
8514    }
8515    }
8516    return false;
8517  }
8518
8519  private boolean jj_3R_199() {
8520    if (jj_3R_214()) return true;
8521    return false;
8522  }
8523
8524  private boolean jj_3R_215() {
8525    if (jj_3R_229()) return true;
8526    return false;
8527  }
8528
8529  private boolean jj_3_53() {
8530    if (jj_3R_140()) return true;
8531    return false;
8532  }
8533
8534  private boolean jj_3R_337() {
8535    if (jj_3R_144()) return true;
8536    return false;
8537  }
8538
8539  private boolean jj_3_52() {
8540    if (jj_scan_token(COMMA)) return true;
8541    if (jj_3R_139()) return true;
8542    return false;
8543  }
8544
8545  private boolean jj_3R_200() {
8546    Token xsp;
8547    xsp = jj_scanpos;
8548    if (jj_scan_token(67)) {
8549    jj_scanpos = xsp;
8550    if (jj_scan_token(71)) {
8551    jj_scanpos = xsp;
8552    if (jj_scan_token(73)) {
8553    jj_scanpos = xsp;
8554    if (jj_scan_token(74)) {
8555    jj_scanpos = xsp;
8556    if (jj_3R_215()) {
8557    jj_scanpos = xsp;
8558    if (jj_scan_token(46)) return true;
8559    }
8560    }
8561    }
8562    }
8563    }
8564    return false;
8565  }
8566
8567  private boolean jj_3R_187() {
8568    if (jj_scan_token(IDENTIFIER)) return true;
8569    Token xsp;
8570    xsp = jj_scanpos;
8571    if (jj_3_53()) jj_scanpos = xsp;
8572    while (true) {
8573      xsp = jj_scanpos;
8574      if (jj_3_54()) { jj_scanpos = xsp; break; }
8575    }
8576    return false;
8577  }
8578
8579  private boolean jj_3_3() {
8580    if (jj_3R_88()) return true;
8581    if (jj_scan_token(ENUM)) return true;
8582    if (jj_scan_token(IDENTIFIER)) return true;
8583    return false;
8584  }
8585
8586  private boolean jj_3R_388() {
8587    if (jj_3R_410()) return true;
8588    return false;
8589  }
8590
8591  private boolean jj_3R_178() {
8592    if (jj_scan_token(IDENTIFIER)) return true;
8593    Token xsp;
8594    xsp = jj_scanpos;
8595    if (jj_3R_199()) jj_scanpos = xsp;
8596    return false;
8597  }
8598
8599  private boolean jj_3R_164() {
8600    if (jj_3R_192()) return true;
8601    return false;
8602  }
8603
8604  private boolean jj_3R_376() {
8605    if (jj_scan_token(TESTAAAA)) return true;
8606    return false;
8607  }
8608
8609  private boolean jj_3R_86() {
8610    if (jj_3R_144()) return true;
8611    return false;
8612  }
8613
8614  private boolean jj_3_2() {
8615    Token xsp;
8616    while (true) {
8617      xsp = jj_scanpos;
8618      if (jj_3R_86()) { jj_scanpos = xsp; break; }
8619    }
8620    while (true) {
8621      xsp = jj_scanpos;
8622      if (jj_3R_87()) { jj_scanpos = xsp; break; }
8623    }
8624    if (jj_scan_token(CLASS)) return true;
8625    return false;
8626  }
8627
8628  private boolean jj_3R_163() {
8629    if (jj_scan_token(DOT)) return true;
8630    if (jj_3R_109()) return true;
8631    return false;
8632  }
8633
8634  private boolean jj_3R_361() {
8635    if (jj_scan_token(SEMICOLON)) return true;
8636    Token xsp;
8637    while (true) {
8638      xsp = jj_scanpos;
8639      if (jj_3R_388()) { jj_scanpos = xsp; break; }
8640    }
8641    return false;
8642  }
8643
8644  private boolean jj_3R_162() {
8645    if (jj_scan_token(LBRACKET)) return true;
8646    if (jj_3R_120()) return true;
8647    if (jj_scan_token(RBRACKET)) return true;
8648    return false;
8649  }
8650
8651  private boolean jj_3R_375() {
8652    if (jj_scan_token(SYNCHRONIZED)) return true;
8653    return false;
8654  }
8655
8656  private boolean jj_3R_360() {
8657    if (jj_3R_139()) return true;
8658    Token xsp;
8659    while (true) {
8660      xsp = jj_scanpos;
8661      if (jj_3_52()) { jj_scanpos = xsp; break; }
8662    }
8663    return false;
8664  }
8665
8666  private boolean jj_3_37() {
8667    if (jj_3R_119()) return true;
8668    return false;
8669  }
8670
8671  private boolean jj_3_32() {
8672    if (jj_scan_token(DOT)) return true;
8673    if (jj_scan_token(SUPER)) return true;
8674    if (jj_scan_token(DOT)) return true;
8675    if (jj_3R_109()) return true;
8676    return false;
8677  }
8678
8679  private boolean jj_3_36() {
8680    if (jj_scan_token(DOT)) return true;
8681    if (jj_3R_118()) return true;
8682    return false;
8683  }
8684
8685  private boolean jj_3R_374() {
8686    if (jj_scan_token(NATIVE)) return true;
8687    return false;
8688  }
8689
8690  private boolean jj_3R_326() {
8691    if (jj_scan_token(LBRACE)) return true;
8692    Token xsp;
8693    xsp = jj_scanpos;
8694    if (jj_3R_360()) jj_scanpos = xsp;
8695    xsp = jj_scanpos;
8696    if (jj_scan_token(85)) jj_scanpos = xsp;
8697    xsp = jj_scanpos;
8698    if (jj_3R_361()) jj_scanpos = xsp;
8699    if (jj_scan_token(RBRACE)) return true;
8700    return false;
8701  }
8702
8703  private boolean jj_3R_115() {
8704    Token xsp;
8705    xsp = jj_scanpos;
8706    if (jj_3_35()) {
8707    jj_scanpos = xsp;
8708    if (jj_3_36()) {
8709    jj_scanpos = xsp;
8710    if (jj_3_37()) {
8711    jj_scanpos = xsp;
8712    if (jj_3R_162()) {
8713    jj_scanpos = xsp;
8714    if (jj_3R_163()) {
8715    jj_scanpos = xsp;
8716    if (jj_3R_164()) return true;
8717    }
8718    }
8719    }
8720    }
8721    }
8722    return false;
8723  }
8724
8725  private boolean jj_3_35() {
8726    if (jj_scan_token(DOT)) return true;
8727    if (jj_scan_token(THIS)) return true;
8728    return false;
8729  }
8730
8731  private boolean jj_3R_373() {
8732    if (jj_scan_token(FINAL)) return true;
8733    return false;
8734  }
8735
8736  private boolean jj_3_34() {
8737    if (jj_3R_117()) return true;
8738    if (jj_scan_token(DOT)) return true;
8739    if (jj_scan_token(CLASS)) return true;
8740    return false;
8741  }
8742
8743  private boolean jj_3R_186() {
8744    if (jj_3R_98()) return true;
8745    Token xsp;
8746    xsp = jj_scanpos;
8747    if (jj_3_32()) jj_scanpos = xsp;
8748    return false;
8749  }
8750
8751  private boolean jj_3R_425() {
8752    if (jj_3R_410()) return true;
8753    return false;
8754  }
8755
8756  private boolean jj_3R_191() {
8757    if (jj_3R_200()) return true;
8758    return false;
8759  }
8760
8761  private boolean jj_3R_416() {
8762    if (jj_scan_token(LBRACE)) return true;
8763    Token xsp;
8764    while (true) {
8765      xsp = jj_scanpos;
8766      if (jj_3R_425()) { jj_scanpos = xsp; break; }
8767    }
8768    if (jj_scan_token(RBRACE)) return true;
8769    return false;
8770  }
8771
8772  private boolean jj_3R_372() {
8773    if (jj_scan_token(ABSTRACT)) return true;
8774    return false;
8775  }
8776
8777  private boolean jj_3R_116() {
8778    if (jj_3R_109()) return true;
8779    return false;
8780  }
8781
8782  private boolean jj_3R_185() {
8783    if (jj_3R_117()) return true;
8784    if (jj_scan_token(DOT)) return true;
8785    if (jj_scan_token(CLASS)) return true;
8786    return false;
8787  }
8788
8789  private boolean jj_3R_387() {
8790    if (jj_scan_token(COMMA)) return true;
8791    if (jj_3R_187()) return true;
8792    return false;
8793  }
8794
8795  private boolean jj_3R_371() {
8796    if (jj_scan_token(STATIC)) return true;
8797    return false;
8798  }
8799
8800  private boolean jj_3R_370() {
8801    if (jj_scan_token(PRIVATE)) return true;
8802    return false;
8803  }
8804
8805  private boolean jj_3R_184() {
8806    if (jj_3R_118()) return true;
8807    return false;
8808  }
8809
8810  private boolean jj_3R_359() {
8811    if (jj_scan_token(IMPLEMENTS)) return true;
8812    if (jj_3R_187()) return true;
8813    Token xsp;
8814    while (true) {
8815      xsp = jj_scanpos;
8816      if (jj_3R_387()) { jj_scanpos = xsp; break; }
8817    }
8818    return false;
8819  }
8820
8821  private boolean jj_3R_183() {
8822    if (jj_scan_token(LPAREN)) return true;
8823    if (jj_3R_120()) return true;
8824    if (jj_scan_token(RPAREN)) return true;
8825    return false;
8826  }
8827
8828  private boolean jj_3R_179() {
8829    if (jj_scan_token(COMMA)) return true;
8830    if (jj_3R_178()) return true;
8831    return false;
8832  }
8833
8834  private boolean jj_3R_201() {
8835    if (jj_3R_109()) return true;
8836    return false;
8837  }
8838
8839  private boolean jj_3R_369() {
8840    if (jj_scan_token(PROTECTED)) return true;
8841    return false;
8842  }
8843
8844  private boolean jj_3R_444() {
8845    if (jj_scan_token(COMMA)) return true;
8846    if (jj_3R_187()) return true;
8847    return false;
8848  }
8849
8850  private boolean jj_3R_431() {
8851    if (jj_scan_token(EXTENDS)) return true;
8852    if (jj_3R_187()) return true;
8853    Token xsp;
8854    while (true) {
8855      xsp = jj_scanpos;
8856      if (jj_3R_444()) { jj_scanpos = xsp; break; }
8857    }
8858    return false;
8859  }
8860
8861  private boolean jj_3R_368() {
8862    if (jj_scan_token(PUBLIC)) return true;
8863    return false;
8864  }
8865
8866  private boolean jj_3R_336() {
8867    Token xsp;
8868    xsp = jj_scanpos;
8869    if (jj_3R_368()) {
8870    jj_scanpos = xsp;
8871    if (jj_3R_369()) {
8872    jj_scanpos = xsp;
8873    if (jj_3R_370()) {
8874    jj_scanpos = xsp;
8875    if (jj_3R_371()) {
8876    jj_scanpos = xsp;
8877    if (jj_3R_372()) {
8878    jj_scanpos = xsp;
8879    if (jj_3R_373()) {
8880    jj_scanpos = xsp;
8881    if (jj_3R_374()) {
8882    jj_scanpos = xsp;
8883    if (jj_3R_375()) {
8884    jj_scanpos = xsp;
8885    if (jj_3R_376()) return true;
8886    }
8887    }
8888    }
8889    }
8890    }
8891    }
8892    }
8893    }
8894    return false;
8895  }
8896
8897  private boolean jj_3_33() {
8898    if (jj_scan_token(SUPER)) return true;
8899    Token xsp;
8900    xsp = jj_scanpos;
8901    if (jj_scan_token(86)) jj_scanpos = xsp;
8902    xsp = jj_scanpos;
8903    if (jj_3R_116()) jj_scanpos = xsp;
8904    return false;
8905  }
8906
8907  private boolean jj_3_31() {
8908    if (jj_3R_115()) return true;
8909    return false;
8910  }
8911
8912  private boolean jj_3R_182() {
8913    if (jj_scan_token(THIS)) return true;
8914    Token xsp;
8915    xsp = jj_scanpos;
8916    if (jj_scan_token(86)) jj_scanpos = xsp;
8917    xsp = jj_scanpos;
8918    if (jj_scan_token(45)) jj_scanpos = xsp;
8919    xsp = jj_scanpos;
8920    if (jj_3R_201()) jj_scanpos = xsp;
8921    return false;
8922  }
8923
8924  private boolean jj_3R_146() {
8925    if (jj_scan_token(LT)) return true;
8926    if (jj_3R_178()) return true;
8927    Token xsp;
8928    while (true) {
8929      xsp = jj_scanpos;
8930      if (jj_3R_179()) { jj_scanpos = xsp; break; }
8931    }
8932    if (jj_scan_token(GT)) return true;
8933    return false;
8934  }
8935
8936  private boolean jj_3R_335() {
8937    if (jj_3R_144()) return true;
8938    return false;
8939  }
8940
8941  private boolean jj_3R_154() {
8942    Token xsp;
8943    xsp = jj_scanpos;
8944    if (jj_3R_181()) {
8945    jj_scanpos = xsp;
8946    if (jj_3R_182()) {
8947    jj_scanpos = xsp;
8948    if (jj_3_33()) {
8949    jj_scanpos = xsp;
8950    if (jj_3R_183()) {
8951    jj_scanpos = xsp;
8952    if (jj_3R_184()) {
8953    jj_scanpos = xsp;
8954    if (jj_3R_185()) {
8955    jj_scanpos = xsp;
8956    if (jj_3R_186()) return true;
8957    }
8958    }
8959    }
8960    }
8961    }
8962    }
8963    return false;
8964  }
8965
8966  private boolean jj_3R_181() {
8967    if (jj_3R_200()) return true;
8968    return false;
8969  }
8970
8971  private boolean jj_3R_283() {
8972    Token xsp;
8973    xsp = jj_scanpos;
8974    if (jj_scan_token(101)) {
8975    jj_scanpos = xsp;
8976    if (jj_scan_token(102)) return true;
8977    }
8978    return false;
8979  }
8980
8981  private boolean jj_3R_190() {
8982    if (jj_3R_109()) return true;
8983    return false;
8984  }
8985
8986  private boolean jj_3R_106() {
8987    if (jj_3R_154()) return true;
8988    Token xsp;
8989    while (true) {
8990      xsp = jj_scanpos;
8991      if (jj_3_31()) { jj_scanpos = xsp; break; }
8992    }
8993    return false;
8994  }
8995
8996  private boolean jj_3_30() {
8997    if (jj_scan_token(LPAREN)) return true;
8998    if (jj_3R_113()) return true;
8999    return false;
9000  }
9001
9002  private boolean jj_3R_312() {
9003    Token xsp;
9004    while (true) {
9005      xsp = jj_scanpos;
9006      if (jj_3R_335()) { jj_scanpos = xsp; break; }
9007    }
9008    while (true) {
9009      xsp = jj_scanpos;
9010      if (jj_3R_336()) { jj_scanpos = xsp; break; }
9011    }
9012    while (true) {
9013      xsp = jj_scanpos;
9014      if (jj_3R_337()) { jj_scanpos = xsp; break; }
9015    }
9016    xsp = jj_scanpos;
9017    if (jj_3R_338()) jj_scanpos = xsp;
9018    if (jj_3R_117()) return true;
9019    if (jj_3R_339()) return true;
9020    xsp = jj_scanpos;
9021    if (jj_3R_340()) jj_scanpos = xsp;
9022    xsp = jj_scanpos;
9023    if (jj_3R_341()) {
9024    jj_scanpos = xsp;
9025    if (jj_scan_token(84)) return true;
9026    }
9027    return false;
9028  }
9029
9030  private boolean jj_3_17() {
9031    if (jj_scan_token(COMMA)) return true;
9032    if (jj_3R_104()) return true;
9033    return false;
9034  }
9035
9036  private boolean jj_3R_282() {
9037    if (jj_scan_token(LPAREN)) return true;
9038    if (jj_3R_114()) return true;
9039    if (jj_scan_token(RPAREN)) return true;
9040    if (jj_3R_218()) return true;
9041    return false;
9042  }
9043
9044  private boolean jj_3_29() {
9045    if (jj_scan_token(LBRACKET)) return true;
9046    if (jj_scan_token(RBRACKET)) return true;
9047    return false;
9048  }
9049
9050  private boolean jj_3R_258() {
9051    Token xsp;
9052    xsp = jj_scanpos;
9053    if (jj_3R_281()) {
9054    jj_scanpos = xsp;
9055    if (jj_3R_282()) return true;
9056    }
9057    return false;
9058  }
9059
9060  private boolean jj_3R_281() {
9061    if (jj_scan_token(LPAREN)) return true;
9062    if (jj_3R_114()) return true;
9063    if (jj_scan_token(RPAREN)) return true;
9064    if (jj_3R_188()) return true;
9065    return false;
9066  }
9067
9068  private boolean jj_3R_259() {
9069    if (jj_3R_106()) return true;
9070    Token xsp;
9071    xsp = jj_scanpos;
9072    if (jj_3R_283()) jj_scanpos = xsp;
9073    return false;
9074  }
9075
9076  private boolean jj_3R_345() {
9077    if (jj_scan_token(COMMA)) return true;
9078    if (jj_3R_344()) return true;
9079    return false;
9080  }
9081
9082  private boolean jj_3R_396() {
9083    if (jj_scan_token(LBRACKET)) return true;
9084    if (jj_scan_token(RBRACKET)) return true;
9085    return false;
9086  }
9087
9088  private boolean jj_3_28() {
9089    if (jj_scan_token(LPAREN)) return true;
9090    if (jj_3R_114()) return true;
9091    if (jj_scan_token(LBRACKET)) return true;
9092    return false;
9093  }
9094
9095  private boolean jj_3R_289() {
9096    if (jj_3R_104()) return true;
9097    Token xsp;
9098    while (true) {
9099      xsp = jj_scanpos;
9100      if (jj_3_17()) { jj_scanpos = xsp; break; }
9101    }
9102    return false;
9103  }
9104
9105  private boolean jj_3R_381() {
9106    if (jj_scan_token(ASSIGN)) return true;
9107    if (jj_3R_104()) return true;
9108    return false;
9109  }
9110
9111  private boolean jj_3R_160() {
9112    if (jj_scan_token(LPAREN)) return true;
9113    if (jj_3R_114()) return true;
9114    if (jj_scan_token(RPAREN)) return true;
9115    Token xsp;
9116    xsp = jj_scanpos;
9117    if (jj_scan_token(92)) {
9118    jj_scanpos = xsp;
9119    if (jj_scan_token(91)) {
9120    jj_scanpos = xsp;
9121    if (jj_scan_token(78)) {
9122    jj_scanpos = xsp;
9123    if (jj_3R_190()) {
9124    jj_scanpos = xsp;
9125    if (jj_scan_token(58)) {
9126    jj_scanpos = xsp;
9127    if (jj_scan_token(55)) {
9128    jj_scanpos = xsp;
9129    if (jj_scan_token(45)) {
9130    jj_scanpos = xsp;
9131    if (jj_3R_191()) return true;
9132    }
9133    }
9134    }
9135    }
9136    }
9137    }
9138    }
9139    return false;
9140  }
9141
9142  private boolean jj_3R_325() {
9143    if (jj_3R_359()) return true;
9144    return false;
9145  }
9146
9147  private boolean jj_3R_159() {
9148    if (jj_scan_token(LPAREN)) return true;
9149    if (jj_3R_114()) return true;
9150    if (jj_scan_token(LBRACKET)) return true;
9151    if (jj_scan_token(RBRACKET)) return true;
9152    return false;
9153  }
9154
9155  private boolean jj_3R_395() {
9156    if (jj_3R_109()) return true;
9157    return false;
9158  }
9159
9160  private boolean jj_3R_180() {
9161    if (jj_scan_token(LBRACE)) return true;
9162    Token xsp;
9163    xsp = jj_scanpos;
9164    if (jj_3R_289()) jj_scanpos = xsp;
9165    xsp = jj_scanpos;
9166    if (jj_scan_token(85)) jj_scanpos = xsp;
9167    if (jj_scan_token(RBRACE)) return true;
9168    return false;
9169  }
9170
9171  private boolean jj_3R_153() {
9172    if (jj_3R_120()) return true;
9173    return false;
9174  }
9175
9176  private boolean jj_3R_103() {
9177    Token xsp;
9178    xsp = jj_scanpos;
9179    if (jj_scan_token(53)) {
9180    jj_scanpos = xsp;
9181    if (jj_scan_token(14)) {
9182    jj_scanpos = xsp;
9183    if (jj_scan_token(32)) {
9184    jj_scanpos = xsp;
9185    if (jj_scan_token(50)) {
9186    jj_scanpos = xsp;
9187    if (jj_scan_token(49)) {
9188    jj_scanpos = xsp;
9189    if (jj_scan_token(48)) {
9190    jj_scanpos = xsp;
9191    if (jj_scan_token(54)) return true;
9192    }
9193    }
9194    }
9195    }
9196    }
9197    }
9198    return false;
9199  }
9200
9201  private boolean jj_3R_112() {
9202    Token xsp;
9203    xsp = jj_scanpos;
9204    if (jj_3_27()) {
9205    jj_scanpos = xsp;
9206    if (jj_3R_159()) {
9207    jj_scanpos = xsp;
9208    if (jj_3R_160()) return true;
9209    }
9210    }
9211    return false;
9212  }
9213
9214  private boolean jj_3_27() {
9215    if (jj_scan_token(LPAREN)) return true;
9216    if (jj_3R_113()) return true;
9217    return false;
9218  }
9219
9220  private boolean jj_3R_380() {
9221    Token xsp;
9222    xsp = jj_scanpos;
9223    if (jj_scan_token(29)) {
9224    jj_scanpos = xsp;
9225    if (jj_3R_395()) return true;
9226    }
9227    while (true) {
9228      xsp = jj_scanpos;
9229      if (jj_3R_396()) { jj_scanpos = xsp; break; }
9230    }
9231    return false;
9232  }
9233
9234  private boolean jj_3R_310() {
9235    if (jj_scan_token(ENUM)) return true;
9236    if (jj_scan_token(IDENTIFIER)) return true;
9237    Token xsp;
9238    xsp = jj_scanpos;
9239    if (jj_3R_325()) jj_scanpos = xsp;
9240    if (jj_3R_326()) return true;
9241    return false;
9242  }
9243
9244  private boolean jj_3R_152() {
9245    if (jj_3R_180()) return true;
9246    return false;
9247  }
9248
9249  private boolean jj_3R_104() {
9250    Token xsp;
9251    xsp = jj_scanpos;
9252    if (jj_3R_152()) {
9253    jj_scanpos = xsp;
9254    if (jj_3R_153()) return true;
9255    }
9256    return false;
9257  }
9258
9259  private boolean jj_3_26() {
9260    if (jj_3R_112()) return true;
9261    return false;
9262  }
9263
9264  private boolean jj_3R_101() {
9265    Token xsp;
9266    xsp = jj_scanpos;
9267    if (jj_scan_token(53)) {
9268    jj_scanpos = xsp;
9269    if (jj_scan_token(14)) {
9270    jj_scanpos = xsp;
9271    if (jj_scan_token(32)) {
9272    jj_scanpos = xsp;
9273    if (jj_scan_token(50)) {
9274    jj_scanpos = xsp;
9275    if (jj_scan_token(49)) {
9276    jj_scanpos = xsp;
9277    if (jj_scan_token(48)) {
9278    jj_scanpos = xsp;
9279    if (jj_scan_token(54)) return true;
9280    }
9281    }
9282    }
9283    }
9284    }
9285    }
9286    return false;
9287  }
9288
9289  private boolean jj_3R_236() {
9290    if (jj_3R_259()) return true;
9291    return false;
9292  }
9293
9294  private boolean jj_3R_420() {
9295    if (jj_scan_token(INTERFACE)) return true;
9296    return false;
9297  }
9298
9299  private boolean jj_3R_235() {
9300    if (jj_3R_258()) return true;
9301    return false;
9302  }
9303
9304  private boolean jj_3R_344() {
9305    if (jj_3R_380()) return true;
9306    Token xsp;
9307    xsp = jj_scanpos;
9308    if (jj_3R_381()) jj_scanpos = xsp;
9309    return false;
9310  }
9311
9312  private boolean jj_3R_110() {
9313    if (jj_scan_token(GT)) return true;
9314    if (jj_scan_token(GT)) return true;
9315    Token xsp;
9316    xsp = jj_scanpos;
9317    if (jj_scan_token(89)) jj_scanpos = xsp;
9318    return false;
9319  }
9320
9321  private boolean jj_3R_423() {
9322    if (jj_3R_359()) return true;
9323    return false;
9324  }
9325
9326  private boolean jj_3R_218() {
9327    Token xsp;
9328    xsp = jj_scanpos;
9329    if (jj_3R_234()) {
9330    jj_scanpos = xsp;
9331    if (jj_3R_235()) {
9332    jj_scanpos = xsp;
9333    if (jj_3R_236()) return true;
9334    }
9335    }
9336    return false;
9337  }
9338
9339  private boolean jj_3R_234() {
9340    Token xsp;
9341    xsp = jj_scanpos;
9342    if (jj_scan_token(92)) {
9343    jj_scanpos = xsp;
9344    if (jj_scan_token(91)) return true;
9345    }
9346    if (jj_3R_188()) return true;
9347    return false;
9348  }
9349
9350  private boolean jj_3R_422() {
9351    if (jj_3R_431()) return true;
9352    return false;
9353  }
9354
9355  private boolean jj_3R_421() {
9356    if (jj_3R_146()) return true;
9357    return false;
9358  }
9359
9360  private boolean jj_3R_343() {
9361    if (jj_3R_144()) return true;
9362    return false;
9363  }
9364
9365  private boolean jj_3R_102() {
9366    if (jj_3R_144()) return true;
9367    return false;
9368  }
9369
9370  private boolean jj_3R_414() {
9371    Token xsp;
9372    xsp = jj_scanpos;
9373    if (jj_scan_token(22)) {
9374    jj_scanpos = xsp;
9375    if (jj_3R_420()) return true;
9376    }
9377    if (jj_scan_token(IDENTIFIER)) return true;
9378    xsp = jj_scanpos;
9379    if (jj_3R_421()) jj_scanpos = xsp;
9380    xsp = jj_scanpos;
9381    if (jj_3R_422()) jj_scanpos = xsp;
9382    xsp = jj_scanpos;
9383    if (jj_3R_423()) jj_scanpos = xsp;
9384    if (jj_3R_416()) return true;
9385    return false;
9386  }
9387
9388  private boolean jj_3_14() {
9389    Token xsp;
9390    while (true) {
9391      xsp = jj_scanpos;
9392      if (jj_3R_102()) { jj_scanpos = xsp; break; }
9393    }
9394    while (true) {
9395      xsp = jj_scanpos;
9396      if (jj_3R_103()) { jj_scanpos = xsp; break; }
9397    }
9398    if (jj_scan_token(INTERFACE)) return true;
9399    return false;
9400  }
9401
9402  private boolean jj_3R_217() {
9403    if (jj_scan_token(DECR)) return true;
9404    if (jj_3R_106()) return true;
9405    return false;
9406  }
9407
9408  private boolean jj_3R_158() {
9409    Token xsp;
9410    xsp = jj_scanpos;
9411    if (jj_scan_token(103)) {
9412    jj_scanpos = xsp;
9413    if (jj_scan_token(104)) return true;
9414    }
9415    if (jj_3R_157()) return true;
9416    return false;
9417  }
9418
9419  private boolean jj_3R_100() {
9420    if (jj_3R_144()) return true;
9421    return false;
9422  }
9423
9424  private boolean jj_3_13() {
9425    Token xsp;
9426    while (true) {
9427      xsp = jj_scanpos;
9428      if (jj_3R_100()) { jj_scanpos = xsp; break; }
9429    }
9430    while (true) {
9431      xsp = jj_scanpos;
9432      if (jj_3R_101()) { jj_scanpos = xsp; break; }
9433    }
9434    if (jj_scan_token(CLASS)) return true;
9435    return false;
9436  }
9437
9438  private boolean jj_3R_85() {
9439    if (jj_3R_144()) return true;
9440    return false;
9441  }
9442
9443  private boolean jj_3R_189() {
9444    Token xsp;
9445    xsp = jj_scanpos;
9446    if (jj_scan_token(105)) {
9447    jj_scanpos = xsp;
9448    if (jj_scan_token(106)) {
9449    jj_scanpos = xsp;
9450    if (jj_scan_token(110)) return true;
9451    }
9452    }
9453    if (jj_3R_188()) return true;
9454    return false;
9455  }
9456
9457  private boolean jj_3_1() {
9458    Token xsp;
9459    while (true) {
9460      xsp = jj_scanpos;
9461      if (jj_3R_85()) { jj_scanpos = xsp; break; }
9462    }
9463    if (jj_scan_token(PACKAGE)) return true;
9464    return false;
9465  }
9466
9467  private boolean jj_3R_216() {
9468    if (jj_scan_token(INCR)) return true;
9469    if (jj_3R_106()) return true;
9470    return false;
9471  }
9472
9473  private boolean jj_3R_205() {
9474    if (jj_3R_218()) return true;
9475    return false;
9476  }
9477
9478  private boolean jj_3R_138() {
9479    if (jj_3R_144()) return true;
9480    return false;
9481  }
9482
9483  private boolean jj_3R_204() {
9484    if (jj_3R_217()) return true;
9485    return false;
9486  }
9487
9488  private boolean jj_3_25() {
9489    Token xsp;
9490    xsp = jj_scanpos;
9491    if (jj_scan_token(111)) {
9492    jj_scanpos = xsp;
9493    if (jj_3R_110()) return true;
9494    }
9495    if (jj_3R_111()) return true;
9496    return false;
9497  }
9498
9499  private boolean jj_3R_203() {
9500    if (jj_3R_216()) return true;
9501    return false;
9502  }
9503
9504  private boolean jj_3R_188() {
9505    Token xsp;
9506    xsp = jj_scanpos;
9507    if (jj_3R_202()) {
9508    jj_scanpos = xsp;
9509    if (jj_3R_203()) {
9510    jj_scanpos = xsp;
9511    if (jj_3R_204()) {
9512    jj_scanpos = xsp;
9513    if (jj_3R_205()) return true;
9514    }
9515    }
9516    }
9517    return false;
9518  }
9519
9520  private boolean jj_3R_202() {
9521    Token xsp;
9522    xsp = jj_scanpos;
9523    if (jj_scan_token(103)) {
9524    jj_scanpos = xsp;
9525    if (jj_scan_token(104)) return true;
9526    }
9527    if (jj_3R_188()) return true;
9528    return false;
9529  }
9530
9531  private boolean jj_3R_137() {
9532    if (jj_scan_token(TESTAAAA)) return true;
9533    return false;
9534  }
9535
9536  private boolean jj_3R_136() {
9537    if (jj_scan_token(VOLATILE)) return true;
9538    return false;
9539  }
9540
9541  private boolean jj_3R_157() {
9542    if (jj_3R_188()) return true;
9543    Token xsp;
9544    while (true) {
9545      xsp = jj_scanpos;
9546      if (jj_3R_189()) { jj_scanpos = xsp; break; }
9547    }
9548    return false;
9549  }
9550
9551  private boolean jj_3R_379() {
9552    if (jj_scan_token(PROTECTED)) return true;
9553    return false;
9554  }
9555
9556  private boolean jj_3R_378() {
9557    if (jj_scan_token(PUBLIC)) return true;
9558    return false;
9559  }
9560
9561  private boolean jj_3R_342() {
9562    Token xsp;
9563    xsp = jj_scanpos;
9564    if (jj_3R_378()) {
9565    jj_scanpos = xsp;
9566    if (jj_3R_379()) {
9567    jj_scanpos = xsp;
9568    if (jj_scan_token(48)) {
9569    jj_scanpos = xsp;
9570    if (jj_scan_token(53)) {
9571    jj_scanpos = xsp;
9572    if (jj_scan_token(32)) {
9573    jj_scanpos = xsp;
9574    if (jj_scan_token(61)) {
9575    jj_scanpos = xsp;
9576    if (jj_scan_token(65)) return true;
9577    }
9578    }
9579    }
9580    }
9581    }
9582    }
9583    return false;
9584  }
9585
9586  private boolean jj_3R_346() {
9587    Token xsp;
9588    xsp = jj_scanpos;
9589    if (jj_scan_token(90)) {
9590    jj_scanpos = xsp;
9591    if (jj_scan_token(89)) {
9592    jj_scanpos = xsp;
9593    if (jj_scan_token(96)) {
9594    jj_scanpos = xsp;
9595    if (jj_scan_token(97)) return true;
9596    }
9597    }
9598    }
9599    if (jj_3R_315()) return true;
9600    return false;
9601  }
9602
9603  private boolean jj_3R_135() {
9604    if (jj_scan_token(TRANSIENT)) return true;
9605    return false;
9606  }
9607
9608  private boolean jj_3R_316() {
9609    if (jj_scan_token(INSTANCEOF)) return true;
9610    if (jj_3R_114()) return true;
9611    return false;
9612  }
9613
9614  private boolean jj_3R_314() {
9615    Token xsp;
9616    while (true) {
9617      xsp = jj_scanpos;
9618      if (jj_3R_342()) { jj_scanpos = xsp; break; }
9619    }
9620    while (true) {
9621      xsp = jj_scanpos;
9622      if (jj_3R_343()) { jj_scanpos = xsp; break; }
9623    }
9624    if (jj_3R_114()) return true;
9625    if (jj_3R_344()) return true;
9626    while (true) {
9627      xsp = jj_scanpos;
9628      if (jj_3R_345()) { jj_scanpos = xsp; break; }
9629    }
9630    if (jj_scan_token(SEMICOLON)) return true;
9631    return false;
9632  }
9633
9634  private boolean jj_3R_111() {
9635    if (jj_3R_157()) return true;
9636    Token xsp;
9637    while (true) {
9638      xsp = jj_scanpos;
9639      if (jj_3R_158()) { jj_scanpos = xsp; break; }
9640    }
9641    return false;
9642  }
9643
9644  private boolean jj_3_16() {
9645    if (jj_3R_99()) return true;
9646    return false;
9647  }
9648
9649  private boolean jj_3R_134() {
9650    if (jj_scan_token(NATIVE)) return true;
9651    return false;
9652  }
9653
9654  private boolean jj_3R_305() {
9655    if (jj_scan_token(ASSIGN)) return true;
9656    if (jj_3R_294()) return true;
9657    return false;
9658  }
9659
9660  private boolean jj_3R_315() {
9661    if (jj_3R_111()) return true;
9662    Token xsp;
9663    while (true) {
9664      xsp = jj_scanpos;
9665      if (jj_3_25()) { jj_scanpos = xsp; break; }
9666    }
9667    return false;
9668  }
9669
9670  private boolean jj_3R_133() {
9671    if (jj_scan_token(SYNCHRONIZED)) return true;
9672    return false;
9673  }
9674
9675  private boolean jj_3_15() {
9676    if (jj_3R_88()) return true;
9677    if (jj_scan_token(ENUM)) return true;
9678    if (jj_scan_token(IDENTIFIER)) return true;
9679    return false;
9680  }
9681
9682  private boolean jj_3R_407() {
9683    if (jj_3R_88()) return true;
9684    if (jj_3R_314()) return true;
9685    return false;
9686  }
9687
9688  private boolean jj_3R_406() {
9689    if (jj_3R_312()) return true;
9690    return false;
9691  }
9692
9693  private boolean jj_3R_295() {
9694    Token xsp;
9695    xsp = jj_scanpos;
9696    if (jj_scan_token(95)) {
9697    jj_scanpos = xsp;
9698    if (jj_scan_token(98)) return true;
9699    }
9700    if (jj_3R_291()) return true;
9701    return false;
9702  }
9703
9704  private boolean jj_3R_132() {
9705    if (jj_scan_token(ABSTRACT)) return true;
9706    return false;
9707  }
9708
9709  private boolean jj_3R_304() {
9710    if (jj_3R_315()) return true;
9711    Token xsp;
9712    while (true) {
9713      xsp = jj_scanpos;
9714      if (jj_3R_346()) { jj_scanpos = xsp; break; }
9715    }
9716    return false;
9717  }
9718
9719  private boolean jj_3R_131() {
9720    if (jj_scan_token(FINAL)) return true;
9721    return false;
9722  }
9723
9724  private boolean jj_3R_405() {
9725    if (jj_3R_88()) return true;
9726    if (jj_3R_310()) return true;
9727    return false;
9728  }
9729
9730  private boolean jj_3R_404() {
9731    if (jj_3R_309()) return true;
9732    return false;
9733  }
9734
9735  private boolean jj_3R_357() {
9736    if (jj_scan_token(EXTENDS)) return true;
9737    if (jj_3R_366()) return true;
9738    return false;
9739  }
9740
9741  private boolean jj_3R_130() {
9742    if (jj_scan_token(PRIVATE)) return true;
9743    return false;
9744  }
9745
9746  private boolean jj_3R_294() {
9747    if (jj_3R_304()) return true;
9748    Token xsp;
9749    xsp = jj_scanpos;
9750    if (jj_3R_316()) jj_scanpos = xsp;
9751    return false;
9752  }
9753
9754  private boolean jj_3R_403() {
9755    if (jj_3R_308()) return true;
9756    return false;
9757  }
9758
9759  private boolean jj_3R_386() {
9760    Token xsp;
9761    xsp = jj_scanpos;
9762    if (jj_scan_token(84)) {
9763    jj_scanpos = xsp;
9764    if (jj_3R_403()) {
9765    jj_scanpos = xsp;
9766    if (jj_3R_404()) {
9767    jj_scanpos = xsp;
9768    if (jj_3R_405()) {
9769    jj_scanpos = xsp;
9770    if (jj_3R_406()) {
9771    jj_scanpos = xsp;
9772    if (jj_3R_407()) return true;
9773    }
9774    }
9775    }
9776    }
9777    }
9778    return false;
9779  }
9780
9781  private boolean jj_3R_129() {
9782    if (jj_scan_token(PROTECTED)) return true;
9783    return false;
9784  }
9785
9786  private boolean jj_3R_292() {
9787    if (jj_scan_token(BIT_AND)) return true;
9788    if (jj_3R_284()) return true;
9789    return false;
9790  }
9791
9792  private boolean jj_3R_291() {
9793    if (jj_3R_294()) return true;
9794    Token xsp;
9795    while (true) {
9796      xsp = jj_scanpos;
9797      if (jj_3R_305()) { jj_scanpos = xsp; break; }
9798    }
9799    return false;
9800  }
9801
9802  private boolean jj_3R_128() {
9803    if (jj_scan_token(STATIC)) return true;
9804    return false;
9805  }
9806
9807  private boolean jj_3R_284() {
9808    if (jj_3R_291()) return true;
9809    Token xsp;
9810    while (true) {
9811      xsp = jj_scanpos;
9812      if (jj_3R_295()) { jj_scanpos = xsp; break; }
9813    }
9814    return false;
9815  }
9816
9817  private boolean jj_3R_261() {
9818    if (jj_scan_token(BIT_OR)) return true;
9819    if (jj_3R_237()) return true;
9820    return false;
9821  }
9822
9823  private boolean jj_3R_127() {
9824    if (jj_scan_token(PUBLIC)) return true;
9825    return false;
9826  }
9827
9828  private boolean jj_3R_285() {
9829    if (jj_scan_token(XOR)) return true;
9830    if (jj_3R_260()) return true;
9831    return false;
9832  }
9833
9834  private boolean jj_3_51() {
9835    Token xsp;
9836    xsp = jj_scanpos;
9837    if (jj_3R_127()) {
9838    jj_scanpos = xsp;
9839    if (jj_3R_128()) {
9840    jj_scanpos = xsp;
9841    if (jj_3R_129()) {
9842    jj_scanpos = xsp;
9843    if (jj_3R_130()) {
9844    jj_scanpos = xsp;
9845    if (jj_3R_131()) {
9846    jj_scanpos = xsp;
9847    if (jj_3R_132()) {
9848    jj_scanpos = xsp;
9849    if (jj_3R_133()) {
9850    jj_scanpos = xsp;
9851    if (jj_3R_134()) {
9852    jj_scanpos = xsp;
9853    if (jj_3R_135()) {
9854    jj_scanpos = xsp;
9855    if (jj_3R_136()) {
9856    jj_scanpos = xsp;
9857    if (jj_3R_137()) {
9858    jj_scanpos = xsp;
9859    if (jj_3R_138()) return true;
9860    }
9861    }
9862    }
9863    }
9864    }
9865    }
9866    }
9867    }
9868    }
9869    }
9870    }
9871    return false;
9872  }
9873
9874  private boolean jj_3R_356() {
9875    if (jj_3R_146()) return true;
9876    return false;
9877  }
9878
9879  private boolean jj_3R_238() {
9880    if (jj_scan_token(SC_AND)) return true;
9881    if (jj_3R_220()) return true;
9882    return false;
9883  }
9884
9885  private boolean jj_3R_88() {
9886    Token xsp;
9887    while (true) {
9888      xsp = jj_scanpos;
9889      if (jj_3_51()) { jj_scanpos = xsp; break; }
9890    }
9891    return false;
9892  }
9893
9894  private boolean jj_3R_221() {
9895    if (jj_scan_token(SC_OR)) return true;
9896    if (jj_3R_207()) return true;
9897    return false;
9898  }
9899
9900  private boolean jj_3R_347() {
9901    if (jj_3R_348()) return true;
9902    return false;
9903  }
9904
9905  private boolean jj_3R_260() {
9906    if (jj_3R_284()) return true;
9907    Token xsp;
9908    while (true) {
9909      xsp = jj_scanpos;
9910      if (jj_3R_292()) { jj_scanpos = xsp; break; }
9911    }
9912    return false;
9913  }
9914
9915  private boolean jj_3R_413() {
9916    if (jj_3R_419()) return true;
9917    return false;
9918  }
9919
9920  private boolean jj_3R_208() {
9921    if (jj_scan_token(HOOK)) return true;
9922    if (jj_3R_120()) return true;
9923    if (jj_scan_token(COLON)) return true;
9924    if (jj_3R_167()) return true;
9925    return false;
9926  }
9927
9928  private boolean jj_3R_419() {
9929    if (jj_scan_token(_DEFAULT)) return true;
9930    if (jj_3R_126()) return true;
9931    return false;
9932  }
9933
9934  private boolean jj_3R_237() {
9935    if (jj_3R_260()) return true;
9936    Token xsp;
9937    while (true) {
9938      xsp = jj_scanpos;
9939      if (jj_3R_285()) { jj_scanpos = xsp; break; }
9940    }
9941    return false;
9942  }
9943
9944  private boolean jj_3R_358() {
9945    if (jj_3R_386()) return true;
9946    return false;
9947  }
9948
9949  private boolean jj_3R_383() {
9950    if (jj_scan_token(SEMICOLON)) return true;
9951    return false;
9952  }
9953
9954  private boolean jj_3R_220() {
9955    if (jj_3R_237()) return true;
9956    Token xsp;
9957    while (true) {
9958      xsp = jj_scanpos;
9959      if (jj_3R_261()) { jj_scanpos = xsp; break; }
9960    }
9961    return false;
9962  }
9963
9964  private boolean jj_3R_227() {
9965    if (jj_scan_token(INTERFACE)) return true;
9966    if (jj_3R_109()) return true;
9967    Token xsp;
9968    xsp = jj_scanpos;
9969    if (jj_3R_356()) jj_scanpos = xsp;
9970    xsp = jj_scanpos;
9971    if (jj_3R_357()) jj_scanpos = xsp;
9972    if (jj_scan_token(LBRACE)) return true;
9973    while (true) {
9974      xsp = jj_scanpos;
9975      if (jj_3R_358()) { jj_scanpos = xsp; break; }
9976    }
9977    if (jj_scan_token(RBRACE)) return true;
9978    return false;
9979  }
9980
9981  private boolean jj_3R_207() {
9982    if (jj_3R_220()) return true;
9983    Token xsp;
9984    while (true) {
9985      xsp = jj_scanpos;
9986      if (jj_3R_238()) { jj_scanpos = xsp; break; }
9987    }
9988    return false;
9989  }
9990
9991  private boolean jj_3R_401() {
9992    if (jj_3R_415()) return true;
9993    return false;
9994  }
9995
9996  private boolean jj_3R_400() {
9997    if (jj_3R_306()) return true;
9998    return false;
9999  }
10000
10001  private boolean jj_3R_318() {
10002    if (jj_3R_348()) return true;
10003    return false;
10004  }
10005
10006  private boolean jj_3R_399() {
10007    if (jj_3R_310()) return true;
10008    return false;
10009  }
10010
10011  private boolean jj_3_50() {
10012    if (jj_3R_114()) return true;
10013    if (jj_scan_token(IDENTIFIER)) return true;
10014    if (jj_scan_token(LPAREN)) return true;
10015    return false;
10016  }
10017
10018  private boolean jj_3R_193() {
10019    if (jj_3R_207()) return true;
10020    Token xsp;
10021    while (true) {
10022      xsp = jj_scanpos;
10023      if (jj_3R_221()) { jj_scanpos = xsp; break; }
10024    }
10025    return false;
10026  }
10027
10028  private boolean jj_3R_398() {
10029    if (jj_3R_414()) return true;
10030    return false;
10031  }
10032
10033  private boolean jj_3R_167() {
10034    if (jj_3R_193()) return true;
10035    Token xsp;
10036    xsp = jj_scanpos;
10037    if (jj_3R_208()) jj_scanpos = xsp;
10038    return false;
10039  }
10040
10041  private boolean jj_3R_397() {
10042    if (jj_3R_114()) return true;
10043    if (jj_scan_token(IDENTIFIER)) return true;
10044    if (jj_scan_token(LPAREN)) return true;
10045    if (jj_scan_token(RPAREN)) return true;
10046    Token xsp;
10047    xsp = jj_scanpos;
10048    if (jj_3R_413()) jj_scanpos = xsp;
10049    if (jj_scan_token(SEMICOLON)) return true;
10050    return false;
10051  }
10052
10053  private boolean jj_3R_460() {
10054    Token xsp;
10055    xsp = jj_scanpos;
10056    if (jj_scan_token(88)) {
10057    jj_scanpos = xsp;
10058    if (jj_scan_token(114)) {
10059    jj_scanpos = xsp;
10060    if (jj_scan_token(115)) {
10061    jj_scanpos = xsp;
10062    if (jj_scan_token(119)) {
10063    jj_scanpos = xsp;
10064    if (jj_scan_token(112)) {
10065    jj_scanpos = xsp;
10066    if (jj_scan_token(113)) {
10067    jj_scanpos = xsp;
10068    if (jj_scan_token(120)) {
10069    jj_scanpos = xsp;
10070    if (jj_scan_token(121)) {
10071    jj_scanpos = xsp;
10072    if (jj_scan_token(122)) {
10073    jj_scanpos = xsp;
10074    if (jj_scan_token(116)) {
10075    jj_scanpos = xsp;
10076    if (jj_scan_token(118)) {
10077    jj_scanpos = xsp;
10078    if (jj_scan_token(117)) return true;
10079    }
10080    }
10081    }
10082    }
10083    }
10084    }
10085    }
10086    }
10087    }
10088    }
10089    }
10090    return false;
10091  }
10092
10093  private boolean jj_3R_382() {
10094    if (jj_3R_88()) return true;
10095    Token xsp;
10096    xsp = jj_scanpos;
10097    if (jj_3R_397()) {
10098    jj_scanpos = xsp;
10099    if (jj_3R_398()) {
10100    jj_scanpos = xsp;
10101    if (jj_3R_399()) {
10102    jj_scanpos = xsp;
10103    if (jj_3R_400()) {
10104    jj_scanpos = xsp;
10105    if (jj_3R_401()) return true;
10106    }
10107    }
10108    }
10109    }
10110    return false;
10111  }
10112
10113  private boolean jj_3R_348() {
10114    Token xsp;
10115    xsp = jj_scanpos;
10116    if (jj_3R_382()) {
10117    jj_scanpos = xsp;
10118    if (jj_3R_383()) return true;
10119    }
10120    return false;
10121  }
10122
10123  private boolean jj_3R_317() {
10124    if (jj_scan_token(LBRACE)) return true;
10125    Token xsp;
10126    while (true) {
10127      xsp = jj_scanpos;
10128      if (jj_3R_347()) { jj_scanpos = xsp; break; }
10129    }
10130    if (jj_scan_token(RBRACE)) return true;
10131    return false;
10132  }
10133
10134  private boolean jj_3R_306() {
10135    if (jj_scan_token(AT)) return true;
10136    if (jj_scan_token(INTERFACE)) return true;
10137    if (jj_scan_token(IDENTIFIER)) return true;
10138    if (jj_3R_317()) return true;
10139    return false;
10140  }
10141
10142  private boolean jj_3R_120() {
10143    if (jj_3R_167()) return true;
10144    return false;
10145  }
10146
10147  private boolean jj_3_49() {
10148    if (jj_scan_token(COMMA)) return true;
10149    if (jj_3R_126()) return true;
10150    return false;
10151  }
10152
10153  /** Generated Token Manager. */
10154  public JavaParserTokenManager token_source;
10155  JavaCharStream jj_input_stream;
10156  /** Current token. */
10157  public Token token;
10158  /** Next token. */
10159  public Token jj_nt;
10160  private int jj_ntk;
10161  private Token jj_scanpos, jj_lastpos;
10162  private int jj_la;
10163  private int jj_gen;
10164  final private int[] jj_la1 = new int[208];
10165  static private int[] jj_la1_0;
10166  static private int[] jj_la1_1;
10167  static private int[] jj_la1_2;
10168  static private int[] jj_la1_3;
10169  static {
10170      jj_la1_init_0();
10171      jj_la1_init_1();
10172      jj_la1_init_2();
10173      jj_la1_init_3();
10174   }
10175   private static void jj_la1_init_0() {
10176      jj_la1_0 = new int[] {0x0,0x20404000,0x0,0x0,0x0,0x20404000,0x0,0x0,0x4000,0x4000,0x400000,0x0,0x0,0x0,0x4000,0x0,0x0,0x4000,0x4000,0x0,0x0,0x0,0x0,0x40000000,0x0,0x2865c000,0x0,0x0,0x4000,0x4000,0x0,0x0,0x8250000,0x0,0x4000,0x4000,0x0,0x0,0x0,0x0,0x4000,0x4000,0x0,0x0,0x4000,0x4000,0x0,0x40000000,0x28654000,0x0,0x8254000,0x0,0x0,0x0,0x0,0x0,0x20008000,0x0,0xa8258000,0xa8258000,0x0,0x0,0x4000,0x4000,0x0,0x0,0x0,0x0,0x0,0x0,0x8254000,0x0,0x0,0x0,0x0,0x0,0x0,0xad67c000,0xa8258000,0x0,0x8250000,0x8250000,0x0,0x8250000,0x8250000,0x20008000,0x20008000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa8258000,0x0,0x0,0xa8258000,0x80008000,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x0,0x8000,0x80000000,0x0,0x20008000,0x0,0x80000000,0x80000000,0xa8258000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xad278000,0x0,0xad67c000,0xad67c000,0x0,0x0,0x0,0xa8258000,0x2080000,0xad67c000,0x2080000,0x10000000,0xa825c000,0xa8258000,0xa8258000,0xa825c000,0xa8258000,0x0,0x8000,0x8000,0xa8258000,0x100000,0x0,0xa8258000,0x0,0x0,0x0,0x8000,0x0,0x0,0x0,0xa8258000,0xa8258000,0x0,0x28654000,0x28654000,0x2000000,0x28650000,0x28654000,0x4000,0x400000,0x0,0x40000000,0x0,0x0,0x0,0x0,0x0,0x2865c000,0x4000,0x0,0x2865c000,0x0,0x40000000,0x20400000,0x8254000,0x2865c000,0x0,0x0,0x0,0x8250000,0x40000000,0x8250000,0x8250000,0x40000000,0x0,0x0,0x0,0x8254000,0x0,};
10177   }
10178   private static void jj_la1_init_1() {
10179      jj_la1_1 = new int[] {0x80,0x22671401,0x8080,0x8080,0x80,0x22671401,0x8000,0x80,0x2440001,0x2440001,0x400,0x0,0x200000,0x0,0x22671001,0x0,0x0,0x2440001,0x2440001,0x0,0x0,0x0,0x0,0x0,0x40,0x22771e05,0x0,0x0,0x670001,0x670001,0x0,0x0,0x20370a05,0x0,0x2671001,0x2671001,0x0,0x0,0x0,0x0,0x440000,0x440000,0x0,0x0,0x670001,0x670001,0x0,0x0,0x22771e05,0x0,0x22771a05,0x20270001,0x20270001,0x0,0x0,0x0,0x0,0x0,0x44906a04,0x44906a04,0x0,0x0,0x2671001,0x2671001,0x0,0x0,0x10000000,0x0,0x0,0x0,0x22771a05,0x0,0x0,0x70000,0x70000,0x0,0x10000000,0xefff7e2d,0x44906a04,0x200000,0x100a04,0x100a04,0x0,0x100a04,0x100a04,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x44906a04,0x0,0x0,0x44906a04,0x44806000,0x0,0x0,0x0,0x0,0x0,0x2000,0x0,0x0,0x0,0x44004000,0x2000,0x0,0x0,0x40004000,0x40000000,0x44906a04,0x0,0x0,0x0,0x0,0x2000,0x0,0x0,0xcf986a2c,0x0,0xefff7e2d,0xefff7e2d,0x0,0x0,0x0,0x44906a04,0x0,0xefff7e2d,0x0,0x0,0x66f77a05,0x44906a04,0x44906a04,0x66f77a05,0x44906a04,0x0,0x0,0x0,0x44906a04,0x0,0x2,0x44906a04,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x44906a04,0x44906a04,0x0,0x22771e05,0x22771e05,0x0,0x100e04,0x22771e05,0x22671001,0x400,0x0,0x0,0x40,0x40,0x0,0x0,0x0,0x22771e05,0x22671001,0x0,0x22771e05,0x0,0x0,0x400,0x2771a05,0x22771e05,0x0,0x0,0x0,0x100a04,0x800000,0x100a04,0x100a04,0x800000,0x0,0x0,0x0,0x22771a05,0x0,};
10180   }
10181   private static void jj_la1_init_2() {
10182      jj_la1_2 = new int[] {0x0,0x900002,0x800000,0x800000,0x0,0x900002,0x800000,0x0,0x0,0x0,0x0,0x800000,0x0,0x400000,0x900002,0x800000,0x800000,0x0,0x0,0x4000000,0x4000000,0x400000,0x4000000,0x0,0x0,0x4910803,0x800000,0x800000,0x0,0x0,0x800000,0x100000,0x800802,0x800000,0x0,0x0,0x800000,0x4000000,0x800000,0x800000,0x0,0x0,0x800000,0x800000,0x0,0x0,0x4000000,0x0,0x4900803,0x100000,0x800802,0x2,0x2,0x800000,0x200000,0x1000000,0x800,0x40000,0x18014e89,0x18014e89,0x200000,0x800000,0x0,0x0,0x800000,0x4000000,0x0,0x110000,0x40000,0x200000,0x800802,0x0,0x800000,0x0,0x0,0x4000000,0x0,0x914e8f,0x4e89,0x0,0x0,0x800,0x40000,0x0,0x801,0x800,0x800,0x4000000,0x200000,0x4000000,0x1000000,0x20000000,0x0,0x0,0x0,0x0,0x0,0x80000000,0x80000000,0x1000000,0x0,0x6000000,0x6000000,0x2000000,0x2000000,0x0,0x0,0x0,0x0,0x0,0x18004e89,0x18000000,0x18000000,0x4e89,0x18004e88,0x4000,0x0,0x0,0x4000,0x400000,0x0,0x800,0x400000,0x800,0x688,0x4000,0x800,0x444000,0x688,0x0,0x18004e89,0x200000,0x4000000,0x10000,0x44000,0x0,0x40000,0x40000,0x114e8d,0x40000000,0x914e8f,0x914e8f,0x200000,0x1000000,0x1000000,0x4e89,0x0,0x914e8f,0x0,0x0,0x804e8b,0x18004e89,0x4e89,0x904e8b,0x4e89,0x200000,0x800,0x800,0x18004e89,0x0,0x0,0x18004e89,0x100000,0x4000,0x0,0x800,0x800000,0x800,0x200000,0x18814e89,0x18814e89,0x200000,0x900802,0x900802,0x0,0x800800,0x900802,0x800002,0x0,0x4000000,0x0,0x0,0x0,0x200000,0x200000,0x200000,0x4910803,0x800802,0x200000,0x4910803,0x100000,0x0,0x0,0x4800801,0x4900803,0x4000,0x10000,0x0,0x20000800,0x0,0x20000800,0x800,0x0,0x200000,0x40000,0x200000,0x800802,0x0,};
10183   }
10184   private static void jj_la1_init_3() {
10185      jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e0,0x1e0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x0,0x0,0x0,0x60,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7ff0000,0x0,0x8,0x10,0x1000,0x2000,0x800,0x4,0x4,0x0,0x0,0x3,0x3,0x0,0x8000,0x180,0x180,0x4600,0x4600,0x180,0x1e0,0x0,0x0,0x0,0x0,0x0,0x60,0x60,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1e0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x60,0x0,0x60,0x60,0x0,0x7ff0060,0x7ff0060,0x60,0x0,0x60,0x0,0x0,0x60,0x1e0,0x60,0x60,0x60,0x0,0x0,0x0,0x1e0,0x0,0x0,0x1e0,0x0,0x0,0x1000,0x0,0x0,0x0,0x0,0x1e0,0x1e0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,};
10186   }
10187  final private JJCalls[] jj_2_rtns = new JJCalls[61];
10188  private boolean jj_rescan = false;
10189  private int jj_gc = 0;
10190
10191  /** Constructor with InputStream. */
10192  public JavaParser(java.io.InputStream stream) {
10193     this(stream, null);
10194  }
10195  /** Constructor with InputStream and supplied encoding */
10196  public JavaParser(java.io.InputStream stream, String encoding) {
10197    try { jj_input_stream = new JavaCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
10198    token_source = new JavaParserTokenManager(jj_input_stream);
10199    token = new Token();
10200    jj_ntk = -1;
10201    jj_gen = 0;
10202    for (int i = 0; i < 208; i++) jj_la1[i] = -1;
10203    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
10204  }
10205
10206  /** Reinitialise. */
10207  public void ReInit(java.io.InputStream stream) {
10208     ReInit(stream, null);
10209  }
10210  /** Reinitialise. */
10211  public void ReInit(java.io.InputStream stream, String encoding) {
10212    try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
10213    token_source.ReInit(jj_input_stream);
10214    token = new Token();
10215    jj_ntk = -1;
10216    jj_gen = 0;
10217    for (int i = 0; i < 208; i++) jj_la1[i] = -1;
10218    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
10219  }
10220
10221  /** Constructor. */
10222  public JavaParser(java.io.Reader stream) {
10223    jj_input_stream = new JavaCharStream(stream, 1, 1);
10224    token_source = new JavaParserTokenManager(jj_input_stream);
10225    token = new Token();
10226    jj_ntk = -1;
10227    jj_gen = 0;
10228    for (int i = 0; i < 208; i++) jj_la1[i] = -1;
10229    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
10230  }
10231
10232  /** Reinitialise. */
10233  public void ReInit(java.io.Reader stream) {
10234    jj_input_stream.ReInit(stream, 1, 1);
10235    token_source.ReInit(jj_input_stream);
10236    token = new Token();
10237    jj_ntk = -1;
10238    jj_gen = 0;
10239    for (int i = 0; i < 208; i++) jj_la1[i] = -1;
10240    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
10241  }
10242
10243  /** Constructor with generated Token Manager. */
10244  public JavaParser(JavaParserTokenManager tm) {
10245    token_source = tm;
10246    token = new Token();
10247    jj_ntk = -1;
10248    jj_gen = 0;
10249    for (int i = 0; i < 208; i++) jj_la1[i] = -1;
10250    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
10251  }
10252
10253  /** Reinitialise. */
10254  public void ReInit(JavaParserTokenManager tm) {
10255    token_source = tm;
10256    token = new Token();
10257    jj_ntk = -1;
10258    jj_gen = 0;
10259    for (int i = 0; i < 208; i++) jj_la1[i] = -1;
10260    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
10261  }
10262
10263  private Token jj_consume_token(int kind) throws ParseException {
10264    Token oldToken;
10265    if ((oldToken = token).next != null) token = token.next;
10266    else token = token.next = token_source.getNextToken();
10267    jj_ntk = -1;
10268    if (token.kind == kind) {
10269      jj_gen++;
10270      if (++jj_gc > 100) {
10271        jj_gc = 0;
10272        for (int i = 0; i < jj_2_rtns.length; i++) {
10273          JJCalls c = jj_2_rtns[i];
10274          while (c != null) {
10275            if (c.gen < jj_gen) c.first = null;
10276            c = c.next;
10277          }
10278        }
10279      }
10280      return token;
10281    }
10282    token = oldToken;
10283    jj_kind = kind;
10284    throw generateParseException();
10285  }
10286
10287  static private final class LookaheadSuccess extends java.lang.Error { }
10288  final private LookaheadSuccess jj_ls = new LookaheadSuccess();
10289  private boolean jj_scan_token(int kind) {
10290    if (jj_scanpos == jj_lastpos) {
10291      jj_la--;
10292      if (jj_scanpos.next == null) {
10293        jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
10294      } else {
10295        jj_lastpos = jj_scanpos = jj_scanpos.next;
10296      }
10297    } else {
10298      jj_scanpos = jj_scanpos.next;
10299    }
10300    if (jj_rescan) {
10301      int i = 0; Token tok = token;
10302      while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
10303      if (tok != null) jj_add_error_token(kind, i);
10304    }
10305    if (jj_scanpos.kind != kind) return true;
10306    if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
10307    return false;
10308  }
10309
10310
10311/** Get the next Token. */
10312  final public Token getNextToken() {
10313    if (token.next != null) token = token.next;
10314    else token = token.next = token_source.getNextToken();
10315    jj_ntk = -1;
10316    jj_gen++;
10317    return token;
10318  }
10319
10320/** Get the specific Token. */
10321  final public Token getToken(int index) {
10322    Token t = token;
10323    for (int i = 0; i < index; i++) {
10324      if (t.next != null) t = t.next;
10325      else t = t.next = token_source.getNextToken();
10326    }
10327    return t;
10328  }
10329
10330  private int jj_ntk() {
10331    if ((jj_nt=token.next) == null)
10332      return (jj_ntk = (token.next=token_source.getNextToken()).kind);
10333    else
10334      return (jj_ntk = jj_nt.kind);
10335  }
10336
10337  private java.util.List jj_expentries = new java.util.ArrayList();
10338  private int[] jj_expentry;
10339  private int jj_kind = -1;
10340  private int[] jj_lasttokens = new int[100];
10341  private int jj_endpos;
10342
10343  private void jj_add_error_token(int kind, int pos) {
10344    if (pos >= 100) return;
10345    if (pos == jj_endpos + 1) {
10346      jj_lasttokens[jj_endpos++] = kind;
10347    } else if (jj_endpos != 0) {
10348      jj_expentry = new int[jj_endpos];
10349      for (int i = 0; i < jj_endpos; i++) {
10350        jj_expentry[i] = jj_lasttokens[i];
10351      }
10352      jj_entries_loop: for (java.util.Iterator it = jj_expentries.iterator(); it.hasNext();) {
10353        int[] oldentry = (int[])(it.next());
10354        if (oldentry.length == jj_expentry.length) {
10355          for (int i = 0; i < jj_expentry.length; i++) {
10356            if (oldentry[i] != jj_expentry[i]) {
10357              continue jj_entries_loop;
10358            }
10359          }
10360          jj_expentries.add(jj_expentry);
10361          break jj_entries_loop;
10362        }
10363      }
10364      if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
10365    }
10366  }
10367
10368  /** Generate ParseException. */
10369  public ParseException generateParseException() {
10370    jj_expentries.clear();
10371    boolean[] la1tokens = new boolean[124];
10372    if (jj_kind >= 0) {
10373      la1tokens[jj_kind] = true;
10374      jj_kind = -1;
10375    }
10376    for (int i = 0; i < 208; i++) {
10377      if (jj_la1[i] == jj_gen) {
10378        for (int j = 0; j < 32; j++) {
10379          if ((jj_la1_0[i] & (1<<j)) != 0) {
10380            la1tokens[j] = true;
10381          }
10382          if ((jj_la1_1[i] & (1<<j)) != 0) {
10383            la1tokens[32+j] = true;
10384          }
10385          if ((jj_la1_2[i] & (1<<j)) != 0) {
10386            la1tokens[64+j] = true;
10387          }
10388          if ((jj_la1_3[i] & (1<<j)) != 0) {
10389            la1tokens[96+j] = true;
10390          }
10391        }
10392      }
10393    }
10394    for (int i = 0; i < 124; i++) {
10395      if (la1tokens[i]) {
10396        jj_expentry = new int[1];
10397        jj_expentry[0] = i;
10398        jj_expentries.add(jj_expentry);
10399      }
10400    }
10401    jj_endpos = 0;
10402    jj_rescan_token();
10403    jj_add_error_token(0, 0);
10404    int[][] exptokseq = new int[jj_expentries.size()][];
10405    for (int i = 0; i < jj_expentries.size(); i++) {
10406      exptokseq[i] = (int[])jj_expentries.get(i);
10407    }
10408    return new ParseException(token, exptokseq, tokenImage);
10409  }
10410
10411  /** Enable tracing. */
10412  final public void enable_tracing() {
10413  }
10414
10415  /** Disable tracing. */
10416  final public void disable_tracing() {
10417  }
10418
10419  private void jj_rescan_token() {
10420    jj_rescan = true;
10421    for (int i = 0; i < 61; i++) {
10422    try {
10423      JJCalls p = jj_2_rtns[i];
10424      do {
10425        if (p.gen > jj_gen) {
10426          jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
10427          switch (i) {
10428            case 0: jj_3_1(); break;
10429            case 1: jj_3_2(); break;
10430            case 2: jj_3_3(); break;
10431            case 3: jj_3_4(); break;
10432            case 4: jj_3_5(); break;
10433            case 5: jj_3_6(); break;
10434            case 6: jj_3_7(); break;
10435            case 7: jj_3_8(); break;
10436            case 8: jj_3_9(); break;
10437            case 9: jj_3_10(); break;
10438            case 10: jj_3_11(); break;
10439            case 11: jj_3_12(); break;
10440            case 12: jj_3_13(); break;
10441            case 13: jj_3_14(); break;
10442            case 14: jj_3_15(); break;
10443            case 15: jj_3_16(); break;
10444            case 16: jj_3_17(); break;
10445            case 17: jj_3_18(); break;
10446            case 18: jj_3_19(); break;
10447            case 19: jj_3_20(); break;
10448            case 20: jj_3_21(); break;
10449            case 21: jj_3_22(); break;
10450            case 22: jj_3_23(); break;
10451            case 23: jj_3_24(); break;
10452            case 24: jj_3_25(); break;
10453            case 25: jj_3_26(); break;
10454            case 26: jj_3_27(); break;
10455            case 27: jj_3_28(); break;
10456            case 28: jj_3_29(); break;
10457            case 29: jj_3_30(); break;
10458            case 30: jj_3_31(); break;
10459            case 31: jj_3_32(); break;
10460            case 32: jj_3_33(); break;
10461            case 33: jj_3_34(); break;
10462            case 34: jj_3_35(); break;
10463            case 35: jj_3_36(); break;
10464            case 36: jj_3_37(); break;
10465            case 37: jj_3_38(); break;
10466            case 38: jj_3_39(); break;
10467            case 39: jj_3_40(); break;
10468            case 40: jj_3_41(); break;
10469            case 41: jj_3_42(); break;
10470            case 42: jj_3_43(); break;
10471            case 43: jj_3_44(); break;
10472            case 44: jj_3_45(); break;
10473            case 45: jj_3_46(); break;
10474            case 46: jj_3_47(); break;
10475            case 47: jj_3_48(); break;
10476            case 48: jj_3_49(); break;
10477            case 49: jj_3_50(); break;
10478            case 50: jj_3_51(); break;
10479            case 51: jj_3_52(); break;
10480            case 52: jj_3_53(); break;
10481            case 53: jj_3_54(); break;
10482            case 54: jj_3_55(); break;
10483            case 55: jj_3_56(); break;
10484            case 56: jj_3_57(); break;
10485            case 57: jj_3_58(); break;
10486            case 58: jj_3_59(); break;
10487            case 59: jj_3_60(); break;
10488            case 60: jj_3_61(); break;
10489          }
10490        }
10491        p = p.next;
10492      } while (p != null);
10493      } catch(LookaheadSuccess ls) { }
10494    }
10495    jj_rescan = false;
10496  }
10497
10498  private void jj_save(int index, int xla) {
10499    JJCalls p = jj_2_rtns[index];
10500    while (p.gen > jj_gen) {
10501      if (p.next == null) { p = p.next = new JJCalls(); break; }
10502      p = p.next;
10503    }
10504    p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
10505  }
10506
10507  static final class JJCalls {
10508    int gen;
10509    Token first;
10510    int arg;
10511    JJCalls next;
10512  }
10513
10514}