swc_ecma_regexp/parser/reader/string_literal_parser/
characters.rs1pub const LF: char = '\n';
2pub const CR: char = '\r';
3pub const LS: char = '\u{2028}';
4pub const PS: char = '\u{2029}';
5
6pub fn is_line_terminator(ch: char) -> bool {
14 matches!(ch, LF | CR | LS | PS)
15}
16
17pub fn is_single_escape_character(ch: char) -> bool {
22 matches!(ch, '\'' | '"' | '\\' | 'b' | 'f' | 'n' | 'r' | 't' | 'v')
23}
24
25pub fn is_non_escape_character(ch: char) -> bool {
36 let is_escape_character =
37 |ch| is_single_escape_character(ch) || ch.is_ascii_digit() || matches!(ch, 'x' | 'u');
38
39 if is_escape_character(ch) || is_line_terminator(ch) {
40 return false;
41 }
42 true
43}