#[token]
and #[regex]
For each variant your declare in your enum
that uses the Logos
derive macro,
you can specify one or more string literal or regex it can match.
The usage syntax is a follows:
#![allow(unused)] fn main() { #[derive(Logos)] enum Token { #[token(literal [, callback, priority = <integer>, ignore(<flag>, ...)]] #[regex(literal [, callback, priority = <integer>, ignore(<flag>, ...)]] SomeVariant, } }
where literal
can be any &str
or &[u8]
string literal,
callback
can either be a closure, or a literal path to a function
(see Using callbacks section),
priority
can be any positive integer
(see Token disambiguation section),
and flag
can by of: case
, ascii_case
. Only literal
is required,
others are optional.
You can stack any number of #[token]
and or #[regex
] attributes on top of
the same variant.
For a list of supported regex
literals, read the
Common regular expressions section.