From 65dd765cceee8bdccc74c08066eec59a579a16b1 Mon Sep 17 00:00:00 2001 From: Titus Wormer Date: Mon, 20 Jun 2022 17:06:00 +0200 Subject: Add improved whitespace handling * add several helpers for parsing betwen x and y `space_or_tab`s * use those helpers in a bunch of places * move initial indent parsing to flow constructs themselves --- src/construct/blank_line.rs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'src/construct/blank_line.rs') diff --git a/src/construct/blank_line.rs b/src/construct/blank_line.rs index fdb1ee0..86091d9 100644 --- a/src/construct/blank_line.rs +++ b/src/construct/blank_line.rs @@ -29,27 +29,24 @@ //! //! -use crate::construct::partial_whitespace::start as whitespace; -use crate::tokenizer::{Code, State, StateFnResult, TokenType, Tokenizer}; +use crate::construct::partial_space_or_tab::space_or_tab_opt; +use crate::tokenizer::{Code, State, StateFnResult, Tokenizer}; /// Start of a blank line. /// -/// Note: `␠` represents a space character. +/// > 👉 **Note**: `␠` represents a space character. /// /// ```markdown /// |␠␠ /// | /// ``` pub fn start(tokenizer: &mut Tokenizer, code: Code) -> StateFnResult { - tokenizer.attempt( - |tokenizer, code| whitespace(tokenizer, code, TokenType::BlankLineWhitespace), - |_ok| Box::new(after), - )(tokenizer, code) + tokenizer.go(space_or_tab_opt(), after)(tokenizer, code) } /// After zero or more spaces or tabs, before a line ending or EOF. /// -/// Note: `␠` represents a space character. +/// > 👉 **Note**: `␠` represents a space character. /// /// ```markdown /// |␠␠ -- cgit