Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   package antlr.actions.cpp;
   
   import antlr.ActionTransInfo;
   import antlr.ByteBuffer;
   import antlr.CharBuffer;
   import antlr.CharScanner;
  import antlr.InputBuffer;
  import antlr.RuleBlock;
  import antlr.Token;
  import antlr.TokenStream;
  import antlr.Tool;
  import java.io.Reader;
  
  public class ActionLexer extends CharScanner
    implements ActionLexerTokenTypesTokenStream
  {
    protected RuleBlock currentRule;
    protected CodeGenerator generator;
    protected int lineOffset = 0;
    private Tool antlrTool;
    public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
    public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
    public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2());
    public static final BitSet _tokenSet_3 = new BitSet(mk_tokenSet_3());
    public static final BitSet _tokenSet_4 = new BitSet(mk_tokenSet_4());
    public static final BitSet _tokenSet_5 = new BitSet(mk_tokenSet_5());
    public static final BitSet _tokenSet_6 = new BitSet(mk_tokenSet_6());
    public static final BitSet _tokenSet_7 = new BitSet(mk_tokenSet_7());
    public static final BitSet _tokenSet_8 = new BitSet(mk_tokenSet_8());
    public static final BitSet _tokenSet_9 = new BitSet(mk_tokenSet_9());
    public static final BitSet _tokenSet_10 = new BitSet(mk_tokenSet_10());
    public static final BitSet _tokenSet_11 = new BitSet(mk_tokenSet_11());
    public static final BitSet _tokenSet_12 = new BitSet(mk_tokenSet_12());
    public static final BitSet _tokenSet_13 = new BitSet(mk_tokenSet_13());
    public static final BitSet _tokenSet_14 = new BitSet(mk_tokenSet_14());
    public static final BitSet _tokenSet_15 = new BitSet(mk_tokenSet_15());
    public static final BitSet _tokenSet_16 = new BitSet(mk_tokenSet_16());
    public static final BitSet _tokenSet_17 = new BitSet(mk_tokenSet_17());
    public static final BitSet _tokenSet_18 = new BitSet(mk_tokenSet_18());
    public static final BitSet _tokenSet_19 = new BitSet(mk_tokenSet_19());
    public static final BitSet _tokenSet_20 = new BitSet(mk_tokenSet_20());
    public static final BitSet _tokenSet_21 = new BitSet(mk_tokenSet_21());
    public static final BitSet _tokenSet_22 = new BitSet(mk_tokenSet_22());
    public static final BitSet _tokenSet_23 = new BitSet(mk_tokenSet_23());
    public static final BitSet _tokenSet_24 = new BitSet(mk_tokenSet_24());
    public static final BitSet _tokenSet_25 = new BitSet(mk_tokenSet_25());
    public static final BitSet _tokenSet_26 = new BitSet(mk_tokenSet_26());
  
    public ActionLexer(String paramStringRuleBlock paramRuleBlockCodeGenerator paramCodeGeneratorActionTransInfo paramActionTransInfo)
    {
      this(new StringReader(paramString));
      this.currentRule = paramRuleBlock;
      this.generator = paramCodeGenerator;
      this.transInfo = paramActionTransInfo;
    }
  
    public void setLineOffset(int paramInt)
    {
      setLine(paramInt);
    }
  
    public void setTool(Tool paramTool)
    {
      this.antlrTool = paramTool;
    }
  
    public void reportError(RecognitionException paramRecognitionException)
    {
      this.antlrTool.error("Syntax error in action: " + paramRecognitionException, getFilename(), getLine(), getColumn());
    }
  
    public void reportError(String paramString)
    {
      this.antlrTool.error(paramString, getFilename(), getLine(), getColumn());
    }
  
    public void reportWarning(String paramString)
    {
      if (getFilename() == null)
        this.antlrTool.warning(paramString);
      else
        this.antlrTool.warning(paramString, getFilename(), getLine(), getColumn());
    }
 
   public ActionLexer(InputStream paramInputStream)
   {
     this(new ByteBuffer(paramInputStream));
   }
 
   public ActionLexer(Reader paramReader)
   {
     this(new CharBuffer(paramReader));
   }
 
   public ActionLexer(InputBuffer paramInputBuffer)
   {
     this(new LexerSharedInputState(paramInputBuffer));
   }
 
   public ActionLexer(LexerSharedInputState paramLexerSharedInputState)
   {
     super(paramLexerSharedInputState);
     this.caseSensitiveLiterals = true;
     setCaseSensitive(true);
     this.literals = new Hashtable();
   }
 
   public Token nextToken()
     throws TokenStreamException
   {
     Token localToken = null;
     while (true)
     {
       Object localObject = null;
       int i = 0;
       resetText();
       try
       {
         if ((LA(1) >= '\003') && (LA(1) <= 'ÿ'))
         {
           mACTION(true);
           localToken = this._returnToken;
         }
         else if (LA(1) == 65535)
         {
           uponEOF();
           this._returnToken = makeToken(1);
         }
         else
         {
           throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
         }
         if (this._returnToken == null)
           continue;
         i = this._returnToken.getType();
         this._returnToken.setType(i);
         return this._returnToken;
       }
       catch (RecognitionException localRecognitionException)
       {
         throw new TokenStreamRecognitionException(localRecognitionException);
       }
       catch (CharStreamException localCharStreamException)
       {
         if (!(localCharStreamException instanceof CharStreamIOException))
           break;
         throw new TokenStreamIOException(((CharStreamIOException)localCharStreamException).io);
       }
     }
     throw new TokenStreamException(localCharStreamException.getMessage());
   }
 
   public final void mACTION(boolean paramBoolean)
   {
     Token localToken = null;
     int j = this.text.length();
     int i = 4;
     for (int k = 0; ; k++)
       switch (LA(1))
       {
       case '#':
         mAST_ITEM(false);
         break;
       case '$':
         mTEXT_ITEM(false);
         break;
       default:
         if (_tokenSet_0.member(LA(1)))
         {
           mSTUFF(false);
         }
         else
         {
           if (k >= 1)
             break label126;
           throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
         }
       }
     label126: if ((paramBoolean) && (localToken == null) && (i != -1))
     {
       localToken = makeToken(i);
       localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
     }
     this._returnToken = localToken;
   }
 
   protected final void mSTUFF(boolean paramBoolean)
   {
     Token localToken = null;
     int j = this.text.length();
     int i = 5;
     switch (LA(1))
     {
     case '"':
       mSTRING(false);
       break;
     case '\'':
       mCHAR(false);
       break;
     case '\n':
       match('\n');
       newline();
       break;
     default:
       if ((LA(1) == '/') && ((LA(2) == '*') || (LA(2) == '/')))
       {
         mCOMMENT(false);
       }
       else if ((LA(1) == '\r') && (LA(2) == '\n'))
       {
         match("\r\n");
         newline();
       }
       else if ((LA(1) == '\\') && (LA(2) == '#'))
       {
         match('\\');
         match('#');
         this.text.setLength(j);
         this.text.append("#");
       }
       else if ((LA(1) == '/') && (_tokenSet_1.member(LA(2))))
       {
         match('/');
         match(_tokenSet_1);
       }
       else if (LA(1) == '\r')
       {
         match('\r');
         newline();
       }
       else if (_tokenSet_2.member(LA(1)))
       {
         match(_tokenSet_2);
       }
       else
       {
         throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
       }
     }
     if ((paramBoolean) && (localToken == null) && (i != -1))
     {
       localToken = makeToken(i);
       localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
     }
     this._returnToken = localToken;
   }
 
   protected final void mAST_ITEM(boolean paramBoolean)
   {
     Token localToken1 = null;
     int j = this.text.length();
     int i = 6;
     Token localToken2 = null;
     Token localToken3 = null;
     Token localToken4 = null;
     int k;
     if ((LA(1) == '#') && (LA(2) == '('))
     {
       k = this.text.length();
       match('#');
       this.text.setLength(k);
       mTREE(true);
       localToken2 = this._returnToken;
     }
     else
     {
       String str1;
       if ((LA(1) == '#') && (_tokenSet_3.member(LA(2))))
       {
         k = this.text.length();
         match('#');
         this.text.setLength(k);
         switch (LA(1))
         {
         case '\t':
         case '\n':
         case '\r':
         case ' ':
           mWS(false);
           break;
         case ':':
         case 'A':
         case 'B':
         case 'C':
         case 'D':
         case 'E':
         case 'F':
         case 'G':
         case 'H':
         case 'I':
         case 'J':
         case 'K':
         case 'L':
         case 'M':
         case 'N':
         case 'O':
         case 'P':
         case 'Q':
         case 'R':
         case 'S':
         case 'T':
         case 'U':
         case 'V':
         case 'W':
         case 'X':
         case 'Y':
         case 'Z':
         case '_':
         case 'a':
         case 'b':
         case 'c':
         case 'd':
         case 'e':
         case 'f':
         case 'g':
         case 'h':
         case 'i':
         case 'j':
         case 'k':
         case 'l':
         case 'm':
         case 'n':
         case 'o':
         case 'p':
         case 'q':
         case 'r':
         case 's':
         case 't':
         case 'u':
         case 'v':
         case 'w':
         case 'x':
         case 'y':
         case 'z':
           break;
         case '\013':
         case '\f':
         case '\016':
         case '\017':
         case '\020':
         case '\021':
         case '\022':
         case '\023':
         case '\024':
         case '\025':
         case '\026':
         case '\027':
         case '\030':
         case '\031':
         case '\032':
         case '\033':
         case '\034':
         case '\035':
         case '\036':
         case '\037':
         case '!':
         case '"':
         case '#':
         case '$':
         case '%':
         case '&':
         case '\'':
         case '(':
         case ')':
         case '*':
         case '+':
         case ',':
         case '-':
         case '.':
         case '/':
         case '0':
         case '1':
         case '2':
         case '3':
         case '4':
         case '5':
         case '6':
         case '7':
         case '8':
         case '9':
         case ';':
         case '<':
         case '=':
         case '>':
         case '?':
         case '@':
         case '[':
         case '\\':
         case ']':
         case '^':
         case '`':
         default:
           throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
         }
         mID(true);
         localToken3 = this._returnToken;
         str1 = localToken3.getText();
         String str2 = this.generator.mapTreeId(localToken3.getText(), this.transInfo);
         if ((str2 != null) && (!str1.equals(str2)))
         {
           this.text.setLength(j);
           this.text.append(str2);
         }
         else if ((str1.equals("if")) || (str1.equals("define")) || (str1.equals("ifdef")) || (str1.equals("ifndef")) || (str1.equals("else")) || (str1.equals("elif")) || (str1.equals("endif")) || (str1.equals("warning")) || (str1.equals("error")) || (str1.equals("ident")) || (str1.equals("pragma")) || (str1.equals("include")))
         {
           this.text.setLength(j);
           this.text.append("#" + str1);
         }
         if (_tokenSet_4.member(LA(1)))
           mWS(false);
         if (LA(1) == '=')
           mVAR_ASSIGN(false);
       }
       else if ((LA(1) == '#') && (LA(2) == '['))
       {
         k = this.text.length();
         match('#');
         this.text.setLength(k);
         mAST_CONSTRUCTOR(true);
         localToken4 = this._returnToken;
       }
       else if ((LA(1) == '#') && (LA(2) == '#'))
       {
         match("##");
         if (this.currentRule != null)
         {
           str1 = this.currentRule.getRuleName() + "_AST";
           this.text.setLength(j);
           this.text.append(str1);
           if (this.transInfo != null)
             this.transInfo.refRuleRoot = str1;
         }
         else
         {
           reportWarning("\"##\" not valid in this context");
           this.text.setLength(j);
           this.text.append("##");
         }
         if (_tokenSet_4.member(LA(1)))
           mWS(false);
         if (LA(1) == '=')
           mVAR_ASSIGN(false);
       }
       else
       {
         throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
       }
     }
     if ((paramBoolean) && (localToken1 == null) && (i != -1))
     {
       localToken1 = makeToken(i);
       localToken1.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
     }
     this._returnToken = localToken1;
   }
 
   protected final void mTEXT_ITEM(boolean paramBoolean)
   {
     Token localToken1 = null;
     int j = this.text.length();
     int i = 7;
     Token localToken2 = null;
     Token localToken3 = null;
     Token localToken4 = null;
     Token localToken5 = null;
     Token localToken6 = null;
     Token localToken7 = null;
     String str1;
     String str2;
     if ((LA(1) == '$') && (LA(2) == 'F') && (LA(3) == 'O'))
     {
       match("$FOLLOW");
       if ((_tokenSet_5.member(LA(1))) && (_tokenSet_6.member(LA(2))) && (LA(3) >= '\003') && (LA(3) <= 'ÿ'))
       {
         switch (LA(1))
         {
         case '\t':
         case '\n':
         case '\r':
         case ' ':
           mWS(false);
           break;
         case '(':
           break;
         default:
           throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
         }
         match('(');
         mTEXT_ARG(true);
         localToken6 = this._returnToken;
         match(')');
       }
       str1 = this.currentRule.getRuleName();
       if (localToken6 != null)
         str1 = localToken6.getText();
       str2 = this.generator.getFOLLOWBitSet(str1, 1);
       if (str2 == null)
       {
         reportError("$FOLLOW(" + str1 + ")" + ": unknown rule or bad lookahead computation");
       }
       else
       {
         this.text.setLength(j);
         this.text.append(str2);
       }
     }
     else if ((LA(1) == '$') && (LA(2) == 'F') && (LA(3) == 'I'))
     {
       match("$FIRST");
       if ((_tokenSet_5.member(LA(1))) && (_tokenSet_6.member(LA(2))) && (LA(3) >= '\003') && (LA(3) <= 'ÿ'))
       {
         switch (LA(1))
         {
         case '\t':
         case '\n':
         case '\r':
         case ' ':
           mWS(false);
           break;
         case '(':
           break;
         default:
           throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
         }
         match('(');
         mTEXT_ARG(true);
         localToken7 = this._returnToken;
         match(')');
       }
       str1 = this.currentRule.getRuleName();
       if (localToken7 != null)
         str1 = localToken7.getText();
       str2 = this.generator.getFIRSTBitSet(str1, 1);
       if (str2 == null)
       {
         reportError("$FIRST(" + str1 + ")" + ": unknown rule or bad lookahead computation");
       }
       else
       {
         this.text.setLength(j);
         this.text.append(str2);
       }
     }
     else if ((LA(1) == '$') && (LA(2) == 'a'))
     {
       match("$append");
       switch (LA(1))
       {
       case '\t':
       case '\n':
       case '\r':
       case ' ':
         mWS(false);
         break;
       case '(':
         break;
       default:
         throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
       }
       match('(');
       mTEXT_ARG(true);
       localToken2 = this._returnToken;
       match(')');
       str1 = "text += " + localToken2.getText();
       this.text.setLength(j);
       this.text.append(str1);
     }
     else if ((LA(1) == '$') && (LA(2) == 's'))
     {
       match("$set");
       if ((LA(1) == 'T') && (LA(2) == 'e'))
       {
         match("Text");
         switch (LA(1))
         {
         case '\t':
         case '\n':
         case '\r':
         case ' ':
           mWS(false);
           break;
         case '(':
           break;
         default:
           throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
         }
         match('(');
         mTEXT_ARG(true);
         localToken3 = this._returnToken;
         match(')');
         str1 = "{ text.erase(_begin); text += " + localToken3.getText() + "; }";
         this.text.setLength(j);
         this.text.append(str1);
       }
       else if ((LA(1) == 'T') && (LA(2) == 'o'))
       {
         match("Token");
         switch (LA(1))
         {
         case '\t':
         case '\n':
         case '\r':
         case ' ':
           mWS(false);
           break;
         case '(':
           break;
         default:
           throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
         }
         match('(');
         mTEXT_ARG(true);
         localToken4 = this._returnToken;
         match(')');
         str1 = "_token = " + localToken4.getText();
         this.text.setLength(j);
         this.text.append(str1);
       }
       else if ((LA(1) == 'T') && (LA(2) == 'y'))
       {
         match("Type");
         switch (LA(1))
         {
         case '\t':
         case '\n':
         case '\r':
         case ' ':
           mWS(false);
           break;
         case '(':
           break;
         default:
           throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
         }
         match('(');
         mTEXT_ARG(true);
         localToken5 = this._returnToken;
         match(')');
         str1 = "_ttype = " + localToken5.getText();
         this.text.setLength(j);
         this.text.append(str1);
       }
       else
       {
         throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
       }
     }
     else if ((LA(1) == '$') && (LA(2) == 'g'))
     {
       match("$getText");
       this.text.setLength(j);
       this.text.append("text.substr(_begin,text.length()-_begin)");
     }
     else
     {
       throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
     }
     if ((paramBoolean) && (localToken1 == null) && (i != -1))
     {
       localToken1 = makeToken(i);
       localToken1.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
     }
     this._returnToken = localToken1;
   }
 
   protected final void mCOMMENT(boolean paramBoolean)
   {
     Token localToken = null;
     int j = this.text.length();
     int i = 19;
     if ((LA(1) == '/') && (LA(2) == '/'))
       mSL_COMMENT(false);
     else if ((LA(1) == '/') && (LA(2) == '*'))
       mML_COMMENT(false);
     else
       throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
     if ((paramBoolean) && (localToken == null) && (i != -1))
     {
       localToken = makeToken(i);
       localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
     }
     this._returnToken = localToken;
   }
 
   protected final void mSTRING(boolean paramBoolean)
   {
     Token localToken = null;
     int j = this.text.length();
     int i = 23;
     match('"');
     while (true)
     {
       if (LA(1) == '\\')
       {
         mESC(false);
         continue;
       }
       if (!_tokenSet_7.member(LA(1)))
         break;
       matchNot('"');
     }
     match('"');
     if ((paramBoolean) && (localToken == null) && (i != -1))
     {
       localToken = makeToken(i);
       localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
     }
     this._returnToken = localToken;
   }
 
   protected final void mCHAR(boolean paramBoolean)
   {
     Token localToken = null;
     int j = this.text.length();
     int i = 22;
     match('\'');
     if (LA(1) == '\\')
       mESC(false);
     else if (_tokenSet_8.member(LA(1)))
       matchNot('\'');
     else
       throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
     match('\'');
     if ((paramBoolean) && (localToken == null) && (i != -1))
     {
       localToken = makeToken(i);
       localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
     }
     this._returnToken = localToken;
   }
 
   protected final void mTREE(boolean paramBoolean)
   {
     Token localToken1 = null;
     int j = this.text.length();
     int i = 8;
     Token localToken2 = null;
     Token localToken3 = null;
     StringBuffer localStringBuffer = new StringBuffer();
     int m = 0;
     Vector localVector = new Vector(10);
     int k = this.text.length();
     match('(');
     this.text.setLength(k);
     switch (LA(1))
     {
     case '\t':
     case '\n':
     case '\r':
     case ' ':
       k = this.text.length();
       mWS(false);
       this.text.setLength(k);
       break;
     case '"':
     case '#':
     case '(':
     case ':':
     case 'A':
     case 'B':
     case 'C':
     case 'D':
     case 'E':
     case 'F':
     case 'G':
     case 'H':
     case 'I':
     case 'J':
     case 'K':
     case 'L':
     case 'M':
     case 'N':
     case 'O':
     case 'P':
     case 'Q':
     case 'R':
     case 'S':
     case 'T':
     case 'U':
     case 'V':
     case 'W':
     case 'X':
     case 'Y':
     case 'Z':
     case '[':
     case '_':
     case 'a':
     case 'b':
     case 'c':
     case 'd':
     case 'e':
     case 'f':
     case 'g':
     case 'h':
     case 'i':
     case 'j':
     case 'k':
     case 'l':
     case 'm':
     case 'n':
     case 'o':
     case 'p':
     case 'q':
     case 'r':
     case 's':
     case 't':
     case 'u':
     case 'v':
     case 'w':
     case 'x':
     case 'y':
     case 'z':
       break;
     case '\013':
     case '\f':
     case '\016':
     case '\017':
     case '\020':
     case '\021':
     case '\022':
     case '\023':
     case '\024':
     case '\025':
     case '\026':
     case '\027':
     case '\030':
     case '\031':
     case '\032':
     case '\033':
     case '\034':
     case '\035':
     case '\036':
     case '\037':
     case '!':
     case '$':
     case '%':
     case '&':
     case '\'':
     case ')':
     case '*':
     case '+':
     case ',':
     case '-':
     case '.':
     case '/':
     case '0':
     case '1':
     case '2':
     case '3':
     case '4':
     case '5':
     case '6':
     case '7':
     case '8':
     case '9':
     case ';':
     case '<':
     case '=':
     case '>':
     case '?':
     case '@':
     case '\\':
     case ']':
     case '^':
     case '`':
     default:
       throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
     }
     k = this.text.length();
     mTREE_ELEMENT(true);
     this.text.setLength(k);
     localToken2 = this._returnToken;
     localVector.appendElement(this.generator.processStringForASTConstructor(localToken2.getText()));
     switch (LA(1))
     {
     case '\t':
     case '\n':
     case '\r':
     case ' ':
       k = this.text.length();
       mWS(false);
       this.text.setLength(k);
       break;
     case ')':
     case ',':
       break;
     default:
       throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
     }
     while (LA(1) == ',')
     {
       k = this.text.length();
       match(',');
       this.text.setLength(k);
       switch (LA(1))
       {
       case '\t':
       case '\n':
       case '\r':
       case ' ':
         k = this.text.length();
         mWS(false);
         this.text.setLength(k);
         break;
       case '"':
       case '#':
       case '(':
       case ':':
       case 'A':
       case 'B':
       case 'C':
       case 'D':
       case 'E':
       case 'F':
       case 'G':
       case 'H':
       case 'I':
       case 'J':
       case 'K':
       case 'L':
       case 'M':
       case 'N':
       case 'O':
       case 'P':
       case 'Q':
       case 'R':
       case 'S':
       case 'T':
       case 'U':
       case 'V':
       case 'W':
       case 'X':
       case 'Y':
       case 'Z':
       case '[':
       case '_':
       case 'a':
       case 'b':
       case 'c':
       case 'd':
       case 'e':
       case 'f':
       case 'g':
       case 'h':
       case 'i':
       case 'j':
       case 'k':
       case 'l':
       case 'm':
       case 'n':
       case 'o':
       case 'p':
       case 'q':
       case 'r':
       case 's':
       case 't':
       case 'u':
       case 'v':
       case 'w':
       case 'x':
       case 'y':
       case 'z':
         break;
       case '\013':
       case '\f':
       case '\016':
       case '\017':
       case '\020':
       case '\021':
       case '\022':
       case '\023':
       case '\024':
       case '\025':
       case '\026':
       case '\027':
      case '\030':
      case '\031':
      case '\032':
      case '\033':
      case '\034':
      case '\035':
      case '\036':
      case '\037':
      case '!':
      case '$':
      case '%':
      case '&':
      case '\'':
      case ')':
      case '*':
      case '+':
      case ',':
      case '-':
      case '.':
      case '/':
      case '0':
      case '1':
      case '2':
      case '3':
      case '4':
      case '5':
      case '6':
      case '7':
      case '8':
      case '9':
      case ';':
      case '<':
      case '=':
      case '>':
      case '?':
      case '@':
      case '\\':
      case ']':
      case '^':
      case '`':
      default:
        throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
      }
      k = this.text.length();
      mTREE_ELEMENT(true);
      this.text.setLength(k);
      localToken3 = this._returnToken;
      localVector.appendElement(this.generator.processStringForASTConstructor(localToken3.getText()));
      switch (LA(1))
      {
      case '\t':
      case '\n':
      case '\r':
      case ' ':
        k = this.text.length();
        mWS(false);
        this.text.setLength(k);
        break;
      case ')':
      case ',':
        break;
      default:
        throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
      }
    }
    this.text.setLength(j);
    this.text.append(this.generator.getASTCreateString(localVector));
    k = this.text.length();
    match(')');
    this.text.setLength(k);
    if ((paramBoolean) && (localToken1 == null) && (i != -1))
    {
      localToken1 = makeToken(i);
      localToken1.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken1;
  }
  protected final void mWS(boolean paramBoolean)
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 28;
    for (int k = 0; ; k++)
      if ((LA(1) == '\r') && (LA(2) == '\n'))
      {
        match('\r');
        match('\n');
        newline();
      }
      else if (LA(1) == ' ')
      {
        match(' ');
      }
      else if (LA(1) == '\t')
      {
        match('\t');
      }
      else if (LA(1) == '\r')
      {
        match('\r');
        newline();
      }
      else if (LA(1) == '\n')
      {
        match('\n');
        newline();
      }
      else
      {
        if (k >= 1)
          break;
        throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
      }
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }
  protected final void mID(boolean paramBoolean)
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 17;
    switch (LA(1))
    {
    case 'a':
    case 'b':
    case 'c':
    case 'd':
    case 'e':
    case 'f':
    case 'g':
    case 'h':
    case 'i':
    case 'j':
    case 'k':
    case 'l':
    case 'm':
    case 'n':
    case 'o':
    case 'p':
    case 'q':
    case 'r':
    case 's':
    case 't':
    case 'u':
    case 'v':
    case 'w':
    case 'x':
    case 'y':
    case 'z':
      matchRange('a''z');
      break;
    case 'A':
    case 'B':
    case 'C':
    case 'D':
    case 'E':
    case 'F':
    case 'G':
    case 'H':
    case 'I':
    case 'J':
    case 'K':
    case 'L':
    case 'M':
    case 'N':
    case 'O':
    case 'P':
    case 'Q':
    case 'R':
    case 'S':
    case 'T':
    case 'U':
    case 'V':
    case 'W':
    case 'X':
    case 'Y':
    case 'Z':
      matchRange('A''Z');
      break;
    case '_':
      match('_');
      break;
    case ':':
      match("::");
      break;
    case ';':
    case '<':
    case '=':
    case '>':
    case '?':
    case '@':
    case '[':
    case '\\':
    case ']':
    case '^':
    case '`':
    default:
      throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
    }
    while (_tokenSet_9.member(LA(1)))
      switch (LA(1))
      {
      case 'a':
      case 'b':
      case 'c':
      case 'd':
      case 'e':
      case 'f':
      case 'g':
      case 'h':
      case 'i':
      case 'j':
      case 'k':
      case 'l':
      case 'm':
      case 'n':
      case 'o':
      case 'p':
      case 'q':
      case 'r':
      case 's':
      case 't':
      case 'u':
      case 'v':
      case 'w':
      case 'x':
      case 'y':
      case 'z':
        matchRange('a''z');
        break;
      case 'A':
      case 'B':
      case 'C':
      case 'D':
      case 'E':
      case 'F':
      case 'G':
      case 'H':
      case 'I':
      case 'J':
      case 'K':
      case 'L':
      case 'M':
      case 'N':
      case 'O':
      case 'P':
      case 'Q':
      case 'R':
      case 'S':
      case 'T':
      case 'U':
      case 'V':
      case 'W':
      case 'X':
      case 'Y':
      case 'Z':
        matchRange('A''Z');
        break;
      case '0':
      case '1':
      case '2':
      case '3':
      case '4':
      case '5':
      case '6':
      case '7':
      case '8':
      case '9':
        matchRange('0''9');
        break;
      case '_':
        match('_');
        break;
      case ':':
        match("::");
        break;
      case ';':
      case '<':
      case '=':
      case '>':
      case '?':
      case '@':
      case '[':
      case '\\':
      case ']':
      case '^':
      case '`':
      default:
        throw new NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
      }
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }
  protected final void mVAR_ASSIGN(boolean paramBoolean)
  {
    Token localToken = null;
    int j = this.text.length();
    int i = 18;
    match('=');
    if ((LA(1) != '=') && (this.transInfo != null) && (this.transInfo.refRuleRoot != null))
      this.transInfo.assignToRoot = true;
    if ((paramBoolean) && (localToken == null) && (i != -1))
    {
      localToken = makeToken(i);
      localToken.setText(new String(this.text.getBuffer(), j, this.text.length() - j));
    }
    this._returnToken = localToken;
  }
  protected final void mAST_CONSTRUCTOR(boolean paramBoolean)
  {
    Token localToken1 = null;
    int j = this.text.length();
    int i = 10;
    Token localToken2 = null;
    Token localToken3 = null;
    int k = this.text.length();
    match('[');
    this.text.setLength(k);
    switch (LA(1))
    {
    case '\t':
    case '\n':
    case '\r':
    case ' ':
      k = this.text.length();
      mWS(false);
      this.text.setLength(k);
      break;
    case '"':
    case '#':
    case '(':
    case '0':
    case '1':
    case '2':
    case '3':
    case '4':
    case '5':
    case '6':
    case '7':
    case '8':
    case '9':
    case ':':
    case 'A':
    case 'B':
    case 'C':
    case 'D':
    case 'E':
    case 'F':
    case 'G':
    case 'H':
    case 'I':
    case 'J':
    case 'K':
    case 'L':
    case 'M':
    case 'N':
    case 'O':
    case 'P':
    case 'Q':
    case 'R':
    case 'S':
    case 'T':
    case 'U':
    case 'V':
    case 'W':