From a5eeef0eeed092cb663afc3b0cda2c0df0c7e793 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 18 Aug 2018 12:13:34 +0300 Subject: better char lexing --- crates/libsyntax2/src/lexer/strings.rs | 28 +++++++++++++---------- crates/libsyntax2/tests/data/lexer/0006_chars.rs | 2 +- crates/libsyntax2/tests/data/lexer/0006_chars.txt | 10 ++++++++ 3 files changed, 27 insertions(+), 13 deletions(-) (limited to 'crates/libsyntax2') diff --git a/crates/libsyntax2/src/lexer/strings.rs b/crates/libsyntax2/src/lexer/strings.rs index fbae767e5..795ea97b7 100644 --- a/crates/libsyntax2/src/lexer/strings.rs +++ b/crates/libsyntax2/src/lexer/strings.rs @@ -15,14 +15,23 @@ pub(crate) fn is_string_literal_start(c: char, c1: Option, c2: Option SyntaxKind { @@ -111,8 +120,3 @@ fn scan_raw_byte_string(ptr: &mut Ptr) { } } } - -fn scan_char_or_byte(ptr: &mut Ptr) { - //FIXME: deal with escape sequencies - ptr.bump(); -} diff --git a/crates/libsyntax2/tests/data/lexer/0006_chars.rs b/crates/libsyntax2/tests/data/lexer/0006_chars.rs index 03598d908..454ee0a5f 100644 --- a/crates/libsyntax2/tests/data/lexer/0006_chars.rs +++ b/crates/libsyntax2/tests/data/lexer/0006_chars.rs @@ -1 +1 @@ -'x' ' ' '0' +'x' ' ' '0' 'hello' '\x7f' '\n' '\\' '\'' diff --git a/crates/libsyntax2/tests/data/lexer/0006_chars.txt b/crates/libsyntax2/tests/data/lexer/0006_chars.txt index ecaf22355..950954fbc 100644 --- a/crates/libsyntax2/tests/data/lexer/0006_chars.txt +++ b/crates/libsyntax2/tests/data/lexer/0006_chars.txt @@ -3,4 +3,14 @@ WHITESPACE 1 " " CHAR 3 "\' \'" WHITESPACE 1 " " CHAR 3 "\'0\'" +WHITESPACE 1 " " +CHAR 7 "\'hello\'" +WHITESPACE 1 " " +CHAR 6 "\'\\x7f\'" +WHITESPACE 1 " " +CHAR 4 "\'\\n\'" +WHITESPACE 1 " " +CHAR 4 "\'\\\\\'" +WHITESPACE 1 " " +CHAR 4 "\'\\\'\'" WHITESPACE 1 "\n" -- cgit v1.2.3