---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/ok/drop_operator.sql
---
SOURCE_FILE
  COMMENT "-- simple"
  WHITESPACE "\n"
  DROP_OPERATOR
    DROP_KW "drop"
    WHITESPACE " "
    OPERATOR_KW "operator"
    WHITESPACE " "
    OP_SIG_LIST
      OP_SIG
        OP
          CARET "^"
        WHITESPACE " "
        L_PAREN "("
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                INTEGER_KW "integer"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                INTEGER_KW "integer"
        R_PAREN ")"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- schema"
  WHITESPACE "\n"
  DROP_OPERATOR
    DROP_KW "drop"
    WHITESPACE " "
    OPERATOR_KW "operator"
    WHITESPACE " "
    OP_SIG_LIST
      OP_SIG
        OP
          PATH
            PATH
              PATH
                PATH_SEGMENT
                  NAME_REF
                    IDENT "foo"
              DOT "."
              PATH_SEGMENT
                NAME_REF
                  IDENT "foo"
            DOT "."
            PATH_SEGMENT
          CARET "^"
        WHITESPACE " "
        L_PAREN "("
        PATH_TYPE
          PATH
            PATH
              PATH_SEGMENT
                NAME_REF
                  IDENT "f"
            DOT "."
            PATH_SEGMENT
              NAME_REF
                SMALLINT_KW "smallint"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH
            PATH
              PATH_SEGMENT
                NAME_REF
                  IDENT "bar"
            DOT "."
            PATH_SEGMENT
              NAME_REF
                SMALLINT_KW "smallint"
        R_PAREN ")"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- unary"
  WHITESPACE "\n"
  DROP_OPERATOR
    DROP_KW "drop"
    WHITESPACE " "
    OPERATOR_KW "operator"
    WHITESPACE " "
    OP_SIG_LIST
      OP_SIG
        OP
          CUSTOM_OP
            TILDE "~"
        WHITESPACE " "
        L_PAREN "("
        NONE_KW "none"
        COMMA ","
        WHITESPACE " "
        BIT_TYPE
          BIT_KW "bit"
        R_PAREN ")"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- multiple"
  WHITESPACE "\n"
  DROP_OPERATOR
    DROP_KW "drop"
    WHITESPACE " "
    OPERATOR_KW "operator"
    WHITESPACE " "
    OP_SIG_LIST
      OP_SIG
        OP
          CUSTOM_OP
            TILDE "~"
        WHITESPACE " "
        L_PAREN "("
        NONE_KW "none"
        COMMA ","
        WHITESPACE " "
        BIT_TYPE
          BIT_KW "bit"
        R_PAREN ")"
      COMMA ","
      WHITESPACE " "
      OP_SIG
        OP
          CARET "^"
        WHITESPACE " "
        L_PAREN "("
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                INTEGER_KW "integer"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                INTEGER_KW "integer"
        R_PAREN ")"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- full"
  WHITESPACE "\n"
  DROP_OPERATOR
    DROP_KW "drop"
    WHITESPACE " "
    OPERATOR_KW "operator"
    WHITESPACE " "
    IF_EXISTS
      IF_KW "if"
      WHITESPACE " "
      EXISTS_KW "exists"
    WHITESPACE " "
    OP_SIG_LIST
      OP_SIG
        OP
          CUSTOM_OP
            POUND "#"
        WHITESPACE " "
        L_PAREN "("
        NONE_KW "NONE"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                BIGINT_KW "bigint"
        R_PAREN ")"
      COMMA ","
      WHITESPACE " "
      OP_SIG
        OP
          CUSTOM_OP
            AT "@"
        WHITESPACE " "
        L_PAREN "("
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                TEXT_KW "text"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                TEXT_KW "text"
        R_PAREN ")"
      COMMA ","
      WHITESPACE " "
      OP_SIG
        OP
          CUSTOM_OP
            POUND "#"
            POUND "#"
        WHITESPACE " "
        L_PAREN "("
        NONE_KW "none"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                INTEGER_KW "integer"
        R_PAREN ")"
    WHITESPACE " "
    CASCADE_KW "cascade"
  SEMICOLON ";"
  WHITESPACE "\n"
  DROP_OPERATOR
    DROP_KW "drop"
    WHITESPACE " "
    OPERATOR_KW "operator"
    WHITESPACE " "
    IF_EXISTS
      IF_KW "if"
      WHITESPACE " "
      EXISTS_KW "exists"
    WHITESPACE " "
    OP_SIG_LIST
      OP_SIG
        OP
          CUSTOM_OP
            BANG "!"
        WHITESPACE " "
        L_PAREN "("
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                INT_KW "int"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                INT_KW "int"
        R_PAREN ")"
    WHITESPACE " "
    RESTRICT_KW "restrict"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- non_default_operator"
  WHITESPACE "\n"
  DROP_OPERATOR
    DROP_KW "drop"
    WHITESPACE " "
    OPERATOR_KW "operator"
    WHITESPACE " "
    IF_EXISTS
      IF_KW "if"
      WHITESPACE " "
      EXISTS_KW "exists"
    WHITESPACE " "
    OP_SIG_LIST
      OP_SIG
        OP
          CUSTOM_OP
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
            BANG "!"
        WHITESPACE " "
        L_PAREN "("
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                INT_KW "int"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                INT_KW "int"
        R_PAREN ")"
    WHITESPACE " "
    RESTRICT_KW "restrict"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  DROP_OPERATOR
    DROP_KW "drop"
    WHITESPACE " "
    OPERATOR_KW "operator"
    WHITESPACE " "
    OP_SIG_LIST
      OP_SIG
        OP
          PATH
            PATH
              PATH
                PATH_SEGMENT
                  NAME_REF
                    IDENT "bar"
              DOT "."
              PATH_SEGMENT
                NAME_REF
                  IDENT "bar"
            DOT "."
            PATH_SEGMENT
          CUSTOM_OP
            AT "@"
            AT "@"
            AT "@"
            AT "@"
            AT "@"
            AT "@"
            AT "@"
            AT "@"
            AT "@"
            AT "@"
            AT "@"
            AT "@"
            AT "@"
            AT "@"
            AT "@"
            AT "@"
            AT "@"
        WHITESPACE " "
        L_PAREN "("
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                INT_KW "int"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                INT_KW "int"
        R_PAREN ")"
    WHITESPACE " "
    RESTRICT_KW "restrict"
  SEMICOLON ";"
  WHITESPACE "\n\n"
