1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
#define FAILUTF8(want) \
parser->bad_beginning = startofutf8string - 1; \
parser->bad_type = json_string; \
parser->bad_byte = parser->end - 1; \
parser->expected = want; \
parser->error = json_error_unexpected_character; \
failbadinput (parser)
byte_last_80_bf:
switch (NEXTBYTE) {
case BYTE_80_BF:
ADDBYTE;
goto string_start;
default:
FAILUTF8 (XBYTES_80_BF);
}
byte_penultimate_80_bf:
switch (NEXTBYTE) {
case BYTE_80_BF:
ADDBYTE;
goto byte_last_80_bf;
default:
FAILUTF8 (XBYTES_80_BF);
}
byte24_90_bf:
switch (NEXTBYTE) {
case BYTE_90_BF:
ADDBYTE;
goto byte_penultimate_80_bf;
default:
FAILUTF8 (XBYTES_90_BF);
}
byte23_80_9f:
switch (NEXTBYTE) {
case BYTE_80_9F:
ADDBYTE;
goto byte_last_80_bf;
default:
FAILUTF8 (XBYTES_80_9F);
}
byte23_a0_bf:
switch (NEXTBYTE) {
case BYTE_A0_BF:
ADDBYTE;
goto byte_last_80_bf;
default:
FAILUTF8 (XBYTES_A0_BF);
}
byte24_80_bf:
switch (NEXTBYTE) {
case BYTE_80_BF:
ADDBYTE;
goto byte_penultimate_80_bf;
default:
FAILUTF8 (XBYTES_80_BF);
}
byte24_80_8f:
switch (NEXTBYTE) {
case BYTE_80_8F:
ADDBYTE;
goto byte_penultimate_80_bf;
default:
FAILUTF8 (XBYTES_80_8F);
}
|