From ec706175645172ee4bd5d3d4c0645ffb45d79bbf Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 23 Aug 2018 20:04:13 +0300 Subject: byte literals --- crates/libsyntax2/src/lexer/strings.rs | 16 ++-------------- crates/libsyntax2/tests/data/lexer/0008_byte_strings.rs | 1 + crates/libsyntax2/tests/data/lexer/0008_byte_strings.txt | 8 ++++++++ 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/crates/libsyntax2/src/lexer/strings.rs b/crates/libsyntax2/src/lexer/strings.rs index a6da97d47..e6ade54a4 100644 --- a/crates/libsyntax2/src/lexer/strings.rs +++ b/crates/libsyntax2/src/lexer/strings.rs @@ -102,23 +102,11 @@ pub(crate) fn scan_raw_string(ptr: &mut Ptr) { } fn scan_byte(ptr: &mut Ptr) { - if ptr.next_is('\'') { - ptr.bump(); - return; - } - ptr.bump(); - if ptr.next_is('\'') { - ptr.bump(); - return; - } + scan_char(ptr) } fn scan_byte_string(ptr: &mut Ptr) { - while let Some(c) = ptr.bump() { - if c == '"' { - return; - } - } + scan_string(ptr) } fn scan_raw_byte_string(ptr: &mut Ptr) { diff --git a/crates/libsyntax2/tests/data/lexer/0008_byte_strings.rs b/crates/libsyntax2/tests/data/lexer/0008_byte_strings.rs index 9dd1570de..b54930f5e 100644 --- a/crates/libsyntax2/tests/data/lexer/0008_byte_strings.rs +++ b/crates/libsyntax2/tests/data/lexer/0008_byte_strings.rs @@ -1,2 +1,3 @@ b'' b'x' b"foo" br"" b''suf b""ix br""br +b'\n' b'\\' b'\'' b'hello' diff --git a/crates/libsyntax2/tests/data/lexer/0008_byte_strings.txt b/crates/libsyntax2/tests/data/lexer/0008_byte_strings.txt index ed8cd4bab..bc03b51a8 100644 --- a/crates/libsyntax2/tests/data/lexer/0008_byte_strings.txt +++ b/crates/libsyntax2/tests/data/lexer/0008_byte_strings.txt @@ -12,3 +12,11 @@ BYTE_STRING 5 "b\"\"ix" WHITESPACE 1 " " RAW_BYTE_STRING 6 "br\"\"br" WHITESPACE 1 "\n" +BYTE 5 "b\'\\n\'" +WHITESPACE 1 " " +BYTE 5 "b\'\\\\\'" +WHITESPACE 1 " " +BYTE 5 "b\'\\\'\'" +WHITESPACE 1 " " +BYTE 8 "b\'hello\'" +WHITESPACE 1 "\n" -- cgit v1.2.3