pub fn lexer<'src>() -> impl Parser<'src, &'src str, Vec<SpannedToken>, Err<Rich<'src, char, SimpleSpan<usize>>>>