Reverse lookup for diagnostics: TokenType -> quoted display name. */
(kind: &TokenType)
| 169 | |
| 170 | /* Reverse lookup for diagnostics: TokenType -> quoted display name. */ |
| 171 | pub const fn token_to_str(kind: &TokenType) -> &'static str { |
| 172 | match kind { |
| 173 | // Keywords |
| 174 | TokenType::False => "'False'", TokenType::None => "'None'", TokenType::True => "'True'", |
| 175 | TokenType::And => "'and'", TokenType::As => "'as'", TokenType::Assert => "'assert'", |
| 176 | TokenType::Async => "'async'", TokenType::Await => "'await'", TokenType::Break => "'break'", |
| 177 | TokenType::Class => "'class'", TokenType::Continue => "'continue'", TokenType::Def => "'def'", |
| 178 | TokenType::Del => "'del'", TokenType::Elif => "'elif'", TokenType::Else => "'else'", |
| 179 | TokenType::Except => "'except'", TokenType::Finally => "'finally'", TokenType::For => "'for'", |
| 180 | TokenType::From => "'from'", TokenType::Global => "'global'", TokenType::If => "'if'", |
| 181 | TokenType::Import => "'import'", TokenType::In => "'in'", TokenType::Is => "'is'", |
| 182 | TokenType::Lambda => "'lambda'", TokenType::Nonlocal => "'nonlocal'", TokenType::Not => "'not'", |
| 183 | TokenType::Or => "'or'", TokenType::Pass => "'pass'", TokenType::Raise => "'raise'", |
| 184 | TokenType::Return => "'return'", TokenType::Try => "'try'", TokenType::While => "'while'", |
| 185 | TokenType::With => "'with'", TokenType::Yield => "'yield'", |
| 186 | |
| 187 | // Soft keywords |
| 188 | TokenType::Case => "'case'", TokenType::Match => "'match'", |
| 189 | TokenType::Type => "'type'", TokenType::Underscore => "'_'", |
| 190 | |
| 191 | // Operators (3-char) |
| 192 | TokenType::DoubleStarEqual => "'**='", TokenType::DoubleSlashEqual => "'//='", |
| 193 | TokenType::LeftShiftEqual => "'<<='", TokenType::RightShiftEqual => "'>>='", |
| 194 | |
| 195 | // Operators (2-char) |
| 196 | TokenType::NotEqual => "'!='", TokenType::PercentEqual => "'%='", TokenType::AmperEqual => "'&='", |
| 197 | TokenType::DoubleStar => "'**'", TokenType::StarEqual => "'*='", TokenType::PlusEqual => "'+='", |
| 198 | TokenType::MinEqual => "'-='", TokenType::Rarrow => "'->'", TokenType::Ellipsis => "'...'", |
| 199 | TokenType::DoubleSlash => "'//'", TokenType::SlashEqual => "'/='", TokenType::ColonEqual => "':='", |
| 200 | TokenType::LeftShift => "'<<'", TokenType::LessEqual => "'<='", TokenType::EqEqual => "'=='", |
| 201 | TokenType::GreaterEqual => "'>='", TokenType::RightShift => "'>>'", TokenType::AtEqual => "'@='", |
| 202 | TokenType::CircumflexEqual => "'^='", TokenType::VbarEqual => "'|='", |
| 203 | |
| 204 | // Operators (1-char) |
| 205 | TokenType::Exclamation => "'!'", TokenType::Percent => "'%'", TokenType::Amper => "'&'", |
| 206 | TokenType::Star => "'*'", TokenType::Plus => "'+'", TokenType::Minus => "'-'", |
| 207 | TokenType::Dot => "'.'", TokenType::Slash => "'/'", TokenType::Less => "'<'", |
| 208 | TokenType::Equal => "'='", TokenType::Greater => "'>'", TokenType::At => "'@'", |
| 209 | TokenType::Circumflex => "'^'", TokenType::Vbar => "'|'", TokenType::Tilde => "'~'", |
| 210 | TokenType::Comma => "','", TokenType::Colon => "':'", TokenType::Semi => "';'", |
| 211 | |
| 212 | // Delimiters |
| 213 | TokenType::Lpar => "'('", TokenType::Rpar => "')'", |
| 214 | TokenType::Lsqb => "'['", TokenType::Rsqb => "']'", |
| 215 | TokenType::Lbrace => "'{'", TokenType::Rbrace => "'}'", |
| 216 | |
| 217 | // Literals |
| 218 | TokenType::Name => "identifier", |
| 219 | TokenType::Float => "float", |
| 220 | TokenType::Int => "integer", |
| 221 | TokenType::String => "string", |
| 222 | TokenType::Bytes => "bytes literal", |
| 223 | |
| 224 | // F-string |
| 225 | TokenType::FstringStart => "f-string start", |
| 226 | TokenType::FstringMiddle => "f-string content", |
| 227 | TokenType::FstringEnd => "f-string end", |
| 228 |