Enum yash_syntax::parser::lex::TokenId
source · pub enum TokenId {
Token(Option<Keyword>),
Operator(Operator),
IoNumber,
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
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.