From 6abe9e44c726936b70e54ff75e579ef681117a48 Mon Sep 17 00:00:00 2001 From: Noah Hellman Date: Mon, 24 Apr 2023 19:55:49 +0200 Subject: [PATCH] inline: mv symbol from span to event field --- src/inline.rs | 11 ++++++----- src/lib.rs | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/inline.rs b/src/inline.rs index 9e614b2..76be8d0 100644 --- a/src/inline.rs +++ b/src/inline.rs @@ -14,7 +14,7 @@ use ControlFlow::*; #[derive(Debug, Clone, PartialEq, Eq)] pub enum Atom<'s> { FootnoteReference { label: &'s str }, - Symbol, + Symbol(&'s str), Softbreak, Hardbreak, Escape, @@ -604,10 +604,11 @@ impl<'s> Parser<'s> { .sum(); if end && valid { self.input.lexer = lex::Lexer::new(ahead.as_str()); - self.input.span = self.input.span.after(len); - self.push(EventKind::Atom(Symbol)); - self.input.span = self.input.span.after(1); - return Some(Continue); + let span_symbol = self.input.span.after(len); + self.input.span = Span::new(self.input.span.start(), span_symbol.end() + 1); + return self.push(EventKind::Atom(Atom::Symbol( + span_symbol.of(self.input.src), + ))); } } None diff --git a/src/lib.rs b/src/lib.rs index a6411a4..26a0e6c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -837,7 +837,7 @@ impl<'s> Parser<'s> { } inline::EventKind::Atom(a) => match a { inline::Atom::FootnoteReference { label } => Event::FootnoteReference(label), - inline::Atom::Symbol => Event::Symbol(inline.span.of(self.src).into()), + inline::Atom::Symbol(sym) => Event::Symbol(sym.into()), inline::Atom::Quote { ty, left } => match (ty, left) { (inline::QuoteType::Single, true) => Event::LeftSingleQuote, (inline::QuoteType::Single, false) => Event::RightSingleQuote,