127 virtual std::unique_ptr<value>
clone ()
const = 0;
129 void dump (FILE *,
bool formatted)
const;
155 std::unique_ptr<value>
clone () const
final override;
161 void set (
const char *key,
value *v);
171 template <
typename JsonType>
172 void set (
const char *key, std::unique_ptr<JsonType> v)
174 set (key, v.release ());
179 void set_string (
const char *key,
const char *utf8_value);
181 void set_float (
const char *key,
double v);
184 void set_bool (
const char *key,
bool v);
211 std::unique_ptr<value>
clone () const
final override;
224 template <typename JsonType>
225 void append (std::unique_ptr<JsonType> v)
253 std::unique_ptr<value>
clone () const
final override;
270 std::unique_ptr<value>
clone () const
final override;
284 explicit string (
const char *utf8);
285 string (
const char *utf8,
size_t len);
290 std::unique_ptr<value>
clone () const
final override;
314 std::unique_ptr<value>
clone () const
final override;
424extern void assert_print_eq (
const location &loc,
427 const char *expected_json);
value ** end()
Definition json.h:234
enum kind get_kind() const final override
Definition json.h:209
void print(pretty_printer *pp, bool formatted) const final override
Definition json.cc:443
auto_vec< value * > m_elements
Definition json.h:241
void append_string(const char *utf8_value)
Definition json.cc:492
const value *const * end() const
Definition json.h:236
~array()
Definition json.cc:432
size_t size() const
Definition json.h:230
value ** begin()
Definition json.h:233
value * operator[](size_t i) const
Definition json.h:231
size_t length() const
Definition json.h:237
std::unique_ptr< value > clone() const final override
Definition json.cc:471
value * get(size_t idx) const
Definition json.h:238
const value *const * begin() const
Definition json.h:235
void append(value *v)
Definition json.cc:484
enum kind get_kind() const final override
Definition json.h:251
float_number(double value)
Definition json.h:249
void print(pretty_printer *pp, bool formatted) const final override
Definition json.cc:503
std::unique_ptr< value > clone() const final override
Definition json.cc:512
double get() const
Definition json.h:255
double m_value
Definition json.h:258
long m_value
Definition json.h:275
enum kind get_kind() const final override
Definition json.h:268
integer_number(long value)
Definition json.h:266
long get() const
Definition json.h:272
void print(pretty_printer *pp, bool formatted) const final override
Definition json.cc:522
std::unique_ptr< value > clone() const final override
Definition json.cc:531
void print(pretty_printer *pp, bool formatted) const final override
Definition json.cc:576
literal(bool value)
Definition json.h:310
enum kind m_kind
Definition json.h:317
literal(enum kind kind)
Definition json.h:307
std::unique_ptr< value > clone() const final override
Definition json.cc:596
enum kind get_kind() const final override
Definition json.h:312
hash_map< char *, value *, simple_hashmap_traits< nofree_string_hash, value * > > map_t
Definition json.h:195
void set(const char *key, value *v)
Definition json.cc:320
void set_string(const char *key, const char *utf8_value)
Definition json.cc:365
size_t get_num_keys() const
Definition json.h:188
void set_float(const char *key, double v)
Definition json.cc:383
enum kind get_kind() const final override
Definition json.h:153
auto_vec< const char * > m_keys
Definition json.h:199
void set_bool(const char *key, bool v)
Definition json.cc:392
map_t m_map
Definition json.h:196
object * dyn_cast_object() final override
Definition json.h:157
void set_integer(const char *key, long v)
Definition json.cc:374
value * get(const char *key) const
Definition json.cc:350
const char * get_key(size_t i) const
Definition json.h:189
void set(const char *key, std::unique_ptr< JsonType > v)
Definition json.h:172
static int compare(const json::object &obj_a, const json::object &obj_b)
Definition json.cc:400
bool is_empty() const
Definition json.h:159
std::unique_ptr< value > clone() const final override
Definition json.cc:293
~object()
Definition json.cc:242
void print(pretty_printer *pp, bool formatted) const final override
Definition json.cc:254
std::unique_ptr< object > clone_as_object() const
Definition json.cc:299
string(const char *utf8)
Definition json.cc:540
enum kind get_kind() const final override
Definition json.h:288
~string()
Definition json.h:286
const char * get_string() const
Definition json.h:293
size_t m_len
Definition json.h:298
void print(pretty_printer *pp, bool formatted) const final override
Definition json.cc:559
char * m_utf8
Definition json.h:297
std::unique_ptr< value > clone() const final override
Definition json.cc:566
size_t get_length() const
Definition json.h:294
string * dyn_cast_string() final override
Definition json.h:291
virtual string * dyn_cast_string()
Definition json.h:133
virtual enum kind get_kind() const =0
virtual std::unique_ptr< value > clone() const =0
virtual object * dyn_cast_object()
Definition json.h:132
static int compare(const json::value &val_a, const json::value &val_b)
Definition json.cc:163
virtual void print(pretty_printer *pp, bool formatted) const =0
void DEBUG_FUNCTION dump() const
Definition json.cc:143
const pointer::token & get_pointer_token() const
Definition json.h:137
pointer::token m_pointer_token
Definition json.h:139
virtual ~value()
Definition json.h:124
Definition pretty-print.h:241
void final(rtx_insn *first, FILE *file, int optimize_p)
Definition final.cc:2009
Definition json-parsing.h:27
@ JSON_ARRAY
Definition json.h:58
@ JSON_FALSE
Definition json.h:72
@ JSON_INTEGER
Definition json.h:61
@ JSON_NULL
Definition json.h:73
@ JSON_OBJECT
Definition json.h:55
@ JSON_TRUE
Definition json.h:71
@ JSON_FLOAT
Definition json.h:64
@ JSON_STRING
Definition json.h:67
Definition dump-context.h:31
i
Definition poly-int.h:776
static bool test(const U *p)
Definition is-a.h:211
union json::pointer::token::u m_data
json::value * m_parent
Definition json.h:108
token()
Definition json.cc:79
~token()
Definition json.cc:100
enum kind m_kind
Definition json.h:114
@ object_member
Definition json.h:90
@ array_index
Definition json.h:91
@ root_value
Definition json.h:89
token(token &&other)=delete
token & operator=(const token &other)=delete
token(const token &other)=delete
Definition hash-map-traits.h:33
#define DEBUG_FUNCTION
Definition system.h:1236
char * u_member
Definition json.h:111
size_t u_index
Definition json.h:112