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

        AstNode dropNode = null;

        String name = null;

        if (tokens.matches(STMT_DROP_FUNCTION)) {
            markStartOfStatement(tokens);
            tokens.consume(STMT_DROP_FUNCTION);
            name = parseName(tokens);
            dropNode = nodeFactory().node(name, parentNode, TYPE_DROP_FUNCTION_STATEMENT);
        } else if (tokens.matches(STMT_DROP_INDEX)) {
            markStartOfStatement(tokens);
            tokens.consume(STMT_DROP_INDEX);
            name = parseName(tokens);
            dropNode = nodeFactory().node(name, parentNode, TYPE_DROP_INDEX_STATEMENT);
        } else if (tokens.matches(STMT_DROP_PROCEDURE)) {
            markStartOfStatement(tokens);
            tokens.consume(STMT_DROP_PROCEDURE);
            name = parseName(tokens);
            dropNode = nodeFactory().node(name, parentNode, TYPE_DROP_PROCEDURE_STATEMENT);
        } else if (tokens.matches(STMT_DROP_ROLE)) {
            markStartOfStatement(tokens);
            tokens.consume(STMT_DROP_ROLE);
            name = parseName(tokens);
            dropNode = nodeFactory().node(name, parentNode, TYPE_DROP_ROLE_STATEMENT);
        } else if (tokens.matches(STMT_DROP_SYNONYM)) {
            markStartOfStatement(tokens);
            tokens.consume(STMT_DROP_SYNONYM);
            name = parseName(tokens);
            dropNode = nodeFactory().node(name, parentNode, TYPE_DROP_SYNONYM_STATEMENT);
        } else if (tokens.matches(STMT_DROP_TRIGGER)) {
            markStartOfStatement(tokens);
            tokens.consume(STMT_DROP_TRIGGER);
            name = parseName(tokens);
            dropNode = nodeFactory().node(name, parentNode, TYPE_DROP_TRIGGER_STATEMENT);
        }

        if (dropNode != null) {
            markEndOfStatement(tokens, dropNode);
        }

        if (dropNode == null) {
            dropNode = super.parseDropStatement(tokens, parentNode);
        }

        return dropNode;
    }
@ Override protected AstNode parseDropStatement ( DdlTokenStream tokens , AstNode parentNode ) throws ParsingException { assert tokens != null ; assert parentNode != null ; AstNode dropNode = null ; String name = null ; if ( tokens . matches ( STMT_DROP_FUNCTION ) ) { markStartOfStatement ( tokens ) ; tokens . consume ( STMT_DROP_FUNCTION ) ; name = parseName ( tokens ) ; dropNode = nodeFactory ( ) . node ( name , parentNode , TYPE_DROP_FUNCTION_STATEMENT ) ; } else if ( tokens . matches ( STMT_DROP_INDEX ) ) { markStartOfStatement ( tokens ) ; tokens . consume ( STMT_DROP_INDEX ) ; name = parseName ( tokens ) ; dropNode = nodeFactory ( ) . node ( name , parentNode , TYPE_DROP_INDEX_STATEMENT ) ; } else if ( tokens . matches ( STMT_DROP_PROCEDURE ) ) { markStartOfStatement ( tokens ) ; tokens . consume ( STMT_DROP_PROCEDURE ) ; name = parseName ( tokens ) ; dropNode = nodeFactory ( ) . node ( name , parentNode , TYPE_DROP_PROCEDURE_STATEMENT ) ; } else if ( tokens . matches ( STMT_DROP_ROLE ) ) { markStartOfStatement ( tokens ) ; tokens . consume ( STMT_DROP_ROLE ) ; name = parseName ( tokens ) ; dropNode = nodeFactory ( ) . node ( name , parentNode , TYPE_DROP_ROLE_STATEMENT ) ; } else if ( tokens . matches ( STMT_DROP_SYNONYM ) ) { markStartOfStatement ( tokens ) ; tokens . consume ( STMT_DROP_SYNONYM ) ; name = parseName ( tokens ) ; dropNode = nodeFactory ( ) . node ( name , parentNode , TYPE_DROP_SYNONYM_STATEMENT ) ; } else if ( tokens . matches ( STMT_DROP_TRIGGER ) ) { markStartOfStatement ( tokens ) ; tokens . consume ( STMT_DROP_TRIGGER ) ; name = parseName ( tokens ) ; dropNode = nodeFactory ( ) . node ( name , parentNode , TYPE_DROP_TRIGGER_STATEMENT ) ; } if ( dropNode != null ) { markEndOfStatement ( tokens , dropNode ) ; } if ( dropNode == null ) { dropNode = super . parseDropStatement ( tokens , parentNode ) ; } return dropNode ; }
{@inheritDoc}

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