Lexer:
IDENTIFIER_OR_KEYWORD :
[a-zA-Z] [a-zA-Z0-9_]*
|_[a-zA-Z0-9_]+RAW_IDENTIFIER :
r#IDENTIFIER_OR_KEYWORD Exceptcrate,self,super,SelfNON_KEYWORD_IDENTIFIER : IDENTIFIER_OR_KEYWORD Except a strict or reserved keyword
IDENTIFIER :
NON_KEYWORD_IDENTIFIER | RAW_IDENTIFIER
An identifier is any nonempty ASCII string of the following form:
Either
_.Or
_._ alone is not an identifier._.A raw identifier is like a normal identifier, but prefixed by r#. (Note that the r# prefix is not included as part of the actual identifier.) Unlike a normal identifier, a raw identifier may be any strict or reserved keyword except the ones listed above for RAW_IDENTIFIER.
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/reference/identifiers.html