You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2011/07/29 16:21:09 UTC

svn commit: r1152233 [4/9] - in /cassandra/trunk: conf/ src/gen-java/ src/gen-java/org/ src/gen-java/org/apache/ src/gen-java/org/apache/cassandra/ src/gen-java/org/apache/cassandra/cli/ src/gen-java/org/apache/cassandra/cql/ src/java/org/apache/cassan...

Added: cassandra/trunk/src/gen-java/org/apache/cassandra/cli/CliParser.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/gen-java/org/apache/cassandra/cli/CliParser.java?rev=1152233&view=auto
==============================================================================
--- cassandra/trunk/src/gen-java/org/apache/cassandra/cli/CliParser.java (added)
+++ cassandra/trunk/src/gen-java/org/apache/cassandra/cli/CliParser.java Fri Jul 29 14:21:06 2011
@@ -0,0 +1,8982 @@
+// $ANTLR 3.2 Sep 23, 2009 12:02:23 /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g 2011-07-28 15:11:02
+
+package org.apache.cassandra.cli;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+
+import org.antlr.runtime.tree.*;
+
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+public class CliParser extends Parser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "NODE_CONNECT", "NODE_DESCRIBE_TABLE", "NODE_DESCRIBE_CLUSTER", "NODE_USE_TABLE", "NODE_EXIT", "NODE_HELP", "NODE_NO_OP", "NODE_SHOW_CLUSTER_NAME", "NODE_SHOW_VERSION", "NODE_SHOW_KEYSPACES", "NODE_THRIFT_GET", "NODE_THRIFT_GET_WITH_CONDITIONS", "NODE_THRIFT_SET", "NODE_THRIFT_COUNT", "NODE_THRIFT_DEL", "NODE_THRIFT_INCR", "NODE_THRIFT_DECR", "NODE_ADD_COLUMN_FAMILY", "NODE_ADD_KEYSPACE", "NODE_DEL_KEYSPACE", "NODE_DEL_COLUMN_FAMILY", "NODE_UPDATE_KEYSPACE", "NODE_UPDATE_COLUMN_FAMILY", "NODE_LIST", "NODE_TRUNCATE", "NODE_ASSUME", "NODE_CONSISTENCY_LEVEL", "NODE_DROP_INDEX", "NODE_COLUMN_ACCESS", "NODE_ID_LIST", "NODE_NEW_CF_ACCESS", "NODE_NEW_KEYSPACE_ACCESS", "CONVERT_TO_TYPE", "FUNCTION_CALL", "CONDITION", "CONDITIONS", "ARRAY", "HASH", "PAIR", "NODE_LIMIT", "NODE_KEY_RANGE", "SEMICOLON", "CONNECT", "HELP", "USE", "DESCRIBE", "KEYSPACE", "EXIT", "QUIT", "SHOW", "KEYSPACES", "API_VERSION", "CREATE", "UPDATE", "COLUMN", "FAMIL
 Y", "DROP", "INDEX", "GET", "SET", "INCR", "DECR", "DEL", "COUNT", "LIST", "TRUNCATE", "ASSUME", "CONSISTENCYLEVEL", "IntegerPositiveLiteral", "Identifier", "StringLiteral", "WITH", "TTL", "BY", "ON", "AND", "IntegerNegativeLiteral", "DoubleLiteral", "IP_ADDRESS", "CONFIG", "FILE", "LIMIT", "Letter", "Digit", "Alnum", "SingleStringCharacter", "EscapeSequence", "CharacterEscapeSequence", "HexEscapeSequence", "UnicodeEscapeSequence", "SingleEscapeCharacter", "NonEscapeCharacter", "EscapeCharacter", "DecimalDigit", "HexDigit", "WS", "COMMENT", "'/'", "'CLUSTER'", "'CLUSTER NAME'", "'?'", "'AS'", "'WHERE'", "'='", "'>'", "'<'", "'>='", "'<='", "'.'", "'['", "','", "']'", "'{'", "'}'", "':'", "'('", "')'"
