MHEG  17.9.0
 All Data Structures Files Functions Variables Typedefs Enumerations Macros Pages
Macros | Functions
mh5json.c File Reference

string parsing utility functions described by the [JSON] schema More...

#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include "mh5debug.h"
#include "mh5json.h"
#include "mh5memory.h"

Macros

#define SPECIAL_CHARS   "{}[]:,\" \n\r\t"
 
#define OPEN_CURLY   '{'
 
#define CLSE_CURLY   '}'
 
#define OPEN_SQUARE   '['
 
#define CLSE_SQUARE   ']'
 
#define COMMA   ','
 
#define DBLE_QUOTE   '\"'
 
#define MIN_AFTER_TOKEN   6
 
#define NEXT_CHAR(p, l)   p++; l--;
 
#define SKIP_TO_CHAR(p, l, c)   do { NEXT_CHAR(p, l) } while (*p != c && l != 0)
 
#define SKIP_DATA(pc, lt)   while (lt != 0 && strchr(special_chars, *pc) == NULL) { NEXT_CHAR(pc, lt) }
 
#define SKIP_SPACES(pc, lt)   while (lt != 0 && (*pc == ' ' || *pc == '\n' || *pc == '\r' || *pc == '\t')) { NEXT_CHAR(pc, lt) }
 
#define TPARSE   TSTATE
 

Functions

E_JSON_STATE JSON_Parse (U8BIT *data, U32BIT size, const S_JSON_MEMBERS *members, void *usr)
 
void JSON_FreeAstring (S_STRING *p_str)
 
void JSON_FreeUintArray (U32BIT *p_uint)
 
void JSON_FreeStrArray (S_STRING **pp_str)
 

Detailed Description

string parsing utility functions described by the [JSON] schema

Date
15/07/2010
Author
Adam Sturtridge

Function Documentation

void JSON_FreeAstring ( S_STRING p_str)
Parameters
p_strpointer to allocated string (JST_CBF_ASTRING)
Returns
n/a
void JSON_FreeStrArray ( S_STRING **  pp_str)
Parameters
arraypointer to allocated array
typetype of array (JST_CBF_ARRAY_INT or JST_CBF_ARRAY_STR) or allocated string (JST_CBF_ASTRING)
Returns
n/a
void JSON_FreeUintArray ( U32BIT *  p_uint)
Parameters
p_uintpointer to allocated int array (JST_CBF_ARRAY_INT)
Returns
n/a
E_JSON_STATE JSON_Parse ( U8BIT *  data,
U32BIT  size,
const S_JSON_MEMBERS members,
void *  usr 
)
Parameters
datapointer to JSON formated data
sizenumber of bytes of JSON data
membersarray of [token, type, callback func]
Returns
JSON_ERROR, - encountered wrong data JSON_OKAY - success JSON_MAIN,JSON_NEXT - data ended while still processing