docs: protected AstNode parseDropStatement( DdlTokenStream tokens,
                                            AstNode parentNode ) throws ParsingException {
          assert tokens != null;
          assert parentNode != null;
  
          if (tokens.matches(STMT_DROP_TABLE)) {
              // <drop table statement> ::=
              // DROP TABLE <table name> <drop behavior>
              //
              // <drop behavior> ::= CASCADE | RESTRICT
              return parseSimpleDropStatement(tokens, STMT_DROP_TABLE, parentNode, TYPE_DROP_TABLE_STATEMENT);
          } else if (tokens.matches(STMT_DROP_VIEW)) {
              return parseSimpleDropStatement(tokens, STMT_DROP_VIEW, parentNode, TYPE_DROP_VIEW_STATEMENT);
          } else if (tokens.matches(STMT_DROP_SCHEMA)) {
              return parseSimpleDropStatement(tokens, STMT_DROP_SCHEMA, parentNode, TYPE_DROP_SCHEMA_STATEMENT);
          } else if (tokens.matches(STMT_DROP_DOMAIN)) {
              return parseSimpleDropStatement(tokens, STMT_DROP_DOMAIN, parentNode, TYPE_DROP_DOMAIN_STATEMENT);
          } else if (tokens.matches(STMT_DROP_TRANSLATION)) {
              return parseSimpleDropStatement(tokens, STMT_DROP_TRANSLATION, parentNode, TYPE_DROP_TRANSLATION_STATEMENT);
          } else if (tokens.matches(STMT_DROP_CHARACTER_SET)) {
              return parseSimpleDropStatement(tokens, STMT_DROP_CHARACTER_SET, parentNode, TYPE_DROP_CHARACTER_SET_STATEMENT);
          } else if (tokens.matches(STMT_DROP_ASSERTION)) {
              return parseSimpleDropStatement(tokens, STMT_DROP_ASSERTION, parentNode, TYPE_DROP_ASSERTION_STATEMENT);
          } else if (tokens.matches(STMT_DROP_COLLATION)) {
              return parseSimpleDropStatement(tokens, STMT_DROP_COLLATION, parentNode, TYPE_DROP_COLLATION_STATEMENT);
          }
  
          return null;
      }