@@ -101,37 +101,37 @@ defmodule Jason.Decoder do
101101
102102 defp value ( data , original , skip , stack , decode ) do
103103 bytecase data do
104- _ in '\s \n \t \r ' , rest ->
104+ _ in ~c ' \s \n \t \r ' , rest ->
105105 value ( rest , original , skip + 1 , stack , decode )
106- _ in '0' , rest ->
106+ _ in ~c ' 0' , rest ->
107107 number_zero ( rest , original , skip , stack , decode , 1 )
108- _ in '123456789' , rest ->
108+ _ in ~c ' 123456789' , rest ->
109109 number ( rest , original , skip , stack , decode , 1 )
110- _ in '-' , rest ->
110+ _ in ~c ' -' , rest ->
111111 number_minus ( rest , original , skip , stack , decode )
112- _ in '"' , rest ->
112+ _ in ~c ' "' , rest ->
113113 string ( rest , original , skip + 1 , stack , decode , 0 )
114- _ in '[' , rest ->
114+ _ in ~c ' [' , rest ->
115115 array ( rest , original , skip + 1 , stack , decode )
116- _ in '{' , rest ->
116+ _ in ~c ' {' , rest ->
117117 object ( rest , original , skip + 1 , stack , decode )
118- _ in ']' , rest ->
118+ _ in ~c ' ]' , rest ->
119119 empty_array ( rest , original , skip + 1 , stack , decode )
120- _ in 't' , rest ->
120+ _ in ~c ' t' , rest ->
121121 case rest do
122122 << "rue" , rest :: bits >> ->
123123 continue ( rest , original , skip + 4 , stack , decode , true )
124124 << _ :: bits >> ->
125125 error ( original , skip )
126126 end
127- _ in 'f' , rest ->
127+ _ in ~c ' f' , rest ->
128128 case rest do
129129 << "alse" , rest :: bits >> ->
130130 continue ( rest , original , skip + 5 , stack , decode , false )
131131 << _ :: bits >> ->
132132 error ( original , skip )
133133 end
134- _ in 'n' , rest ->
134+ _ in ~c ' n' , rest ->
135135 case rest do
136136 << "ull" , rest :: bits >> ->
137137 continue ( rest , original , skip + 4 , stack , decode , nil )
@@ -149,7 +149,7 @@ defmodule Jason.Decoder do
149149 number_zero ( rest , original , skip , stack , decode , 2 )
150150 end
151151 defp number_minus ( << byte , rest :: bits >> , original , skip , stack , decode )
152- when byte in '123456789' do
152+ when byte in ~c ' 123456789' do
153153 number ( rest , original , skip , stack , decode , 2 )
154154 end
155155 defp number_minus ( << _rest :: bits >> , original , skip , _stack , _decode ) do
@@ -164,13 +164,13 @@ defmodule Jason.Decoder do
164164 end
165165
166166 defp number ( << byte , rest :: bits >> , original , skip , stack , decode , len )
167- when byte in '0123456789' do
167+ when byte in ~c ' 0123456789' do
168168 number ( rest , original , skip , stack , decode , len + 1 )
169169 end
170170 defp number ( << ?. , rest :: bits >> , original , skip , stack , decode , len ) do
171171 number_frac ( rest , original , skip , stack , decode , len + 1 )
172172 end
173- defp number ( << e , rest :: bits >> , original , skip , stack , decode , len ) when e in 'eE' do
173+ defp number ( << e , rest :: bits >> , original , skip , stack , decode , len ) when e in ~c ' eE' do
174174 prefix = binary_part ( original , skip , len )
175175 number_exp_copy ( rest , original , skip + len + 1 , stack , decode , prefix )
176176 end
@@ -184,19 +184,19 @@ defmodule Jason.Decoder do
184184 end
185185
186186 defp number_frac ( << byte , rest :: bits >> , original , skip , stack , decode , len )
187- when byte in '0123456789' do
187+ when byte in ~c ' 0123456789' do
188188 number_frac_cont ( rest , original , skip , stack , decode , len + 1 )
189189 end
190190 defp number_frac ( << _rest :: bits >> , original , skip , _stack , _decode , len ) do
191191 error ( original , skip + len )
192192 end
193193
194194 defp number_frac_cont ( << byte , rest :: bits >> , original , skip , stack , decode , len )
195- when byte in '0123456789' do
195+ when byte in ~c ' 0123456789' do
196196 number_frac_cont ( rest , original , skip , stack , decode , len + 1 )
197197 end
198198 defp number_frac_cont ( << e , rest :: bits >> , original , skip , stack , decode , len )
199- when e in 'eE' do
199+ when e in ~c ' eE' do
200200 number_exp ( rest , original , skip , stack , decode , len + 1 )
201201 end
202202 defp number_frac_cont ( << rest :: bits >> , original , skip , stack , decode , len ) do
@@ -207,27 +207,27 @@ defmodule Jason.Decoder do
207207 end
208208
209209 defp number_exp ( << byte , rest :: bits >> , original , skip , stack , decode , len )
210- when byte in '0123456789' do
210+ when byte in ~c ' 0123456789' do
211211 number_exp_cont ( rest , original , skip , stack , decode , len + 1 )
212212 end
213213 defp number_exp ( << byte , rest :: bits >> , original , skip , stack , decode , len )
214- when byte in '+-' do
214+ when byte in ~c ' +-' do
215215 number_exp_sign ( rest , original , skip , stack , decode , len + 1 )
216216 end
217217 defp number_exp ( << _rest :: bits >> , original , skip , _stack , _decode , len ) do
218218 error ( original , skip + len )
219219 end
220220
221221 defp number_exp_sign ( << byte , rest :: bits >> , original , skip , stack , decode , len )
222- when byte in '0123456789' do
222+ when byte in ~c ' 0123456789' do
223223 number_exp_cont ( rest , original , skip , stack , decode , len + 1 )
224224 end
225225 defp number_exp_sign ( << _rest :: bits >> , original , skip , _stack , _decode , len ) do
226226 error ( original , skip + len )
227227 end
228228
229229 defp number_exp_cont ( << byte , rest :: bits >> , original , skip , stack , decode , len )
230- when byte in '0123456789' do
230+ when byte in ~c ' 0123456789' do
231231 number_exp_cont ( rest , original , skip , stack , decode , len + 1 )
232232 end
233233 defp number_exp_cont ( << rest :: bits >> , original , skip , stack , decode , len ) do
@@ -238,27 +238,27 @@ defmodule Jason.Decoder do
238238 end
239239
240240 defp number_exp_copy ( << byte , rest :: bits >> , original , skip , stack , decode , prefix )
241- when byte in '0123456789' do
241+ when byte in ~c ' 0123456789' do
242242 number_exp_cont ( rest , original , skip , stack , decode , prefix , 1 )
243243 end
244244 defp number_exp_copy ( << byte , rest :: bits >> , original , skip , stack , decode , prefix )
245- when byte in '+-' do
245+ when byte in ~c ' +-' do
246246 number_exp_sign ( rest , original , skip , stack , decode , prefix , 1 )
247247 end
248248 defp number_exp_copy ( << _rest :: bits >> , original , skip , _stack , _decode , _prefix ) do
249249 error ( original , skip )
250250 end
251251
252252 defp number_exp_sign ( << byte , rest :: bits >> , original , skip , stack , decode , prefix , len )
253- when byte in '0123456789' do
253+ when byte in ~c ' 0123456789' do
254254 number_exp_cont ( rest , original , skip , stack , decode , prefix , len + 1 )
255255 end
256256 defp number_exp_sign ( << _rest :: bits >> , original , skip , _stack , _decode , _prefix , len ) do
257257 error ( original , skip + len )
258258 end
259259
260260 defp number_exp_cont ( << byte , rest :: bits >> , original , skip , stack , decode , prefix , len )
261- when byte in '0123456789' do
261+ when byte in ~c ' 0123456789' do
262262 number_exp_cont ( rest , original , skip , stack , decode , prefix , len + 1 )
263263 end
264264 defp number_exp_cont ( << rest :: bits >> , original , skip , stack , decode , prefix , len ) do
@@ -276,7 +276,7 @@ defmodule Jason.Decoder do
276276 defp number_zero ( << ?. , rest :: bits >> , original , skip , stack , decode , len ) do
277277 number_frac ( rest , original , skip , stack , decode , len + 1 )
278278 end
279- defp number_zero ( << e , rest :: bits >> , original , skip , stack , decode , len ) when e in 'eE' do
279+ defp number_zero ( << e , rest :: bits >> , original , skip , stack , decode , len ) when e in ~c ' eE' do
280280 number_exp_copy ( rest , original , skip + len + 1 , stack , decode , "0" )
281281 end
282282 defp number_zero ( << rest :: bits >> , original , skip , stack , decode , len ) do
@@ -300,13 +300,13 @@ defmodule Jason.Decoder do
300300
301301 defp array ( data , original , skip , stack , decode , value ) do
302302 bytecase data do
303- _ in '\s \n \t \r ' , rest ->
303+ _ in ~c ' \s \n \t \r ' , rest ->
304304 array ( rest , original , skip + 1 , stack , decode , value )
305- _ in ']' , rest ->
305+ _ in ~c ' ]' , rest ->
306306 [ acc | stack ] = stack
307307 value = :lists . reverse ( acc , [ value ] )
308308 continue ( rest , original , skip + 1 , stack , decode , value )
309- _ in ',' , rest ->
309+ _ in ~c ' ,' , rest ->
310310 [ acc | stack ] = stack
311311 value ( rest , original , skip + 1 , [ @ array , [ value | acc ] | stack ] , decode )
312312 _ , _rest ->
@@ -324,16 +324,16 @@ defmodule Jason.Decoder do
324324
325325 defp object ( data , original , skip , stack , decode , value ) do
326326 bytecase data do
327- _ in '\s \n \t \r ' , rest ->
327+ _ in ~c ' \s \n \t \r ' , rest ->
328328 object ( rest , original , skip + 1 , stack , decode , value )
329- _ in '}' , rest ->
329+ _ in ~c ' }' , rest ->
330330 skip = skip + 1
331331 [ key , acc | stack ] = stack
332332 decode ( keys: key_decode ) = decode
333333 final = [ { key_decode . ( key ) , value } | acc ]
334334 decode ( objects: object_decode ) = decode
335335 continue ( rest , original , skip , stack , decode , object_decode . ( final ) )
336- _ in ',' , rest ->
336+ _ in ~c ' ,' , rest ->
337337 skip = skip + 1
338338 [ key , acc | stack ] = stack
339339 decode ( keys: key_decode ) = decode
@@ -348,17 +348,17 @@ defmodule Jason.Decoder do
348348
349349 defp key ( data , original , skip , stack , decode ) do
350350 bytecase data do
351- _ in '\s \n \t \r ' , rest ->
351+ _ in ~c ' \s \n \t \r ' , rest ->
352352 key ( rest , original , skip + 1 , stack , decode )
353- _ in '}' , rest ->
353+ _ in ~c ' }' , rest ->
354354 case stack do
355355 [ [ ] | stack ] ->
356356 decode ( objects: object_decode ) = decode
357357 continue ( rest , original , skip + 1 , stack , decode , object_decode . ( [ ] ) )
358358 _ ->
359359 error ( original , skip )
360360 end
361- _ in '"' , rest ->
361+ _ in ~c ' "' , rest ->
362362 string ( rest , original , skip + 1 , [ @ key | stack ] , decode , 0 )
363363 _ , _rest ->
364364 error ( original , skip )
@@ -369,9 +369,9 @@ defmodule Jason.Decoder do
369369
370370 defp key ( data , original , skip , stack , decode , value ) do
371371 bytecase data do
372- _ in '\s \n \t \r ' , rest ->
372+ _ in ~c ' \s \n \t \r ' , rest ->
373373 key ( rest , original , skip + 1 , stack , decode , value )
374- _ in ':' , rest ->
374+ _ in ~c ' :' , rest ->
375375 value ( rest , original , skip + 1 , [ @ object , value | stack ] , decode )
376376 _ , _rest ->
377377 error ( original , skip )
@@ -385,11 +385,11 @@ defmodule Jason.Decoder do
385385 # http://bjoern.hoehrmann.de/utf-8/decoder/dfa/
386386 defp string ( data , original , skip , stack , decode , len ) do
387387 bytecase data , 128 do
388- _ in '"' , rest ->
388+ _ in ~c ' "' , rest ->
389389 decode ( strings: string_decode ) = decode
390390 string = string_decode . ( binary_part ( original , skip , len ) )
391391 continue ( rest , original , skip + len + 1 , stack , decode , string )
392- _ in '\\ ' , rest ->
392+ _ in ~c ' \\ ' , rest ->
393393 part = binary_part ( original , skip , len )
394394 escape ( rest , original , skip + len , stack , decode , part )
395395 _ in unquote ( 0x00 .. 0x1F ) , _rest ->
@@ -409,11 +409,11 @@ defmodule Jason.Decoder do
409409
410410 defp string ( data , original , skip , stack , decode , acc , len ) do
411411 bytecase data , 128 do
412- _ in '"' , rest ->
412+ _ in ~c ' "' , rest ->
413413 last = binary_part ( original , skip , len )
414414 string = IO . iodata_to_binary ( [ acc | last ] )
415415 continue ( rest , original , skip + len + 1 , stack , decode , string )
416- _ in '\\ ' , rest ->
416+ _ in ~c ' \\ ' , rest ->
417417 part = binary_part ( original , skip , len )
418418 escape ( rest , original , skip + len , stack , decode , [ acc | part ] )
419419 _ in unquote ( 0x00 .. 0x1F ) , _rest ->
@@ -433,23 +433,23 @@ defmodule Jason.Decoder do
433433
434434 defp escape ( data , original , skip , stack , decode , acc ) do
435435 bytecase data do
436- _ in 'b' , rest ->
437- string ( rest , original , skip + 2 , stack , decode , [ acc | '\b ' ] , 0 )
438- _ in 't' , rest ->
439- string ( rest , original , skip + 2 , stack , decode , [ acc | '\t ' ] , 0 )
440- _ in 'n' , rest ->
441- string ( rest , original , skip + 2 , stack , decode , [ acc | '\n ' ] , 0 )
442- _ in 'f' , rest ->
443- string ( rest , original , skip + 2 , stack , decode , [ acc | '\f ' ] , 0 )
444- _ in 'r' , rest ->
445- string ( rest , original , skip + 2 , stack , decode , [ acc | '\r ' ] , 0 )
446- _ in '"' , rest ->
447- string ( rest , original , skip + 2 , stack , decode , [ acc | '\" ' ] , 0 )
448- _ in '/' , rest ->
449- string ( rest , original , skip + 2 , stack , decode , [ acc | '/' ] , 0 )
450- _ in '\\ ' , rest ->
451- string ( rest , original , skip + 2 , stack , decode , [ acc | '\\ ' ] , 0 )
452- _ in 'u' , rest ->
436+ _ in ~c ' b' , rest ->
437+ string ( rest , original , skip + 2 , stack , decode , [ acc | ~c ' \b ' ] , 0 )
438+ _ in ~c ' t' , rest ->
439+ string ( rest , original , skip + 2 , stack , decode , [ acc | ~c ' \t ' ] , 0 )
440+ _ in ~c ' n' , rest ->
441+ string ( rest , original , skip + 2 , stack , decode , [ acc | ~c ' \n ' ] , 0 )
442+ _ in ~c ' f' , rest ->
443+ string ( rest , original , skip + 2 , stack , decode , [ acc | ~c ' \f ' ] , 0 )
444+ _ in ~c ' r' , rest ->
445+ string ( rest , original , skip + 2 , stack , decode , [ acc | ~c ' \r ' ] , 0 )
446+ _ in ~c ' "' , rest ->
447+ string ( rest , original , skip + 2 , stack , decode , [ acc | ~c ' \" ' ] , 0 )
448+ _ in ~c ' /' , rest ->
449+ string ( rest , original , skip + 2 , stack , decode , [ acc | ~c ' /' ] , 0 )
450+ _ in ~c ' \\ ' , rest ->
451+ string ( rest , original , skip + 2 , stack , decode , [ acc | ~c ' \\ ' ] , 0 )
452+ _ in ~c ' u' , rest ->
453453 escapeu ( rest , original , skip , stack , decode , acc )
454454 _ , _rest ->
455455 error ( original , skip + 1 )
@@ -606,7 +606,7 @@ defmodule Jason.Decoder do
606606 end
607607
608608 defp escapeu_surrogate_clauses ( last , rest , original , skip , stack , decode , acc , hi ) do
609- digits1 = 'Dd'
609+ digits1 = ~c ' Dd'
610610 digits2 = Stream . concat ( [ ?C .. ?F , ?c .. ?f ] )
611611 for { int , first } <- unicode_escapes ( digits1 , digits2 ) do
612612 escapeu_surrogate_clause ( int , first , last , rest , original , skip , stack , decode , acc , hi )
@@ -692,7 +692,7 @@ defmodule Jason.Decoder do
692692 end
693693
694694 defp terminate ( << byte , rest :: bits >> , original , skip , stack , decode , value )
695- when byte in '\s \n \r \t ' do
695+ when byte in ~c ' \s \n \r \t ' do
696696 terminate ( rest , original , skip + 1 , stack , decode , value )
697697 end
698698 defp terminate ( << >> , _original , _skip , _stack , _decode , value ) do
0 commit comments