@@ -412,43 +412,43 @@ private static void escape(String s, StringBuilder sb) {
412412 for (int i = 0 ; i < len ; i ++) {
413413 char ch = s .charAt (i );
414414 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 );
446450 }
447- sb .append (ss .toUpperCase ());
448- } else {
449- sb .append (ch );
450- }
451- break ;
451+ break ;
452452 }
453453 }
454454 }
@@ -507,32 +507,32 @@ public Object parse() {
507507
508508 private Object readValue () {
509509 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" );
536536 }
537537 }
538538
@@ -638,45 +638,45 @@ private String readString() {
638638 private void readEscape () {
639639 read ();
640640 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 ;
668670 }
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" );
680680 }
681681 read ();
682682 }
0 commit comments