diff --git a/crates/squawk_lexer/src/lib.rs b/crates/squawk_lexer/src/lib.rs index dff91c6c..5850bae2 100644 --- a/crates/squawk_lexer/src/lib.rs +++ b/crates/squawk_lexer/src/lib.rs @@ -114,7 +114,7 @@ impl Cursor<'_> { while self.first().is_ascii_digit() { self.bump(); } - TokenKind::Param + TokenKind::PositionalParam } } '`' => TokenKind::Backtick, diff --git a/crates/squawk_lexer/src/snapshots/squawk_lexer__tests__params.snap b/crates/squawk_lexer/src/snapshots/squawk_lexer__tests__params.snap index 1879b452..8ee456f4 100644 --- a/crates/squawk_lexer/src/snapshots/squawk_lexer__tests__params.snap +++ b/crates/squawk_lexer/src/snapshots/squawk_lexer__tests__params.snap @@ -6,21 +6,21 @@ expression: "lex(r#\"\nselect $1 + $2;\n\nselect $1123123123123;\n\nselect $;\n\ "\n" @ Whitespace, "select" @ Ident, " " @ Whitespace, - "$1" @ Param, + "$1" @ PositionalParam, " " @ Whitespace, "+" @ Plus, " " @ Whitespace, - "$2" @ Param, + "$2" @ PositionalParam, ";" @ Semi, "\n\n" @ Whitespace, "select" @ Ident, " " @ Whitespace, - "$1123123123123" @ Param, + "$1123123123123" @ PositionalParam, ";" @ Semi, "\n\n" @ Whitespace, "select" @ Ident, " " @ Whitespace, - "$" @ Param, + "$" @ PositionalParam, ";" @ Semi, "\n" @ Whitespace, ] diff --git a/crates/squawk_lexer/src/token.rs b/crates/squawk_lexer/src/token.rs index 5827c672..a768fd66 100644 --- a/crates/squawk_lexer/src/token.rs +++ b/crates/squawk_lexer/src/token.rs @@ -80,7 +80,7 @@ pub enum TokenKind { /// Positional Parameter, e.g., `$1` /// /// see: - Param, + PositionalParam, /// Quoted Identifier, e.g., `"update"` in `update "my_table" set "a" = 5;` /// /// These are case-sensitive, unlike [`TokenKind::Ident`] diff --git a/crates/squawk_parser/src/grammar.rs b/crates/squawk_parser/src/grammar.rs index fa1242dc..45f3d28d 100644 --- a/crates/squawk_parser/src/grammar.rs +++ b/crates/squawk_parser/src/grammar.rs @@ -777,9 +777,9 @@ fn atom_expr(p: &mut Parser<'_>) -> Option { return Some(m); } let done = match (p.current(), p.nth(1)) { - (PARAM, _) => { + (POSITIONAL_PARAM, _) => { let m = p.start(); - p.bump(PARAM); + p.bump(POSITIONAL_PARAM); m.complete(p, LITERAL) } (VALUES_KW, _) => values_clause(p, None), @@ -4116,7 +4116,16 @@ pub(crate) const OPERATOR_FIRST: TokenSet = TokenSet::new(&[ ]); const LHS_FIRST: TokenSet = TokenSet::new(&[ - L_PAREN, L_BRACK, CAST_KW, NOT_KW, IS_KW, PARAM, CASE_KW, ARRAY_KW, ROW_KW, DEFAULT_KW, + L_PAREN, + L_BRACK, + CAST_KW, + NOT_KW, + IS_KW, + POSITIONAL_PARAM, + CASE_KW, + ARRAY_KW, + ROW_KW, + DEFAULT_KW, ]) .union(OPERATOR_FIRST) .union(LITERAL_FIRST) diff --git a/crates/squawk_parser/src/lexed_str.rs b/crates/squawk_parser/src/lexed_str.rs index 6f3df3b0..871eb2fb 100644 --- a/crates/squawk_parser/src/lexed_str.rs +++ b/crates/squawk_parser/src/lexed_str.rs @@ -217,7 +217,7 @@ impl<'a> Converter<'a> { } squawk_lexer::TokenKind::Eof => SyntaxKind::EOF, squawk_lexer::TokenKind::Backtick => SyntaxKind::BACKTICK, - squawk_lexer::TokenKind::Param => SyntaxKind::PARAM, + squawk_lexer::TokenKind::PositionalParam => SyntaxKind::POSITIONAL_PARAM, squawk_lexer::TokenKind::QuotedIdent { terminated } => { if !terminated { err = "Missing trailing \" to terminate the quoted identifier" diff --git a/crates/squawk_parser/src/syntax_kind.rs b/crates/squawk_parser/src/syntax_kind.rs index cdb15b79..7f9774bb 100644 --- a/crates/squawk_parser/src/syntax_kind.rs +++ b/crates/squawk_parser/src/syntax_kind.rs @@ -1104,7 +1104,7 @@ pub enum SyntaxKind { /// see: COMMENT, IDENT, - PARAM, + POSITIONAL_PARAM, ERROR, WHITESPACE, @@ -1250,6 +1250,7 @@ pub enum SyntaxKind { CREATE_TYPE_STMT, CREATE_TRIGGER_STMT, CREATE_FUNCTION_STMT, + PARAM, PARAM_IN, PARAM_OUT, PARAM_INOUT, diff --git a/crates/squawk_parser/tests/snapshots/tests__explain_ok.snap b/crates/squawk_parser/tests/snapshots/tests__explain_ok.snap index fcbab3fb..96d5e642 100644 --- a/crates/squawk_parser/tests/snapshots/tests__explain_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__explain_ok.snap @@ -1,7 +1,6 @@ --- source: crates/squawk_parser/tests/tests.rs input_file: crates/squawk_parser/tests/data/ok/explain.sql -snapshot_kind: text --- SOURCE_FILE COMMENT "-- simple" @@ -373,7 +372,7 @@ SOURCE_FILE R_ANGLE ">" WHITESPACE " " LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" WHITESPACE " " AND_KW "AND" WHITESPACE " " @@ -384,7 +383,7 @@ SOURCE_FILE L_ANGLE "<" WHITESPACE " " LITERAL - PARAM "$2" + POSITIONAL_PARAM "$2" WHITESPACE "\n " GROUP_BY_CLAUSE GROUP_KW "GROUP" @@ -457,7 +456,7 @@ SOURCE_FILE R_ANGLE ">" WHITESPACE " " LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" WHITESPACE " " AND_KW "AND" WHITESPACE " " @@ -468,7 +467,7 @@ SOURCE_FILE L_ANGLE "<" WHITESPACE " " LITERAL - PARAM "$2" + POSITIONAL_PARAM "$2" WHITESPACE "\n " GROUP_BY_CLAUSE GROUP_KW "GROUP" @@ -521,7 +520,7 @@ SOURCE_FILE WHITESPACE " " CAST_EXPR LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" COLON2 "::" PATH_TYPE PATH @@ -539,7 +538,7 @@ SOURCE_FILE WHITESPACE " " CAST_EXPR LITERAL - PARAM "$2" + POSITIONAL_PARAM "$2" COLON2 "::" PATH_TYPE PATH diff --git a/crates/squawk_parser/tests/snapshots/tests__misc_ok.snap b/crates/squawk_parser/tests/snapshots/tests__misc_ok.snap index 596bf615..b9977a4f 100644 --- a/crates/squawk_parser/tests/snapshots/tests__misc_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__misc_ok.snap @@ -1,7 +1,6 @@ --- source: crates/squawk_parser/tests/tests.rs input_file: crates/squawk_parser/tests/data/ok/misc.sql -snapshot_kind: text --- SOURCE_FILE CREATE_TABLE @@ -100,7 +99,7 @@ SOURCE_FILE WHITESPACE "\n " CAST_EXPR LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" COLON2 "::" ARRAY_TYPE PATH_TYPE @@ -114,7 +113,7 @@ SOURCE_FILE WHITESPACE " \n " CAST_EXPR LITERAL - PARAM "$2" + POSITIONAL_PARAM "$2" COLON2 "::" ARRAY_TYPE PATH_TYPE @@ -128,7 +127,7 @@ SOURCE_FILE WHITESPACE " \n " CAST_EXPR LITERAL - PARAM "$3" + POSITIONAL_PARAM "$3" COLON2 "::" ARRAY_TYPE PATH_TYPE @@ -174,29 +173,29 @@ SOURCE_FILE WHITESPACE " \n " L_PAREN "(" LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" COMMA "," WHITESPACE " " LITERAL - PARAM "$2" + POSITIONAL_PARAM "$2" COMMA "," WHITESPACE " " LITERAL - PARAM "$3" + POSITIONAL_PARAM "$3" R_PAREN ")" COMMA "," WHITESPACE " \n " L_PAREN "(" LITERAL - PARAM "$4" + POSITIONAL_PARAM "$4" COMMA "," WHITESPACE " " LITERAL - PARAM "$5" + POSITIONAL_PARAM "$5" COMMA "," WHITESPACE " " LITERAL - PARAM "$6" + POSITIONAL_PARAM "$6" R_PAREN ")" COMMA "," WHITESPACE " \n " @@ -204,15 +203,15 @@ SOURCE_FILE WHITESPACE "\n " L_PAREN "(" LITERAL - PARAM "$2998" + POSITIONAL_PARAM "$2998" COMMA "," WHITESPACE " " LITERAL - PARAM "$2999" + POSITIONAL_PARAM "$2999" COMMA "," WHITESPACE " " LITERAL - PARAM "$3000" + POSITIONAL_PARAM "$3000" R_PAREN ")" SEMICOLON ";" WHITESPACE "\n\n\n" @@ -294,7 +293,7 @@ SOURCE_FILE IDENT "api_key" FAT_ARROW "=>" LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" WHITESPACE "\n" R_PAREN ")" WHITESPACE " " @@ -342,7 +341,7 @@ SOURCE_FILE COMMA "," WHITESPACE " " LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" R_PAREN ")" WHITESPACE " " ALIAS @@ -492,7 +491,7 @@ SOURCE_FILE COMMA "," WHITESPACE " " LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" WHITESPACE "\n " COMMA "," WHITESPACE " " @@ -512,7 +511,7 @@ SOURCE_FILE IDENT "_api_key" FAT_ARROW "=>" LITERAL - PARAM "$2" + POSITIONAL_PARAM "$2" WHITESPACE "\n " R_PAREN ")" WHITESPACE " " @@ -648,14 +647,14 @@ SOURCE_FILE COMMENT "-- %s," WHITESPACE "\n " LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" COMMA "," WHITESPACE "\n " COMMENT "-- %s::jsonb," WHITESPACE "\n " CAST_EXPR LITERAL - PARAM "$2" + POSITIONAL_PARAM "$2" COLON2 "::" PATH_TYPE PATH @@ -681,7 +680,7 @@ SOURCE_FILE IDENT "api_key" FAT_ARROW "=>" LITERAL - PARAM "$3" + POSITIONAL_PARAM "$3" WHITESPACE "\n " R_PAREN ")" CUSTOM_OP diff --git a/crates/squawk_parser/tests/snapshots/tests__prepare_ok.snap b/crates/squawk_parser/tests/snapshots/tests__prepare_ok.snap index ca1e8dda..d977f5a6 100644 --- a/crates/squawk_parser/tests/snapshots/tests__prepare_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__prepare_ok.snap @@ -1,7 +1,6 @@ --- source: crates/squawk_parser/tests/tests.rs input_file: crates/squawk_parser/tests/data/ok/prepare.sql -snapshot_kind: text --- SOURCE_FILE COMMENT "-- insert" @@ -57,19 +56,19 @@ SOURCE_FILE VALUES_KW "VALUES" L_PAREN "(" LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" COMMA "," WHITESPACE " " LITERAL - PARAM "$2" + POSITIONAL_PARAM "$2" COMMA "," WHITESPACE " " LITERAL - PARAM "$3" + POSITIONAL_PARAM "$3" COMMA "," WHITESPACE " " LITERAL - PARAM "$4" + POSITIONAL_PARAM "$4" R_PAREN ")" SEMICOLON ";" WHITESPACE "\n\n\n\n" @@ -131,7 +130,7 @@ SOURCE_FILE IDENT "usrid" EQ "=" LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" WHITESPACE " " AND_KW "AND" WHITESPACE " " @@ -163,7 +162,7 @@ SOURCE_FILE EQ "=" WHITESPACE " " LITERAL - PARAM "$2" + POSITIONAL_PARAM "$2" SEMICOLON ";" WHITESPACE "\n\n" PREPARE_STMT diff --git a/crates/squawk_parser/tests/snapshots/tests__select_ok.snap b/crates/squawk_parser/tests/snapshots/tests__select_ok.snap index 4063133b..e2e53165 100644 --- a/crates/squawk_parser/tests/snapshots/tests__select_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__select_ok.snap @@ -1,7 +1,6 @@ --- source: crates/squawk_parser/tests/tests.rs input_file: crates/squawk_parser/tests/data/ok/select.sql -snapshot_kind: text --- SOURCE_FILE COMMENT "-- parens_and_unions" @@ -562,7 +561,7 @@ SOURCE_FILE TARGET_LIST TARGET LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" SEMICOLON ";" WHITESPACE "\n\n" SELECT @@ -589,7 +588,7 @@ SOURCE_FILE EQ "=" WHITESPACE " " LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" SEMICOLON ";" WHITESPACE "\n\n" COMMENT "-- any_and_all" @@ -1037,7 +1036,7 @@ SOURCE_FILE TARGET FIELD_EXPR LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" DOT "." NAME_REF IDENT "somecolumn" @@ -1140,7 +1139,7 @@ SOURCE_FILE WHEN_KW "when" WHITESPACE " " LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" WHITESPACE " " THEN_KW "then" WHITESPACE " " @@ -1151,7 +1150,7 @@ SOURCE_FILE WHEN_KW "when" WHITESPACE " " LITERAL - PARAM "$2" + POSITIONAL_PARAM "$2" WHITESPACE " " THEN_KW "then" WHITESPACE " " diff --git a/crates/squawk_parser/tests/snapshots/tests__select_operators_ok.snap b/crates/squawk_parser/tests/snapshots/tests__select_operators_ok.snap index de3ce574..3db10c14 100644 --- a/crates/squawk_parser/tests/snapshots/tests__select_operators_ok.snap +++ b/crates/squawk_parser/tests/snapshots/tests__select_operators_ok.snap @@ -1,7 +1,6 @@ --- source: crates/squawk_parser/tests/tests.rs input_file: crates/squawk_parser/tests/data/ok/select_operators.sql -snapshot_kind: text --- SOURCE_FILE COMMENT "-- logical_operators" @@ -3767,7 +3766,7 @@ SOURCE_FILE TARGET INDEX_EXPR LITERAL - PARAM "$1" + POSITIONAL_PARAM "$1" L_BRACK "[" LITERAL INT_NUMBER "10"