11#include "ytKeyValues.h" 
   16#define ytJSON_OPT_HYPHEN_BREAK 
   18#define ytJSON_OPT_HYPHEN_BREAK 0x00000001 
   24#define ytJSON_OPT_FORMAT 
   26#define ytJSON_OPT_FORMAT 0x00000001 
   32ytObject * ytJSON_parseStr(
const char * str);
 
   33ytObject * ytJSON_parse(FILE * fp, 
int opt);
 
   34void ytJSON_print(FILE * fp, 
const ytObject * obj, 
int opt);
 
   35void ytJSON_printDouble(FILE * fp, 
double v);
 
   40typedef struct ytJSON_SP_t {
 
   48ytJSON_SP * ytJSON_SP_new(FILE * fp, 
int readable);
 
   49void ytJSON_SP_delete(ytJSON_SP * work);
 
   51void ytJSON_SP_beginObject(ytJSON_SP * work);
 
   52void ytJSON_SP_endObject(ytJSON_SP * work);
 
   54void ytJSON_SP_beginArray(ytJSON_SP * work);
 
   55void ytJSON_SP_endArray(ytJSON_SP * work);
 
   57void ytJSON_SP_putStr(ytJSON_SP * work, 
const char * key, 
const char * value);
 
   58void ytJSON_SP_putInt(ytJSON_SP * work, 
const char * key, 
int value);
 
   59void ytJSON_SP_putDouble(ytJSON_SP * work, 
const char * name, 
double value);
 
   60void ytJSON_SP_putBool(ytJSON_SP * work, 
const char * key, 
int value);
 
   61void ytJSON_SP_putObject(ytJSON_SP * work, 
const char * key);
 
   62void ytJSON_SP_putArray(ytJSON_SP * work, 
const char * key);
 
   63void ytJSON_SP_putIntArray(ytJSON_SP * work, 
const char * name, 
const ytIntArray * value);
 
   64void ytJSON_SP_putDoubleArray(ytJSON_SP * work, 
const char * name, 
const ytDoubleArray * value);
 
   65void ytJSON_SP_putStrArray(ytJSON_SP * work, 
const char * name, 
const ytStrArray * value);
 
   67int ytJSON_test(
int argc, 
char * argv[]);
 
   68void ytJSON_debug(
int argc, 
char * argv[]);