diff options
Diffstat (limited to 'crates/typst-syntax/src/parser.rs')
| -rw-r--r-- | crates/typst-syntax/src/parser.rs | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/crates/typst-syntax/src/parser.rs b/crates/typst-syntax/src/parser.rs index b6948641..6fd0878d 100644 --- a/crates/typst-syntax/src/parser.rs +++ b/crates/typst-syntax/src/parser.rs @@ -116,10 +116,11 @@ fn markup_expr(p: &mut Parser, at_start: &mut bool) { | SyntaxKind::Link | SyntaxKind::Label => p.eat(), + SyntaxKind::Raw => p.eat(), // Raw is handled entirely in the Lexer. + SyntaxKind::Hash => embedded_code_expr(p), SyntaxKind::Star => strong(p), SyntaxKind::Underscore => emph(p), - SyntaxKind::RawDelim => raw(p), SyntaxKind::HeadingMarker if *at_start => heading(p), SyntaxKind::ListMarker if *at_start => list_item(p), SyntaxKind::EnumMarker if *at_start => enum_item(p), @@ -162,22 +163,6 @@ fn emph(p: &mut Parser) { p.wrap(m, SyntaxKind::Emph); } -/// Parses raw text with optional syntax highlighting: `` `...` ``. -fn raw(p: &mut Parser) { - let m = p.marker(); - p.enter(LexMode::Raw); - p.assert(SyntaxKind::RawDelim); - - // Eats until the closing delimiter. - while !p.end() && !p.at(SyntaxKind::RawDelim) { - p.eat(); - } - - p.expect(SyntaxKind::RawDelim); - p.exit(); - p.wrap(m, SyntaxKind::Raw); -} - /// Parses a section heading: `= Introduction`. fn heading(p: &mut Parser) { let m = p.marker(); @@ -767,7 +752,6 @@ fn code_primary(p: &mut Parser, atomic: bool) { SyntaxKind::LeftBrace => code_block(p), SyntaxKind::LeftBracket => content_block(p), SyntaxKind::LeftParen => expr_with_paren(p, atomic), - SyntaxKind::RawDelim => raw(p), SyntaxKind::Dollar => equation(p), SyntaxKind::Let => let_binding(p), SyntaxKind::Set => set_rule(p), @@ -782,6 +766,8 @@ fn code_primary(p: &mut Parser, atomic: bool) { SyntaxKind::Continue => continue_stmt(p), SyntaxKind::Return => return_stmt(p), + SyntaxKind::Raw => p.eat(), // Raw is handled entirely in the Lexer. + SyntaxKind::None | SyntaxKind::Auto | SyntaxKind::Int |
