@@ -412,43 +412,43 @@ private static void escape(String s, StringBuilder sb) {
412
412
for (int i = 0 ; i < len ; i ++) {
413
413
char ch = s .charAt (i );
414
414
switch (ch ) {
415
- case '"' :
416
- sb .append ("\\ \" " );
417
- break ;
418
- case '\\' :
419
- sb .append ("\\ \\ " );
420
- break ;
421
- case '\b' :
422
- sb .append ("\\ b" );
423
- break ;
424
- case '\f' :
425
- sb .append ("\\ f" );
426
- break ;
427
- case '\n' :
428
- sb .append ("\\ n" );
429
- break ;
430
- case '\r' :
431
- sb .append ("\\ r" );
432
- break ;
433
- case '\t' :
434
- sb .append ("\\ t" );
435
- break ;
436
- case '€' :
437
- sb .append ("€" );
438
- break ;
439
- default :
440
- if (ch <= '\u001F' || ch >= '\u007F' && ch <= '\u009F'
441
- || ch >= '\u2000' && ch <= '\u20FF' ) {
442
- String ss = Integer .toHexString (ch );
443
- sb .append ("\\ u" );
444
- for (int k = 0 ; k < 4 - ss .length (); k ++) {
445
- sb .append ('0' );
415
+ case '"' :
416
+ sb .append ("\\ \" " );
417
+ break ;
418
+ case '\\' :
419
+ sb .append ("\\ \\ " );
420
+ break ;
421
+ case '\b' :
422
+ sb .append ("\\ b" );
423
+ break ;
424
+ case '\f' :
425
+ sb .append ("\\ f" );
426
+ break ;
427
+ case '\n' :
428
+ sb .append ("\\ n" );
429
+ break ;
430
+ case '\r' :
431
+ sb .append ("\\ r" );
432
+ break ;
433
+ case '\t' :
434
+ sb .append ("\\ t" );
435
+ break ;
436
+ case '€' :
437
+ sb .append ("€" );
438
+ break ;
439
+ default :
440
+ if (ch <= '\u001F' || ch >= '\u007F' && ch <= '\u009F'
441
+ || ch >= '\u2000' && ch <= '\u20FF' ) {
442
+ String ss = Integer .toHexString (ch );
443
+ sb .append ("\\ u" );
444
+ for (int k = 0 ; k < 4 - ss .length (); k ++) {
445
+ sb .append ('0' );
446
+ }
447
+ sb .append (ss .toUpperCase ());
448
+ } else {
449
+ sb .append (ch );
446
450
}
447
- sb .append (ss .toUpperCase ());
448
- } else {
449
- sb .append (ch );
450
- }
451
- break ;
451
+ break ;
452
452
}
453
453
}
454
454
}
@@ -507,32 +507,32 @@ public Object parse() {
507
507
508
508
private Object readValue () {
509
509
switch (current ) {
510
- case 'n' :
511
- return readNull ();
512
- case 't' :
513
- return readTrue ();
514
- case 'f' :
515
- return readFalse ();
516
- case '"' :
517
- return readString ();
518
- case '[' :
519
- return readArray ();
520
- case '{' :
521
- return readObject ();
522
- case '-' :
523
- case '0' :
524
- case '1' :
525
- case '2' :
526
- case '3' :
527
- case '4' :
528
- case '5' :
529
- case '6' :
530
- case '7' :
531
- case '8' :
532
- case '9' :
533
- return readNumber ();
534
- default :
535
- throw expected ("value" );
510
+ case 'n' :
511
+ return readNull ();
512
+ case 't' :
513
+ return readTrue ();
514
+ case 'f' :
515
+ return readFalse ();
516
+ case '"' :
517
+ return readString ();
518
+ case '[' :
519
+ return readArray ();
520
+ case '{' :
521
+ return readObject ();
522
+ case '-' :
523
+ case '0' :
524
+ case '1' :
525
+ case '2' :
526
+ case '3' :
527
+ case '4' :
528
+ case '5' :
529
+ case '6' :
530
+ case '7' :
531
+ case '8' :
532
+ case '9' :
533
+ return readNumber ();
534
+ default :
535
+ throw expected ("value" );
536
536
}
537
537
}
538
538
@@ -638,45 +638,45 @@ private String readString() {
638
638
private void readEscape () {
639
639
read ();
640
640
switch (current ) {
641
- case '"' :
642
- case '/' :
643
- case '\\' :
644
- captureBuffer .append ((char ) current );
645
- break ;
646
- case 'b' :
647
- captureBuffer .append ('\b' );
648
- break ;
649
- case 'f' :
650
- captureBuffer .append ('\f' );
651
- break ;
652
- case 'n' :
653
- captureBuffer .append ('\n' );
654
- break ;
655
- case 'r' :
656
- captureBuffer .append ('\r' );
657
- break ;
658
- case 't' :
659
- captureBuffer .append ('\t' );
660
- break ;
661
- case 'u' :
662
- char [] hexChars = new char [4 ];
663
- boolean isHexCharsDigits = true ;
664
- for (int i = 0 ; i < 4 ; i ++) {
665
- read ();
666
- if (!isHexDigit ()) {
667
- isHexCharsDigits = false ;
641
+ case '"' :
642
+ case '/' :
643
+ case '\\' :
644
+ captureBuffer .append ((char ) current );
645
+ break ;
646
+ case 'b' :
647
+ captureBuffer .append ('\b' );
648
+ break ;
649
+ case 'f' :
650
+ captureBuffer .append ('\f' );
651
+ break ;
652
+ case 'n' :
653
+ captureBuffer .append ('\n' );
654
+ break ;
655
+ case 'r' :
656
+ captureBuffer .append ('\r' );
657
+ break ;
658
+ case 't' :
659
+ captureBuffer .append ('\t' );
660
+ break ;
661
+ case 'u' :
662
+ char [] hexChars = new char [4 ];
663
+ boolean isHexCharsDigits = true ;
664
+ for (int i = 0 ; i < 4 ; i ++) {
665
+ read ();
666
+ if (!isHexDigit ()) {
667
+ isHexCharsDigits = false ;
668
+ }
669
+ hexChars [i ] = (char ) current ;
668
670
}
669
- hexChars [i ] = (char ) current ;
670
- }
671
- if (isHexCharsDigits ) {
672
- captureBuffer .append ((char ) Integer .parseInt (new String (hexChars ), 16 ));
673
- } else {
674
- captureBuffer .append ("\\ u" ).append (hexChars [0 ]).append (hexChars [1 ]).append (hexChars [2 ])
675
- .append (hexChars [3 ]);
676
- }
677
- break ;
678
- default :
679
- throw expected ("valid escape sequence" );
671
+ if (isHexCharsDigits ) {
672
+ captureBuffer .append ((char ) Integer .parseInt (new String (hexChars ), 16 ));
673
+ } else {
674
+ captureBuffer .append ("\\ u" ).append (hexChars [0 ]).append (hexChars [1 ]).append (hexChars [2 ])
675
+ .append (hexChars [3 ]);
676
+ }
677
+ break ;
678
+ default :
679
+ throw expected ("valid escape sequence" );
680
680
}
681
681
read ();
682
682
}
0 commit comments