---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/ok/drop_function.sql
---
SOURCE_FILE
  COMMENT "-- simple"
  WHITESPACE "\n"
  DROP_FUNCTION
    DROP_KW "drop"
    WHITESPACE " "
    FUNCTION_KW "function"
    WHITESPACE " "
    FUNCTION_SIG_LIST
      FUNCTION_SIG
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "s"
  SEMICOLON ";"
  WHITESPACE "\n\n"
  COMMENT "-- full"
  WHITESPACE "\n"
  DROP_FUNCTION
    DROP_KW "drop"
    WHITESPACE " "
    FUNCTION_KW "function"
    WHITESPACE " "
    IF_EXISTS
      IF_KW "if"
      WHITESPACE " "
      EXISTS_KW "exists"
    WHITESPACE " "
    FUNCTION_SIG_LIST
      FUNCTION_SIG
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "a"
      COMMA ","
      WHITESPACE " "
      FUNCTION_SIG
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "b"
        PARAM_LIST
          L_PAREN "("
          PARAM
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    TEXT_KW "text"
          R_PAREN ")"
      COMMA ","
      WHITESPACE " "
      FUNCTION_SIG
        PATH
          PATH
            PATH_SEGMENT
              NAME_REF
                IDENT "foo"
          DOT "."
          PATH_SEGMENT
            NAME_REF
              IDENT "c"
        PARAM_LIST
          L_PAREN "("
          PARAM
            PARAM_IN
              IN_KW "in"
            WHITESPACE " "
            NAME
              IDENT "f"
            WHITESPACE " "
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    INT_KW "int"
          R_PAREN ")"
      COMMA ","
      WHITESPACE " "
      FUNCTION_SIG
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "b"
        PARAM_LIST
          L_PAREN "("
          PARAM
            PARAM_OUT
              OUT_KW "out"
            WHITESPACE " "
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    TEXT_KW "text"
          R_PAREN ")"
    WHITESPACE " "
    CASCADE_KW "cascade"
  SEMICOLON ";"
  WHITESPACE "\n"
  DROP_FUNCTION
    DROP_KW "drop"
    WHITESPACE " "
    FUNCTION_KW "function"
    WHITESPACE " "
    IF_EXISTS
      IF_KW "if"
      WHITESPACE " "
      EXISTS_KW "exists"
    WHITESPACE " "
    FUNCTION_SIG_LIST
      FUNCTION_SIG
        PATH
          PATH_SEGMENT
            NAME_REF
              IDENT "a"
    WHITESPACE " "
    RESTRICT_KW "restrict"
  SEMICOLON ";"
  WHITESPACE "\n\n"
