squawk-parser 2.60.0

Linter for Postgres migrations & SQL
Documentation
---
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_REF
            PATH_SEGMENT_REF
              NAME_REF
                INTEGER_KW "integer"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH_REF
            PATH_SEGMENT_REF
              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_REF
            PATH_REF
              PATH_REF
                PATH_SEGMENT_REF
                  NAME_REF
                    IDENT "foo"
              DOT "."
              PATH_SEGMENT_REF
                NAME_REF
                  IDENT "foo"
            DOT "."
            PATH_SEGMENT_REF
          CARET "^"
        WHITESPACE " "
        L_PAREN "("
        PATH_TYPE
          PATH_REF
            PATH_REF
              PATH_SEGMENT_REF
                NAME_REF
                  IDENT "f"
            DOT "."
            PATH_SEGMENT_REF
              NAME_REF
                SMALLINT_KW "smallint"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH_REF
            PATH_REF
              PATH_SEGMENT_REF
                NAME_REF
                  IDENT "bar"
            DOT "."
            PATH_SEGMENT_REF
              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_REF
            PATH_SEGMENT_REF
              NAME_REF
                INTEGER_KW "integer"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH_REF
            PATH_SEGMENT_REF
              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_REF
            PATH_SEGMENT_REF
              NAME_REF
                BIGINT_KW "bigint"
        R_PAREN ")"
      COMMA ","
      WHITESPACE " "
      OP_SIG
        OP
          CUSTOM_OP
            AT "@"
        WHITESPACE " "
        L_PAREN "("
        PATH_TYPE
          PATH_REF
            PATH_SEGMENT_REF
              NAME_REF
                TEXT_KW "text"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH_REF
            PATH_SEGMENT_REF
              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_REF
            PATH_SEGMENT_REF
              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_REF
            PATH_SEGMENT_REF
              NAME_REF
                INT_KW "int"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH_REF
            PATH_SEGMENT_REF
              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_REF
            PATH_SEGMENT_REF
              NAME_REF
                INT_KW "int"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH_REF
            PATH_SEGMENT_REF
              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_REF
            PATH_REF
              PATH_REF
                PATH_SEGMENT_REF
                  NAME_REF
                    IDENT "bar"
              DOT "."
              PATH_SEGMENT_REF
                NAME_REF
                  IDENT "bar"
            DOT "."
            PATH_SEGMENT_REF
          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_REF
            PATH_SEGMENT_REF
              NAME_REF
                INT_KW "int"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH_REF
            PATH_SEGMENT_REF
              NAME_REF
                INT_KW "int"
        R_PAREN ")"
    WHITESPACE " "
    RESTRICT_KW "restrict"
    SEMICOLON ";"
  WHITESPACE "\n\n"