udled

Crates.ioudled
lib.rsudled
version0.4.0
created_at2025-01-20 21:15:45.509792+00
updated_at2025-07-10 20:50:45.509828+00
descriptionTokenizer and parser
homepage
repositoryhttps://github.com/kildevaeld/udled-rs
max_upload_size
id1524328
size48,046
(kildevaeld)

documentation

README

Udled

Udled is a lexer and parser for the rust programming language.

use udled::{Tokenizer, Input, Lex, Error, token::{Alphabetic, Ws, Punctuation, OneOrMany, Spanned}, Reader, Span};

struct Word;

impl Tokenizer for Word {
    type Token<'a> = Lex<'a>;

    fn to_token<'a>(&self, reader: &mut Reader<'_, 'a>) -> Result<Self::Token<'a>, Error> {
        let span = reader.parse(Spanned(OneOrMany(Alphabetic)))
        Ok(Lex::new(span.slice(reader.input()).unwrap(), span))
    }

    fn peek<'a>(&self, reader: &mut Reader<'_, '_>) -> Result<bool, Error> {
        reader.peek(Alphabetic)
    }
}

fn main() {

  let mut input = Input::new("Hello, World!");

  let (greeting ,_ ,_ , subject, _) = input.parse((Word, Punctuation, Ws, Word, Punctuation));

  assert_eq!(greeting.as_str(), "Hello");
  assert_eq!(subject.as_str(), "World);

}

Commit count: 80

cargo fmt