From c9dd241f5bb29ce63a4c37f82afcba36df998b23 Mon Sep 17 00:00:00 2001
From: Michel Juillard <michel.juillard@mjui.fr>
Date: Mon, 29 Jun 2020 11:10:35 +0200
Subject: [PATCH] add varobs statement to JSON output

---
 src/SymbolTable.cc | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/src/SymbolTable.cc b/src/SymbolTable.cc
index 68a0bc64..1a10f239 100644
--- a/src/SymbolTable.cc
+++ b/src/SymbolTable.cc
@@ -1061,6 +1061,48 @@ SymbolTable::writeJsonOutput(ostream &output) const
 
   output << R"(, "parameters": )";
   writeJsonVarVector(output, param_ids);
+
+  if (observedVariablesNbr() > 0)
+    {
+      output << R"(, "varobs": [)";
+      for (size_t i = 0; i < varobs.size(); i++)
+	{
+	  if (i != 0)
+	    output << ", ";
+	  output << R"(")" << getName(varobs[i]) << R"(")";
+	}
+      output << "]" << endl;
+      
+      output << R"(, "varobs_ids": [)";
+      for (size_t i = 0; i < varobs.size(); i++)
+	{
+	  if (i != 0)
+	    output << ", ";
+	  output << getTypeSpecificID(varobs[i])+1;
+	}
+      output << "]" << endl;
+    }
+
+  if (observedExogenousVariablesNbr() > 0)
+    {
+      output << R"(, "varexobs": [)";
+      for (size_t i = 0; i < varexobs.size(); i++)
+	{
+	  if (i != 0)
+	    output << ", ";
+	  output << R"(")" << getName(varexobs[i]) << R"(")";
+	}
+      output << "]" << endl;
+      
+      output << R"(, "varexobs_ids": [)";
+      for (size_t i = 0; i < varexobs.size(); i++)
+	{
+	  if (i != 0)
+	    output << ", ";
+	  output << getTypeSpecificID(varexobs[i])+1;
+	}
+      output << "]" << endl;
+    }
 }
 
 void
-- 
GitLab