fix(parser): list parsing
This commit is contained in:
parent
b17b355d3b
commit
2467cb3db3
|
@ -580,13 +580,10 @@ impl<'a> Iterator for Parser<'a> {
|
||||||
|
|
||||||
fn next(&mut self) -> Option<Event<'a>> {
|
fn next(&mut self) -> Option<Event<'a>> {
|
||||||
if let Some(&(container, limit, end)) = self.stack.last() {
|
if let Some(&(container, limit, end)) = self.stack.last() {
|
||||||
// eprintln!(
|
let tail = &self.text[self.off..limit];
|
||||||
// "{:width$} {:?} {:?}",
|
|
||||||
// ' ',
|
// eprint!("{:1$}", ' ', self.stack_depth());
|
||||||
// container,
|
// eprintln!("{:?} {:?} {:?}", container, tail, self.next_item);
|
||||||
// &self.text[self.off..limit],
|
|
||||||
// width = self.stack_depth(),
|
|
||||||
// );
|
|
||||||
|
|
||||||
debug_assert!(
|
debug_assert!(
|
||||||
self.off <= limit && limit <= end && end <= self.text.len(),
|
self.off <= limit && limit <= end && end <= self.text.len(),
|
||||||
|
@ -597,8 +594,6 @@ impl<'a> Iterator for Parser<'a> {
|
||||||
self.text.len()
|
self.text.len()
|
||||||
);
|
);
|
||||||
|
|
||||||
let tail = &self.text[self.off..limit];
|
|
||||||
|
|
||||||
Some(match container {
|
Some(match container {
|
||||||
Container::Headline(beg) => {
|
Container::Headline(beg) => {
|
||||||
if self.off >= limit {
|
if self.off >= limit {
|
||||||
|
@ -643,8 +638,9 @@ impl<'a> Iterator for Parser<'a> {
|
||||||
}
|
}
|
||||||
Container::List(ident, ordered) => {
|
Container::List(ident, ordered) => {
|
||||||
if let Some(bullet) = self.next_item.pop().unwrap() {
|
if let Some(bullet) = self.next_item.pop().unwrap() {
|
||||||
self.off += bullet.len() + ident;
|
let off = bullet.len() + ident;
|
||||||
let (limit, end, next) = list::parse(tail, ident);
|
self.off += off;
|
||||||
|
let (limit, end, next) = list::parse(&tail[off..], ident);
|
||||||
self.push_stack(Container::ListItem, limit, end);
|
self.push_stack(Container::ListItem, limit, end);
|
||||||
self.next_item.push(next);
|
self.next_item.push(next);
|
||||||
Event::ListItemBeg { bullet }
|
Event::ListItemBeg { bullet }
|
||||||
|
|
Loading…
Reference in a new issue