]> Dogcows Code - chaz/yoink/blob - src/Moof/yajl/src/yajl_parser.h
added missing licenses
[chaz/yoink] / src / Moof / yajl / src / yajl_parser.h
1 /*
2 * Copyright 2007-2009, Lloyd Hilaiel.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. Neither the name of Lloyd Hilaiel nor the names of its
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
21 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
22 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
24 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
25 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
28 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
29 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE.
31 */
32
33 #ifndef __YAJL_PARSER_H__
34 #define __YAJL_PARSER_H__
35
36 #include "yajl/yajl_parse.h"
37 #include "yajl_bytestack.h"
38 #include "yajl_buf.h"
39
40
41 typedef enum {
42 yajl_state_start = 0,
43 yajl_state_parse_complete,
44 yajl_state_parse_error,
45 yajl_state_lexical_error,
46 yajl_state_map_start,
47 yajl_state_map_sep,
48 yajl_state_map_need_val,
49 yajl_state_map_got_val,
50 yajl_state_map_need_key,
51 yajl_state_array_start,
52 yajl_state_array_got_val,
53 yajl_state_array_need_val
54 } yajl_state;
55
56 struct yajl_handle_t {
57 const yajl_callbacks * callbacks;
58 void * ctx;
59 yajl_lexer lexer;
60 const char * parseError;
61 unsigned int errorOffset;
62 /* temporary storage for decoded strings */
63 yajl_buf decodeBuf;
64 /* a stack of states. access with yajl_state_XXX routines */
65 yajl_bytestack stateStack;
66 /* memory allocation routines */
67 yajl_alloc_funcs alloc;
68 };
69
70 yajl_status
71 yajl_do_parse(yajl_handle handle, unsigned int * offset,
72 const unsigned char * jsonText, unsigned int jsonTextLen);
73
74 unsigned char *
75 yajl_render_error_string(yajl_handle hand, const unsigned char * jsonText,
76 unsigned int jsonTextLen, int verbose);
77
78
79 #endif
This page took 0.03232 seconds and 4 git commands to generate.