X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=blobdiff_plain;f=srcjar%2Forg%2Fjson%2Fsimple%2Fparser%2FYylex.java;fp=srcjar%2Forg%2Fjson%2Fsimple%2Fparser%2FYylex.java;h=41569d6d0e7bd13d18fbd1a5485320c1fc961275;hp=dc36fa2856643adfee46512fd8ec30055b526794;hb=832c5786fc5e0cba7824a79c68a4ee6e3ad9fa71;hpb=ee6db3e52520d26acea3f68886dd05b89c86b76f diff --git a/srcjar/org/json/simple/parser/Yylex.java b/srcjar/org/json/simple/parser/Yylex.java index dc36fa2..41569d6 100644 --- a/srcjar/org/json/simple/parser/Yylex.java +++ b/srcjar/org/json/simple/parser/Yylex.java @@ -96,8 +96,8 @@ class Yylex { int j = offset; /* index in unpacked array */ int l = packed.length(); while (i < l) { - int high = packed.charAt(i++) << 16; - result[j++] = high | packed.charAt(i++); + int high = packed.codePointAt(i++) << 16; + result[j++] = high | packed.codePointAt(i++); } return j; } @@ -492,13 +492,15 @@ int getPosition(){ /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. + * Resumes scanning until the next regular expression is matched, the end of + * input is encountered or an I/O-Error occurs. * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs */ - public Yytoken yylex() throws java.io.IOException, ParseException { + public Yytoken yylex() throws java.io.IOException, ParseException + { int zzInput; int zzAction; @@ -506,61 +508,70 @@ int getPosition(){ int zzCurrentPosL; int zzMarkedPosL; int zzEndReadL = zzEndRead; - char [] zzBufferL = zzBuffer; - char [] zzCMapL = ZZ_CMAP; + char[] zzBufferL = zzBuffer; + char[] zzCMapL = ZZ_CMAP; - int [] zzTransL = ZZ_TRANS; - int [] zzRowMapL = ZZ_ROWMAP; - int [] zzAttrL = ZZ_ATTRIBUTE; + int[] zzTransL = ZZ_TRANS; + int[] zzRowMapL = ZZ_ROWMAP; + int[] zzAttrL = ZZ_ATTRIBUTE; - while (true) { + while (true) + { zzMarkedPosL = zzMarkedPos; - yychar+= zzMarkedPosL-zzStartRead; + yychar += zzMarkedPosL - zzStartRead; zzAction = -1; zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; - + zzState = ZZ_LEXSTATE[zzLexicalState]; + zzForAction: + { + while (true) + { - zzForAction: { - while (true) { - if (zzCurrentPosL < zzEndReadL) zzInput = zzBufferL[zzCurrentPosL++]; - else if (zzAtEOF) { + else if (zzAtEOF) + { zzInput = YYEOF; break zzForAction; } - else { + else + { // store back cached positions - zzCurrentPos = zzCurrentPosL; - zzMarkedPos = zzMarkedPosL; + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; boolean eof = zzRefill(); // get translated positions and possibly new buffer - zzCurrentPosL = zzCurrentPos; - zzMarkedPosL = zzMarkedPos; - zzBufferL = zzBuffer; - zzEndReadL = zzEndRead; - if (eof) { + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) + { zzInput = YYEOF; break zzForAction; } - else { + else + { zzInput = zzBufferL[zzCurrentPosL++]; } } - int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ]; - if (zzNext == -1) break zzForAction; + int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; + if (zzNext == -1) + break zzForAction; zzState = zzNext; int zzAttributes = zzAttrL[zzState]; - if ( (zzAttributes & 1) == 1 ) { + if ((zzAttributes & 1) == 1) + { zzAction = zzState; zzMarkedPosL = zzCurrentPosL; - if ( (zzAttributes & 8) == 8 ) break zzForAction; + if ((zzAttributes & 8) == 8) + break zzForAction; } } @@ -568,118 +579,177 @@ int getPosition(){ // store back cached position zzMarkedPos = zzMarkedPosL; - - switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 11: - { sb.append(yytext()); - } - case 25: break; - case 4: - { sb = null; sb = new StringBuffer(); yybegin(STRING_BEGIN); - } - case 26: break; - case 16: - { sb.append('\b'); - } - case 27: break; - case 6: - { return new Yytoken(Yytoken.TYPE_RIGHT_BRACE,null); - } - case 28: break; - case 23: - { Boolean val=Boolean.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE, val); - } - case 29: break; - case 22: - { return new Yytoken(Yytoken.TYPE_VALUE, null); - } - case 30: break; - case 13: - { yybegin(YYINITIAL);return new Yytoken(Yytoken.TYPE_VALUE, sb.toString()); - } - case 31: break; - case 12: - { sb.append('\\'); - } - case 32: break; - case 21: - { Double val=Double.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE, val); - } - case 33: break; - case 1: - { throw new ParseException(yychar, ParseException.ERROR_UNEXPECTED_CHAR, new Character(yycharat(0))); - } - case 34: break; - case 8: - { return new Yytoken(Yytoken.TYPE_RIGHT_SQUARE,null); - } - case 35: break; - case 19: - { sb.append('\r'); - } - case 36: break; - case 15: - { sb.append('/'); - } - case 37: break; - case 10: - { return new Yytoken(Yytoken.TYPE_COLON,null); - } - case 38: break; - case 14: - { sb.append('"'); - } - case 39: break; - case 5: - { return new Yytoken(Yytoken.TYPE_LEFT_BRACE,null); - } - case 40: break; - case 17: - { sb.append('\f'); - } - case 41: break; - case 24: - { try{ - int ch=Integer.parseInt(yytext().substring(2),16); - sb.append((char)ch); - } - catch(Exception e){ - throw new ParseException(yychar, ParseException.ERROR_UNEXPECTED_EXCEPTION, e); - } - } - case 42: break; - case 20: - { sb.append('\t'); - } - case 43: break; - case 7: - { return new Yytoken(Yytoken.TYPE_LEFT_SQUARE,null); - } - case 44: break; - case 2: - { Long val=Long.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE, val); - } - case 45: break; - case 18: - { sb.append('\n'); - } - case 46: break; - case 9: - { return new Yytoken(Yytoken.TYPE_COMMA,null); - } - case 47: break; - case 3: - { - } - case 48: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - return null; - } - else { - zzScanError(ZZ_NO_MATCH); - } + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) + { + case 11: + { + sb.append(yytext()); + } + case 25: + break; + case 4: + { + sb = null; + sb = new StringBuffer(); + yybegin(STRING_BEGIN); + } + case 26: + break; + case 16: + { + sb.append('\b'); + } + case 27: + break; + case 6: + { + return new Yytoken(Yytoken.TYPE_RIGHT_BRACE, null); + } + case 28: + break; + case 23: + { + Boolean val = Boolean.valueOf(yytext()); + return new Yytoken(Yytoken.TYPE_VALUE, val); + } + case 29: + break; + case 22: + { + return new Yytoken(Yytoken.TYPE_VALUE, null); + } + case 30: + break; + case 13: + { + yybegin(YYINITIAL); + return new Yytoken(Yytoken.TYPE_VALUE, sb.toString()); + } + case 31: + break; + case 12: + { + sb.append('\\'); + } + case 32: + break; + case 21: + { + Double val = Double.valueOf(yytext()); + return new Yytoken(Yytoken.TYPE_VALUE, val); + } + case 33: + break; + case 1: + { + throw new ParseException(yychar, + ParseException.ERROR_UNEXPECTED_CHAR, + new Character(yycharat(0))); + } + case 34: + break; + case 8: + { + return new Yytoken(Yytoken.TYPE_RIGHT_SQUARE, null); + } + case 35: + break; + case 19: + { + sb.append('\r'); + } + case 36: + break; + case 15: + { + sb.append('/'); + } + case 37: + break; + case 10: + { + return new Yytoken(Yytoken.TYPE_COLON, null); + } + case 38: + break; + case 14: + { + sb.append('"'); + } + case 39: + break; + case 5: + { + return new Yytoken(Yytoken.TYPE_LEFT_BRACE, null); + } + case 40: + break; + case 17: + { + sb.append('\f'); + } + case 41: + break; + case 24: + { + try + { + int ch = Integer.parseInt(yytext().substring(2), 16); + sb.append((char) ch); + } catch (Exception e) + { + throw new ParseException(yychar, + ParseException.ERROR_UNEXPECTED_EXCEPTION, e); + } + } + case 42: + break; + case 20: + { + sb.append('\t'); + } + case 43: + break; + case 7: + { + return new Yytoken(Yytoken.TYPE_LEFT_SQUARE, null); + } + case 44: + break; + case 2: + { + Long val = Long.valueOf(yytext()); + return new Yytoken(Yytoken.TYPE_VALUE, val); + } + case 45: + break; + case 18: + { + sb.append('\n'); + } + case 46: + break; + case 9: + { + return new Yytoken(Yytoken.TYPE_COMMA, null); + } + case 47: + break; + case 3: + { + } + case 48: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) + { + zzAtEOF = true; + return null; + } + else + { + zzScanError(ZZ_NO_MATCH); + } } } }