diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lexer/mod.rs | 7 | ||||
-rw-r--r-- | src/lexer/strings.rs | 2 |
2 files changed, 3 insertions, 6 deletions
diff --git a/src/lexer/mod.rs b/src/lexer/mod.rs index be86416c4..3e49b1c2b 100644 --- a/src/lexer/mod.rs +++ b/src/lexer/mod.rs | |||
@@ -11,7 +11,7 @@ mod numbers; | |||
11 | use self::numbers::scan_number; | 11 | use self::numbers::scan_number; |
12 | 12 | ||
13 | mod strings; | 13 | mod strings; |
14 | use self::strings::{string_literal_start, scan_char, scan_byte_char_or_string, scan_string, scan_raw_string}; | 14 | use self::strings::{is_string_literal_start, scan_char, scan_byte_char_or_string, scan_string, scan_raw_string}; |
15 | 15 | ||
16 | pub fn next_token(text: &str) -> Token { | 16 | pub fn next_token(text: &str) -> Token { |
17 | assert!(!text.is_empty()); | 17 | assert!(!text.is_empty()); |
@@ -23,10 +23,7 @@ pub fn next_token(text: &str) -> Token { | |||
23 | } | 23 | } |
24 | 24 | ||
25 | fn next_token_inner(c: char, ptr: &mut Ptr) -> SyntaxKind { | 25 | fn next_token_inner(c: char, ptr: &mut Ptr) -> SyntaxKind { |
26 | // Note: r as in r" or r#" is part of a raw string literal, | 26 | let ident_start = is_ident_start(c) && !is_string_literal_start(c, ptr.next(), ptr.nnext()); |
27 | // b as in b' is part of a byte literal. | ||
28 | // They are not identifiers, and are handled further down. | ||
29 | let ident_start = is_ident_start(c) && !string_literal_start(c, ptr.next(), ptr.nnext()); | ||
30 | if ident_start { | 27 | if ident_start { |
31 | return scan_ident(c, ptr); | 28 | return scan_ident(c, ptr); |
32 | } | 29 | } |
diff --git a/src/lexer/strings.rs b/src/lexer/strings.rs index 2c1d86374..116d31760 100644 --- a/src/lexer/strings.rs +++ b/src/lexer/strings.rs | |||
@@ -3,7 +3,7 @@ use syntax_kinds::*; | |||
3 | 3 | ||
4 | use lexer::ptr::Ptr; | 4 | use lexer::ptr::Ptr; |
5 | 5 | ||
6 | pub(crate) fn string_literal_start(c: char, c1: Option<char>, c2: Option<char>) -> bool { | 6 | pub(crate) fn is_string_literal_start(c: char, c1: Option<char>, c2: Option<char>) -> bool { |
7 | match (c, c1, c2) { | 7 | match (c, c1, c2) { |
8 | ('r', Some('"'), _) | | 8 | ('r', Some('"'), _) | |
9 | ('r', Some('#'), _) | | 9 | ('r', Some('#'), _) | |