@@ -14,9 +14,10 @@ See the License for the specific language governing permissions and
14
14
limitations under the License.
15
15
*/
16
16
17
- #include " lib/json.h"
18
17
#include " JsonObjects.h"
18
+
19
19
#include " helpers.h"
20
+ #include " lib/json.h"
20
21
21
22
namespace BMV2 {
22
23
@@ -51,8 +52,7 @@ JsonObjects::JsonObjects() {
51
52
field_aliases = insert_array_field (toplevel, " field_aliases" );
52
53
}
53
54
54
- Util::JsonArray*
55
- JsonObjects::get_field_list_contents (unsigned id) const {
55
+ Util::JsonArray* JsonObjects::get_field_list_contents (unsigned id) const {
56
56
for (auto e : *field_lists) {
57
57
auto obj = e->to <Util::JsonObject>();
58
58
auto val = obj->get (" id" )->to <Util::JsonValue>();
@@ -63,8 +63,7 @@ JsonObjects::get_field_list_contents(unsigned id) const {
63
63
return nullptr ;
64
64
}
65
65
66
- Util::JsonObject*
67
- JsonObjects::find_object_by_name (Util::JsonArray* array, const cstring& name) {
66
+ Util::JsonObject* JsonObjects::find_object_by_name (Util::JsonArray* array, const cstring& name) {
68
67
for (auto e : *array) {
69
68
auto obj = e->to <Util::JsonObject>();
70
69
auto val = obj->get (" name" )->to <Util::JsonValue>();
@@ -76,34 +75,27 @@ JsonObjects::find_object_by_name(Util::JsonArray* array, const cstring& name) {
76
75
}
77
76
78
77
// / Insert a json array to a parent object under key 'name'.
79
- Util::JsonArray*
80
- JsonObjects::insert_array_field (Util::JsonObject* parent, cstring name) {
78
+ Util::JsonArray* JsonObjects::insert_array_field (Util::JsonObject* parent, cstring name) {
81
79
auto result = new Util::JsonArray ();
82
80
parent->emplace (name, result);
83
81
return result;
84
82
}
85
83
86
84
// / Append a json array to a parent json array.
87
- Util::JsonArray*
88
- JsonObjects::append_array (Util::JsonArray* parent) {
85
+ Util::JsonArray* JsonObjects::append_array (Util::JsonArray* parent) {
89
86
auto result = new Util::JsonArray ();
90
87
parent->append (result);
91
88
return result;
92
89
}
93
90
94
91
// / Insert a json array named 'parameters' in a parent json object.
95
- Util::JsonArray*
96
- JsonObjects::create_parameters (Util::JsonObject* object) {
92
+ Util::JsonArray* JsonObjects::create_parameters (Util::JsonObject* object) {
97
93
return insert_array_field (object, " parameters" );
98
94
}
99
95
100
- void
101
- JsonObjects::add_program_info (const cstring& name) {
102
- toplevel->emplace (" program" , name);
103
- }
96
+ void JsonObjects::add_program_info (const cstring& name) { toplevel->emplace (" program" , name); }
104
97
105
- void
106
- JsonObjects::add_meta_info () {
98
+ void JsonObjects::add_meta_info () {
107
99
static constexpr int version_major = JSON_MAJOR_VERSION;
108
100
static constexpr int version_minor = JSON_MINOR_VERSION;
109
101
auto version = insert_array_field (meta, " version" );
@@ -121,8 +113,8 @@ JsonObjects::add_meta_info() {
121
113
* if 0 header does not contain varbit fields
122
114
* @param fields a JsonArray for the fields in the header
123
115
*/
124
- unsigned
125
- JsonObjects::add_header_type ( const cstring& name, Util::JsonArray*& fields, unsigned max_length) {
116
+ unsigned JsonObjects::add_header_type ( const cstring& name, Util::JsonArray*& fields,
117
+ unsigned max_length) {
126
118
std::string sname (name, name.size ());
127
119
auto header_type_id_it = header_type_id.find (sname);
128
120
if (header_type_id_it != header_type_id.end ()) {
@@ -139,18 +131,15 @@ JsonObjects::add_header_type(const cstring& name, Util::JsonArray*& fields, unsi
139
131
auto temp = new Util::JsonArray ();
140
132
header_type->emplace (" fields" , temp);
141
133
}
142
- if (max_length > 0 )
143
- header_type->emplace (" max_length" , max_length);
134
+ if (max_length > 0 ) header_type->emplace (" max_length" , max_length);
144
135
header_types->append (header_type);
145
136
return id;
146
137
}
147
138
148
- unsigned
149
- JsonObjects::add_union_type (const cstring& name, Util::JsonArray*& fields) {
139
+ unsigned JsonObjects::add_union_type (const cstring& name, Util::JsonArray*& fields) {
150
140
std::string sname (name, name.size ());
151
141
auto it = union_type_id.find (sname);
152
- if (it != union_type_id.end ())
153
- return it->second ;
142
+ if (it != union_type_id.end ()) return it->second ;
154
143
auto union_type = new Util::JsonObject ();
155
144
unsigned id = BMV2::nextId (" header_union_types" );
156
145
union_type_id[sname] = id;
@@ -166,10 +155,8 @@ JsonObjects::add_union_type(const cstring& name, Util::JsonArray*& fields) {
166
155
return id;
167
156
}
168
157
169
-
170
158
// / Create a header type with empty field list.
171
- unsigned
172
- JsonObjects::add_header_type (const cstring& name) {
159
+ unsigned JsonObjects::add_header_type (const cstring& name) {
173
160
std::string sname (name, name.size ());
174
161
auto header_type_id_it = header_type_id.find (sname);
175
162
if (header_type_id_it != header_type_id.end ()) {
@@ -188,8 +175,7 @@ JsonObjects::add_header_type(const cstring& name) {
188
175
189
176
// / Create a set of fields to an existing header type.
190
177
// / The header type is decribed by the name.
191
- void
192
- JsonObjects::add_header_field (const cstring& name, Util::JsonArray*& field) {
178
+ void JsonObjects::add_header_field (const cstring& name, Util::JsonArray*& field) {
193
179
CHECK_NULL (field);
194
180
Util::JsonObject* headerType = find_object_by_name (header_types, name);
195
181
Util::JsonArray* fields = headerType->get (" fields" )->to <Util::JsonArray>();
@@ -198,8 +184,7 @@ JsonObjects::add_header_field(const cstring& name, Util::JsonArray*& field) {
198
184
}
199
185
200
186
// / Create a header instance in json.
201
- unsigned
202
- JsonObjects::add_header (const cstring& type, const cstring& name) {
187
+ unsigned JsonObjects::add_header (const cstring& type, const cstring& name) {
203
188
auto header = new Util::JsonObject ();
204
189
unsigned id = BMV2::nextId (" headers" );
205
190
LOG1 (" add header id " << id);
@@ -213,8 +198,8 @@ JsonObjects::add_header(const cstring& type, const cstring& name) {
213
198
}
214
199
215
200
// / Create a header_union instance in json.
216
- unsigned
217
- JsonObjects::add_union ( const cstring& type, Util::JsonArray*& headers, const cstring& name) {
201
+ unsigned JsonObjects::add_union ( const cstring& type, Util::JsonArray*& headers,
202
+ const cstring& name) {
218
203
auto u = new Util::JsonObject ();
219
204
unsigned id = BMV2::nextId (" header_unions" );
220
205
LOG3 (" add header_union id " << id);
@@ -227,8 +212,7 @@ JsonObjects::add_union(const cstring& type, Util::JsonArray*& headers, const cst
227
212
return id;
228
213
}
229
214
230
- unsigned
231
- JsonObjects::add_metadata (const cstring& type, const cstring& name) {
215
+ unsigned JsonObjects::add_metadata (const cstring& type, const cstring& name) {
232
216
auto header = new Util::JsonObject ();
233
217
unsigned id = BMV2::nextId (" headers" );
234
218
LOG3 (" add metadata header id " << id);
@@ -241,9 +225,8 @@ JsonObjects::add_metadata(const cstring& type, const cstring& name) {
241
225
return id;
242
226
}
243
227
244
- void
245
- JsonObjects::add_header_stack (const cstring& type, const cstring& name,
246
- const unsigned size, const std::vector<unsigned >& ids) {
228
+ void JsonObjects::add_header_stack (const cstring& type, const cstring& name, const unsigned size,
229
+ const std::vector<unsigned >& ids) {
247
230
auto stack = new Util::JsonObject ();
248
231
unsigned id = BMV2::nextId (" stack" );
249
232
stack->emplace (" name" , name);
@@ -258,9 +241,8 @@ JsonObjects::add_header_stack(const cstring& type, const cstring& name,
258
241
header_stacks->append (stack);
259
242
}
260
243
261
- void
262
- JsonObjects::add_header_union_stack (const cstring& type, const cstring& name,
263
- const unsigned size, const std::vector<unsigned >& ids) {
244
+ void JsonObjects::add_header_union_stack (const cstring& type, const cstring& name,
245
+ const unsigned size, const std::vector<unsigned >& ids) {
264
246
auto stack = new Util::JsonObject ();
265
247
unsigned id = BMV2::nextId (" union_stack" );
266
248
stack->emplace (" name" , name);
@@ -276,18 +258,16 @@ JsonObjects::add_header_union_stack(const cstring& type, const cstring& name,
276
258
}
277
259
278
260
// / Add an error to json.
279
- void
280
- JsonObjects::add_error (const cstring& name, const unsigned type) {
261
+ void JsonObjects::add_error (const cstring& name, const unsigned type) {
281
262
auto arr = append_array (errors);
282
263
arr->append (name);
283
264
arr->append (type);
284
265
}
285
266
286
267
// / Add a single enum entry to json.
287
268
// / A enum entry is identified with { enum_name, entry_name, entry_value }
288
- void
289
- JsonObjects::add_enum (const cstring& enum_name, const cstring& entry_name,
290
- const unsigned entry_value) {
269
+ void JsonObjects::add_enum (const cstring& enum_name, const cstring& entry_name,
270
+ const unsigned entry_value) {
291
271
// look up enum in json by name
292
272
Util::JsonObject* enum_json = find_object_by_name (enums, enum_name);
293
273
if (enum_json == nullptr ) { // first entry in a new enum
@@ -310,8 +290,7 @@ JsonObjects::add_enum(const cstring& enum_name, const cstring& entry_name,
310
290
}
311
291
}
312
292
313
- unsigned
314
- JsonObjects::add_parser (const cstring& name) {
293
+ unsigned JsonObjects::add_parser (const cstring& name) {
315
294
auto parser = new Util::JsonObject ();
316
295
unsigned id = BMV2::nextId (" parser" );
317
296
parser->emplace (" name" , name);
@@ -327,10 +306,8 @@ JsonObjects::add_parser(const cstring& name) {
327
306
328
307
// / insert parser state into a parser identified by parser_id
329
308
// / return the id of the parser state
330
- unsigned
331
- JsonObjects::add_parser_state (const unsigned parser_id, const cstring& state_name) {
332
- if (map_parser.find (parser_id) == map_parser.end ())
333
- BUG (" parser %1% not found." , parser_id);
309
+ unsigned JsonObjects::add_parser_state (const unsigned parser_id, const cstring& state_name) {
310
+ if (map_parser.find (parser_id) == map_parser.end ()) BUG (" parser %1% not found." , parser_id);
334
311
auto parser = map_parser[parser_id];
335
312
auto states = parser->get (" parse_states" )->to <Util::JsonArray>();
336
313
auto state = new Util::JsonObject ();
@@ -349,8 +326,7 @@ JsonObjects::add_parser_state(const unsigned parser_id, const cstring& state_nam
349
326
return state_id;
350
327
}
351
328
352
- void
353
- JsonObjects::add_parser_transition (const unsigned state_id, Util::IJson* transition) {
329
+ void JsonObjects::add_parser_transition (const unsigned state_id, Util::IJson* transition) {
354
330
if (map_parser_state.find (state_id) == map_parser_state.end ())
355
331
BUG (" parser state %1% not found." , state_id);
356
332
auto state = map_parser_state[state_id];
@@ -361,8 +337,7 @@ JsonObjects::add_parser_transition(const unsigned state_id, Util::IJson* transit
361
337
transitions->append (trans);
362
338
}
363
339
364
- void
365
- JsonObjects::add_parser_op (const unsigned state_id, Util::IJson* op) {
340
+ void JsonObjects::add_parser_op (const unsigned state_id, Util::IJson* op) {
366
341
if (map_parser_state.find (state_id) == map_parser_state.end ())
367
342
BUG (" parser state %1% not found." , state_id);
368
343
auto state = map_parser_state[state_id];
@@ -371,22 +346,20 @@ JsonObjects::add_parser_op(const unsigned state_id, Util::IJson* op) {
371
346
statements->append (op);
372
347
}
373
348
374
- void
375
- JsonObjects::add_parser_transition_key (const unsigned state_id, Util::IJson* newKey) {
349
+ void JsonObjects::add_parser_transition_key (const unsigned state_id, Util::IJson* newKey) {
376
350
if (map_parser_state.find (state_id) != map_parser_state.end ()) {
377
- auto state = map_parser_state[state_id];
378
- auto keys = state->get (" transition_key" )->to <Util::JsonArray>();
379
- CHECK_NULL (keys);
380
- auto new_keys = newKey->to <Util::JsonArray>();
381
- for (auto k : *new_keys) {
382
- keys->append (k);
383
- }
351
+ auto state = map_parser_state[state_id];
352
+ auto keys = state->get (" transition_key" )->to <Util::JsonArray>();
353
+ CHECK_NULL (keys);
354
+ auto new_keys = newKey->to <Util::JsonArray>();
355
+ for (auto k : *new_keys) {
356
+ keys->append (k);
357
+ }
384
358
}
385
359
}
386
360
387
- void
388
- JsonObjects::add_parse_vset (const cstring& name, const unsigned bitwidth,
389
- const big_int& size) {
361
+ void JsonObjects::add_parse_vset (const cstring& name, const unsigned bitwidth,
362
+ const big_int& size) {
390
363
auto parse_vset = new Util::JsonObject ();
391
364
unsigned id = BMV2::nextId (" parse_vsets" );
392
365
parse_vset->emplace (" name" , name);
@@ -396,8 +369,8 @@ JsonObjects::add_parse_vset(const cstring& name, const unsigned bitwidth,
396
369
parse_vsets->append (parse_vset);
397
370
}
398
371
399
- unsigned
400
- JsonObjects::add_action ( const cstring& name, Util::JsonArray*& params, Util::JsonArray*& body) {
372
+ unsigned JsonObjects::add_action ( const cstring& name, Util::JsonArray*& params,
373
+ Util::JsonArray*& body) {
401
374
CHECK_NULL (params);
402
375
CHECK_NULL (body);
403
376
auto action = new Util::JsonObject ();
@@ -410,19 +383,17 @@ JsonObjects::add_action(const cstring& name, Util::JsonArray*& params, Util::Jso
410
383
return id;
411
384
}
412
385
413
- void
414
- JsonObjects::add_extern_attribute (const cstring& name, const cstring& type,
415
- const cstring& value, Util::JsonArray* attributes) {
386
+ void JsonObjects::add_extern_attribute (const cstring& name, const cstring& type,
387
+ const cstring& value, Util::JsonArray* attributes) {
416
388
auto attr = new Util::JsonObject ();
417
389
attr->emplace (" name" , name);
418
390
attr->emplace (" type" , type);
419
391
attr->emplace (" value" , value);
420
392
attributes->append (attr);
421
393
}
422
394
423
- void
424
- JsonObjects::add_extern (const cstring& name, const cstring& type,
425
- Util::JsonArray* attributes) {
395
+ void JsonObjects::add_extern (const cstring& name, const cstring& type,
396
+ Util::JsonArray* attributes) {
426
397
auto extn = new Util::JsonObject ();
427
398
unsigned id = BMV2::nextId (" extern_instances" );
428
399
extn->emplace (" name" , name);
0 commit comments