public IStatement Execute()
        {
            IParser parser = null;

            if (_tokenizer.TokenEquals(Constants.Table))
            {
                parser = new CreateTableStatementParser(_tokenizer);
            }

            if (_tokenizer.TokenEquals(Constants.View))
            {
                parser = new CreateViewStatementParser(_tokenizer);
            }

            //if ( _tokenizer.TokenEquals( Constants.Procedure ) )
            //    parser = new CreateProcedureStatementParser( _tokenizer );

            //if ( _tokenizer.TokenEquals( Constants.Trigger ) )
            //    parser = new CreateTriggerStatementParser( _tokenizer );

            if (_tokenizer.IsNextToken(
                    Constants.Unique,
                    Constants.Clustered,
                    Constants.NonClustered,
                    Constants.Index
                    )
                )
            {
                parser = new CreateIndexParser(_tokenizer);
            }

            return(parser != null?parser.Execute() : null);
        }
        public IStatement Execute()
        {
            IParser parser = null;

            if (_tokenizer.TokenEquals(Constants.Table))
            {
                parser = new AlterTableStatementParser(_tokenizer);
            }

            if (_tokenizer.TokenEquals(Constants.View))
            {
                parser = new CreateViewStatementParser(_tokenizer)
                {
                    IsAlter = true
                }
            }
            ;

            if (_tokenizer.TokenEquals(Constants.Procedure) || _tokenizer.TokenEquals(Constants.Proc))
            {
                parser = new CreateProcedureStatementParser(_tokenizer)
                {
                    IsAlter = true
                }
            }
            ;

            //if ( _tokenizer.TokenEquals( Constants.Trigger ) )
            //    parser = new AlterTriggerStatementParser( _tokenizer );

            return(parser != null?parser.Execute() : null);
        }
    }
}