squawk-parser 2.62.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
              INTEGER_KW "integer"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH_REF
            PATH_SEGMENT_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
                  IDENT "foo"
              DOT "."
              PATH_SEGMENT_REF
                IDENT "foo"
            DOT "."
            PATH_SEGMENT_REF
          CARET "^"
        WHITESPACE " "
        L_PAREN "("
        PATH_TYPE
          PATH_REF
            PATH_REF
              PATH_SEGMENT_REF
                IDENT "f"
            DOT "."
            PATH_SEGMENT_REF
              SMALLINT_KW "smallint"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH_REF
            PATH_REF
              PATH_SEGMENT_REF
                IDENT "bar"
            DOT "."
            PATH_SEGMENT_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
              INTEGER_KW "integer"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH_REF
            PATH_SEGMENT_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
              BIGINT_KW "bigint"
        R_PAREN ")"
      COMMA ","
      WHITESPACE " "
      OP_SIG
        OP
          CUSTOM_OP
            AT "@"
        WHITESPACE " "
        L_PAREN "("
        PATH_TYPE
          PATH_REF
            PATH_SEGMENT_REF
              TEXT_KW "text"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH_REF
            PATH_SEGMENT_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
              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
              INT_KW "int"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH_REF
            PATH_SEGMENT_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
              INT_KW "int"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH_REF
            PATH_SEGMENT_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
                  IDENT "bar"
              DOT "."
              PATH_SEGMENT_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
              INT_KW "int"
        COMMA ","
        WHITESPACE " "
        PATH_TYPE
          PATH_REF
            PATH_SEGMENT_REF
              INT_KW "int"
        R_PAREN ")"
    WHITESPACE " "
    RESTRICT_KW "restrict"
    SEMICOLON ";"
  WHITESPACE "\n\n"