pub enum TokenId {
Token(Option<Keyword>),
Operator(Operator),
IoNumber,
IoLocation,
EndOfInput,
}Expand description
Token identifier, or classification of tokens
This enum classifies a token as defined in POSIX XCU 2.10.1 Shell Grammar Lexical Conventions, but does not exactly reflect further distinction defined in POSIX XCU 2.10.2 Shell Grammar Rules.
For convenience, the special token identifier EndOfInput is included.
Variants§
Token(Option<Keyword>)
TOKEN
If this token looks like a reserved word, this variant has some
associated Keyword that describes the word. However, it depends on
context whether a token is actually regarded as a reserved word or
just as an ordinary word. You must ensure that you’re in an
applicable context when examining the Keyword value.
Operator(Operator)
Operator
IoNumber
IO_NUMBER
IoLocation
IO_LOCATION
EndOfInput
Imaginary token identifier for the end of input
Implementations§
Source§impl TokenId
impl TokenId
Sourcepub fn is_clause_delimiter(self) -> bool
pub fn is_clause_delimiter(self) -> bool
Determines if this token can be a delimiter of a clause.
This function delegates to Keyword::is_clause_delimiter if the token
ID is a (possible) keyword, or to Operator::is_clause_delimiter if
it is an operator. For EndOfInput the function returns true.
Otherwise, the result is false.
Trait Implementations§
impl Copy for TokenId
impl Eq for TokenId
impl StructuralPartialEq for TokenId
Auto Trait Implementations§
impl Freeze for TokenId
impl RefUnwindSafe for TokenId
impl Send for TokenId
impl Sync for TokenId
impl Unpin for TokenId
impl UnwindSafe for TokenId
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more