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

        if (tokens.matches(STMT_CREATE_INDEX)) {
            return parseStatement(tokens, MySqlStatementStartPhrases.STMT_CREATE_INDEX, parentNode, TYPE_CREATE_INDEX_STATEMENT);
        } else if (tokens.matches(STMT_CREATE_UNIQUE_INDEX)) {
            return parseStatement(tokens,
                                  MySqlStatementStartPhrases.STMT_CREATE_UNIQUE_INDEX,
                                  parentNode,
                                  TYPE_CREATE_INDEX_STATEMENT);
        } else if (tokens.matches(STMT_CREATE_FUNCTION)) {
            return parseStatement(tokens,
                                  MySqlStatementStartPhrases.STMT_CREATE_FUNCTION,
                                  parentNode,
                                  TYPE_CREATE_FUNCTION_STATEMENT);
        } else if (tokens.matches(STMT_CREATE_PROCEDURE)) {
            return parseStatement(tokens,
                                  MySqlStatementStartPhrases.STMT_CREATE_PROCEDURE,
                                  parentNode,
                                  TYPE_CREATE_PROCEDURE_STATEMENT);
        } else if (tokens.matches(STMT_CREATE_SERVER)) {
            return parseStatement(tokens, MySqlStatementStartPhrases.STMT_CREATE_SERVER, parentNode, TYPE_CREATE_SERVER_STATEMENT);
        } else if (tokens.matches(STMT_CREATE_TRIGGER)) {
            return parseStatement(tokens,
                                  MySqlStatementStartPhrases.STMT_CREATE_TRIGGER,
                                  parentNode,
                                  TYPE_CREATE_TRIGGER_STATEMENT);
        } else if (tokens.matches(STMT_CREATE_EVENT)) {
            return parseStatement(tokens, MySqlStatementStartPhrases.STMT_CREATE_EVENT, parentNode, TYPE_CREATE_EVENT_STATEMENT);
        } else if (tokens.matches(STMT_CREATE_TABLESPACE)) {
            return parseStatement(tokens,
                                  MySqlStatementStartPhrases.STMT_CREATE_TABLESPACE,
                                  parentNode,
                                  TYPE_CREATE_TABLESPACE_STATEMENT);
        } else if (tokens.matches(STMT_CREATE_DEFINER)) {
            return parseStatement(tokens,
                                  MySqlStatementStartPhrases.STMT_CREATE_DEFINER,
                                  parentNode,
                                  TYPE_CREATE_DEFINER_STATEMENT);
        }

        return super.parseCreateStatement(tokens, parentNode);
    }
@ Override protected AstNode parseCreateStatement ( DdlTokenStream tokens , AstNode parentNode ) throws ParsingException { assert tokens != null ; assert parentNode != null ; if ( tokens . matches ( STMT_CREATE_INDEX ) ) { return parseStatement ( tokens , MySqlStatementStartPhrases . STMT_CREATE_INDEX , parentNode , TYPE_CREATE_INDEX_STATEMENT ) ; } else if ( tokens . matches ( STMT_CREATE_UNIQUE_INDEX ) ) { return parseStatement ( tokens , MySqlStatementStartPhrases . STMT_CREATE_UNIQUE_INDEX , parentNode , TYPE_CREATE_INDEX_STATEMENT ) ; } else if ( tokens . matches ( STMT_CREATE_FUNCTION ) ) { return parseStatement ( tokens , MySqlStatementStartPhrases . STMT_CREATE_FUNCTION , parentNode , TYPE_CREATE_FUNCTION_STATEMENT ) ; } else if ( tokens . matches ( STMT_CREATE_PROCEDURE ) ) { return parseStatement ( tokens , MySqlStatementStartPhrases . STMT_CREATE_PROCEDURE , parentNode , TYPE_CREATE_PROCEDURE_STATEMENT ) ; } else if ( tokens . matches ( STMT_CREATE_SERVER ) ) { return parseStatement ( tokens , MySqlStatementStartPhrases . STMT_CREATE_SERVER , parentNode , TYPE_CREATE_SERVER_STATEMENT ) ; } else if ( tokens . matches ( STMT_CREATE_TRIGGER ) ) { return parseStatement ( tokens , MySqlStatementStartPhrases . STMT_CREATE_TRIGGER , parentNode , TYPE_CREATE_TRIGGER_STATEMENT ) ; } else if ( tokens . matches ( STMT_CREATE_EVENT ) ) { return parseStatement ( tokens , MySqlStatementStartPhrases . STMT_CREATE_EVENT , parentNode , TYPE_CREATE_EVENT_STATEMENT ) ; } else if ( tokens . matches ( STMT_CREATE_TABLESPACE ) ) { return parseStatement ( tokens , MySqlStatementStartPhrases . STMT_CREATE_TABLESPACE , parentNode , TYPE_CREATE_TABLESPACE_STATEMENT ) ; } else if ( tokens . matches ( STMT_CREATE_DEFINER ) ) { return parseStatement ( tokens , MySqlStatementStartPhrases . STMT_CREATE_DEFINER , parentNode , TYPE_CREATE_DEFINER_STATEMENT ) ; } return super . parseCreateStatement ( tokens , parentNode ) ; }
{@inheritDoc}

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