squawk-parser 2.29.0

Linter for Postgres migrations & SQL
Documentation
---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/ok/create_operator.sql
---
SOURCE_FILE
  COMMENT "-- simple"
  WHITESPACE "\n"
  CREATE_OPERATOR
    CREATE_KW "create"
    WHITESPACE " "
    OPERATOR_KW "operator"
    WHITESPACE " "
    R_ANGLE ">"
    WHITESPACE " "
    ATTRIBUTE_LIST
      L_PAREN "("
      WHITESPACE "\n  "
      ATTRIBUTE_OPTION
        NAME
          FUNCTION_KW "function"
        WHITESPACE " "
        EQ "="
        WHITESPACE " "
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                IDENT "f"
      WHITESPACE "\n"
      R_PAREN ")"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- procedure"
  WHITESPACE "\n"
  CREATE_OPERATOR
    CREATE_KW "create"
    WHITESPACE " "
    OPERATOR_KW "operator"
    WHITESPACE " "
    CUSTOM_OP
      POUND "#"
    WHITESPACE " "
    ATTRIBUTE_LIST
      L_PAREN "("
      WHITESPACE "\n  "
      ATTRIBUTE_OPTION
        NAME
          PROCEDURE_KW "procedure"
        WHITESPACE " "
        EQ "="
        WHITESPACE " "
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                IDENT "p"
      WHITESPACE "\n"
      R_PAREN ")"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- full"
  WHITESPACE "\n"
  CREATE_OPERATOR
    CREATE_KW "create"
    WHITESPACE " "
    OPERATOR_KW "operator"
    WHITESPACE " "
    PATH
      PATH
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "foo"
        DOT "."
        PATH_SEGMENT
          NAME_REF
            IDENT "bar"
      DOT "."
      PATH_SEGMENT
    CUSTOM_OP
      R_ANGLE ">"
      R_ANGLE ">"
      MINUS "-"
      POUND "#"
    WHITESPACE " "
    ATTRIBUTE_LIST
      L_PAREN "("
      WHITESPACE "\n  "
      ATTRIBUTE_OPTION
        NAME
          FUNCTION_KW "function"
        WHITESPACE " "
        EQ "="
        WHITESPACE " "
        PATH_TYPE
          PATH
            PATH
              PATH
                PATH_SEGMENT
                  NAME_REF
                    IDENT "foo"
              DOT "."
              PATH_SEGMENT
                NAME_REF
                  IDENT "bar"
            DOT "."
            PATH_SEGMENT
              NAME_REF
                IDENT "f"
      COMMA ","
      WHITESPACE "\n  "
      ATTRIBUTE_OPTION
        NAME
          IDENT "leftarg"
        WHITESPACE " "
        EQ "="
        WHITESPACE " "
        CHAR_TYPE
          VARCHAR_KW "varchar"
          ARG_LIST
            L_PAREN "("
            ARG
              LITERAL
                INT_NUMBER "100"
            R_PAREN ")"
      COMMA ","
      WHITESPACE "\n  "
      ATTRIBUTE_OPTION
        NAME
          IDENT "rightarg"
        WHITESPACE " "
        EQ "="
        WHITESPACE " "
        PATH_TYPE
          PATH
            PATH
              PATH_SEGMENT
                NAME_REF
                  IDENT "foo"
            DOT "."
            PATH_SEGMENT
              NAME_REF
                BIGINT_KW "bigint"
      COMMA ","
      WHITESPACE "\n  "
      ATTRIBUTE_OPTION
        NAME
          IDENT "commutator"
        WHITESPACE " "
        EQ "="
        WHITESPACE " "
        CUSTOM_OP
          AMP "&"
          AMP "&"
          AMP "&"
          AMP "&"
      COMMA ","
      WHITESPACE "\n  "
      ATTRIBUTE_OPTION
        NAME
          IDENT "negator"
        WHITESPACE " "
        EQ "="
        WHITESPACE " "
        CUSTOM_OP
          L_ANGLE "<"
          MINUS "-"
          R_ANGLE ">"
      COMMA ","
      WHITESPACE "\n  "
      ATTRIBUTE_OPTION
        NAME
          RESTRICT_KW "restrict"
        WHITESPACE " "
        EQ "="
        WHITESPACE " "
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                IDENT "r"
      COMMA ","
      WHITESPACE "\n  "
      ATTRIBUTE_OPTION
        NAME
          JOIN_KW "join"
        WHITESPACE " "
        EQ "="
        WHITESPACE " "
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                IDENT "j"
      COMMA ","
      WHITESPACE "\n  "
      ATTRIBUTE_OPTION
        NAME
          IDENT "hashes"
      COMMA ","
      WHITESPACE "\n  "
      ATTRIBUTE_OPTION
        NAME
          IDENT "merges"
      WHITESPACE "\n"
      R_PAREN ")"
  SEMICOLON ";"
  WHITESPACE "\n\n"