Add lexeme 'first' field, refactor and add methods

This commit is contained in:
Juno Takano 2026-01-09 19:39:44 -03:00
commit c53afefb67
9 changed files with 98 additions and 50 deletions

View file

@ -15,14 +15,14 @@ impl CheckBox {
impl Parseable for CheckBox {
fn probe(lexeme: &Lexeme) -> bool {
lexeme.match_triple_as_char(('[', ' ', ']'))
|| lexeme.match_triple_as_char(('[', 'x', ']'))
lexeme.match_char_triple('[', ' ', ']')
|| lexeme.match_char_triple('[', 'x', ']')
}
fn lex(lexeme: &Lexeme) -> CheckBox {
use crate::prelude::*;
log!("Lexing: {lexeme}");
if lexeme.match_next_as_char('x') {
if lexeme.match_next_char('x') {
CheckBox::new(true)
} else {
CheckBox::new(false)

View file

@ -83,7 +83,9 @@ impl Parseable for Header {
== 0
{
let level = lexeme.text().len();
lexeme.clone().split_words().len() == 1 && level > 0 && level <= 6
lexeme.clone().split_segments().len() == 1
&& level > 0
&& level <= 6
} else {
false
}

View file

@ -11,7 +11,7 @@ impl Paragraph {
}
pub fn probe_end(lexeme: &Lexeme) -> bool {
lexeme.match_as_char('\n') && lexeme.match_next_as_char('\n')
lexeme.match_char('\n') && lexeme.match_next_char('\n')
}
}

View file

@ -15,7 +15,7 @@ impl Strike {
impl Parseable for Strike {
fn probe(lexeme: &Lexeme) -> bool {
lexeme.match_as_char('~') && lexeme.match_next_as_char('~')
lexeme.match_char('~') && lexeme.match_next_char('~')
}
fn lex(_lexeme: &Lexeme) -> Strike {

View file

@ -15,7 +15,7 @@ impl Underline {
impl Parseable for Underline {
fn probe(lexeme: &Lexeme) -> bool {
lexeme.match_as_char('_') && lexeme.match_next_as_char('_')
lexeme.match_char('_') && lexeme.match_next_char('_')
}
fn lex(_lexeme: &Lexeme) -> Underline {