diff options
| author | Laurenz <laurmaedje@gmail.com> | 2023-01-27 12:20:19 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2023-01-27 12:20:19 +0100 |
| commit | a59b9fff93f708d5a35d2bf61c3b21efee71b7e9 (patch) | |
| tree | e7e9ca1d969f297fd5323933b42dac8ebfe37371 /src/syntax/parser.rs | |
| parent | 9d962c5c40da12207433a6e88aa34f11d036af37 (diff) | |
Scale shorthand brackets
Diffstat (limited to 'src/syntax/parser.rs')
| -rw-r--r-- | src/syntax/parser.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/syntax/parser.rs b/src/syntax/parser.rs index 7eadf94a..d8eeed24 100644 --- a/src/syntax/parser.rs +++ b/src/syntax/parser.rs @@ -252,7 +252,7 @@ fn math_expr_prec(p: &mut Parser, min_prec: usize, stop: SyntaxKind) { } } - SyntaxKind::MathAtom => { + SyntaxKind::MathAtom | SyntaxKind::Shorthand => { if math_class(p.current_text()) == Some(MathClass::Fence) { math_delimited(p, MathClass::Fence) } else if math_class(p.current_text()) == Some(MathClass::Opening) { @@ -264,7 +264,6 @@ fn math_expr_prec(p: &mut Parser, min_prec: usize, stop: SyntaxKind) { SyntaxKind::Linebreak | SyntaxKind::Escape - | SyntaxKind::Shorthand | SyntaxKind::MathAlignPoint | SyntaxKind::Str => p.eat(), @@ -306,12 +305,12 @@ fn math_expr_prec(p: &mut Parser, min_prec: usize, stop: SyntaxKind) { fn math_delimited(p: &mut Parser, stop: MathClass) { let m = p.marker(); - p.assert(SyntaxKind::MathAtom); + p.eat(); let m2 = p.marker(); while !p.eof() && !p.at(SyntaxKind::Dollar) { if math_class(p.current_text()) == Some(stop) { p.wrap(m2, SyntaxKind::Math); - p.assert(SyntaxKind::MathAtom); + p.eat(); p.wrap(m, SyntaxKind::MathDelimited); return; } @@ -341,6 +340,13 @@ fn math_unparen(p: &mut Parser, m: Marker) { } fn math_class(text: &str) -> Option<MathClass> { + match text { + "[|" => return Some(MathClass::Opening), + "|]" => return Some(MathClass::Closing), + "||" => return Some(MathClass::Fence), + _ => {} + } + let mut chars = text.chars(); chars .next() |