+    };
+    public static final int NODE_THRIFT_GET_WITH_CONDITIONS=15;
+    public static final int TTL=76;
+    public static final int NODE_SHOW_KEYSPACES=13;
+    public static final int CONDITION=38;
+    public static final int COUNT=67;
+    public static final int DecimalDigit=97;
+    public static final int EOF=-1;
+    public static final int Identifier=73;
+    public static final int NODE_UPDATE_COLUMN_FAMILY=26;
+    public static final int SingleStringCharacter=89;
+    public static final int NODE_USE_TABLE=7;
+    public static final int NODE_DEL_KEYSPACE=23;
+    public static final int CREATE=56;
+    public static final int NODE_CONNECT=4;
+    public static final int CONNECT=46;
+    public static final int INCR=64;
+    public static final int SingleEscapeCharacter=94;
+    public static final int FAMILY=59;
+    public static final int GET=62;
+    public static final int NODE_DESCRIBE_TABLE=5;
+    public static final int COMMENT=100;
+    public static final int SHOW=53;
+    public static final int ARRAY=40;
+    public static final int NODE_ADD_KEYSPACE=22;
+    public static final int EXIT=51;
+    public static final int NODE_THRIFT_DEL=18;
+    public static final int IntegerNegativeLiteral=80;
+    public static final int ON=78;
+    public static final int NODE_DROP_INDEX=31;
+    public static final int SEMICOLON=45;
+    public static final int KEYSPACES=54;
+    public static final int CONDITIONS=39;
+    public static final int FILE=84;
+    public static final int NODE_LIMIT=43;
+    public static final int LIST=68;
+    public static final int NODE_DESCRIBE_CLUSTER=6;
+    public static final int IP_ADDRESS=82;
+    public static final int NODE_THRIFT_SET=16;
+    public static final int NODE_NO_OP=10;
+    public static final int NODE_ID_LIST=33;
+    public static final int WS=99;
+    public static final int ASSUME=70;
+    public static final int NODE_THRIFT_COUNT=17;
+    public static final int DESCRIBE=49;
+    public static final int Alnum=88;
+    public static final int CharacterEscapeSequence=91;
+    public static final int NODE_SHOW_CLUSTER_NAME=11;
+    public static final int USE=48;
+    public static final int NODE_THRIFT_DECR=20;
+    public static final int FUNCTION_CALL=37;
+    public static final int EscapeSequence=90;
+    public static final int Letter=86;
+    public static final int DoubleLiteral=81;
+    public static final int HELP=47;
+    public static final int HexEscapeSequence=92;
+    public static final int NODE_EXIT=8;
+    public static final int LIMIT=85;
+    public static final int T__118=118;
+    public static final int T__119=119;
+    public static final int DEL=66;
+    public static final int T__116=116;
+    public static final int T__117=117;
+    public static final int T__114=114;
+    public static final int T__115=115;
+    public static final int NODE_LIST=27;
+    public static final int UPDATE=57;
+    public static final int NODE_UPDATE_KEYSPACE=25;
+    public static final int T__120=120;
+    public static final int AND=79;
+    public static final int NODE_NEW_CF_ACCESS=34;
+    public static final int CONSISTENCYLEVEL=71;
+    public static final int HexDigit=98;
+    public static final int QUIT=52;
+    public static final int NODE_TRUNCATE=28;
+    public static final int INDEX=61;
+    public static final int NODE_SHOW_VERSION=12;
+    public static final int T__107=107;
+    public static final int T__108=108;
+    public static final int NODE_NEW_KEYSPACE_ACCESS=35;
+    public static final int T__109=109;
+    public static final int T__103=103;
+    public static final int T__104=104;
+    public static final int TRUNCATE=69;
+    public static final int T__105=105;
+    public static final int T__106=106;
+    public static final int COLUMN=58;
+    public static final int T__111=111;
+    public static final int T__110=110;
+    public static final int T__113=113;
+    public static final int EscapeCharacter=96;
+    public static final int T__112=112;
+    public static final int PAIR=42;
+    public static final int NODE_CONSISTENCY_LEVEL=30;
+    public static final int WITH=75;
+    public static final int BY=77;
+    public static final int UnicodeEscapeSequence=93;
+    public static final int HASH=41;
+    public static final int SET=63;
+    public static final int T__102=102;
+    public static final int T__101=101;
+    public static final int Digit=87;
+    public static final int API_VERSION=55;
+    public static final int NODE_ASSUME=29;
+    public static final int CONVERT_TO_TYPE=36;
+    public static final int NODE_THRIFT_GET=14;
+    public static final int NODE_DEL_COLUMN_FAMILY=24;
+    public static final int NODE_KEY_RANGE=44;
+    public static final int KEYSPACE=50;
+    public static final int StringLiteral=74;
+    public static final int NODE_HELP=9;
+    public static final int CONFIG=83;
+    public static final int IntegerPositiveLiteral=72;
+    public static final int DROP=60;
+    public static final int NonEscapeCharacter=95;
+    public static final int DECR=65;
+    public static final int NODE_ADD_COLUMN_FAMILY=21;
+    public static final int NODE_THRIFT_INCR=19;
+    public static final int NODE_COLUMN_ACCESS=32;
+
+    // delegates
+    // delegators
+
+
+        public CliParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public CliParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+    protected TreeAdaptor adaptor = new CommonTreeAdaptor();
+
+    public void setTreeAdaptor(TreeAdaptor adaptor) {
+        this.adaptor = adaptor;
+    }
+    public TreeAdaptor getTreeAdaptor() {
+        return adaptor;
+    }
+
+    public String[] getTokenNames() { return CliParser.tokenNames; }
+    public String getGrammarFileName() { return "/home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g"; }
+
+
+        public void reportError(RecognitionException e) 
+        {
+            String errorMessage;
+
+            if (e instanceof NoViableAltException)
+            {
+                errorMessage = "Command not found: `" + this.input + "`. Type 'help;' or '?' for help.";
+            }
+            else
+            {
+                errorMessage = "Syntax error at position " + e.charPositionInLine + ": " + this.getErrorMessage(e, this.getTokenNames());
+            }
+
+            throw new RuntimeException(errorMessage);
+        }
+
+
+    public static class root_return extends ParserRuleReturnScope {
+        CommonTree tree;
+        public Object getTree() { return tree; }
+    };
+
+    // $ANTLR start "root"
+    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:139:1: root : statement ( SEMICOLON )? EOF -> statement ;
+    public final CliParser.root_return root() throws RecognitionException {
+        CliParser.root_return retval = new CliParser.root_return();
+        retval.start = input.LT(1);
+
+        CommonTree root_0 = null;
+
+        Token SEMICOLON2=null;
+        Token EOF3=null;
+        CliParser.statement_return statement1 = null;
+
+
+        CommonTree SEMICOLON2_tree=null;
+        CommonTree EOF3_tree=null;
+        RewriteRuleTokenStream stream_SEMICOLON=new RewriteRuleTokenStream(adaptor,"token SEMICOLON");
+        RewriteRuleTokenStream stream_EOF=new RewriteRuleTokenStream(adaptor,"token EOF");
+        RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
+        try {
+            // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:139:5: ( statement ( SEMICOLON )? EOF -> statement )
+            // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:139:7: statement ( SEMICOLON )? EOF
+            {
+            pushFollow(FOLLOW_statement_in_root414);
+            statement1=statement();
+
+            state._fsp--;
+            if (state.failed) return retval;
+            if ( state.backtracking==0 ) stream_statement.add(statement1.getTree());
+            // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:139:17: ( SEMICOLON )?
+            int alt1=2;
+            int LA1_0 = input.LA(1);
+
+            if ( (LA1_0==SEMICOLON) ) {
+                alt1=1;
+            }
+            switch (alt1) {
+                case 1 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:0:0: SEMICOLON
+                    {
+                    SEMICOLON2=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_root416); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_SEMICOLON.add(SEMICOLON2);
+
+
+                    }
+                    break;
+
+            }
+
+            EOF3=(Token)match(input,EOF,FOLLOW_EOF_in_root419); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_EOF.add(EOF3);
+
+
+
+            // AST REWRITE
+            // elements: statement
+            // token labels: 
+            // rule labels: retval
+            // token list labels: 
+            // rule list labels: 
+            // wildcard labels: 
+            if ( state.backtracking==0 ) {
+            retval.tree = root_0;
+            RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+            root_0 = (CommonTree)adaptor.nil();
+            // 139:32: -> statement
+            {
+                adaptor.addChild(root_0, stream_statement.nextTree());
+
+            }
+
+            retval.tree = root_0;}
+            }
+
+            retval.stop = input.LT(-1);
+
+            if ( state.backtracking==0 ) {
+
+            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+    	retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+
+        }
+        finally {
+        }
+        return retval;
+    }
+    // $ANTLR end "root"
+
+    public static class statement_return extends ParserRuleReturnScope {
+        CommonTree tree;
+        public Object getTree() { return tree; }
+    };
+
+    // $ANTLR start "statement"
+    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:141:1: statement : ( connectStatement | exitStatement | countStatement | describeTable | describeCluster | addKeyspace | addColumnFamily | updateKeyspace | updateColumnFamily | delColumnFamily | delKeyspace | useKeyspace | delStatement | getStatement | helpStatement | setStatement | incrStatement | showStatement | listStatement | truncateStatement | assumeStatement | consistencyLevelStatement | dropIndex | -> ^( NODE_NO_OP ) );
+    public final CliParser.statement_return statement() throws RecognitionException {
+        CliParser.statement_return retval = new CliParser.statement_return();
+        retval.start = input.LT(1);
+
+        CommonTree root_0 = null;
+
+        CliParser.connectStatement_return connectStatement4 = null;
+
+        CliParser.exitStatement_return exitStatement5 = null;
+
+        CliParser.countStatement_return countStatement6 = null;
+
+        CliParser.describeTable_return describeTable7 = null;
+
+        CliParser.describeCluster_return describeCluster8 = null;
+
+        CliParser.addKeyspace_return addKeyspace9 = null;
+
+        CliParser.addColumnFamily_return addColumnFamily10 = null;
+
+        CliParser.updateKeyspace_return updateKeyspace11 = null;
+
+        CliParser.updateColumnFamily_return updateColumnFamily12 = null;
+
+        CliParser.delColumnFamily_return delColumnFamily13 = null;
+
+        CliParser.delKeyspace_return delKeyspace14 = null;
+
+        CliParser.useKeyspace_return useKeyspace15 = null;
+
+        CliParser.delStatement_return delStatement16 = null;
+
+        CliParser.getStatement_return getStatement17 = null;
+
+        CliParser.helpStatement_return helpStatement18 = null;
+
+        CliParser.setStatement_return setStatement19 = null;
+
+        CliParser.incrStatement_return incrStatement20 = null;
+
+        CliParser.showStatement_return showStatement21 = null;
+
+        CliParser.listStatement_return listStatement22 = null;
+
+        CliParser.truncateStatement_return truncateStatement23 = null;
+
+        CliParser.assumeStatement_return assumeStatement24 = null;
+
+        CliParser.consistencyLevelStatement_return consistencyLevelStatement25 = null;
+
+        CliParser.dropIndex_return dropIndex26 = null;
+
+
+
+        try {
+            // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:142:5: ( connectStatement | exitStatement | countStatement | describeTable | describeCluster | addKeyspace | addColumnFamily | updateKeyspace | updateColumnFamily | delColumnFamily | delKeyspace | useKeyspace | delStatement | getStatement | helpStatement | setStatement | incrStatement | showStatement | listStatement | truncateStatement | assumeStatement | consistencyLevelStatement | dropIndex | -> ^( NODE_NO_OP ) )
+            int alt2=24;
+            alt2 = dfa2.predict(input);
+            switch (alt2) {
+                case 1 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:142:7: connectStatement
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_connectStatement_in_statement435);
+                    connectStatement4=connectStatement();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, connectStatement4.getTree());
+
+                    }
+                    break;
+                case 2 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:143:7: exitStatement
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_exitStatement_in_statement443);
+                    exitStatement5=exitStatement();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, exitStatement5.getTree());
+
+                    }
+                    break;
+                case 3 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:144:7: countStatement
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_countStatement_in_statement451);
+                    countStatement6=countStatement();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, countStatement6.getTree());
+
+                    }
+                    break;
+                case 4 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:145:7: describeTable
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_describeTable_in_statement459);
+                    describeTable7=describeTable();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, describeTable7.getTree());
+
+                    }
+                    break;
+                case 5 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:146:7: describeCluster
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_describeCluster_in_statement467);
+                    describeCluster8=describeCluster();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, describeCluster8.getTree());
+
+                    }
+                    break;
+                case 6 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:147:7: addKeyspace
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_addKeyspace_in_statement475);
+                    addKeyspace9=addKeyspace();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, addKeyspace9.getTree());
+
+                    }
+                    break;
+                case 7 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:148:7: addColumnFamily
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_addColumnFamily_in_statement483);
+                    addColumnFamily10=addColumnFamily();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, addColumnFamily10.getTree());
+
+                    }
+                    break;
+                case 8 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:149:7: updateKeyspace
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_updateKeyspace_in_statement491);
+                    updateKeyspace11=updateKeyspace();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, updateKeyspace11.getTree());
+
+                    }
+                    break;
+                case 9 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:150:7: updateColumnFamily
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_updateColumnFamily_in_statement499);
+                    updateColumnFamily12=updateColumnFamily();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, updateColumnFamily12.getTree());
+
+                    }
+                    break;
+                case 10 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:151:7: delColumnFamily
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_delColumnFamily_in_statement507);
+                    delColumnFamily13=delColumnFamily();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, delColumnFamily13.getTree());
+
+                    }
+                    break;
+                case 11 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:152:7: delKeyspace
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_delKeyspace_in_statement515);
+                    delKeyspace14=delKeyspace();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, delKeyspace14.getTree());
+
+                    }
+                    break;
+                case 12 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:153:7: useKeyspace
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_useKeyspace_in_statement523);
+                    useKeyspace15=useKeyspace();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, useKeyspace15.getTree());
+
+                    }
+                    break;
+                case 13 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:154:7: delStatement
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_delStatement_in_statement531);
+                    delStatement16=delStatement();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, delStatement16.getTree());
+
+                    }
+                    break;
+                case 14 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:155:7: getStatement
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_getStatement_in_statement539);
+                    getStatement17=getStatement();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, getStatement17.getTree());
+
+                    }
+                    break;
+                case 15 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:156:7: helpStatement
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_helpStatement_in_statement547);
+                    helpStatement18=helpStatement();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, helpStatement18.getTree());
+
+                    }
+                    break;
+                case 16 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:157:7: setStatement
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_setStatement_in_statement555);
+                    setStatement19=setStatement();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, setStatement19.getTree());
+
+                    }
+                    break;
+                case 17 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:158:7: incrStatement
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_incrStatement_in_statement563);
+                    incrStatement20=incrStatement();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, incrStatement20.getTree());
+
+                    }
+                    break;
+                case 18 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:159:7: showStatement
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_showStatement_in_statement571);
+                    showStatement21=showStatement();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, showStatement21.getTree());
+
+                    }
+                    break;
+                case 19 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:160:7: listStatement
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_listStatement_in_statement579);
+                    listStatement22=listStatement();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, listStatement22.getTree());
+
+                    }
+                    break;
+                case 20 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:161:7: truncateStatement
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_truncateStatement_in_statement587);
+                    truncateStatement23=truncateStatement();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, truncateStatement23.getTree());
+
+                    }
+                    break;
+                case 21 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:162:7: assumeStatement
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_assumeStatement_in_statement595);
+                    assumeStatement24=assumeStatement();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, assumeStatement24.getTree());
+
+                    }
+                    break;
+                case 22 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:163:7: consistencyLevelStatement
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_consistencyLevelStatement_in_statement603);
+                    consistencyLevelStatement25=consistencyLevelStatement();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, consistencyLevelStatement25.getTree());
+
+                    }
+                    break;
+                case 23 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:164:7: dropIndex
+                    {
+                    root_0 = (CommonTree)adaptor.nil();
+
+                    pushFollow(FOLLOW_dropIndex_in_statement611);
+                    dropIndex26=dropIndex();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, dropIndex26.getTree());
+
+                    }
+                    break;
+                case 24 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:165:7: 
+                    {
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 165:7: -> ^( NODE_NO_OP )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:165:10: ^( NODE_NO_OP )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_NO_OP, "NODE_NO_OP"), root_1);
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+
+            }
+            retval.stop = input.LT(-1);
+
+            if ( state.backtracking==0 ) {
+
+            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+    	retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+
+        }
+        finally {
+        }
+        return retval;
+    }
+    // $ANTLR end "statement"
+
+    public static class connectStatement_return extends ParserRuleReturnScope {
+        CommonTree tree;
+        public Object getTree() { return tree; }
+    };
+
+    // $ANTLR start "connectStatement"
+    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:168:1: connectStatement : ( CONNECT host '/' port ( username password )? -> ^( NODE_CONNECT host port ( username password )? ) | CONNECT ip_address '/' port ( username password )? -> ^( NODE_CONNECT ip_address port ( username password )? ) );
+    public final CliParser.connectStatement_return connectStatement() throws RecognitionException {
+        CliParser.connectStatement_return retval = new CliParser.connectStatement_return();
+        retval.start = input.LT(1);
+
+        CommonTree root_0 = null;
+
+        Token CONNECT27=null;
+        Token char_literal29=null;
+        Token CONNECT33=null;
+        Token char_literal35=null;
+        CliParser.host_return host28 = null;
+
+        CliParser.port_return port30 = null;
+
+        CliParser.username_return username31 = null;
+
+        CliParser.password_return password32 = null;
+
+        CliParser.ip_address_return ip_address34 = null;
+
+        CliParser.port_return port36 = null;
+
+        CliParser.username_return username37 = null;
+
+        CliParser.password_return password38 = null;
+
+
+        CommonTree CONNECT27_tree=null;
+        CommonTree char_literal29_tree=null;
+        CommonTree CONNECT33_tree=null;
+        CommonTree char_literal35_tree=null;
+        RewriteRuleTokenStream stream_CONNECT=new RewriteRuleTokenStream(adaptor,"token CONNECT");
+        RewriteRuleTokenStream stream_101=new RewriteRuleTokenStream(adaptor,"token 101");
+        RewriteRuleSubtreeStream stream_port=new RewriteRuleSubtreeStream(adaptor,"rule port");
+        RewriteRuleSubtreeStream stream_ip_address=new RewriteRuleSubtreeStream(adaptor,"rule ip_address");
+        RewriteRuleSubtreeStream stream_username=new RewriteRuleSubtreeStream(adaptor,"rule username");
+        RewriteRuleSubtreeStream stream_host=new RewriteRuleSubtreeStream(adaptor,"rule host");
+        RewriteRuleSubtreeStream stream_password=new RewriteRuleSubtreeStream(adaptor,"rule password");
+        try {
+            // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:169:5: ( CONNECT host '/' port ( username password )? -> ^( NODE_CONNECT host port ( username password )? ) | CONNECT ip_address '/' port ( username password )? -> ^( NODE_CONNECT ip_address port ( username password )? ) )
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==CONNECT) ) {
+                int LA5_1 = input.LA(2);
+
+                if ( (LA5_1==Identifier) ) {
+                    alt5=1;
+                }
+                else if ( (LA5_1==IP_ADDRESS) ) {
+                    alt5=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return retval;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 5, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return retval;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 5, 0, input);
+
+                throw nvae;
+            }
+            switch (alt5) {
+                case 1 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:169:7: CONNECT host '/' port ( username password )?
+                    {
+                    CONNECT27=(Token)match(input,CONNECT,FOLLOW_CONNECT_in_connectStatement640); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_CONNECT.add(CONNECT27);
+
+                    pushFollow(FOLLOW_host_in_connectStatement642);
+                    host28=host();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) stream_host.add(host28.getTree());
+                    char_literal29=(Token)match(input,101,FOLLOW_101_in_connectStatement644); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_101.add(char_literal29);
+
+                    pushFollow(FOLLOW_port_in_connectStatement646);
+                    port30=port();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) stream_port.add(port30.getTree());
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:169:29: ( username password )?
+                    int alt3=2;
+                    int LA3_0 = input.LA(1);
+
+                    if ( (LA3_0==Identifier) ) {
+                        alt3=1;
+                    }
+                    switch (alt3) {
+                        case 1 :
+                            // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:169:30: username password
+                            {
+                            pushFollow(FOLLOW_username_in_connectStatement649);
+                            username31=username();
+
+                            state._fsp--;
+                            if (state.failed) return retval;
+                            if ( state.backtracking==0 ) stream_username.add(username31.getTree());
+                            pushFollow(FOLLOW_password_in_connectStatement651);
+                            password32=password();
+
+                            state._fsp--;
+                            if (state.failed) return retval;
+                            if ( state.backtracking==0 ) stream_password.add(password32.getTree());
+
+                            }
+                            break;
+
+                    }
+
+
+
+                    // AST REWRITE
+                    // elements: username, port, password, host
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 170:9: -> ^( NODE_CONNECT host port ( username password )? )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:170:12: ^( NODE_CONNECT host port ( username password )? )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_CONNECT, "NODE_CONNECT"), root_1);
+
+                        adaptor.addChild(root_1, stream_host.nextTree());
+                        adaptor.addChild(root_1, stream_port.nextTree());
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:170:37: ( username password )?
+                        if ( stream_username.hasNext()||stream_password.hasNext() ) {
+                            adaptor.addChild(root_1, stream_username.nextTree());
+                            adaptor.addChild(root_1, stream_password.nextTree());
+
+                        }
+                        stream_username.reset();
+                        stream_password.reset();
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 2 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:171:7: CONNECT ip_address '/' port ( username password )?
+                    {
+                    CONNECT33=(Token)match(input,CONNECT,FOLLOW_CONNECT_in_connectStatement686); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_CONNECT.add(CONNECT33);
+
+                    pushFollow(FOLLOW_ip_address_in_connectStatement688);
+                    ip_address34=ip_address();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) stream_ip_address.add(ip_address34.getTree());
+                    char_literal35=(Token)match(input,101,FOLLOW_101_in_connectStatement690); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_101.add(char_literal35);
+
+                    pushFollow(FOLLOW_port_in_connectStatement692);
+                    port36=port();
+
+                    state._fsp--;
+                    if (state.failed) return retval;
+                    if ( state.backtracking==0 ) stream_port.add(port36.getTree());
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:171:35: ( username password )?
+                    int alt4=2;
+                    int LA4_0 = input.LA(1);
+
+                    if ( (LA4_0==Identifier) ) {
+                        alt4=1;
+                    }
+                    switch (alt4) {
+                        case 1 :
+                            // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:171:36: username password
+                            {
+                            pushFollow(FOLLOW_username_in_connectStatement695);
+                            username37=username();
+
+                            state._fsp--;
+                            if (state.failed) return retval;
+                            if ( state.backtracking==0 ) stream_username.add(username37.getTree());
+                            pushFollow(FOLLOW_password_in_connectStatement697);
+                            password38=password();
+
+                            state._fsp--;
+                            if (state.failed) return retval;
+                            if ( state.backtracking==0 ) stream_password.add(password38.getTree());
+
+                            }
+                            break;
+
+                    }
+
+
+
+                    // AST REWRITE
+                    // elements: password, port, ip_address, username
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 172:9: -> ^( NODE_CONNECT ip_address port ( username password )? )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:172:12: ^( NODE_CONNECT ip_address port ( username password )? )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_CONNECT, "NODE_CONNECT"), root_1);
+
+                        adaptor.addChild(root_1, stream_ip_address.nextTree());
+                        adaptor.addChild(root_1, stream_port.nextTree());
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:172:43: ( username password )?
+                        if ( stream_password.hasNext()||stream_username.hasNext() ) {
+                            adaptor.addChild(root_1, stream_username.nextTree());
+                            adaptor.addChild(root_1, stream_password.nextTree());
+
+                        }
+                        stream_password.reset();
+                        stream_username.reset();
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+
+            }
+            retval.stop = input.LT(-1);
+
+            if ( state.backtracking==0 ) {
+
+            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
+            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+    	retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
+
+        }
+        finally {
+        }
+        return retval;
+    }
+    // $ANTLR end "connectStatement"
+
+    public static class helpStatement_return extends ParserRuleReturnScope {
+        CommonTree tree;
+        public Object getTree() { return tree; }
+    };
+
+    // $ANTLR start "helpStatement"
+    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:175:1: helpStatement : ( HELP HELP -> ^( NODE_HELP NODE_HELP ) | HELP CONNECT -> ^( NODE_HELP NODE_CONNECT ) | HELP USE -> ^( NODE_HELP NODE_USE_TABLE ) | HELP DESCRIBE KEYSPACE -> ^( NODE_HELP NODE_DESCRIBE_TABLE ) | HELP DESCRIBE 'CLUSTER' -> ^( NODE_HELP NODE_DESCRIBE_CLUSTER ) | HELP EXIT -> ^( NODE_HELP NODE_EXIT ) | HELP QUIT -> ^( NODE_HELP NODE_EXIT ) | HELP SHOW 'CLUSTER NAME' -> ^( NODE_HELP NODE_SHOW_CLUSTER_NAME ) | HELP SHOW KEYSPACES -> ^( NODE_HELP NODE_SHOW_KEYSPACES ) | HELP SHOW API_VERSION -> ^( NODE_HELP NODE_SHOW_VERSION ) | HELP CREATE KEYSPACE -> ^( NODE_HELP NODE_ADD_KEYSPACE ) | HELP UPDATE KEYSPACE -> ^( NODE_HELP NODE_UPDATE_KEYSPACE ) | HELP CREATE COLUMN FAMILY -> ^( NODE_HELP NODE_ADD_COLUMN_FAMILY ) | HELP UPDATE COLUMN FAMILY -> ^( NODE_HELP NODE_UPDATE_COLUMN_FAMILY ) | HELP DROP KEYSPACE -> ^( NODE_HELP NODE_DEL_KEYSPACE ) | HELP DROP COLUMN FAMILY -> ^( NODE_HELP
  NODE_DEL_COLUMN_FAMILY ) | HELP DROP INDEX -> ^( NODE_HELP NODE_DROP_INDEX ) | HELP GET -> ^( NODE_HELP NODE_THRIFT_GET ) | HELP SET -> ^( NODE_HELP NODE_THRIFT_SET ) | HELP INCR -> ^( NODE_HELP NODE_THRIFT_INCR ) | HELP DECR -> ^( NODE_HELP NODE_THRIFT_DECR ) | HELP DEL -> ^( NODE_HELP NODE_THRIFT_DEL ) | HELP COUNT -> ^( NODE_HELP NODE_THRIFT_COUNT ) | HELP LIST -> ^( NODE_HELP NODE_LIST ) | HELP TRUNCATE -> ^( NODE_HELP NODE_TRUNCATE ) | HELP ASSUME -> ^( NODE_HELP NODE_ASSUME ) | HELP CONSISTENCYLEVEL -> ^( NODE_HELP NODE_CONSISTENCY_LEVEL ) | HELP -> ^( NODE_HELP ) | '?' -> ^( NODE_HELP ) );
