MCPcopy Create free account
hub / github.com/dylan-sutton-chavez/edge-python / keyword

Function keyword

compiler/src/modules/lexer/tables.rs:60–121  ·  view source on GitHub ↗

Routes by (length, first byte) to skip most memcmps. */

(s: &[u8])

Source from the content-addressed store, hash-verified

58
59/* Routes by (length, first byte) to skip most memcmps. */
60pub fn keyword(s: &[u8]) -> Option<TokenType> {
61 match (s.len(), s[0]) {
62 (1, b'_') => Some(TokenType::Underscore),
63
64 (2, b'a') => if s[1] == b's' { Some(TokenType::As) } else { None },
65 (2, b'i') => match s[1] {
66 b'f' => Some(TokenType::If),
67 b'n' => Some(TokenType::In),
68 b's' => Some(TokenType::Is),
69 _ => None,
70 },
71 (2, b'o') => if s[1] == b'r' { Some(TokenType::Or) } else { None },
72
73 (3, b'a') => if s[1] == b'n' && s[2] == b'd' { Some(TokenType::And) } else { None },
74 (3, b'd') => if s[1] == b'e' {
75 match s[2] { b'f' => Some(TokenType::Def), b'l' => Some(TokenType::Del), _ => None }
76 } else { None },
77 (3, b'f') => if s[1] == b'o' && s[2] == b'r' { Some(TokenType::For) } else { None },
78 (3, b'n') => if s[1] == b'o' && s[2] == b't' { Some(TokenType::Not) } else { None },
79 (3, b't') => if s[1] == b'r' && s[2] == b'y' { Some(TokenType::Try) } else { None },
80
81 (4, b'c') => if s == b"case" { Some(TokenType::Case) } else { None },
82 (4, b'e') => match s[2] {
83 b'i' => if s == b"elif" { Some(TokenType::Elif) } else { None },
84 b's' => if s == b"else" { Some(TokenType::Else) } else { None },
85 _ => None,
86 },
87 (4, b'f') => if s == b"from" { Some(TokenType::From) } else { None },
88 (4, b'N') => if s == b"None" { Some(TokenType::None) } else { None },
89 (4, b'p') => if s == b"pass" { Some(TokenType::Pass) } else { None },
90 (4, b'T') => if s == b"True" { Some(TokenType::True) } else { None },
91 (4, b't') => if s == b"type" { Some(TokenType::Type) } else { None },
92 (4, b'w') => if s == b"with" { Some(TokenType::With) } else { None },
93
94 (5, b'a') => match s[1] {
95 b's' => if s == b"async" { Some(TokenType::Async) } else { None },
96 b'w' => if s == b"await" { Some(TokenType::Await) } else { None },
97 _ => None,
98 },
99 (5, b'b') => if s == b"break" { Some(TokenType::Break) } else { None },
100 (5, b'c') => if s == b"class" { Some(TokenType::Class) } else { None },
101 (5, b'F') => if s == b"False" { Some(TokenType::False) } else { None },
102 (5, b'm') => if s == b"match" { Some(TokenType::Match) } else { None },
103 (5, b'r') => if s == b"raise" { Some(TokenType::Raise) } else { None },
104 (5, b'w') => if s == b"while" { Some(TokenType::While) } else { None },
105 (5, b'y') => if s == b"yield" { Some(TokenType::Yield) } else { None },
106
107 (6, b'a') => if s == b"assert" { Some(TokenType::Assert) } else { None },
108 (6, b'e') => if s == b"except" { Some(TokenType::Except) } else { None },
109 (6, b'g') => if s == b"global" { Some(TokenType::Global) } else { None },
110 (6, b'i') => if s == b"import" { Some(TokenType::Import) } else { None },
111 (6, b'l') => if s == b"lambda" { Some(TokenType::Lambda) } else { None },
112 (6, b'r') => if s == b"return" { Some(TokenType::Return) } else { None },
113
114 (7, b'f') => if s == b"finally" { Some(TokenType::Finally) } else { None },
115
116 (8, b'c') => if s == b"continue" { Some(TokenType::Continue) } else { None },
117 (8, b'n') => if s == b"nonlocal" { Some(TokenType::Nonlocal) } else { None },

Callers 1

next_tokenMethod · 0.85

Calls 1

lenMethod · 0.45

Tested by

no test coverage detected