pub enum TokenKind {
}Expand description
Part 21 token kinds.
Variants cover every lexical construct defined in ISO 10303-21.
Variants§
IsoStart
IsoEnd
Header
Data
EndSec
LParen
RParen
Comma
Semicolon
Equals
Asterisk
Derived attribute marker.
Dollar
Unset / optional attribute marker.
Real(f64)
Real number — must contain a .; captures optional sign and exponent.
Integer(i64)
Integer — no decimal point; may carry a sign.
String(String)
String literal enclosed in single quotes. Outer quotes are stripped
and the '' escape is decoded to a single '. Part 21 wide-char
escapes (\X\HH, \X2\…\X0\, \X4\…\X0\) remain raw — decoding
those is deferred to a later stage.
EntityRef(u64)
Entity reference (#N). The numeric identifier is stored as u64.
Enum(String)
Enumeration literal such as .T. or .MILLI.. The inner name is
stored without the surrounding dots.
Binary(String)
Hex-encoded binary literal, stored without the surrounding quotes. The leading hex digit (0–3) encodes the number of unused bits.
Keyword(String)
Identifier / entity type name. Does not include -, so hyphenated
section markers (handled above) never match this variant.
AnchorRef(String)
P21 edition 3 anchor reference (<name> or <url#name>). The
whole bracketed form is captured as a single token; the parser
currently discards these (ed.3 sections are skip-only — see
crate::parser::ParseWarning::Ed3SectionDiscarded).
Trait Implementations§
Source§impl<'s> Logos<'s> for TokenKind
impl<'s> Logos<'s> for TokenKind
Source§type Error = ()
type Error = ()
#[logos(error = MyError)]. Defaults to () if not set.Source§type Extras = ()
type Extras = ()
Extras for the particular lexer. This can be set using
#[logos(extras = MyExtras)] and accessed inside callbacks.Source§type Source = str
type Source = str
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>,
) -> Option<Result<Self, <Self as Logos<'s>>::Error>>
fn lex( lex: &mut Lexer<'s, Self>, ) -> Option<Result<Self, <Self as Logos<'s>>::Error>>
Lexer. The implementation for this function
is generated by the logos-derive crate.