![]() |
This is Unofficial EPICS BASE Doxygen Site
|
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <assert.h>
#include "yajl_parse.h"
#include "yajl_lex.h"
#include "yajl_parser.h"
#include "yajl_alloc.h"
Go to the source code of this file.
Functions | |
const char * | yajl_status_to_string (yajl_status stat) |
yajl_handle | yajl_alloc (const yajl_callbacks *callbacks, yajl_alloc_funcs *afs, void *ctx) |
int | yajl_config (yajl_handle h, yajl_option opt,...) |
void | yajl_free (yajl_handle handle) |
yajl_status | yajl_parse (yajl_handle hand, const unsigned char *jsonText, size_t jsonTextLen) |
yajl_status | yajl_complete_parse (yajl_handle hand) |
unsigned char * | yajl_get_error (yajl_handle hand, int verbose, const unsigned char *jsonText, size_t jsonTextLen) |
size_t | yajl_get_bytes_consumed (yajl_handle hand) |
void | yajl_free_error (yajl_handle hand, unsigned char *str) |
yajl_handle yajl_alloc | ( | const yajl_callbacks * | callbacks, |
yajl_alloc_funcs * | afs, | ||
void * | ctx | ||
) |
Allocate a parser handle
callbacks | A yajl callbacks structure specifying the functions to call when different JSON entities are encountered in the input text. May be NULL, which is only useful for validation. |
afs | memory allocation functions, may be NULL for to use C runtime library routines (malloc and friends) |
ctx | a context pointer that will be passed to callbacks. |
Definition at line 46 of file yajl.c.
yajl_status yajl_complete_parse | ( | yajl_handle | hand | ) |
Parse any remaining buffered json. Since yajl is a stream-based parser, without an explicit end of input, yajl sometimes can't decide if content at the end of the stream is valid or not. For example, if "1" has been fed in, yajl can't know whether another digit is next or some character that would terminate the integer token.
hand | - a handle to the json parser allocated with yajl_alloc() |
Definition at line 142 of file yajl.c.
int yajl_config | ( | yajl_handle | h, |
yajl_option | opt, | ||
... | |||
) |
Allow the modification of parser options subsequent to handle allocation (via yajl_alloc())
Definition at line 85 of file yajl.c.
void yajl_free | ( | yajl_handle | handle | ) |
void yajl_free_error | ( | yajl_handle | hand, |
unsigned char * | str | ||
) |
size_t yajl_get_bytes_consumed | ( | yajl_handle | hand | ) |
Get the amount of data consumed from the last chunk passed to YAJL.
In the case of a successful parse this can help you understand if the entire buffer was consumed (which will allow you to handle "junk at end of input").
In the event an error is encountered during parsing, this function affords the client a way to get the offset into the most recent chunk where the error occured. 0 will be returned if no error was encountered.
Definition at line 167 of file yajl.c.
unsigned char* yajl_get_error | ( | yajl_handle | hand, |
int | verbose, | ||
const unsigned char * | jsonText, | ||
size_t | jsonTextLength | ||
) |
Get an error string describing the state of the parse.
If verbose is non-zero, the message will include the JSON text where the error occured, along with an arrow pointing to the specific char.
Definition at line 160 of file yajl.c.
yajl_status yajl_parse | ( | yajl_handle | hand, |
const unsigned char * | jsonText, | ||
size_t | jsonTextLength | ||
) |
Parse some json!
hand | - a handle to the json parser allocated with yajl_alloc() |
jsonText | - a pointer to the UTF8 json text to be parsed |
jsonTextLength | - the length, in bytes, of input text |
Definition at line 121 of file yajl.c.
const char* yajl_status_to_string | ( | yajl_status | code | ) |
Attain a human readable, english, string for an error