cprover
json_irept Class Reference

#include <json_irep.h>

Public Member Functions

 json_irept (bool include_comments)
 To convert to JSON from an irep structure by recursively generating JSON for the different sub trees. More...
 
void convert_from_irep (const irept &irep, jsont &json) const
 To convert to JSON from an irep structure by recursively generating JSON for the different sub trees. More...
 
void convert_from_json (const jsont &, irept &) const
 Deserialize a JSON irep representation. More...
 

Private Member Functions

void convert_sub_tree (const std::string &sub_tree_id, const irept::subt &sub_trees, json_objectt &parent) const
 To convert to JSON from a list of ireps that are in an unlabelled subtree. More...
 
void convert_named_sub_tree (const std::string &sub_tree_id, const irept::named_subt &sub_trees, json_objectt &parent) const
 To convert to JSON from a map of ireps that are in a named subtree. More...
 

Private Attributes

bool include_comments
 

Detailed Description

Definition at line 19 of file json_irep.h.

Constructor & Destructor Documentation

§ json_irept()

json_irept::json_irept ( bool  include_comments)
explicit

To convert to JSON from an irep structure by recursively generating JSON for the different sub trees.

Parameters
include_commentswhen writing JSON, should the comments sub tree be included.

Definition at line 23 of file json_irep.cpp.

Member Function Documentation

§ convert_from_irep()

void json_irept::convert_from_irep ( const irept irep,
jsont json 
) const

To convert to JSON from an irep structure by recursively generating JSON for the different sub trees.

Parameters
irepThe irep structure to turn into json
jsonThe json object to be filled up.

Definition at line 31 of file json_irep.cpp.

References convert_named_sub_tree(), convert_sub_tree(), irept::get_comments(), irept::get_named_sub(), irept::get_sub(), irept::id(), irept::id_string(), include_comments, and jsont::make_object().

Referenced by show_goto_functions_jsont::convert(), convert_named_sub_tree(), and convert_sub_tree().

§ convert_from_json()

void json_irept::convert_from_json ( const jsont in,
irept out 
) const

Deserialize a JSON irep representation.

Parameters
inputjson object to convert
Returns
result - irep equivalent of input

Definition at line 97 of file json_irep.cpp.

References irept::add(), comment(), irept::get_sub(), irept::id(), and jsont::object.

§ convert_named_sub_tree()

void json_irept::convert_named_sub_tree ( const std::string &  sub_tree_id,
const irept::named_subt sub_trees,
json_objectt parent 
) const
private

To convert to JSON from a map of ireps that are in a named subtree.

The parent JSON object will get a key called sub_tree_id and the value shall be a JSON object whose keys shall be the name of the sub tree and the value will be the object generated from the sub tree.

Parameters
sub_tree_idthe name to give the subtree in the parent object
sub_treesthe map of subtrees to parse
parentthe parent JSON object who should be added to

Definition at line 76 of file json_irep.cpp.

References convert_from_irep(), and id2string().

Referenced by convert_from_irep().

§ convert_sub_tree()

void json_irept::convert_sub_tree ( const std::string &  sub_tree_id,
const irept::subt sub_trees,
json_objectt parent 
) const
private

To convert to JSON from a list of ireps that are in an unlabelled subtree.

The parent JSON object will get a key called sub_tree_id and the value shall be an array of JSON objects generated from each of the sub trees

Parameters
sub_tree_idthe name to give the subtree in the parent object
sub_treesthe list of subtrees to parse
parentthe parent JSON object who should be added to

Definition at line 51 of file json_irep.cpp.

References convert_from_irep(), and json_arrayt::push_back().

Referenced by convert_from_irep().

Member Data Documentation

§ include_comments

bool json_irept::include_comments
private

Definition at line 37 of file json_irep.h.

Referenced by convert_from_irep().


The documentation for this class was generated from the following files: