mod newline;
mod token;
mod whitespace;
mod unicode_identifier;
use crate::{
Character,
TextInput
};
use pups_core::{
Input,
Parser,
};
use newline::Newline;
use token::Token;
use whitespace::Whitespace;
use crate::parsers::unicode_identifier::UnicodeIdentifier;
pub const fn newline<C, I>() -> impl Parser<I, Output = (), Error = (), Message = ()>
where
C: Character,
I: Input<Item = C> + TextInput,
{ Newline }
pub const fn token<I>(
lexeme: &'static str
) -> impl Parser<I, Output = &'static str, Error = (), Message = ()>
where
I: Input + TextInput,
{ Token (lexeme) }
pub const fn unicode_identifier<C, I>() -> impl Parser<I, Output = String, Error = (), Message = ()>
where
C: Character,
I: Input<Item = C> + TextInput,
{ UnicodeIdentifier }
pub const fn whitespace<C, I>() -> impl Parser<I, Output = String, Error = (), Message = ()>
where
C: Character,
I: Input<Item = C> + TextInput,
{ Whitespace }