From 7fb7cfc2d1cd2781a20e4034b12384566d13c728 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Mon, 30 Jul 2018 17:46:50 +0300 Subject: generate single byte tokens --- src/lexer/mod.rs | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) (limited to 'src/lexer') diff --git a/src/lexer/mod.rs b/src/lexer/mod.rs index f647838ea..f8fdc41ac 100644 --- a/src/lexer/mod.rs +++ b/src/lexer/mod.rs @@ -79,30 +79,11 @@ fn next_token_inner(c: char, ptr: &mut Ptr) -> SyntaxKind { } // One-byte tokens. - match c { - ';' => return SEMI, - ',' => return COMMA, - '(' => return L_PAREN, - ')' => return R_PAREN, - '{' => return L_CURLY, - '}' => return R_CURLY, - '[' => return L_BRACK, - ']' => return R_BRACK, - '<' => return L_ANGLE, - '>' => return R_ANGLE, - '@' => return AT, - '#' => return POUND, - '~' => return TILDE, - '?' => return QUESTION, - '$' => return DOLLAR, - '&' => return AMPERSAND, - '|' => return PIPE, - '+' => return PLUS, - '*' => return STAR, - '/' => return SLASH, - '^' => return CARET, - '%' => return PERCENT, + if let Some(kind) = SyntaxKind::from_char(c) { + return kind; + } + match c { // Multi-byte tokens. '.' => { return match (ptr.next(), ptr.nnext()) { -- cgit v1.2.3