inline: mv symbol from span to event field

This commit is contained in:
Noah Hellman 2023-04-24 19:55:49 +02:00
parent 9676d9e5d6
commit 6abe9e44c7
2 changed files with 7 additions and 6 deletions

View file

@ -14,7 +14,7 @@ use ControlFlow::*;
#[derive(Debug, Clone, PartialEq, Eq)] #[derive(Debug, Clone, PartialEq, Eq)]
pub enum Atom<'s> { pub enum Atom<'s> {
FootnoteReference { label: &'s str }, FootnoteReference { label: &'s str },
Symbol, Symbol(&'s str),
Softbreak, Softbreak,
Hardbreak, Hardbreak,
Escape, Escape,
@ -604,10 +604,11 @@ impl<'s> Parser<'s> {
.sum(); .sum();
if end && valid { if end && valid {
self.input.lexer = lex::Lexer::new(ahead.as_str()); self.input.lexer = lex::Lexer::new(ahead.as_str());
self.input.span = self.input.span.after(len); let span_symbol = self.input.span.after(len);
self.push(EventKind::Atom(Symbol)); self.input.span = Span::new(self.input.span.start(), span_symbol.end() + 1);
self.input.span = self.input.span.after(1); return self.push(EventKind::Atom(Atom::Symbol(
return Some(Continue); span_symbol.of(self.input.src),
)));
} }
} }
None None

View file

@ -837,7 +837,7 @@ impl<'s> Parser<'s> {
} }
inline::EventKind::Atom(a) => match a { inline::EventKind::Atom(a) => match a {
inline::Atom::FootnoteReference { label } => Event::FootnoteReference(label), 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::Atom::Quote { ty, left } => match (ty, left) {
(inline::QuoteType::Single, true) => Event::LeftSingleQuote, (inline::QuoteType::Single, true) => Event::LeftSingleQuote,
(inline::QuoteType::Single, false) => Event::RightSingleQuote, (inline::QuoteType::Single, false) => Event::RightSingleQuote,