17 lines
382 B
Rust
17 lines
382 B
Rust
use parser::{token::Token, lexeme::Lexeme};
|
|
|
|
pub mod parser;
|
|
|
|
pub trait Parseable: Into<Token> {
|
|
fn probe(lexeme: &Lexeme) -> bool;
|
|
fn lex(lexeme: &Lexeme) -> Self;
|
|
fn render(&self) -> String;
|
|
}
|
|
|
|
type Probe = fn(&Lexeme) -> bool;
|
|
type Lexer = fn(&Lexeme) -> Token;
|
|
type LexMap<'lm> = &'lm [(Probe, Lexer)];
|
|
|
|
pub fn parse(text: &str) -> String {
|
|
parser::read(text)
|
|
}
|