+    public final CliParser.helpStatement_return helpStatement() throws RecognitionException {
+        CliParser.helpStatement_return retval = new CliParser.helpStatement_return();
+        retval.start = input.LT(1);
+
+        CommonTree root_0 = null;
+
+        Token HELP39=null;
+        Token HELP40=null;
+        Token HELP41=null;
+        Token CONNECT42=null;
+        Token HELP43=null;
+        Token USE44=null;
+        Token HELP45=null;
+        Token DESCRIBE46=null;
+        Token KEYSPACE47=null;
+        Token HELP48=null;
+        Token DESCRIBE49=null;
+        Token string_literal50=null;
+        Token HELP51=null;
+        Token EXIT52=null;
+        Token HELP53=null;
+        Token QUIT54=null;
+        Token HELP55=null;
+        Token SHOW56=null;
+        Token string_literal57=null;
+        Token HELP58=null;
+        Token SHOW59=null;
+        Token KEYSPACES60=null;
+        Token HELP61=null;
+        Token SHOW62=null;
+        Token API_VERSION63=null;
+        Token HELP64=null;
+        Token CREATE65=null;
+        Token KEYSPACE66=null;
+        Token HELP67=null;
+        Token UPDATE68=null;
+        Token KEYSPACE69=null;
+        Token HELP70=null;
+        Token CREATE71=null;
+        Token COLUMN72=null;
+        Token FAMILY73=null;
+        Token HELP74=null;
+        Token UPDATE75=null;
+        Token COLUMN76=null;
+        Token FAMILY77=null;
+        Token HELP78=null;
+        Token DROP79=null;
+        Token KEYSPACE80=null;
+        Token HELP81=null;
+        Token DROP82=null;
+        Token COLUMN83=null;
+        Token FAMILY84=null;
+        Token HELP85=null;
+        Token DROP86=null;
+        Token INDEX87=null;
+        Token HELP88=null;
+        Token GET89=null;
+        Token HELP90=null;
+        Token SET91=null;
+        Token HELP92=null;
+        Token INCR93=null;
+        Token HELP94=null;
+        Token DECR95=null;
+        Token HELP96=null;
+        Token DEL97=null;
+        Token HELP98=null;
+        Token COUNT99=null;
+        Token HELP100=null;
+        Token LIST101=null;
+        Token HELP102=null;
+        Token TRUNCATE103=null;
+        Token HELP104=null;
+        Token ASSUME105=null;
+        Token HELP106=null;
+        Token CONSISTENCYLEVEL107=null;
+        Token HELP108=null;
+        Token char_literal109=null;
+
+        CommonTree HELP39_tree=null;
+        CommonTree HELP40_tree=null;
+        CommonTree HELP41_tree=null;
+        CommonTree CONNECT42_tree=null;
+        CommonTree HELP43_tree=null;
+        CommonTree USE44_tree=null;
+        CommonTree HELP45_tree=null;
+        CommonTree DESCRIBE46_tree=null;
+        CommonTree KEYSPACE47_tree=null;
+        CommonTree HELP48_tree=null;
+        CommonTree DESCRIBE49_tree=null;
+        CommonTree string_literal50_tree=null;
+        CommonTree HELP51_tree=null;
+        CommonTree EXIT52_tree=null;
+        CommonTree HELP53_tree=null;
+        CommonTree QUIT54_tree=null;
+        CommonTree HELP55_tree=null;
+        CommonTree SHOW56_tree=null;
+        CommonTree string_literal57_tree=null;
+        CommonTree HELP58_tree=null;
+        CommonTree SHOW59_tree=null;
+        CommonTree KEYSPACES60_tree=null;
+        CommonTree HELP61_tree=null;
+        CommonTree SHOW62_tree=null;
+        CommonTree API_VERSION63_tree=null;
+        CommonTree HELP64_tree=null;
+        CommonTree CREATE65_tree=null;
+        CommonTree KEYSPACE66_tree=null;
+        CommonTree HELP67_tree=null;
+        CommonTree UPDATE68_tree=null;
+        CommonTree KEYSPACE69_tree=null;
+        CommonTree HELP70_tree=null;
+        CommonTree CREATE71_tree=null;
+        CommonTree COLUMN72_tree=null;
+        CommonTree FAMILY73_tree=null;
+        CommonTree HELP74_tree=null;
+        CommonTree UPDATE75_tree=null;
+        CommonTree COLUMN76_tree=null;
+        CommonTree FAMILY77_tree=null;
+        CommonTree HELP78_tree=null;
+        CommonTree DROP79_tree=null;
+        CommonTree KEYSPACE80_tree=null;
+        CommonTree HELP81_tree=null;
+        CommonTree DROP82_tree=null;
+        CommonTree COLUMN83_tree=null;
+        CommonTree FAMILY84_tree=null;
+        CommonTree HELP85_tree=null;
+        CommonTree DROP86_tree=null;
+        CommonTree INDEX87_tree=null;
+        CommonTree HELP88_tree=null;
+        CommonTree GET89_tree=null;
+        CommonTree HELP90_tree=null;
+        CommonTree SET91_tree=null;
+        CommonTree HELP92_tree=null;
+        CommonTree INCR93_tree=null;
+        CommonTree HELP94_tree=null;
+        CommonTree DECR95_tree=null;
+        CommonTree HELP96_tree=null;
+        CommonTree DEL97_tree=null;
+        CommonTree HELP98_tree=null;
+        CommonTree COUNT99_tree=null;
+        CommonTree HELP100_tree=null;
+        CommonTree LIST101_tree=null;
+        CommonTree HELP102_tree=null;
+        CommonTree TRUNCATE103_tree=null;
+        CommonTree HELP104_tree=null;
+        CommonTree ASSUME105_tree=null;
+        CommonTree HELP106_tree=null;
+        CommonTree CONSISTENCYLEVEL107_tree=null;
+        CommonTree HELP108_tree=null;
+        CommonTree char_literal109_tree=null;
+        RewriteRuleTokenStream stream_EXIT=new RewriteRuleTokenStream(adaptor,"token EXIT");
+        RewriteRuleTokenStream stream_HELP=new RewriteRuleTokenStream(adaptor,"token HELP");
+        RewriteRuleTokenStream stream_DEL=new RewriteRuleTokenStream(adaptor,"token DEL");
+        RewriteRuleTokenStream stream_UPDATE=new RewriteRuleTokenStream(adaptor,"token UPDATE");
+        RewriteRuleTokenStream stream_SET=new RewriteRuleTokenStream(adaptor,"token SET");
+        RewriteRuleTokenStream stream_COUNT=new RewriteRuleTokenStream(adaptor,"token COUNT");
+        RewriteRuleTokenStream stream_KEYSPACES=new RewriteRuleTokenStream(adaptor,"token KEYSPACES");
+        RewriteRuleTokenStream stream_API_VERSION=new RewriteRuleTokenStream(adaptor,"token API_VERSION");
+        RewriteRuleTokenStream stream_CONSISTENCYLEVEL=new RewriteRuleTokenStream(adaptor,"token CONSISTENCYLEVEL");
+        RewriteRuleTokenStream stream_LIST=new RewriteRuleTokenStream(adaptor,"token LIST");
+        RewriteRuleTokenStream stream_104=new RewriteRuleTokenStream(adaptor,"token 104");
+        RewriteRuleTokenStream stream_103=new RewriteRuleTokenStream(adaptor,"token 103");
+        RewriteRuleTokenStream stream_102=new RewriteRuleTokenStream(adaptor,"token 102");
+        RewriteRuleTokenStream stream_QUIT=new RewriteRuleTokenStream(adaptor,"token QUIT");
+        RewriteRuleTokenStream stream_KEYSPACE=new RewriteRuleTokenStream(adaptor,"token KEYSPACE");
+        RewriteRuleTokenStream stream_INDEX=new RewriteRuleTokenStream(adaptor,"token INDEX");
+        RewriteRuleTokenStream stream_CREATE=new RewriteRuleTokenStream(adaptor,"token CREATE");
+        RewriteRuleTokenStream stream_CONNECT=new RewriteRuleTokenStream(adaptor,"token CONNECT");
+        RewriteRuleTokenStream stream_DROP=new RewriteRuleTokenStream(adaptor,"token DROP");
+        RewriteRuleTokenStream stream_INCR=new RewriteRuleTokenStream(adaptor,"token INCR");
+        RewriteRuleTokenStream stream_ASSUME=new RewriteRuleTokenStream(adaptor,"token ASSUME");
+        RewriteRuleTokenStream stream_TRUNCATE=new RewriteRuleTokenStream(adaptor,"token TRUNCATE");
+        RewriteRuleTokenStream stream_DESCRIBE=new RewriteRuleTokenStream(adaptor,"token DESCRIBE");
+        RewriteRuleTokenStream stream_COLUMN=new RewriteRuleTokenStream(adaptor,"token COLUMN");
+        RewriteRuleTokenStream stream_FAMILY=new RewriteRuleTokenStream(adaptor,"token FAMILY");
+        RewriteRuleTokenStream stream_DECR=new RewriteRuleTokenStream(adaptor,"token DECR");
+        RewriteRuleTokenStream stream_GET=new RewriteRuleTokenStream(adaptor,"token GET");
+        RewriteRuleTokenStream stream_USE=new RewriteRuleTokenStream(adaptor,"token USE");
+        RewriteRuleTokenStream stream_SHOW=new RewriteRuleTokenStream(adaptor,"token SHOW");
+
+        try {
+            // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:176:5: ( HELP HELP -> ^( NODE_HELP NODE_HELP ) | HELP CONNECT -> ^( NODE_HELP NODE_CONNECT ) | HELP USE -> ^( NODE_HELP NODE_USE_TABLE ) | HELP DESCRIBE KEYSPACE -> ^( NODE_HELP NODE_DESCRIBE_TABLE ) | HELP DESCRIBE 'CLUSTER' -> ^( NODE_HELP NODE_DESCRIBE_CLUSTER ) | HELP EXIT -> ^( NODE_HELP NODE_EXIT ) | HELP QUIT -> ^( NODE_HELP NODE_EXIT ) | HELP SHOW 'CLUSTER NAME' -> ^( NODE_HELP NODE_SHOW_CLUSTER_NAME ) | HELP SHOW KEYSPACES -> ^( NODE_HELP NODE_SHOW_KEYSPACES ) | HELP SHOW API_VERSION -> ^( NODE_HELP NODE_SHOW_VERSION ) | HELP CREATE KEYSPACE -> ^( NODE_HELP NODE_ADD_KEYSPACE ) | HELP UPDATE KEYSPACE -> ^( NODE_HELP NODE_UPDATE_KEYSPACE ) | HELP CREATE COLUMN FAMILY -> ^( NODE_HELP NODE_ADD_COLUMN_FAMILY ) | HELP UPDATE COLUMN FAMILY -> ^( NODE_HELP NODE_UPDATE_COLUMN_FAMILY ) | HELP DROP KEYSPACE -> ^( NODE_HELP NODE_DEL_KEYSPACE ) | HELP DROP COLUMN FAMILY -> ^( NODE_HELP NODE_DE
 L_COLUMN_FAMILY ) | HELP DROP INDEX -> ^( NODE_HELP NODE_DROP_INDEX ) | HELP GET -> ^( NODE_HELP NODE_THRIFT_GET ) | HELP SET -> ^( NODE_HELP NODE_THRIFT_SET ) | HELP INCR -> ^( NODE_HELP NODE_THRIFT_INCR ) | HELP DECR -> ^( NODE_HELP NODE_THRIFT_DECR ) | HELP DEL -> ^( NODE_HELP NODE_THRIFT_DEL ) | HELP COUNT -> ^( NODE_HELP NODE_THRIFT_COUNT ) | HELP LIST -> ^( NODE_HELP NODE_LIST ) | HELP TRUNCATE -> ^( NODE_HELP NODE_TRUNCATE ) | HELP ASSUME -> ^( NODE_HELP NODE_ASSUME ) | HELP CONSISTENCYLEVEL -> ^( NODE_HELP NODE_CONSISTENCY_LEVEL ) | HELP -> ^( NODE_HELP ) | '?' -> ^( NODE_HELP ) )
