@Override
    protected AstNode parseAlterStatement( DdlTokenStream tokens,
                                           AstNode parentNode ) throws ParsingException {
        assert tokens != null;
        assert parentNode != null;

        if (tokens.matches(STMT_ALTER_ALGORITHM)) {
            return parseStatement(tokens, STMT_ALTER_ALGORITHM, parentNode, TYPE_ALTER_ALGORITHM_STATEMENT);
        } else if (tokens.matches(STMT_ALTER_DATABASE)) {
            return parseStatement(tokens, STMT_ALTER_DATABASE, parentNode, TYPE_ALTER_DATABASE_STATEMENT);
        } else if (tokens.matches(STMT_ALTER_DEFINER)) {
            return parseStatement(tokens, STMT_ALTER_DEFINER, parentNode, TYPE_ALTER_DEFINER_STATEMENT);
        } else if (tokens.matches(STMT_ALTER_EVENT)) {
            return parseStatement(tokens, STMT_ALTER_EVENT, parentNode, TYPE_ALTER_EVENT_STATEMENT);
        } else if (tokens.matches(STMT_ALTER_FUNCTION)) {
            return parseStatement(tokens, STMT_ALTER_FUNCTION, parentNode, TYPE_ALTER_FUNCTION_STATEMENT);
        } else if (tokens.matches(STMT_ALTER_LOGFILE_GROUP)) {
            return parseStatement(tokens, STMT_ALTER_LOGFILE_GROUP, parentNode, TYPE_ALTER_LOGFILE_GROUP_STATEMENT);
        } else if (tokens.matches(STMT_ALTER_PROCEDURE)) {
            return parseStatement(tokens, STMT_ALTER_PROCEDURE, parentNode, TYPE_ALTER_PROCEDURE_STATEMENT);
        } else if (tokens.matches(STMT_ALTER_SCHEMA)) {
            return parseStatement(tokens, STMT_ALTER_SCHEMA, parentNode, TYPE_ALTER_SCHEMA_STATEMENT);
        } else if (tokens.matches(STMT_ALTER_SERVER)) {
            return parseStatement(tokens, STMT_ALTER_SERVER, parentNode, TYPE_ALTER_SERVER_STATEMENT);
        } else if (tokens.matches(STMT_ALTER_TABLESPACE)) {
            return parseStatement(tokens, STMT_ALTER_TABLESPACE, parentNode, TYPE_ALTER_TABLESPACE_STATEMENT);
        } else if (tokens.matches(STMT_ALTER_SQL_SECURITY)) {
            return parseStatement(tokens, STMT_ALTER_SQL_SECURITY, parentNode, TYPE_ALTER_VIEW_STATEMENT);
        } else if (tokens.matches(STMT_ALTER_IGNORE_TABLE) || tokens.matches(STMT_ALTER_ONLINE_TABLE)
                   || tokens.matches(STMT_ALTER_ONLINE_IGNORE_TABLE) || tokens.matches(STMT_ALTER_OFFLINE_TABLE)
                   || tokens.matches(STMT_ALTER_OFFLINE_IGNORE_TABLE)) {
            return parseAlterTableStatement(tokens, parentNode);
        }

        return super.parseAlterStatement(tokens, parentNode);
    }
@ Override protected AstNode parseAlterStatement ( DdlTokenStream tokens , AstNode parentNode ) throws ParsingException { assert tokens != null ; assert parentNode != null ; if ( tokens . matches ( STMT_ALTER_ALGORITHM ) ) { return parseStatement ( tokens , STMT_ALTER_ALGORITHM , parentNode , TYPE_ALTER_ALGORITHM_STATEMENT ) ; } else if ( tokens . matches ( STMT_ALTER_DATABASE ) ) { return parseStatement ( tokens , STMT_ALTER_DATABASE , parentNode , TYPE_ALTER_DATABASE_STATEMENT ) ; } else if ( tokens . matches ( STMT_ALTER_DEFINER ) ) { return parseStatement ( tokens , STMT_ALTER_DEFINER , parentNode , TYPE_ALTER_DEFINER_STATEMENT ) ; } else if ( tokens . matches ( STMT_ALTER_EVENT ) ) { return parseStatement ( tokens , STMT_ALTER_EVENT , parentNode , TYPE_ALTER_EVENT_STATEMENT ) ; } else if ( tokens . matches ( STMT_ALTER_FUNCTION ) ) { return parseStatement ( tokens , STMT_ALTER_FUNCTION , parentNode , TYPE_ALTER_FUNCTION_STATEMENT ) ; } else if ( tokens . matches ( STMT_ALTER_LOGFILE_GROUP ) ) { return parseStatement ( tokens , STMT_ALTER_LOGFILE_GROUP , parentNode , TYPE_ALTER_LOGFILE_GROUP_STATEMENT ) ; } else if ( tokens . matches ( STMT_ALTER_PROCEDURE ) ) { return parseStatement ( tokens , STMT_ALTER_PROCEDURE , parentNode , TYPE_ALTER_PROCEDURE_STATEMENT ) ; } else if ( tokens . matches ( STMT_ALTER_SCHEMA ) ) { return parseStatement ( tokens , STMT_ALTER_SCHEMA , parentNode , TYPE_ALTER_SCHEMA_STATEMENT ) ; } else if ( tokens . matches ( STMT_ALTER_SERVER ) ) { return parseStatement ( tokens , STMT_ALTER_SERVER , parentNode , TYPE_ALTER_SERVER_STATEMENT ) ; } else if ( tokens . matches ( STMT_ALTER_TABLESPACE ) ) { return parseStatement ( tokens , STMT_ALTER_TABLESPACE , parentNode , TYPE_ALTER_TABLESPACE_STATEMENT ) ; } else if ( tokens . matches ( STMT_ALTER_SQL_SECURITY ) ) { return parseStatement ( tokens , STMT_ALTER_SQL_SECURITY , parentNode , TYPE_ALTER_VIEW_STATEMENT ) ; } else if ( tokens . matches ( STMT_ALTER_IGNORE_TABLE ) || tokens . matches ( STMT_ALTER_ONLINE_TABLE ) || tokens . matches ( STMT_ALTER_ONLINE_IGNORE_TABLE ) || tokens . matches ( STMT_ALTER_OFFLINE_TABLE ) || tokens . matches ( STMT_ALTER_OFFLINE_IGNORE_TABLE ) ) { return parseAlterTableStatement ( tokens , parentNode ) ; } return super . parseAlterStatement ( tokens , parentNode ) ; }
{@inheritDoc}

@see org.modeshape.sequencer.ddl.StandardDdlParser#parseAlterStatement(org.modeshape.sequencer.ddl.DdlTokenStream,
org.modeshape.sequencer.ddl.node.AstNode)