Skip to content

Commit e0d55fd

Browse files
committed
fix: TSQL Function definition to list statements
1 parent 252dd66 commit e0d55fd

File tree

2 files changed

+75
-81
lines changed

2 files changed

+75
-81
lines changed

grammar.js

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1276,26 +1276,16 @@ module.exports = grammar({
12761276
optional($.keyword_as),
12771277
$.keyword_begin,
12781278
optional($.var_declarations),
1279-
$._tsql_statement,
1280-
$._function_return,
1281-
$.keyword_end,
1282-
),
1283-
1284-
_tsql_statement: $ => choice(
1285-
repeat1(
1286-
seq(
1279+
choice(
1280+
$.statement,
1281+
repeat1(seq(
12871282
$.keyword_begin,
1288-
$._tsql_statement_no_block,
1283+
repeat($.statement),
12891284
$.keyword_end,
1290-
),
1285+
)),
12911286
),
1292-
$._tsql_statement_no_block,
1293-
),
1294-
1295-
_tsql_statement_no_block: $ => choice(
1296-
$._ddl_statement,
1297-
$._dml_write,
1298-
optional_parenthesis($._dml_read),
1287+
$._function_return,
1288+
$.keyword_end,
12991289
),
13001290

13011291
function_body: $ => choice(

test/corpus/functions.txt

Lines changed: 68 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,25 +1172,26 @@ RETURNS int
11721172
(keyword_int)))
11731173
(function_argument
11741174
(identifier)
1175-
(nvarchar
1176-
(keyword_nvarchar)
1177-
(literal))))
1175+
(nvarchar
1176+
(keyword_nvarchar)
1177+
(literal))))
11781178
(keyword_returns)
11791179
(int
11801180
(keyword_int))
11811181
(function_body
11821182
(keyword_as)
11831183
(keyword_begin)
1184-
(select
1185-
(keyword_select)
1186-
(select_expression
1187-
(term
1188-
(all_fields))))
1189-
(from
1190-
(keyword_from)
1191-
(relation
1192-
(object_reference
1193-
(identifier))))
1184+
(statement
1185+
(select
1186+
(keyword_select)
1187+
(select_expression
1188+
(term
1189+
(all_fields))))
1190+
(from
1191+
(keyword_from)
1192+
(relation
1193+
(object_reference
1194+
(identifier)))))
11941195
(keyword_return)
11951196
(field
11961197
(identifier))
@@ -1226,43 +1227,44 @@ RETURNS int
12261227
(keyword_int)))
12271228
(function_argument
12281229
(identifier)
1229-
(nvarchar
1230-
(keyword_nvarchar)
1231-
(literal))))
1230+
(nvarchar
1231+
(keyword_nvarchar)
1232+
(literal))))
12321233
(keyword_returns)
12331234
(int
12341235
(keyword_int))
12351236
(function_body
12361237
(keyword_as)
12371238
(keyword_begin)
1238-
(var_declarations
1239-
(keyword_declare)
1240-
(var_declaration
1241-
(identifier)
1242-
(int
1243-
(keyword_int)))
1244-
(var_declaration
1245-
(identifier)
1246-
(int
1247-
(keyword_int)))
1248-
(var_declaration
1249-
(identifier)
1250-
(int
1251-
(keyword_int)))
1252-
(var_declaration
1253-
(identifier)
1254-
(int
1255-
(keyword_int))))
1256-
(select
1257-
(keyword_select)
1258-
(select_expression
1259-
(term
1260-
(all_fields))))
1261-
(from
1262-
(keyword_from)
1263-
(relation
1264-
(object_reference
1265-
(identifier))))
1239+
(var_declarations
1240+
(keyword_declare)
1241+
(var_declaration
1242+
(identifier)
1243+
(int
1244+
(keyword_int)))
1245+
(var_declaration
1246+
(identifier)
1247+
(int
1248+
(keyword_int)))
1249+
(var_declaration
1250+
(identifier)
1251+
(int
1252+
(keyword_int)))
1253+
(var_declaration
1254+
(identifier)
1255+
(int
1256+
(keyword_int))))
1257+
(statement
1258+
(select
1259+
(keyword_select)
1260+
(select_expression
1261+
(term
1262+
(all_fields))))
1263+
(from
1264+
(keyword_from)
1265+
(relation
1266+
(object_reference
1267+
(identifier)))))
12661268
(keyword_return)
12671269
(field
12681270
(identifier))
@@ -1331,28 +1333,30 @@ RETURNS int
13311333
(int
13321334
(keyword_int))))
13331335
(keyword_begin)
1334-
(select
1335-
(keyword_select)
1336-
(select_expression
1337-
(term
1338-
(all_fields))))
1339-
(from
1340-
(keyword_from)
1341-
(relation
1342-
(object_reference
1343-
(identifier))))
1336+
(statement
1337+
(select
1338+
(keyword_select)
1339+
(select_expression
1340+
(term
1341+
(all_fields))))
1342+
(from
1343+
(keyword_from)
1344+
(relation
1345+
(object_reference
1346+
(identifier)))))
13441347
(keyword_end)
13451348
(keyword_begin)
1346-
(select
1347-
(keyword_select)
1348-
(select_expression
1349-
(term
1350-
(all_fields))))
1351-
(from
1352-
(keyword_from)
1353-
(relation
1354-
(object_reference
1355-
(identifier))))
1349+
(statement
1350+
(select
1351+
(keyword_select)
1352+
(select_expression
1353+
(term
1354+
(all_fields))))
1355+
(from
1356+
(keyword_from)
1357+
(relation
1358+
(object_reference
1359+
(identifier)))))
13561360
(keyword_end)
13571361
(keyword_return)
13581362
(field

0 commit comments

Comments
 (0)