51 bool boolean(
bool val);
52 bool number_integer(json::number_integer_t val);
53 bool number_unsigned(json::number_unsigned_t val);
54 bool number_float(json::number_float_t val,
const std::string& str);
55 bool string(std::string& val);
56 bool binary(json::binary_t& val);
57 bool start_object(std::size_t elements);
59 bool start_array(std::size_t elements);
61 bool key(std::string& val);
63 bool parse_error(std::size_t position,
const std::string& lastToken,
const json::exception& ex);
65 const std::map<std::string, std::string> getProgramOptions();
68 std::size_t error_pos_;
69 std::string error_str_;
73 void constructComponent();
74 void constructSubComponent();
75 void constructPortModule();
78 struct JSONShadowComponent
80 std::string name =
"";
81 std::string type =
"";
82 unsigned slot_number = 0;
86 struct JSONShadowStatistic
88 std::string name =
"";
91 std::string shared_name =
"";
102 struct JSONShadowLink
104 std::string name =
"";
106 bool nonlocal =
false;
108 SST::ComponentId_t leftcomp = -1;
109 std::string leftport =
"";
110 std::string leftlat =
"";
112 SST::ComponentId_t rightcomp = -1;
113 std::string rightport =
"";
114 std::string rightlat =
"";
135 struct JSONShadowPortModule
137 std::string port =
"";
138 std::string type =
"";
140 uint8_t stat_load_level = STATISTICLOADLEVELUNINITIALIZED;
141 std::vector<std::string> shared_param_sets;
149 stat_load_level = STATISTICLOADLEVELUNINITIALIZED;
150 shared_param_sets.clear();
157 State current_state_ = State::Entry;
158 std::vector<JSONShadowComponent> shadow_component_stack_;
159 JSONShadowStatistic shadow_statistic_;
160 JSONShadowLink shadow_link_;
161 JSONShadowPortModule shadow_port_module_;
163 std::map<std::string, ConfigStatistic*> current_shared_stats_;
165 std::map<std::string, std::string> program_options_;
167 std::string current_key_;
168 std::string current_shared_name_;
171 bool found_components_ =
false;
173 ComponentId_t findComponentIdByName(
const std::string& name,
bool& success);