File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -86,13 +86,8 @@ pub fn decode_quoted_escapes(mut q ast.Quoted) ! {
8686 mut s := scanner.new_simple_text (q.text)!
8787 q.text = q.text.replace ('\\ "' , '"' )
8888
89- for {
90- ch := s.next ()
91- if ch == scanner.end_of_text {
92- break
93- }
89+ for ch := s.next (); ch != scanner.end_of_text; ch = s.next () {
9490 ch_byte := u8 (ch)
95-
9691 if eat_whitespace && ch_byte.is_space () {
9792 continue
9893 }
@@ -102,53 +97,44 @@ pub fn decode_quoted_escapes(mut q ast.Quoted) ! {
10297 ch_next := s.at ()
10398 ch_next_byte := u8 (ch_next)
10499
105- if ch_next == `\\ ` {
106- decoded_s + = ch_next_byte.ascii_str ()
107- s.next ()
108- continue
109- }
110-
111100 if q.is_multiline {
112101 if ch_next_byte.is_space () {
113102 eat_whitespace = true
114103 continue
115104 }
116105 }
117-
118- if ch_next == `"` {
119- decoded_s + = '"'
120- s.next ()
121- continue
122- }
123-
124- if ch_next == `n` {
125- decoded_s + = '\n '
126- s.next ()
127- continue
128- }
129-
130- if ch_next == `t` {
131- decoded_s + = '\t '
132- s.next ()
133- continue
134- }
135-
136- if ch_next == `b` {
137- decoded_s + = '\b '
138- s.next ()
139- continue
140- }
141-
142- if ch_next == `r` {
143- decoded_s + = '\r '
144- s.next ()
145- continue
146- }
147-
148- if ch_next == `f` {
149- decoded_s + = '\f '
150- s.next ()
151- continue
106+ match rune (ch_next) {
107+ `\\ ` , `"` {
108+ decoded_s + = ch_next_byte.ascii_str ()
109+ s.next ()
110+ continue
111+ }
112+ `n` {
113+ decoded_s + = '\n '
114+ s.next ()
115+ continue
116+ }
117+ `t` {
118+ decoded_s + = '\t '
119+ s.next ()
120+ continue
121+ }
122+ `b` {
123+ decoded_s + = '\b '
124+ s.next ()
125+ continue
126+ }
127+ `r` {
128+ decoded_s + = '\r '
129+ s.next ()
130+ continue
131+ }
132+ `f` {
133+ decoded_s + = '\f '
134+ s.next ()
135+ continue
136+ }
137+ else {}
152138 }
153139
154140 escape := ch_byte.ascii_str () + ch_next_byte.ascii_str ()
@@ -171,7 +157,6 @@ pub fn decode_quoted_escapes(mut q ast.Quoted) ! {
171157 if slen < = s.remaining () {
172158 pos := s.state ().pos
173159 sequence := s.text[pos..pos + slen + 1 ]
174-
175160 decoded , unicode_val , sequence_length = decode_unicode_escape (sequence) or {
176161 decoded_s + = escape
177162 continue
You can’t perform that action at this time.
0 commit comments