Make parser input more complex
This commit is contained in:
@@ -1,18 +1,15 @@
|
||||
mod boxed_parser;
|
||||
mod named_parser;
|
||||
mod parser_input;
|
||||
|
||||
use std::rc::Rc;
|
||||
|
||||
pub use boxed_parser::BoxedParser;
|
||||
pub use named_parser::NamedParser;
|
||||
pub use parser_input::ParserInput;
|
||||
|
||||
pub type ParseResult<I, O, E> = Result<(O, I), E>;
|
||||
|
||||
pub trait ParserInput: std::fmt::Debug {}
|
||||
|
||||
impl ParserInput for &str {}
|
||||
impl ParserInput for String {}
|
||||
|
||||
pub trait Parser<I, O, E>
|
||||
where
|
||||
I: ParserInput,
|
||||
|
||||
11
src/parser/parser_input.rs
Normal file
11
src/parser/parser_input.rs
Normal file
@@ -0,0 +1,11 @@
|
||||
pub trait ParserInput: std::fmt::Debug {
|
||||
type Output;
|
||||
fn next_token() -> Self::Output;
|
||||
}
|
||||
|
||||
impl ParserInput for &str {
|
||||
type Output = ();
|
||||
fn next_token() -> Self::Output {
|
||||
()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user