Skip to content

Commit 7d1b725

Browse files
committed
parser,syntax: Add separate parser for stmt with optional semicolon
Adjusting `grammar::fragments::stmt` to Optional or Yes will break original functionality and tests.
1 parent 1c81cd1 commit 7d1b725

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

crates/parser/src/grammar.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ pub(crate) mod fragments {
6666
expressions::stmt(p, expressions::StmtWithSemi::No)
6767
}
6868

69+
pub(crate) fn stmt_optional_semi(p: &mut Parser) {
70+
expressions::stmt(p, expressions::StmtWithSemi::Optional)
71+
}
72+
6973
pub(crate) fn opt_visibility(p: &mut Parser) {
7074
let _ = super::opt_visibility(p);
7175
}

crates/parser/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ pub enum FragmentKind {
8888
Path,
8989
Expr,
9090
Statement,
91+
StatementOptionalSemi,
9192
Type,
9293
Pattern,
9394
Item,
@@ -118,6 +119,7 @@ pub fn parse_fragment(
118119
FragmentKind::Visibility => grammar::fragments::opt_visibility,
119120
FragmentKind::MetaItem => grammar::fragments::meta_item,
120121
FragmentKind::Statement => grammar::fragments::stmt,
122+
FragmentKind::StatementOptionalSemi => grammar::fragments::stmt_optional_semi,
121123
FragmentKind::Items => grammar::fragments::macro_items,
122124
FragmentKind::Statements => grammar::fragments::macro_stmts,
123125
FragmentKind::Attr => grammar::fragments::attr,

crates/syntax/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ impl ast::Attr {
215215
impl ast::Stmt {
216216
/// Returns `text`, parsed as statement, but only if it has no errors.
217217
pub fn parse(text: &str) -> Result<Self, ()> {
218-
parsing::parse_text_fragment(text, parser::FragmentKind::Statement)
218+
parsing::parse_text_fragment(text, parser::FragmentKind::StatementOptionalSemi)
219219
}
220220
}
221221

0 commit comments

Comments
 (0)