summaryrefslogtreecommitdiff
path: root/src/parser.rs
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-09-27 18:22:50 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-09-27 18:22:50 +0800
commitb120e413d21a9d4d1961bb814dff88531a7a4855 (patch)
treee599417c385ff00ac15c48d727a3588462972208 /src/parser.rs
parent76af2f9a4a06140d7e00706817b59678c4468d1a (diff)
fix(parser): EndScope not preserved
chore(parser): simplify
Diffstat (limited to 'src/parser.rs')
-rw-r--r--src/parser.rs26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/parser.rs b/src/parser.rs
index 544c296..1475fce 100644
--- a/src/parser.rs
+++ b/src/parser.rs
@@ -41,23 +41,23 @@ pub fn delimit(s: &str) -> SplitWithMetadata<'_> {
.char_indices()
.next_back()
{
- let body = if ch == ';' || ch == '{' || ch == '}' {
- part[..i].trim()
- } else {
- part.trim()
- };
- if !body.is_empty() {
- acc.push((body, None));
- }
+ acc.push((
+ if ch == ';' || ch == '{' || ch == '}' {
+ part[..i].trim()
+ } else {
+ part.trim()
+ },
+ None,
+ ));
match ch {
'{' => {
- if let Some(last) = acc.last_mut() {
- last.1 = Some(Metadata::StartScope);
+ if let Some((_, meta)) = acc.last_mut() {
+ *meta = Some(Metadata::StartScope);
}
}
'}' => {
- if let Some(last) = acc.last_mut() {
- last.1 = Some(Metadata::EndScope);
+ if let Some((_, meta)) = acc.last_mut() {
+ *meta = Some(Metadata::EndScope);
}
}
_ => {}
@@ -92,7 +92,7 @@ pub fn process(strs: SplitWithMetadata<'_>) -> Vec<Expr<'_>> {
}),
None => exprs.push(Expr {
expr: ExprT::Process(str),
- meta: None,
+ meta,
}),
}
}