INGOR
Loading...
Searching...
No Matches
ytJSON.h
1/*
2 util/ytJSON.{h,c} : JASON Parser
3 Copyright (C) 2018, Yoshinori Tamada <tamada A T ytlab.jp>
4 All rights reserved.
5
6 See LICENSE.txt for details of the licensing agreement.
7*/
8#ifndef __YTLIB_JSON_H
9#define __YTLIB_JSON_H
10
11#include "ytKeyValues.h"
12
13#if DOXY
16#define ytJSON_OPT_HYPHEN_BREAK
17#else
18#define ytJSON_OPT_HYPHEN_BREAK 0x00000001
19#endif
20
21#if DOXY
24#define ytJSON_OPT_FORMAT
25#else
26#define ytJSON_OPT_FORMAT 0x00000001
27#endif
28
29#define ytJSON_FALSE 0
30#define ytJSON_TRUE 1
31
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);
36
37/* Simple Print API **********************************************************/
38
39#ifndef DOXY
40typedef struct ytJSON_SP_t {
41 FILE * fp;
42 ytIntArray * state;
43 ytIntArray * nums;
44 int num;
45 int readable; /* Whether outputs human-readably or not. */
46} ytJSON_SP;
47#endif
48ytJSON_SP * ytJSON_SP_new(FILE * fp, int readable);
49void ytJSON_SP_delete(ytJSON_SP * work);
50
51void ytJSON_SP_beginObject(ytJSON_SP * work);
52void ytJSON_SP_endObject(ytJSON_SP * work);
53
54void ytJSON_SP_beginArray(ytJSON_SP * work);
55void ytJSON_SP_endArray(ytJSON_SP * work);
56
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);
66
67int ytJSON_test(int argc, char * argv[]);
68void ytJSON_debug(int argc, char * argv[]);
69
70#endif /* __YTLIB_JSON_H */
Expandable array.
Expandable array.
The basis class.
Expandable array.