From 409301b3d67110f0b360bba52cee3989c1c522a0 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Sat, 4 Jul 2026 09:16:13 +0200 Subject: [PATCH] Allman struct and enum field style --- crates/parser/src/ast/top_level.rs | 1 + crates/parser/src/grammar.pest | 6 +++--- crates/parser/src/parser/items/mod.rs | 6 +----- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/crates/parser/src/ast/top_level.rs b/crates/parser/src/ast/top_level.rs index 5e5a13d..1762de9 100644 --- a/crates/parser/src/ast/top_level.rs +++ b/crates/parser/src/ast/top_level.rs @@ -126,6 +126,7 @@ pub struct FieldDecl { pub visibility: Visibility, pub type_: TypeExpr, pub name: Identifier, + // pub tuple_names: Vec, } #[derive(Debug, Clone, Serialize)] diff --git a/crates/parser/src/grammar.pest b/crates/parser/src/grammar.pest index 1f3891d..147aa62 100644 --- a/crates/parser/src/grammar.pest +++ b/crates/parser/src/grammar.pest @@ -240,7 +240,7 @@ param = { } field_list = { - (field ~ ("," ~ field)* ~ ","?)? + (field ~ ";")* } param_list = { @@ -264,7 +264,7 @@ declare_module = { // ====================================================== struct_decl = { - visibility? ~ "struct" ~ identifier ~ generics_decl? ~ "{" ~ field_list? ~ "}" + visibility? ~ "struct" ~ identifier ~ generics_decl? ~ "{" ~ field_list ~ "}" } // ====================================================== @@ -290,7 +290,7 @@ enum_field = _{ } enum_fields = _{ - enum_field ~ ("," ~ enum_field)* ~ ","? + enum_field ~ ";" } enum_decl = { diff --git a/crates/parser/src/parser/items/mod.rs b/crates/parser/src/parser/items/mod.rs index 05064fd..57e8bee 100644 --- a/crates/parser/src/parser/items/mod.rs +++ b/crates/parser/src/parser/items/mod.rs @@ -54,11 +54,7 @@ impl<'a> TryFrom> for TopLevelKind { .transpose() .map(|v| v.unwrap_or_default())?, - fields: inner - .next() - .map(|pair| collect_recovered(pair.into_inner())) - .transpose() - .map(|v| v.unwrap_or_default())?, + fields: collect_recovered(inner.next().unwrap().into_inner())?, }), Rule::class_decl => Ok(TopLevelKind::ClassDecl {