34 doubleFlag,
35 ccstrFlag,
36 ccstrlistFlag,
37 UnknownFlagType
38 };
39
40 static const char* flag_type_names[] = {
41 "bool",
42 "int",
43 "double",
44 "string",
45 "string list",
46 "unknown"
47 };
48
49 class DirectivesParser : public JSON {
50 public:
51 static bool has_file();
52 static bool parse_from_flag();
53 static bool parse_from_file(const char* filename, outputStream* st);
54 static bool parse_string(const char* string, outputStream* st);
55 bool install_directives();
56
57 private:
58 DirectivesParser(const char* text, outputStream* st);
59 ~DirectivesParser();
60
61 bool callback(JSON_TYPE t, JSON_VAL* v, uint level);
62 static bool parse_from_file_inner(const char* filename, outputStream* st);
63
64 // types of "keys". i.e recognized <key>:<value> pairs in our JSON syntax
65 typedef enum {
66 type_c1,
67 type_c2,
68 type_enable,
69 type_preset,
70 type_match,
71 type_inline,
72
73 // After here, there is no correlation between
74 // keytype and keys array
75 //type_strategy,
|
34 doubleFlag,
35 ccstrFlag,
36 ccstrlistFlag,
37 UnknownFlagType
38 };
39
40 static const char* flag_type_names[] = {
41 "bool",
42 "int",
43 "double",
44 "string",
45 "string list",
46 "unknown"
47 };
48
49 class DirectivesParser : public JSON {
50 public:
51 static bool has_file();
52 static bool parse_from_flag();
53 static bool parse_from_file(const char* filename, outputStream* st);
54 static int parse_string(const char* string, outputStream* st);
55 int install_directives();
56
57 private:
58 DirectivesParser(const char* text, outputStream* st);
59 ~DirectivesParser();
60
61 bool callback(JSON_TYPE t, JSON_VAL* v, uint level);
62 static bool parse_from_file_inner(const char* filename, outputStream* st);
63
64 // types of "keys". i.e recognized <key>:<value> pairs in our JSON syntax
65 typedef enum {
66 type_c1,
67 type_c2,
68 type_enable,
69 type_preset,
70 type_match,
71 type_inline,
72
73 // After here, there is no correlation between
74 // keytype and keys array
75 //type_strategy,
|