22source : crates / squawk_syntax / src / test .rs
33input_file : crates / squawk_syntax / test_data / validation / unicode_escape_string .sql
44-- -
5- SOURCE_FILE @0..241
5+ SOURCE_FILE @0..423
66 COMMENT @0..5 " -- ok"
77 WHITESPACE @5..6 " \n "
88 SELECT @6..30
@@ -113,6 +113,90 @@ SOURCE_FILE@0..241
113113 UNICODE_ESC_STRING @233..239 " U&' \\ '"
114114 SEMICOLON @239..240 " ;"
115115 WHITESPACE @240..241 " \n "
116+ SELECT @241..268
117+ SELECT_CLAUSE @241..268
118+ SELECT_KW @241..247 " select"
119+ WHITESPACE @247..248 " "
120+ TARGET_LIST @248..268
121+ TARGET @248..268
122+ LITERAL @248..268
123+ UNICODE_ESC_STRING @248..257 " U&'error'"
124+ WHITESPACE @257..258 " "
125+ UESCAPE_KW @258..265 " UESCAPE"
126+ WHITESPACE @265..266 " "
127+ STRING @266..268 " ''"
128+ SEMICOLON @268..269 " ;"
129+ WHITESPACE @269..270 " \n "
130+ SELECT @270..298
131+ SELECT_CLAUSE @270..298
132+ SELECT_KW @270..276 " select"
133+ WHITESPACE @276..277 " "
134+ TARGET_LIST @277..298
135+ TARGET @277..298
136+ LITERAL @277..298
137+ UNICODE_ESC_STRING @277..286 " U&'error'"
138+ WHITESPACE @286..287 " "
139+ UESCAPE_KW @287..294 " UESCAPE"
140+ WHITESPACE @294..295 " "
141+ STRING @295..298 " ' '"
142+ SEMICOLON @298..299 " ;"
143+ WHITESPACE @299..300 " \n "
144+ SELECT @300..328
145+ SELECT_CLAUSE @300..328
146+ SELECT_KW @300..306 " select"
147+ WHITESPACE @306..307 " "
148+ TARGET_LIST @307..328
149+ TARGET @307..328
150+ LITERAL @307..328
151+ UNICODE_ESC_STRING @307..316 " U&'error'"
152+ WHITESPACE @316..317 " "
153+ UESCAPE_KW @317..324 " UESCAPE"
154+ WHITESPACE @324..325 " "
155+ STRING @325..328 " '+'"
156+ SEMICOLON @328..329 " ;"
157+ WHITESPACE @329..330 " \n "
158+ SELECT @330..358
159+ SELECT_CLAUSE @330..358
160+ SELECT_KW @330..336 " select"
161+ WHITESPACE @336..337 " "
162+ TARGET_LIST @337..358
163+ TARGET @337..358
164+ LITERAL @337..358
165+ UNICODE_ESC_STRING @337..346 " U&'error'"
166+ WHITESPACE @346..347 " "
167+ UESCAPE_KW @347..354 " UESCAPE"
168+ WHITESPACE @354..355 " "
169+ STRING @355..358 " 'A'"
170+ SEMICOLON @358..359 " ;"
171+ WHITESPACE @359..360 " \n "
172+ SELECT @360..389
173+ SELECT_CLAUSE @360..389
174+ SELECT_KW @360..366 " select"
175+ WHITESPACE @366..367 " "
176+ TARGET_LIST @367..389
177+ TARGET @367..389
178+ LITERAL @367..389
179+ UNICODE_ESC_STRING @367..376 " U&'error'"
180+ WHITESPACE @376..377 " "
181+ UESCAPE_KW @377..384 " UESCAPE"
182+ WHITESPACE @384..385 " "
183+ STRING @385..389 " 'é'"
184+ SEMICOLON @389..390 " ;"
185+ WHITESPACE @390..391 " \n "
186+ SELECT @391..421
187+ SELECT_CLAUSE @391..421
188+ SELECT_KW @391..397 " select"
189+ WHITESPACE @397..398 " "
190+ TARGET_LIST @398..421
191+ TARGET @398..421
192+ LITERAL @398..421
193+ UNICODE_ESC_STRING @398..407 " U&'error'"
194+ WHITESPACE @407..408 " "
195+ UESCAPE_KW @408..415 " UESCAPE"
196+ WHITESPACE @415..416 " "
197+ STRING @416..421 " 'foo'"
198+ SEMICOLON @421..422 " ;"
199+ WHITESPACE @422..423 " \n "
116200
117201error [syntax - error ]: Unicode escape requires 4 hex digits : \XXXX
118202 ╭▸
@@ -134,3 +218,27 @@ error[syntax-error]: Invalid Unicode escape sequence
134218 ╭▸
13521912 │ select U & ' \' ;
136220 ╰╴ ━━━━━━
221+ error [syntax - error ]: Invalid unicode escape character
222+ ╭▸
223+ 13 │ select U & ' error' UESCAPE ' ' ;
224+ ╰╴ ━━
225+ error [syntax - error ]: Invalid unicode escape character
226+ ╭▸
227+ 14 │ select U & ' error' UESCAPE ' ' ;
228+ ╰╴ ━━━
229+ error [syntax - error ]: Invalid unicode escape character
230+ ╭▸
231+ 15 │ select U & ' error' UESCAPE ' +' ;
232+ ╰╴ ━━━
233+ error [syntax - error ]: Invalid unicode escape character
234+ ╭▸
235+ 16 │ select U & ' error' UESCAPE ' A' ;
236+ ╰╴ ━━━
237+ error [syntax - error ]: Invalid unicode escape character
238+ ╭▸
239+ 17 │ select U & ' error' UESCAPE ' é' ;
240+ ╰╴ ━━━
241+ error [syntax - error ]: Invalid unicode escape character
242+ ╭▸
243+ 18 │ select U & ' error' UESCAPE ' foo' ;
244+ ╰╴ ━━━━━
0 commit comments