yajl-ruby 0.7.4 → 0.7.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of yajl-ruby might be problematic. Click here for more details.
- data/CHANGELOG.md +7 -0
- data/VERSION.yml +2 -2
- data/benchmark/encode.rb +5 -1
- data/benchmark/parse.rb +5 -1
- data/benchmark/parse_stream.rb +5 -1
- data/ext/api/yajl_common.h +10 -10
- data/ext/api/yajl_gen.h +26 -26
- data/ext/api/yajl_parse.h +35 -21
- data/ext/extconf.rb +1 -1
- data/ext/yajl.c +19 -12
- data/ext/yajl_alloc.c +7 -7
- data/ext/yajl_alloc.h +7 -7
- data/ext/yajl_buf.c +8 -8
- data/ext/yajl_buf.h +8 -8
- data/ext/yajl_bytestack.h +11 -11
- data/ext/yajl_encode.c +14 -14
- data/ext/yajl_encode.h +8 -8
- data/ext/yajl_ext.c +7 -3
- data/ext/yajl_ext.h +1 -1
- data/ext/yajl_gen.c +16 -18
- data/ext/yajl_lex.c +74 -74
- data/ext/yajl_lex.h +15 -15
- data/ext/yajl_parser.c +42 -39
- data/ext/yajl_parser.h +14 -11
- data/lib/yajl.rb +1 -1
- data/lib/yajl/bzip2/stream_reader.rb +13 -0
- data/lib/yajl/deflate/stream_reader.rb +10 -3
- data/lib/yajl/gzip/stream_reader.rb +13 -0
- data/spec/encoding/encoding_spec.rb +13 -2
- data/spec/spec_helper.rb +1 -0
- data/yajl-ruby.gemspec +2 -2
- metadata +3 -3
data/ext/yajl_lex.c
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
/*
|
2
|
-
* Copyright
|
3
|
-
*
|
2
|
+
* Copyright 2010, Lloyd Hilaiel.
|
3
|
+
*
|
4
4
|
* Redistribution and use in source and binary forms, with or without
|
5
5
|
* modification, are permitted provided that the following conditions are
|
6
6
|
* met:
|
7
|
-
*
|
7
|
+
*
|
8
8
|
* 1. Redistributions of source code must retain the above copyright
|
9
9
|
* notice, this list of conditions and the following disclaimer.
|
10
|
-
*
|
10
|
+
*
|
11
11
|
* 2. Redistributions in binary form must reproduce the above copyright
|
12
12
|
* notice, this list of conditions and the following disclaimer in
|
13
13
|
* the documentation and/or other materials provided with the
|
14
14
|
* distribution.
|
15
|
-
*
|
15
|
+
*
|
16
16
|
* 3. Neither the name of Lloyd Hilaiel nor the names of its
|
17
17
|
* contributors may be used to endorse or promote products derived
|
18
18
|
* from this software without specific prior written permission.
|
19
|
-
*
|
19
|
+
*
|
20
20
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
21
21
|
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
22
22
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
@@ -28,7 +28,7 @@
|
|
28
28
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
29
29
|
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
30
30
|
* POSSIBILITY OF SUCH DAMAGE.
|
31
|
-
*/
|
31
|
+
*/
|
32
32
|
|
33
33
|
#include "yajl_lex.h"
|
34
34
|
#include "yajl_buf.h"
|
@@ -40,7 +40,7 @@
|
|
40
40
|
|
41
41
|
#ifdef YAJL_LEXER_DEBUG
|
42
42
|
static const char *
|
43
|
-
tokToStr(yajl_tok tok)
|
43
|
+
tokToStr(yajl_tok tok)
|
44
44
|
{
|
45
45
|
switch (tok) {
|
46
46
|
case yajl_tok_bool: return "bool";
|
@@ -69,13 +69,13 @@ tokToStr(yajl_tok tok)
|
|
69
69
|
* the network or disk). This makes the lexer more complex. The
|
70
70
|
* responsibility of the lexer is to handle transparently the case where
|
71
71
|
* a chunk boundary falls in the middle of a token. This is
|
72
|
-
* accomplished is via a buffer and a character reading abstraction.
|
72
|
+
* accomplished is via a buffer and a character reading abstraction.
|
73
73
|
*
|
74
74
|
* Overview of implementation
|
75
75
|
*
|
76
76
|
* When we lex to end of input string before end of token is hit, we
|
77
77
|
* copy all of the input text composing the token into our lexBuf.
|
78
|
-
*
|
78
|
+
*
|
79
79
|
* Every time we read a character, we do so through the readChar function.
|
80
80
|
* readChar's responsibility is to handle pulling all chars from the buffer
|
81
81
|
* before pulling chars from input text
|
@@ -90,7 +90,7 @@ struct yajl_lexer_t {
|
|
90
90
|
yajl_lex_error error;
|
91
91
|
|
92
92
|
/* a input buffer to handle the case where a token is spread over
|
93
|
-
* multiple chunks */
|
93
|
+
* multiple chunks */
|
94
94
|
yajl_buf buf;
|
95
95
|
|
96
96
|
/* in the case where we have data in the lexBuf, bufOff holds
|
@@ -180,24 +180,24 @@ static const char charLookupTable[256] =
|
|
180
180
|
/*78*/ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
181
181
|
|
182
182
|
/* include these so we don't have to always check the range of the char */
|
183
|
-
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
184
|
-
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
185
|
-
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
186
|
-
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
187
|
-
|
188
|
-
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
189
|
-
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
190
|
-
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
191
|
-
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
192
|
-
|
193
|
-
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
194
|
-
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
195
|
-
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
196
|
-
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
197
|
-
|
198
|
-
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
199
|
-
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
200
|
-
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
183
|
+
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
184
|
+
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
185
|
+
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
186
|
+
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
187
|
+
|
188
|
+
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
189
|
+
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
190
|
+
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
191
|
+
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
192
|
+
|
193
|
+
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
194
|
+
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
195
|
+
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
196
|
+
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
197
|
+
|
198
|
+
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
199
|
+
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
200
|
+
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
|
201
201
|
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
|
202
202
|
};
|
203
203
|
|
@@ -209,7 +209,7 @@ static const char charLookupTable[256] =
|
|
209
209
|
* yajl_tok_eof - if end of input was hit before validation could
|
210
210
|
* complete
|
211
211
|
* yajl_tok_error - if invalid utf8 was encountered
|
212
|
-
*
|
212
|
+
*
|
213
213
|
* NOTE: on error the offset will point to the first char of the
|
214
214
|
* invalid utf8 */
|
215
215
|
#define UTF8_CHECK_EOF if (*offset >= jsonTextLen) { return yajl_tok_eof; }
|
@@ -223,7 +223,7 @@ yajl_lex_utf8_char(yajl_lexer lexer, const unsigned char * jsonText,
|
|
223
223
|
/* single byte */
|
224
224
|
return yajl_tok_string;
|
225
225
|
} else if ((curChar >> 5) == 0x6) {
|
226
|
-
/* two byte */
|
226
|
+
/* two byte */
|
227
227
|
UTF8_CHECK_EOF;
|
228
228
|
curChar = readChar(lexer, jsonText, offset);
|
229
229
|
if ((curChar >> 6) == 0x2) return yajl_tok_string;
|
@@ -249,7 +249,7 @@ yajl_lex_utf8_char(yajl_lexer lexer, const unsigned char * jsonText,
|
|
249
249
|
if ((curChar >> 6) == 0x2) return yajl_tok_string;
|
250
250
|
}
|
251
251
|
}
|
252
|
-
}
|
252
|
+
}
|
253
253
|
|
254
254
|
return yajl_tok_error;
|
255
255
|
}
|
@@ -300,8 +300,8 @@ yajl_lex_string(yajl_lexer lexer, const unsigned char * jsonText,
|
|
300
300
|
unsigned int i = 0;
|
301
301
|
|
302
302
|
for (i=0;i<4;i++) {
|
303
|
-
STR_CHECK_EOF;
|
304
|
-
curChar = readChar(lexer, jsonText, offset);
|
303
|
+
STR_CHECK_EOF;
|
304
|
+
curChar = readChar(lexer, jsonText, offset);
|
305
305
|
if (!(charLookupTable[curChar] & VHC)) {
|
306
306
|
/* back up to offending char */
|
307
307
|
unreadChar(lexer, offset);
|
@@ -313,8 +313,8 @@ yajl_lex_string(yajl_lexer lexer, const unsigned char * jsonText,
|
|
313
313
|
/* back up to offending char */
|
314
314
|
unreadChar(lexer, offset);
|
315
315
|
lexer->error = yajl_lex_string_invalid_escaped_char;
|
316
|
-
goto finish_string_lex;
|
317
|
-
}
|
316
|
+
goto finish_string_lex;
|
317
|
+
}
|
318
318
|
}
|
319
319
|
/* when not validating UTF8 it's a simple table lookup to determine
|
320
320
|
* if the present character is invalid */
|
@@ -322,29 +322,29 @@ yajl_lex_string(yajl_lexer lexer, const unsigned char * jsonText,
|
|
322
322
|
/* back up to offending char */
|
323
323
|
unreadChar(lexer, offset);
|
324
324
|
lexer->error = yajl_lex_string_invalid_json_char;
|
325
|
-
goto finish_string_lex;
|
325
|
+
goto finish_string_lex;
|
326
326
|
}
|
327
327
|
/* when in validate UTF8 mode we need to do some extra work */
|
328
328
|
else if (lexer->validateUTF8) {
|
329
329
|
yajl_tok t = yajl_lex_utf8_char(lexer, jsonText, jsonTextLen,
|
330
330
|
offset, curChar);
|
331
|
-
|
331
|
+
|
332
332
|
if (t == yajl_tok_eof) {
|
333
333
|
tok = yajl_tok_eof;
|
334
334
|
goto finish_string_lex;
|
335
335
|
} else if (t == yajl_tok_error) {
|
336
336
|
lexer->error = yajl_lex_string_invalid_utf8;
|
337
337
|
goto finish_string_lex;
|
338
|
-
}
|
338
|
+
}
|
339
339
|
}
|
340
|
-
/* accept it, and move on */
|
340
|
+
/* accept it, and move on */
|
341
341
|
}
|
342
342
|
finish_string_lex:
|
343
343
|
/* tell our buddy, the parser, wether he needs to process this string
|
344
344
|
* again */
|
345
345
|
if (hasEscapes && tok == yajl_tok_string) {
|
346
346
|
tok = yajl_tok_string_with_escapes;
|
347
|
-
}
|
347
|
+
}
|
348
348
|
|
349
349
|
return tok;
|
350
350
|
}
|
@@ -363,23 +363,23 @@ yajl_lex_number(yajl_lexer lexer, const unsigned char * jsonText,
|
|
363
363
|
|
364
364
|
yajl_tok tok = yajl_tok_integer;
|
365
365
|
|
366
|
-
RETURN_IF_EOF;
|
366
|
+
RETURN_IF_EOF;
|
367
367
|
c = readChar(lexer, jsonText, offset);
|
368
368
|
|
369
369
|
/* optional leading minus */
|
370
370
|
if (c == '-') {
|
371
|
-
RETURN_IF_EOF;
|
372
|
-
c = readChar(lexer, jsonText, offset);
|
371
|
+
RETURN_IF_EOF;
|
372
|
+
c = readChar(lexer, jsonText, offset);
|
373
373
|
}
|
374
374
|
|
375
375
|
/* a single zero, or a series of integers */
|
376
376
|
if (c == '0') {
|
377
|
-
RETURN_IF_EOF;
|
378
|
-
c = readChar(lexer, jsonText, offset);
|
377
|
+
RETURN_IF_EOF;
|
378
|
+
c = readChar(lexer, jsonText, offset);
|
379
379
|
} else if (c >= '1' && c <= '9') {
|
380
380
|
do {
|
381
|
-
RETURN_IF_EOF;
|
382
|
-
c = readChar(lexer, jsonText, offset);
|
381
|
+
RETURN_IF_EOF;
|
382
|
+
c = readChar(lexer, jsonText, offset);
|
383
383
|
} while (c >= '0' && c <= '9');
|
384
384
|
} else {
|
385
385
|
unreadChar(lexer, offset);
|
@@ -390,15 +390,15 @@ yajl_lex_number(yajl_lexer lexer, const unsigned char * jsonText,
|
|
390
390
|
/* optional fraction (indicates this is floating point) */
|
391
391
|
if (c == '.') {
|
392
392
|
int numRd = 0;
|
393
|
-
|
393
|
+
|
394
394
|
RETURN_IF_EOF;
|
395
|
-
c = readChar(lexer, jsonText, offset);
|
395
|
+
c = readChar(lexer, jsonText, offset);
|
396
396
|
|
397
397
|
while (c >= '0' && c <= '9') {
|
398
398
|
numRd++;
|
399
399
|
RETURN_IF_EOF;
|
400
|
-
c = readChar(lexer, jsonText, offset);
|
401
|
-
}
|
400
|
+
c = readChar(lexer, jsonText, offset);
|
401
|
+
}
|
402
402
|
|
403
403
|
if (!numRd) {
|
404
404
|
unreadChar(lexer, offset);
|
@@ -411,18 +411,18 @@ yajl_lex_number(yajl_lexer lexer, const unsigned char * jsonText,
|
|
411
411
|
/* optional exponent (indicates this is floating point) */
|
412
412
|
if (c == 'e' || c == 'E') {
|
413
413
|
RETURN_IF_EOF;
|
414
|
-
c = readChar(lexer, jsonText, offset);
|
414
|
+
c = readChar(lexer, jsonText, offset);
|
415
415
|
|
416
416
|
/* optional sign */
|
417
417
|
if (c == '+' || c == '-') {
|
418
418
|
RETURN_IF_EOF;
|
419
|
-
c = readChar(lexer, jsonText, offset);
|
419
|
+
c = readChar(lexer, jsonText, offset);
|
420
420
|
}
|
421
421
|
|
422
422
|
if (c >= '0' && c <= '9') {
|
423
423
|
do {
|
424
424
|
RETURN_IF_EOF;
|
425
|
-
c = readChar(lexer, jsonText, offset);
|
425
|
+
c = readChar(lexer, jsonText, offset);
|
426
426
|
} while (c >= '0' && c <= '9');
|
427
427
|
} else {
|
428
428
|
unreadChar(lexer, offset);
|
@@ -431,10 +431,10 @@ yajl_lex_number(yajl_lexer lexer, const unsigned char * jsonText,
|
|
431
431
|
}
|
432
432
|
tok = yajl_tok_double;
|
433
433
|
}
|
434
|
-
|
434
|
+
|
435
435
|
/* we always go "one too far" */
|
436
436
|
unreadChar(lexer, offset);
|
437
|
-
|
437
|
+
|
438
438
|
return tok;
|
439
439
|
}
|
440
440
|
|
@@ -446,24 +446,24 @@ yajl_lex_comment(yajl_lexer lexer, const unsigned char * jsonText,
|
|
446
446
|
|
447
447
|
yajl_tok tok = yajl_tok_comment;
|
448
448
|
|
449
|
-
RETURN_IF_EOF;
|
449
|
+
RETURN_IF_EOF;
|
450
450
|
c = readChar(lexer, jsonText, offset);
|
451
451
|
|
452
452
|
/* either slash or star expected */
|
453
453
|
if (c == '/') {
|
454
454
|
/* now we throw away until end of line */
|
455
455
|
do {
|
456
|
-
RETURN_IF_EOF;
|
457
|
-
c = readChar(lexer, jsonText, offset);
|
456
|
+
RETURN_IF_EOF;
|
457
|
+
c = readChar(lexer, jsonText, offset);
|
458
458
|
} while (c != '\n');
|
459
459
|
} else if (c == '*') {
|
460
|
-
/* now we throw away until end of comment */
|
460
|
+
/* now we throw away until end of comment */
|
461
461
|
for (;;) {
|
462
|
-
RETURN_IF_EOF;
|
463
|
-
c = readChar(lexer, jsonText, offset);
|
462
|
+
RETURN_IF_EOF;
|
463
|
+
c = readChar(lexer, jsonText, offset);
|
464
464
|
if (c == '*') {
|
465
|
-
RETURN_IF_EOF;
|
466
|
-
c = readChar(lexer, jsonText, offset);
|
465
|
+
RETURN_IF_EOF;
|
466
|
+
c = readChar(lexer, jsonText, offset);
|
467
467
|
if (c == '/') {
|
468
468
|
break;
|
469
469
|
} else {
|
@@ -475,7 +475,7 @@ yajl_lex_comment(yajl_lexer lexer, const unsigned char * jsonText,
|
|
475
475
|
lexer->error = yajl_lex_invalid_char;
|
476
476
|
tok = yajl_tok_error;
|
477
477
|
}
|
478
|
-
|
478
|
+
|
479
479
|
return tok;
|
480
480
|
}
|
481
481
|
|
@@ -583,7 +583,7 @@ yajl_lex_lex(yajl_lexer lexer, const unsigned char * jsonText,
|
|
583
583
|
goto lexed;
|
584
584
|
}
|
585
585
|
case '-':
|
586
|
-
case '0': case '1': case '2': case '3': case '4':
|
586
|
+
case '0': case '1': case '2': case '3': case '4':
|
587
587
|
case '5': case '6': case '7': case '8': case '9': {
|
588
588
|
/* integer parsing wants to start from the beginning */
|
589
589
|
unreadChar(lexer, offset);
|
@@ -610,11 +610,11 @@ yajl_lex_lex(yajl_lexer lexer, const unsigned char * jsonText,
|
|
610
610
|
jsonTextLen, offset);
|
611
611
|
if (tok == yajl_tok_comment) {
|
612
612
|
/* "error" is silly, but that's the initial
|
613
|
-
* state of tok. guilty until proven innocent. */
|
613
|
+
* state of tok. guilty until proven innocent. */
|
614
614
|
tok = yajl_tok_error;
|
615
615
|
yajl_buf_clear(lexer->buf);
|
616
616
|
lexer->bufInUse = 0;
|
617
|
-
startOffset = *offset;
|
617
|
+
startOffset = *offset;
|
618
618
|
break;
|
619
619
|
}
|
620
620
|
/* hit error or eof, bail */
|
@@ -635,7 +635,7 @@ yajl_lex_lex(yajl_lexer lexer, const unsigned char * jsonText,
|
|
635
635
|
lexer->bufInUse = 1;
|
636
636
|
yajl_buf_append(lexer->buf, jsonText + startOffset, *offset - startOffset);
|
637
637
|
lexer->bufOff = 0;
|
638
|
-
|
638
|
+
|
639
639
|
if (tok != yajl_tok_eof) {
|
640
640
|
*outBuf = yajl_buf_data(lexer->buf);
|
641
641
|
*outLen = yajl_buf_len(lexer->buf);
|
@@ -651,7 +651,7 @@ yajl_lex_lex(yajl_lexer lexer, const unsigned char * jsonText,
|
|
651
651
|
{
|
652
652
|
assert(*outLen >= 2);
|
653
653
|
(*outBuf)++;
|
654
|
-
*outLen -= 2;
|
654
|
+
*outLen -= 2;
|
655
655
|
}
|
656
656
|
|
657
657
|
|
@@ -682,7 +682,7 @@ yajl_lex_error_to_string(yajl_lex_error error)
|
|
682
682
|
case yajl_lex_string_invalid_escaped_char:
|
683
683
|
return "inside a string, '\\' occurs before a character "
|
684
684
|
"which it may not.";
|
685
|
-
case yajl_lex_string_invalid_json_char:
|
685
|
+
case yajl_lex_string_invalid_json_char:
|
686
686
|
return "invalid character inside string.";
|
687
687
|
case yajl_lex_string_invalid_hex_char:
|
688
688
|
return "invalid (non-hex) character occurs after '\\u' inside "
|
@@ -735,13 +735,13 @@ yajl_tok yajl_lex_peek(yajl_lexer lexer, const unsigned char * jsonText,
|
|
735
735
|
unsigned int bufOff = lexer->bufOff;
|
736
736
|
unsigned int bufInUse = lexer->bufInUse;
|
737
737
|
yajl_tok tok;
|
738
|
-
|
738
|
+
|
739
739
|
tok = yajl_lex_lex(lexer, jsonText, jsonTextLen, &offset,
|
740
740
|
&outBuf, &outLen);
|
741
741
|
|
742
742
|
lexer->bufOff = bufOff;
|
743
743
|
lexer->bufInUse = bufInUse;
|
744
744
|
yajl_buf_truncate(lexer->buf, bufLen);
|
745
|
-
|
745
|
+
|
746
746
|
return tok;
|
747
747
|
}
|
data/ext/yajl_lex.h
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
/*
|
2
|
-
* Copyright
|
3
|
-
*
|
2
|
+
* Copyright 2010, Lloyd Hilaiel.
|
3
|
+
*
|
4
4
|
* Redistribution and use in source and binary forms, with or without
|
5
5
|
* modification, are permitted provided that the following conditions are
|
6
6
|
* met:
|
7
|
-
*
|
7
|
+
*
|
8
8
|
* 1. Redistributions of source code must retain the above copyright
|
9
9
|
* notice, this list of conditions and the following disclaimer.
|
10
|
-
*
|
10
|
+
*
|
11
11
|
* 2. Redistributions in binary form must reproduce the above copyright
|
12
12
|
* notice, this list of conditions and the following disclaimer in
|
13
13
|
* the documentation and/or other materials provided with the
|
14
14
|
* distribution.
|
15
|
-
*
|
15
|
+
*
|
16
16
|
* 3. Neither the name of Lloyd Hilaiel nor the names of its
|
17
17
|
* contributors may be used to endorse or promote products derived
|
18
18
|
* from this software without specific prior written permission.
|
19
|
-
*
|
19
|
+
*
|
20
20
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
21
21
|
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
22
22
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
@@ -28,7 +28,7 @@
|
|
28
28
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
29
29
|
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
30
30
|
* POSSIBILITY OF SUCH DAMAGE.
|
31
|
-
*/
|
31
|
+
*/
|
32
32
|
|
33
33
|
#ifndef __YAJL_LEX_H__
|
34
34
|
#define __YAJL_LEX_H__
|
@@ -36,21 +36,21 @@
|
|
36
36
|
#include "api/yajl_common.h"
|
37
37
|
|
38
38
|
typedef enum {
|
39
|
-
yajl_tok_bool,
|
39
|
+
yajl_tok_bool,
|
40
40
|
yajl_tok_colon,
|
41
|
-
yajl_tok_comma,
|
41
|
+
yajl_tok_comma,
|
42
42
|
yajl_tok_eof,
|
43
43
|
yajl_tok_error,
|
44
|
-
yajl_tok_left_brace,
|
44
|
+
yajl_tok_left_brace,
|
45
45
|
yajl_tok_left_bracket,
|
46
|
-
yajl_tok_null,
|
47
|
-
yajl_tok_right_brace,
|
46
|
+
yajl_tok_null,
|
47
|
+
yajl_tok_right_brace,
|
48
48
|
yajl_tok_right_bracket,
|
49
49
|
|
50
50
|
/* we differentiate between integers and doubles to allow the
|
51
51
|
* parser to interpret the number without re-scanning */
|
52
|
-
yajl_tok_integer,
|
53
|
-
yajl_tok_double,
|
52
|
+
yajl_tok_integer,
|
53
|
+
yajl_tok_double,
|
54
54
|
|
55
55
|
/* we differentiate between strings which require further processing,
|
56
56
|
* and strings that do not */
|
@@ -83,7 +83,7 @@ n * error messages.
|
|
83
83
|
*
|
84
84
|
* When you pass the next chunk of data, context should be reinitialized
|
85
85
|
* to zero.
|
86
|
-
*
|
86
|
+
*
|
87
87
|
* Finally, the output buffer is usually just a pointer into the jsonText,
|
88
88
|
* however in cases where the entity being lexed spans multiple chunks,
|
89
89
|
* the lexer will buffer the entity and the data returned will be
|