diff options
| author | Laurenz <laurmaedje@gmail.com> | 2023-01-29 19:04:48 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2023-01-29 19:11:44 +0100 |
| commit | f7458f9533d28b95dcd71b20166a5961f358e824 (patch) | |
| tree | b574d955a01d87a6b1b07f0eb0c78271f3738f30 /src | |
| parent | 0911c709a8cc819946f8099af6d2e4bffef505a6 (diff) | |
Matrices
Diffstat (limited to 'src')
| -rw-r--r-- | src/syntax/parser.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/syntax/parser.rs b/src/syntax/parser.rs index 602d9f2c..ad81cfa3 100644 --- a/src/syntax/parser.rs +++ b/src/syntax/parser.rs @@ -379,6 +379,8 @@ fn math_args(p: &mut Parser) { let mut namable = true; let mut named = None; + let mut has_arrays = false; + let mut array = p.marker(); let mut arg = p.marker(); while !p.eof() && !p.at(SyntaxKind::Dollar) { @@ -394,6 +396,17 @@ fn math_args(p: &mut Parser) { match p.current_text() { ")" => break, + ";" => { + maybe_wrap_in_math(p, arg, named); + p.wrap(array, SyntaxKind::Array); + p.convert(SyntaxKind::Semicolon); + array = p.marker(); + arg = p.marker(); + namable = true; + named = None; + has_arrays = true; + continue; + } "," => { maybe_wrap_in_math(p, arg, named); p.convert(SyntaxKind::Comma); @@ -418,6 +431,10 @@ fn math_args(p: &mut Parser) { maybe_wrap_in_math(p, arg, named); } + if has_arrays && array != p.marker() { + p.wrap(array, SyntaxKind::Array); + } + if p.at(SyntaxKind::Text) && p.current_text() == ")" { p.convert(SyntaxKind::RightParen); } else { |
