Enum wagon_lexer::productions::Productions
source · pub enum Productions {
}
Expand description
Lexer for the grammar DSL.
Variants§
Identifier(Ident)
An identifier. Gets parsed to an [wagon-ident::Ident
] automatically.
An identifier may be any string of alphanumeric characters, as well as _
. The string must start with a purely alphabetical character.
The identifier may be prepended by $
/&
/*
to specify what type of identifier it is.
LitString(String)
A string, surrounded by either "
or '
.
LBr
[
RBr
]
LCur
{
RCur
}
LPar
(
RPar
)
Lt
<
Gt
>
Semi
;
Colon
:
Comma
,
Path(String)
A Rust style path.
Produce
->
Generate
=>
Alternative
|
Additional
&
Import(ImportType)
Any of the possible ImportType arrows.
LitRegex(String)
A regular expression (defined as any string between two /
).
Ebnf(EbnfType)
Any of the possible EbnfType operators.
Trait Implementations§
source§impl Clone for Productions
impl Clone for Productions
source§fn clone(&self) -> Productions
fn clone(&self) -> Productions
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for Productions
impl Debug for Productions
source§impl Display for Productions
impl Display for Productions
source§impl<'s> Logos<'s> for Productions
impl<'s> Logos<'s> for Productions
§type Error = LexingError
type Error = LexingError
Error type returned by the lexer. This can be set using
#[logos(error = MyError)]
. Defaults to ()
if not set.§type Extras = ()
type Extras = ()
Associated type
Extras
for the particular lexer. This can be set using
#[logos(extras = MyExtras)]
and accessed inside callbacks.§type Source = str
type Source = str
Source type this token can be lexed from. This will default to
str
,
unless one of the defined patterns explicitly uses non-unicode byte values
or byte slices, in which case that implementation will use [u8]
.source§fn lex(lex: &mut Lexer<'s, Self>)
fn lex(lex: &mut Lexer<'s, Self>)
The heart of Logos. Called by the
Lexer
. The implementation for this function
is generated by the logos-derive
crate.§fn lexer_with_extras(
source: &'source Self::Source,
extras: Self::Extras
) -> Lexer<'source, Self> ⓘ
fn lexer_with_extras( source: &'source Self::Source, extras: Self::Extras ) -> Lexer<'source, Self> ⓘ
Create a new instance of a
Lexer
with the provided Extras
that will
produce tokens implementing this Logos
.source§impl PartialEq for Productions
impl PartialEq for Productions
source§fn eq(&self, other: &Productions) -> bool
fn eq(&self, other: &Productions) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl Eq for Productions
impl StructuralPartialEq for Productions
Auto Trait Implementations§
impl Freeze for Productions
impl RefUnwindSafe for Productions
impl Send for Productions
impl Sync for Productions
impl Unpin for Productions
impl UnwindSafe for Productions
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more