squawk-syntax 2.66.0

Linter for Postgres migrations & SQL
Documentation
---
source: crates/squawk_syntax/src/test.rs
input_file: crates/squawk_parser/tests/data/plpgsql/ok/call_stmt.sql
---
PLPGSQL@0..121
  WHITESPACE@0..1 "\n"
  PLPGSQL_BLOCK@1..120
    PLPGSQL_DECLARE_SECTION@1..25
      DECLARE_KW@1..8 "declare"
      WHITESPACE@8..11 "\n  "
      PLPGSQL_VAR_DECL@11..25
        PLPGSQL_VAR_NAME@11..15
          CALL_KW@11..15 "call"
        WHITESPACE@15..16 " "
        PATH_TYPE@16..19
          PATH_REF@16..19
            PATH_SEGMENT_REF@16..19
              INT_KW@16..19 "int"
        WHITESPACE@19..20 " "
        PLPGSQL_VAR_INIT@20..24
          COLON_EQ@20..22 ":="
          WHITESPACE@22..23 " "
          PLPGSQL_EXPR@23..24
            TARGET_LIST@23..24
              TARGET@23..24
                LITERAL@23..24
                  INT_NUMBER@23..24 "1"
        SEMICOLON@24..25 ";"
    WHITESPACE@25..26 "\n"
    BEGIN_KW@26..31 "begin"
    WHITESPACE@31..34 "\n  "
    PLPGSQL_BODY@34..116
      PLPGSQL_CALL_STMT@34..59
        CALL@34..58
          CALL_KW@34..38 "call"
          WHITESPACE@38..39 " "
          PROCEDURE_NAME_REF@39..56
            PATH_REF@39..56
              PATH_SEGMENT_REF@39..56
                IDENT@39..56 "transaction_test1"
          ARG_LIST@56..58
            L_PAREN@56..57 "("
            R_PAREN@57..58 ")"
        SEMICOLON@58..59 ";"
      WHITESPACE@59..62 "\n  "
      PLPGSQL_CALL_STMT@62..76
        CALL@62..75
          CALL_KW@62..66 "call"
          WHITESPACE@66..67 " "
          PROCEDURE_NAME_REF@67..69
            PATH_REF@67..69
              PATH_SEGMENT_REF@67..69
                IDENT@67..69 "p1"
          ARG_LIST@69..75
            L_PAREN@69..70 "("
            ARG@70..71
              LITERAL@70..71
                INT_NUMBER@70..71 "1"
            COMMA@71..72 ","
            WHITESPACE@72..73 " "
            ARG@73..74
              LITERAL@73..74
                INT_NUMBER@73..74 "2"
            R_PAREN@74..75 ")"
        SEMICOLON@75..76 ";"
      WHITESPACE@76..79 "\n  "
      PLPGSQL_CALL_STMT@79..103
        CALL@79..102
          CALL_KW@79..83 "call"
          WHITESPACE@83..84 " "
          PROCEDURE_NAME_REF@84..86
            PATH_REF@84..86
              PATH_SEGMENT_REF@84..86
                IDENT@84..86 "p2"
          ARG_LIST@86..102
            L_PAREN@86..87 "("
            ARG@87..93
              NAMED_ARG@87..93
                PARAM_NAME_REF@87..88
                  IDENT@87..88 "a"
                WHITESPACE@88..89 " "
                FAT_ARROW@89..91 "=>"
                WHITESPACE@91..92 " "
                LITERAL@92..93
                  INT_NUMBER@92..93 "1"
            COMMA@93..94 ","
            WHITESPACE@94..95 " "
            ARG@95..101
              NAMED_ARG@95..101
                PARAM_NAME_REF@95..96
                  IDENT@95..96 "b"
                WHITESPACE@96..97 " "
                COLON_EQ@97..99 ":="
                WHITESPACE@99..100 " "
                LITERAL@100..101
                  INT_NUMBER@100..101 "2"
            R_PAREN@101..102 ")"
        SEMICOLON@102..103 ";"
      WHITESPACE@103..106 "\n  "
      PLPGSQL_ASSIGN_STMT@106..116
        PLPGSQL_ASSIGN_TARGET@106..110
          PLPGSQL_VAR_NAME_REF@106..110
            CALL_KW@106..110 "call"
        WHITESPACE@110..111 " "
        COLON_EQ@111..113 ":="
        WHITESPACE@113..114 " "
        PLPGSQL_EXPR@114..115
          TARGET_LIST@114..115
            TARGET@114..115
              LITERAL@114..115
                INT_NUMBER@114..115 "2"
        SEMICOLON@115..116 ";"
    WHITESPACE@116..117 "\n"
    END_KW@117..120 "end"
  WHITESPACE@120..121 "\n"