docs: protected AstNode parseNextStatement( DdlTokenStream tokens,
                                            AstNode node ) {
          assert tokens != null;
          assert node != null;
  
          AstNode stmtNode = null;
  
          if (tokens.matches(CREATE)) {
              stmtNode = parseCreateStatement(tokens, node);
          } else if (tokens.matches(ALTER)) {
              stmtNode = parseAlterStatement(tokens, node);
          } else if (tokens.matches(DROP)) {
              stmtNode = parseDropStatement(tokens, node);
          } else if (tokens.matches(INSERT)) {
              stmtNode = parseInsertStatement(tokens, node);
          } else if (tokens.matches(SET)) {
              stmtNode = parseSetStatement(tokens, node);
          } else if (tokens.matches(GRANT)) {
              stmtNode = parseGrantStatement(tokens, node);
          } else if (tokens.matches(REVOKE)) {
              stmtNode = parseRevokeStatement(tokens, node);
          }
  
          if (stmtNode == null) {
              stmtNode = parseCustomStatement(tokens, node);
          }
  
          return stmtNode;
      }