+            int alt6=29;
+            alt6 = dfa6.predict(input);
+            switch (alt6) {
+                case 1 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:176:7: HELP HELP
+                    {
+                    HELP39=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement741); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP39);
+
+                    HELP40=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement743); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP40);
+
+
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 177:9: -> ^( NODE_HELP NODE_HELP )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:177:12: ^( NODE_HELP NODE_HELP )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"), root_1);
+
+                        adaptor.addChild(root_1, (CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"));
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 2 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:178:7: HELP CONNECT
+                    {
+                    HELP41=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement768); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP41);
+
+                    CONNECT42=(Token)match(input,CONNECT,FOLLOW_CONNECT_in_helpStatement770); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_CONNECT.add(CONNECT42);
+
+
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 179:9: -> ^( NODE_HELP NODE_CONNECT )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:179:12: ^( NODE_HELP NODE_CONNECT )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"), root_1);
+
+                        adaptor.addChild(root_1, (CommonTree)adaptor.create(NODE_CONNECT, "NODE_CONNECT"));
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 3 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:180:7: HELP USE
+                    {
+                    HELP43=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement795); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP43);
+
+                    USE44=(Token)match(input,USE,FOLLOW_USE_in_helpStatement797); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_USE.add(USE44);
+
+
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 181:9: -> ^( NODE_HELP NODE_USE_TABLE )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:181:12: ^( NODE_HELP NODE_USE_TABLE )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"), root_1);
+
+                        adaptor.addChild(root_1, (CommonTree)adaptor.create(NODE_USE_TABLE, "NODE_USE_TABLE"));
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 4 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:182:7: HELP DESCRIBE KEYSPACE
+                    {
+                    HELP45=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement822); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP45);
+
+                    DESCRIBE46=(Token)match(input,DESCRIBE,FOLLOW_DESCRIBE_in_helpStatement824); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_DESCRIBE.add(DESCRIBE46);
+
+                    KEYSPACE47=(Token)match(input,KEYSPACE,FOLLOW_KEYSPACE_in_helpStatement826); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_KEYSPACE.add(KEYSPACE47);
+
+
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 183:9: -> ^( NODE_HELP NODE_DESCRIBE_TABLE )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:183:12: ^( NODE_HELP NODE_DESCRIBE_TABLE )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"), root_1);
+
+                        adaptor.addChild(root_1, (CommonTree)adaptor.create(NODE_DESCRIBE_TABLE, "NODE_DESCRIBE_TABLE"));
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 5 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:184:7: HELP DESCRIBE 'CLUSTER'
+                    {
+                    HELP48=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement851); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP48);
+
+                    DESCRIBE49=(Token)match(input,DESCRIBE,FOLLOW_DESCRIBE_in_helpStatement853); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_DESCRIBE.add(DESCRIBE49);
+
+                    string_literal50=(Token)match(input,102,FOLLOW_102_in_helpStatement855); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_102.add(string_literal50);
+
+
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 185:9: -> ^( NODE_HELP NODE_DESCRIBE_CLUSTER )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:185:12: ^( NODE_HELP NODE_DESCRIBE_CLUSTER )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"), root_1);
+
+                        adaptor.addChild(root_1, (CommonTree)adaptor.create(NODE_DESCRIBE_CLUSTER, "NODE_DESCRIBE_CLUSTER"));
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 6 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:186:7: HELP EXIT
+                    {
+                    HELP51=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement879); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP51);
+
+                    EXIT52=(Token)match(input,EXIT,FOLLOW_EXIT_in_helpStatement881); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_EXIT.add(EXIT52);
+
+
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 187:9: -> ^( NODE_HELP NODE_EXIT )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:187:12: ^( NODE_HELP NODE_EXIT )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"), root_1);
+
+                        adaptor.addChild(root_1, (CommonTree)adaptor.create(NODE_EXIT, "NODE_EXIT"));
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 7 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:188:7: HELP QUIT
+                    {
+                    HELP53=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement906); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP53);
+
+                    QUIT54=(Token)match(input,QUIT,FOLLOW_QUIT_in_helpStatement908); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_QUIT.add(QUIT54);
+
+
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 189:9: -> ^( NODE_HELP NODE_EXIT )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:189:12: ^( NODE_HELP NODE_EXIT )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"), root_1);
+
+                        adaptor.addChild(root_1, (CommonTree)adaptor.create(NODE_EXIT, "NODE_EXIT"));
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 8 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:190:7: HELP SHOW 'CLUSTER NAME'
+                    {
+                    HELP55=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement933); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP55);
+
+                    SHOW56=(Token)match(input,SHOW,FOLLOW_SHOW_in_helpStatement935); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_SHOW.add(SHOW56);
+
+                    string_literal57=(Token)match(input,103,FOLLOW_103_in_helpStatement937); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_103.add(string_literal57);
+
+
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 191:9: -> ^( NODE_HELP NODE_SHOW_CLUSTER_NAME )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:191:12: ^( NODE_HELP NODE_SHOW_CLUSTER_NAME )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"), root_1);
+
+                        adaptor.addChild(root_1, (CommonTree)adaptor.create(NODE_SHOW_CLUSTER_NAME, "NODE_SHOW_CLUSTER_NAME"));
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 9 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:192:7: HELP SHOW KEYSPACES
+                    {
+                    HELP58=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement961); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP58);
+
+                    SHOW59=(Token)match(input,SHOW,FOLLOW_SHOW_in_helpStatement963); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_SHOW.add(SHOW59);
+
+                    KEYSPACES60=(Token)match(input,KEYSPACES,FOLLOW_KEYSPACES_in_helpStatement965); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_KEYSPACES.add(KEYSPACES60);
+
+
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 193:9: -> ^( NODE_HELP NODE_SHOW_KEYSPACES )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:193:12: ^( NODE_HELP NODE_SHOW_KEYSPACES )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"), root_1);
+
+                        adaptor.addChild(root_1, (CommonTree)adaptor.create(NODE_SHOW_KEYSPACES, "NODE_SHOW_KEYSPACES"));
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 10 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:194:7: HELP SHOW API_VERSION
+                    {
+                    HELP61=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement990); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP61);
+
+                    SHOW62=(Token)match(input,SHOW,FOLLOW_SHOW_in_helpStatement992); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_SHOW.add(SHOW62);
+
+                    API_VERSION63=(Token)match(input,API_VERSION,FOLLOW_API_VERSION_in_helpStatement994); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_API_VERSION.add(API_VERSION63);
+
+
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 195:9: -> ^( NODE_HELP NODE_SHOW_VERSION )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:195:12: ^( NODE_HELP NODE_SHOW_VERSION )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"), root_1);
+
+                        adaptor.addChild(root_1, (CommonTree)adaptor.create(NODE_SHOW_VERSION, "NODE_SHOW_VERSION"));
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 11 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:196:7: HELP CREATE KEYSPACE
+                    {
+                    HELP64=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement1018); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP64);
+
+                    CREATE65=(Token)match(input,CREATE,FOLLOW_CREATE_in_helpStatement1020); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_CREATE.add(CREATE65);
+
+                    KEYSPACE66=(Token)match(input,KEYSPACE,FOLLOW_KEYSPACE_in_helpStatement1022); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_KEYSPACE.add(KEYSPACE66);
+
+
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 197:9: -> ^( NODE_HELP NODE_ADD_KEYSPACE )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:197:12: ^( NODE_HELP NODE_ADD_KEYSPACE )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"), root_1);
+
+                        adaptor.addChild(root_1, (CommonTree)adaptor.create(NODE_ADD_KEYSPACE, "NODE_ADD_KEYSPACE"));
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 12 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:198:7: HELP UPDATE KEYSPACE
+                    {
+                    HELP67=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement1047); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP67);
+
+                    UPDATE68=(Token)match(input,UPDATE,FOLLOW_UPDATE_in_helpStatement1049); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_UPDATE.add(UPDATE68);
+
+                    KEYSPACE69=(Token)match(input,KEYSPACE,FOLLOW_KEYSPACE_in_helpStatement1051); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_KEYSPACE.add(KEYSPACE69);
+
+
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 199:9: -> ^( NODE_HELP NODE_UPDATE_KEYSPACE )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:199:12: ^( NODE_HELP NODE_UPDATE_KEYSPACE )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"), root_1);
+
+                        adaptor.addChild(root_1, (CommonTree)adaptor.create(NODE_UPDATE_KEYSPACE, "NODE_UPDATE_KEYSPACE"));
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 13 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:200:7: HELP CREATE COLUMN FAMILY
+                    {
+                    HELP70=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement1075); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP70);
+
+                    CREATE71=(Token)match(input,CREATE,FOLLOW_CREATE_in_helpStatement1077); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_CREATE.add(CREATE71);
+
+                    COLUMN72=(Token)match(input,COLUMN,FOLLOW_COLUMN_in_helpStatement1079); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_COLUMN.add(COLUMN72);
+
+                    FAMILY73=(Token)match(input,FAMILY,FOLLOW_FAMILY_in_helpStatement1081); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_FAMILY.add(FAMILY73);
+
+
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 201:9: -> ^( NODE_HELP NODE_ADD_COLUMN_FAMILY )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:201:12: ^( NODE_HELP NODE_ADD_COLUMN_FAMILY )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"), root_1);
+
+                        adaptor.addChild(root_1, (CommonTree)adaptor.create(NODE_ADD_COLUMN_FAMILY, "NODE_ADD_COLUMN_FAMILY"));
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 14 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:202:7: HELP UPDATE COLUMN FAMILY
+                    {
+                    HELP74=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement1106); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP74);
+
+                    UPDATE75=(Token)match(input,UPDATE,FOLLOW_UPDATE_in_helpStatement1108); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_UPDATE.add(UPDATE75);
+
+                    COLUMN76=(Token)match(input,COLUMN,FOLLOW_COLUMN_in_helpStatement1110); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_COLUMN.add(COLUMN76);
+
+                    FAMILY77=(Token)match(input,FAMILY,FOLLOW_FAMILY_in_helpStatement1112); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_FAMILY.add(FAMILY77);
+
+
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 203:9: -> ^( NODE_HELP NODE_UPDATE_COLUMN_FAMILY )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:203:12: ^( NODE_HELP NODE_UPDATE_COLUMN_FAMILY )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"), root_1);
+
+                        adaptor.addChild(root_1, (CommonTree)adaptor.create(NODE_UPDATE_COLUMN_FAMILY, "NODE_UPDATE_COLUMN_FAMILY"));
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 15 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:204:7: HELP DROP KEYSPACE
+                    {
+                    HELP78=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement1136); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP78);
+
+                    DROP79=(Token)match(input,DROP,FOLLOW_DROP_in_helpStatement1138); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_DROP.add(DROP79);
+
+                    KEYSPACE80=(Token)match(input,KEYSPACE,FOLLOW_KEYSPACE_in_helpStatement1140); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_KEYSPACE.add(KEYSPACE80);
+
+
+
+                    // AST REWRITE
+                    // elements: 
+                    // token labels: 
+                    // rule labels: retval
+                    // token list labels: 
+                    // rule list labels: 
+                    // wildcard labels: 
+                    if ( state.backtracking==0 ) {
+                    retval.tree = root_0;
+                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
+
+                    root_0 = (CommonTree)adaptor.nil();
+                    // 205:9: -> ^( NODE_HELP NODE_DEL_KEYSPACE )
+                    {
+                        // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:205:12: ^( NODE_HELP NODE_DEL_KEYSPACE )
+                        {
+                        CommonTree root_1 = (CommonTree)adaptor.nil();
+                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NODE_HELP, "NODE_HELP"), root_1);
+
+                        adaptor.addChild(root_1, (CommonTree)adaptor.create(NODE_DEL_KEYSPACE, "NODE_DEL_KEYSPACE"));
+
+                        adaptor.addChild(root_0, root_1);
+                        }
+
+                    }
+
+                    retval.tree = root_0;}
+                    }
+                    break;
+                case 16 :
+                    // /home/drift/svn/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g:206:7: HELP DROP COLUMN FAMILY
+                    {
+                    HELP81=(Token)match(input,HELP,FOLLOW_HELP_in_helpStatement1165); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_HELP.add(HELP81);
+
+                    DROP82=(Token)match(input,DROP,FOLLOW_DROP_in_helpStatement1167); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_DROP.add(DROP82);
+
+                    COLUMN83=(Token)match(input,COLUMN,FOLLOW_COLUMN_in_helpStatement1169); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_COLUMN.add(COLUMN83);
+
+                    FAMILY84=(Token)match(input,FAMILY,FOLLOW_FAMILY_in_helpStatement1171); if (state.failed) return retval; 

[... 7131 lines stripped ...]