@@ -143,6 +143,64 @@ func TestLexeme(t *testing.T) {
143143 },
144144 want : "foo\" " ,
145145 },
146+ {
147+ name : "escaped-unicode-short" ,
148+ token : Token {
149+ Buffer : & []scanner.Token {
150+ {Pos : scanner.Pos {Rune : '"' }, Buffer : nil },
151+ {Pos : scanner.Pos {Rune : '\\' }, Buffer : nil },
152+ {Pos : scanner.Pos {Rune : 'u' }, Buffer : nil },
153+ {Pos : scanner.Pos {Rune : '3' }, Buffer : nil },
154+ {Pos : scanner.Pos {Rune : '0' }, Buffer : nil },
155+ {Pos : scanner.Pos {Rune : 'B' }, Buffer : nil },
156+ {Pos : scanner.Pos {Rune : 'F' }, Buffer : nil },
157+ {Pos : scanner.Pos {Rune : '\\' }, Buffer : nil },
158+ {Pos : scanner.Pos {Rune : 'u' }, Buffer : nil },
159+ {Pos : scanner.Pos {Rune : '3' }, Buffer : nil },
160+ {Pos : scanner.Pos {Rune : '0' }, Buffer : nil },
161+ {Pos : scanner.Pos {Rune : 'c' }, Buffer : nil },
162+ {Pos : scanner.Pos {Rune : 'f' }, Buffer : nil },
163+ {Pos : scanner.Pos {Rune : '"' }, Buffer : nil },
164+ },
165+ Type : String ,
166+ Start : 0 ,
167+ End : 14 ,
168+ },
169+ want : "タハ" ,
170+ },
171+ {
172+ name : "escaped-unicode-long" ,
173+ token : Token {
174+ Buffer : & []scanner.Token {
175+ {Pos : scanner.Pos {Rune : '"' }, Buffer : nil },
176+ {Pos : scanner.Pos {Rune : '\\' }, Buffer : nil },
177+ {Pos : scanner.Pos {Rune : 'U' }, Buffer : nil },
178+ {Pos : scanner.Pos {Rune : '0' }, Buffer : nil },
179+ {Pos : scanner.Pos {Rune : '0' }, Buffer : nil },
180+ {Pos : scanner.Pos {Rune : '0' }, Buffer : nil },
181+ {Pos : scanner.Pos {Rune : '1' }, Buffer : nil },
182+ {Pos : scanner.Pos {Rune : 'F' }, Buffer : nil },
183+ {Pos : scanner.Pos {Rune : '6' }, Buffer : nil },
184+ {Pos : scanner.Pos {Rune : '3' }, Buffer : nil },
185+ {Pos : scanner.Pos {Rune : '1' }, Buffer : nil },
186+ {Pos : scanner.Pos {Rune : '\\' }, Buffer : nil },
187+ {Pos : scanner.Pos {Rune : 'U' }, Buffer : nil },
188+ {Pos : scanner.Pos {Rune : '0' }, Buffer : nil },
189+ {Pos : scanner.Pos {Rune : '0' }, Buffer : nil },
190+ {Pos : scanner.Pos {Rune : '0' }, Buffer : nil },
191+ {Pos : scanner.Pos {Rune : '1' }, Buffer : nil },
192+ {Pos : scanner.Pos {Rune : 'f' }, Buffer : nil },
193+ {Pos : scanner.Pos {Rune : '6' }, Buffer : nil },
194+ {Pos : scanner.Pos {Rune : '4' }, Buffer : nil },
195+ {Pos : scanner.Pos {Rune : 'f' }, Buffer : nil },
196+ {Pos : scanner.Pos {Rune : '"' }, Buffer : nil },
197+ },
198+ Type : String ,
199+ Start : 0 ,
200+ End : 22 ,
201+ },
202+ want : "😱🙏" ,
203+ },
146204 }
147205 for _ , c := range cases {
148206 t .Run (c .name , func (t * testing.T ) {
0 commit comments