Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion crates/squawk_lexer/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ impl Cursor<'_> {
while self.first().is_ascii_digit() {
self.bump();
}
TokenKind::Param
TokenKind::PositionalParam
}
}
'`' => TokenKind::Backtick,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
]
2 changes: 1 addition & 1 deletion crates/squawk_lexer/src/token.rs
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ pub enum TokenKind {
/// Positional Parameter, e.g., `$1`
///
/// see: <https://www.postgresql.org/docs/16/sql-expressions.html#SQL-EXPRESSIONS-PARAMETERS-POSITIONAL>
Param,
PositionalParam,
/// Quoted Identifier, e.g., `"update"` in `update "my_table" set "a" = 5;`
///
/// These are case-sensitive, unlike [`TokenKind::Ident`]
Expand Down
15 changes: 12 additions & 3 deletions crates/squawk_parser/src/grammar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -777,9 +777,9 @@ fn atom_expr(p: &mut Parser<'_>) -> Option<CompletedMarker> {
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),
Expand Down Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion crates/squawk_parser/src/lexed_str.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
3 changes: 2 additions & 1 deletion crates/squawk_parser/src/syntax_kind.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1104,7 +1104,7 @@ pub enum SyntaxKind {
/// see: <https://www.postgresql.org/docs/17/sql-syntax-lexical.html#SQL-SYNTAX-COMMENTS>
COMMENT,
IDENT,
PARAM,
POSITIONAL_PARAM,
ERROR,
WHITESPACE,

Expand Down Expand Up @@ -1250,6 +1250,7 @@ pub enum SyntaxKind {
CREATE_TYPE_STMT,
CREATE_TRIGGER_STMT,
CREATE_FUNCTION_STMT,
PARAM,
PARAM_IN,
PARAM_OUT,
PARAM_INOUT,
Expand Down
13 changes: 6 additions & 7 deletions crates/squawk_parser/tests/snapshots/tests__explain_ok.snap
Original file line number Diff line number Diff line change
@@ -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"
Expand Down Expand Up @@ -373,7 +372,7 @@ SOURCE_FILE
R_ANGLE ">"
WHITESPACE " "
LITERAL
PARAM "$1"
POSITIONAL_PARAM "$1"
WHITESPACE " "
AND_KW "AND"
WHITESPACE " "
Expand All @@ -384,7 +383,7 @@ SOURCE_FILE
L_ANGLE "<"
WHITESPACE " "
LITERAL
PARAM "$2"
POSITIONAL_PARAM "$2"
WHITESPACE "\n "
GROUP_BY_CLAUSE
GROUP_KW "GROUP"
Expand Down Expand Up @@ -457,7 +456,7 @@ SOURCE_FILE
R_ANGLE ">"
WHITESPACE " "
LITERAL
PARAM "$1"
POSITIONAL_PARAM "$1"
WHITESPACE " "
AND_KW "AND"
WHITESPACE " "
Expand All @@ -468,7 +467,7 @@ SOURCE_FILE
L_ANGLE "<"
WHITESPACE " "
LITERAL
PARAM "$2"
POSITIONAL_PARAM "$2"
WHITESPACE "\n "
GROUP_BY_CLAUSE
GROUP_KW "GROUP"
Expand Down Expand Up @@ -521,7 +520,7 @@ SOURCE_FILE
WHITESPACE " "
CAST_EXPR
LITERAL
PARAM "$1"
POSITIONAL_PARAM "$1"
COLON2 "::"
PATH_TYPE
PATH
Expand All @@ -539,7 +538,7 @@ SOURCE_FILE
WHITESPACE " "
CAST_EXPR
LITERAL
PARAM "$2"
POSITIONAL_PARAM "$2"
COLON2 "::"
PATH_TYPE
PATH
Expand Down
39 changes: 19 additions & 20 deletions crates/squawk_parser/tests/snapshots/tests__misc_ok.snap
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -100,7 +99,7 @@ SOURCE_FILE
WHITESPACE "\n "
CAST_EXPR
LITERAL
PARAM "$1"
POSITIONAL_PARAM "$1"
COLON2 "::"
ARRAY_TYPE
PATH_TYPE
Expand All @@ -114,7 +113,7 @@ SOURCE_FILE
WHITESPACE " \n "
CAST_EXPR
LITERAL
PARAM "$2"
POSITIONAL_PARAM "$2"
COLON2 "::"
ARRAY_TYPE
PATH_TYPE
Expand All @@ -128,7 +127,7 @@ SOURCE_FILE
WHITESPACE " \n "
CAST_EXPR
LITERAL
PARAM "$3"
POSITIONAL_PARAM "$3"
COLON2 "::"
ARRAY_TYPE
PATH_TYPE
Expand Down Expand Up @@ -174,45 +173,45 @@ 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 "
COMMENT "-- ..., "
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"
Expand Down Expand Up @@ -294,7 +293,7 @@ SOURCE_FILE
IDENT "api_key"
FAT_ARROW "=>"
LITERAL
PARAM "$1"
POSITIONAL_PARAM "$1"
WHITESPACE "\n"
R_PAREN ")"
WHITESPACE " "
Expand Down Expand Up @@ -342,7 +341,7 @@ SOURCE_FILE
COMMA ","
WHITESPACE " "
LITERAL
PARAM "$1"
POSITIONAL_PARAM "$1"
R_PAREN ")"
WHITESPACE " "
ALIAS
Expand Down Expand Up @@ -492,7 +491,7 @@ SOURCE_FILE
COMMA ","
WHITESPACE " "
LITERAL
PARAM "$1"
POSITIONAL_PARAM "$1"
WHITESPACE "\n "
COMMA ","
WHITESPACE " "
Expand All @@ -512,7 +511,7 @@ SOURCE_FILE
IDENT "_api_key"
FAT_ARROW "=>"
LITERAL
PARAM "$2"
POSITIONAL_PARAM "$2"
WHITESPACE "\n "
R_PAREN ")"
WHITESPACE " "
Expand Down Expand Up @@ -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
Expand All @@ -681,7 +680,7 @@ SOURCE_FILE
IDENT "api_key"
FAT_ARROW "=>"
LITERAL
PARAM "$3"
POSITIONAL_PARAM "$3"
WHITESPACE "\n "
R_PAREN ")"
CUSTOM_OP
Expand Down
13 changes: 6 additions & 7 deletions crates/squawk_parser/tests/snapshots/tests__prepare_ok.snap
Original file line number Diff line number Diff line change
@@ -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"
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -131,7 +130,7 @@ SOURCE_FILE
IDENT "usrid"
EQ "="
LITERAL
PARAM "$1"
POSITIONAL_PARAM "$1"
WHITESPACE " "
AND_KW "AND"
WHITESPACE " "
Expand Down Expand Up @@ -163,7 +162,7 @@ SOURCE_FILE
EQ "="
WHITESPACE " "
LITERAL
PARAM "$2"
POSITIONAL_PARAM "$2"
SEMICOLON ";"
WHITESPACE "\n\n"
PREPARE_STMT
Expand Down
Loading
Loading