From 3597a41a4f68d54eadb37ca5f75d6bbd557dd96e Mon Sep 17 00:00:00 2001 From: Houtan Bastani Date: Thu, 29 Jun 2017 13:15:32 +0200 Subject: [PATCH] preprocessor: cleanup writing JSON to standardout --- ModFile.cc | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/ModFile.cc b/ModFile.cc index 4098c8a2..77805bc1 100644 --- a/ModFile.cc +++ b/ModFile.cc @@ -1270,6 +1270,9 @@ ModFile::writeJsonOutput(const string &basename, JsonOutputPointType json, JsonF if (json == parsing || json == checkpass) symbol_table.freeze(); + if (json_output_mode == standardout) + cout << "{" << endl; + writeJsonOutputParsingCheck(basename, json_output_mode, json == transformpass, json == computingpass); if (json == parsing || json == checkpass) @@ -1278,6 +1281,9 @@ ModFile::writeJsonOutput(const string &basename, JsonOutputPointType json, JsonF if (json == computingpass) writeJsonComputingPassOutput(basename, json_output_mode, jsonderivsimple); + if (json_output_mode == standardout) + cout << "}" << endl; + switch (json) { case parsing: @@ -1333,7 +1339,7 @@ ModFile::writeJsonOutputParsingCheck(const string &basename, JsonFileOutputType ostringstream original_model_output; original_model_output << ""; - if (transformpass) + if (transformpass || computingpass) { original_model_output << "{"; original_model.writeJsonOriginalModelOutput(original_model_output); @@ -1342,9 +1348,13 @@ ModFile::writeJsonOutputParsingCheck(const string &basename, JsonFileOutputType if (json_output_mode == standardout) { + if (transformpass || computingpass) + cout << "\"transformed_model\": "; + else + cout << "\"model\": "; cout << output.str(); if (!original_model_output.str().empty()) - cout << "," << original_model_output.str(); + cout << ", \"original_model\": " << original_model_output.str(); } else { @@ -1408,11 +1418,6 @@ ModFile::writeJsonComputingPassOutput(const string &basename, JsonFileOutputType dynamic_model.writeJsonComputingPassOutput(dynamic_output, true); dynamic_output << "}" << endl; - ostringstream original_model_output; - original_model_output << "{"; - original_model.writeJsonOriginalModelOutput(original_model_output); - original_model_output << "}" << endl; - ostringstream tmp_out, static_paramsd_output, static_paramsd_simple_output; tmp_out << ""; static_paramsd_output << ""; @@ -1453,26 +1458,25 @@ ModFile::writeJsonComputingPassOutput(const string &basename, JsonFileOutputType if (json_output_mode == standardout) { - cout << original_model_output.str() << endl - << static_output.str() << endl - << dynamic_output.str() << endl; + cout << ", \"static_model\": " << static_output.str() << endl + << ", \"dynamic_model\": " << dynamic_output.str() << endl; if (!static_paramsd_output.str().empty()) - cout << static_paramsd_output.str() << endl; + cout << ", \"static_params_deriv\": " << static_paramsd_output.str() << endl; if (!dynamic_paramsd_output.str().empty()) - cout << dynamic_paramsd_output.str() << endl; + cout << ", \"dynamic_params_deriv\":" << dynamic_paramsd_output.str() << endl; if (jsonderivsimple) { - cout << static_simple_output.str() << endl - << dynamic_simple_output.str() << endl; + cout << ", \"static_model_simple\": " << static_simple_output.str() << endl + << ", \"dynamic_model_simple\": " << dynamic_simple_output.str() << endl; if (!static_paramsd_simple_output.str().empty()) - cout << static_paramsd_simple_output.str() << endl; + cout << "," << static_paramsd_simple_output.str() << endl; if (!dynamic_paramsd_simple_output.str().empty()) - cout << dynamic_paramsd_simple_output.str() << endl; + cout << "," << dynamic_paramsd_simple_output.str() << endl; } } else @@ -1484,11 +1488,9 @@ ModFile::writeJsonComputingPassOutput(const string &basename, JsonFileOutputType } string fname_original, fname_static, fname_dynamic; - fname_original = basename + "_original.json"; fname_static = basename + "_static.json"; fname_dynamic = basename + "_dynamic.json"; - writeJsonFileHelper(fname_original, original_model_output); writeJsonFileHelper(fname_static, static_output); writeJsonFileHelper(fname_dynamic, dynamic_output);