Allow semicolons as only content of blocks

Fixes #300
pull/659/head
susliko 2023-09-19 23:07:15 +07:00
parent 59ab070df6
commit cd5d3a248f
3 changed files with 15 additions and 2 deletions

@ -418,6 +418,12 @@ object O4 extends {
val a: A = b val a: A = b
} }
object O5 {
;;
;
;
}
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
(compilation_unit (compilation_unit
@ -440,7 +446,10 @@ object O4 extends {
(val_definition (val_definition
(identifier) (identifier)
(type_identifier) (type_identifier)
(identifier)))))) (identifier)))))
(object_definition
(identifier)
(template_body)))
================================================================================ ================================================================================
Object definitions Object definitions

@ -669,6 +669,8 @@ def matchTest(x: Int): String = x match {
case 3 => { case 3 => {
"3" "3"
} }
case 4 =>
;
case A if a == 1 => case A if a == 1 =>
case A if a == 2 => 2 case A if a == 2 => 2
case ((i, _)) => i case ((i, _)) => i
@ -706,6 +708,8 @@ def matchTest(x: Int): String = x match {
(integer_literal) (integer_literal)
(block (block
(string))) (string)))
(case_clause
(integer_literal))
(case_clause (case_clause
(identifier) (identifier)
(guard (guard

@ -780,7 +780,7 @@ module.exports = grammar({
seq( seq(
sep1( sep1(
$._semicolon, $._semicolon,
choice($.expression, $._definition, $._end_marker), choice($.expression, $._definition, $._end_marker, ";"),
), ),
optional($._semicolon), optional($._semicolon),
), ),