diff --git a/src/ComputingTasks.cc b/src/ComputingTasks.cc
index 4201c811b8e5d249ea040d8abb84cda3c0fd816a..7a3f51b06171d1312e9a47320c796932efd9e752 100644
--- a/src/ComputingTasks.cc
+++ b/src/ComputingTasks.cc
@@ -3278,54 +3278,6 @@ MarkovSwitchingStatement::writeOutput(ostream &output, const string &basename, b
            << itR->first.second << ", " << itR->second << "]};" << endl;
 }
 
-void
-MarkovSwitchingStatement::writeCOutput(ostream &output, const string &basename)
-{
-  output << endl;
-
-  auto it
-    = options_list.num_options.find("ms.chain");
-  assert(it !=  options_list.num_options.end());
-  output << "chain = " << it->second << ";" << endl;
-
-  it = options_list.num_options.find("ms.number_of_regimes");
-  assert(it !=  options_list.num_options.end());
-  output << "number_of_regimes = " << it->second << ";" << endl;
-
-  it = options_list.num_options.find("ms.number_of_lags");
-  if (it !=  options_list.num_options.end())
-    output << "number_of_lags = " << it->second << ";" << endl
-           << "number_of_lags_was_passed = true;" << endl;
-  else
-    output << "number_of_lags_was_passed = false;" << endl;
-
-  it = options_list.num_options.find("ms.duration");
-  assert(it != options_list.num_options.end());
-  output << "duration.clear();" << endl;
-  using namespace boost;
-  vector<string> tokenizedDomain;
-  split(tokenizedDomain, it->second, is_any_of("[ ]"), token_compress_on);
-  for (auto & itvs : tokenizedDomain)
-    if (!itvs.empty())
-      output << "duration.push_back(" << itvs << ");" << endl;
-
-  auto itsl
-    = options_list.symbol_list_options.find("ms.parameters");
-  assert(itsl != options_list.symbol_list_options.end());
-  vector<string> parameters = itsl->second.get_symbols();
-  output << "parameters.clear();" << endl;
-  for (auto & parameter : parameters)
-    output << R"(parameters.push_back(param_names[")" << parameter << R"("]);)" << endl;
-
-  output << "restriction_map.clear();" << endl;
-  for (auto & itrm : restriction_map)
-    output << "restriction_map[make_pair(" << itrm.first.first << ","
-           << itrm.first.second << ")] = " << itrm.second << ";" << endl;
-
-  output << "msdsgeinfo->addMarkovSwitching(new MarkovSwitching(" << endl
-         << "     chain, number_of_regimes, number_of_lags, number_of_lags_was_passed, parameters, duration, restriction_map));" << endl;
-}
-
 void
 MarkovSwitchingStatement::writeJsonOutput(ostream &output) const
 {
@@ -3981,78 +3933,6 @@ BasicPriorStatement::writeJsonPriorOutput(ostream &output) const
     }
 }
 
-void
-BasicPriorStatement::writeCVarianceOption(ostream &output) const
-{
-  output << "variance = ";
-  if (variance)
-    variance->writeOutput(output);
-  else
-    output << "numeric_limits<double>::quiet_NaN()";
-  output << ";" << endl;
-}
-
-void
-BasicPriorStatement::writeCDomain(ostream &output) const
-{
-  output << "domain.clear();" << endl;
-  auto it_num = options_list.num_options.find("domain");
-  if (it_num != options_list.num_options.end())
-    {
-      using namespace boost;
-      vector<string> tokenizedDomain;
-      split(tokenizedDomain, it_num->second, is_any_of("[ ]"), token_compress_on);
-      for (auto & it : tokenizedDomain)
-        if (!it.empty())
-          output << "domain.push_back(" << it << ");" << endl;
-    }
-}
-
-void
-BasicPriorStatement::writeCOutputHelper(ostream &output, const string &field) const
-{
-  auto itn = options_list.num_options.find(field);
-  if (itn != options_list.num_options.end())
-    output << field << " = " << itn->second << ";" << endl;
-  else
-    output << field << " = " << "numeric_limits<double>::quiet_NaN();" << endl;
-}
-
-void
-BasicPriorStatement::writeCShape(ostream &output) const
-{
-  output << "shape = ";
-  switch (prior_shape)
-    {
-    case PriorDistributions::beta:
-      output << R"("beta";)" << endl;
-      break;
-    case PriorDistributions::gamma:
-      output << R"("gamma";)" << endl;
-      break;
-    case PriorDistributions::normal:
-      output << R"("normal";)" << endl;
-      break;
-    case PriorDistributions::invGamma:
-      output << R"("inv_gamma";)" << endl;
-      break;
-    case PriorDistributions::uniform:
-      output << R"("uniform";)" << endl;
-      break;
-    case PriorDistributions::invGamma2:
-      output << R"("inv_gamma2";)" << endl;
-      break;
-    case PriorDistributions::dirichlet:
-      output << R"("dirichlet";)" << endl;
-      break;
-    case PriorDistributions::weibull:
-      output << R"("weibull";)" << endl;
-      break;
-    case PriorDistributions::noShape:
-      assert(prior_shape != PriorDistributions::noShape);
-    }
-}
-
 void
 BasicPriorStatement::writeJsonShape(ostream &output) const
 {
@@ -4115,22 +3995,6 @@ PriorStatement::writeJsonOutput(ostream &output) const
   output << "}";
 }
 
-void
-PriorStatement::writeCOutput(ostream &output, const string &basename)
-{
-  output << endl
-         << R"(index = param_names[")"<< name << R"("];)" << endl;
-  writeCShape(output);
-  writeCOutputHelper(output, "mean");
-  writeCOutputHelper(output, "mode");
-  writeCOutputHelper(output, "stdev");
-  writeCVarianceOption(output);
-  writeCDomain(output);
-
-  output << "msdsgeinfo->addPrior(new ModFilePrior(" << endl
-         << "     index, shape, mean, mode, stdev, variance, domain));" << endl;
-}
-
 StdPriorStatement::StdPriorStatement(string name_arg,
                                      string subsample_name_arg,
                                      PriorDistributions prior_shape_arg,
@@ -4163,31 +4027,6 @@ StdPriorStatement::writeJsonOutput(ostream &output) const
   output << "}";
 }
 
-void
-StdPriorStatement::writeCOutput(ostream &output, const string &basename)
-{
-  output << endl
-         << "index = ";
-  if (is_structural_innovation(symbol_table.getType(name)))
-    output << "exo_names";
-  else
-    output << "endo_names";
-  output << R"([")"<< name << R"("];)" << endl;
-
-  writeCShape(output);
-  writeCOutputHelper(output, "mean");
-  writeCOutputHelper(output, "mode");
-  writeCOutputHelper(output, "stdev");
-  writeCVarianceOption(output);
-  writeCDomain(output);
-
-  if (is_structural_innovation(symbol_table.getType(name)))
-    output << "msdsgeinfo->addStructuralInnovationPrior(new ModFileStructuralInnovationPrior(";
-  else
-    output << "msdsgeinfo->addMeasurementErrorPrior(new ModFileMeasurementErrorPrior(";
-  output << endl << "     index, shape, mean, mode, stdev, variance, domain));" << endl;
-}
-
 CorrPriorStatement::CorrPriorStatement(string name_arg1, string name_arg2,
                                        string subsample_name_arg,
                                        PriorDistributions prior_shape_arg,
@@ -4237,38 +4076,6 @@ CorrPriorStatement::writeJsonOutput(ostream &output) const
   output << "}";
 }
 
-void
-CorrPriorStatement::writeCOutput(ostream &output, const string &basename)
-{
-  output << endl
-         << "index = ";
-  if (is_structural_innovation(symbol_table.getType(name)))
-    output << "exo_names";
-  else
-    output << "endo_names";
-  output << R"([")"<< name << R"("];)" << endl;
-
-  output << "index1 = ";
-  if (is_structural_innovation(symbol_table.getType(name1)))
-    output << "exo_names";
-  else
-    output << "endo_names";
-  output << R"([")"<< name1 << R"("];)" << endl;
-
-  writeCShape(output);
-  writeCOutputHelper(output, "mean");
-  writeCOutputHelper(output, "mode");
-  writeCOutputHelper(output, "stdev");
-  writeCVarianceOption(output);
-  writeCDomain(output);
-
-  if (is_structural_innovation(symbol_table.getType(name)))
-    output << "msdsgeinfo->addStructuralInnovationCorrPrior(new ModFileStructuralInnovationCorrPrior(";
-  else
-    output << "msdsgeinfo->addMeasurementErrorCorrPrior(new ModFileMeasurementErrorCorrPrior(";
-  output << endl <<"     index, index1, shape, mean, mode, stdev, variance, domain));" << endl;
-}
-
 PriorEqualStatement::PriorEqualStatement(string to_declaration_type_arg,
                                          string to_name1_arg,
                                          string to_name2_arg,
@@ -4435,16 +4242,6 @@ BasicOptionsStatement::writeCommonOutputHelper(ostream &output, const string &fi
     output << lhs_field << "." << field << " = " << itn->second << ";" << endl;
 }
 
-void
-BasicOptionsStatement::writeCOutputHelper(ostream &output, const string &field) const
-{
-  auto itn = options_list.num_options.find(field);
-  if (itn != options_list.num_options.end())
-    output << field << " = " << itn->second << ";" << endl;
-  else
-    output << field << " = " << "numeric_limits<double>::quiet_NaN();" << endl;
-}
-
 void
 BasicOptionsStatement::writeOptionsOutput(ostream &output, string &lhs_field, const string &name2) const
 {
@@ -4497,15 +4294,6 @@ OptionsStatement::writeJsonOutput(ostream &output) const
   output << "}";
 }
 
-void
-OptionsStatement::writeCOutput(ostream &output, const string &basename)
-{
-  output << endl
-         << R"(index = param_names[")"<< name << R"("];)" << endl;
-  writeCOutputHelper(output, "init");
-  output << "msdsgeinfo->addOption(new ModFileOption(index, init));" << endl;
-}
-
 StdOptionsStatement::StdOptionsStatement(string name_arg,
                                          string subsample_name_arg,
                                          OptionsList options_list_arg,
@@ -4536,26 +4324,6 @@ StdOptionsStatement::writeJsonOutput(ostream &output) const
   output << "}";
 }
 
-void
-StdOptionsStatement::writeCOutput(ostream &output, const string &basename)
-{
-  output << endl
-         << "index = ";
-  if (is_structural_innovation(symbol_table.getType(name)))
-    output << "exo_names";
-  else
-    output << "endo_names";
-  output << R"([")"<< name << R"("];)" << endl;
-
-  writeCOutputHelper(output, "init");
-
-  if (is_structural_innovation(symbol_table.getType(name)))
-    output << "msdsgeinfo->addStructuralInnovationOption(new ModFileStructuralInnovationOption(";
-  else
-    output << "msdsgeinfo->addMeasurementErrorOption(new ModFileMeasurementErrorOption(";
-  output << "index, init));" << endl;
-}
-
 CorrOptionsStatement::CorrOptionsStatement(string name_arg1, string name_arg2,
                                            string subsample_name_arg,
                                            OptionsList options_list_arg,
@@ -4602,33 +4370,6 @@ CorrOptionsStatement::writeJsonOutput(ostream &output) const
   output << "}";
 }
 
-void
-CorrOptionsStatement::writeCOutput(ostream &output, const string &basename)
-{
-  output << endl
-         << "index = ";
-  if (is_structural_innovation(symbol_table.getType(name)))
-    output << "exo_names";
-  else
-    output << "endo_names";
-  output << R"([")"<< name << R"("];)" << endl;
-
-  output << "index1 = ";
-  if (is_structural_innovation(symbol_table.getType(name1)))
-    output << "exo_names";
-  else
-    output << "endo_names";
-  output << R"([")"<< name1 << R"("];)" << endl;
-
-  writeCOutputHelper(output, "init");
-
-  if (is_structural_innovation(symbol_table.getType(name)))
-    output << "msdsgeinfo->addStructuralInnovationCorrOption(new ModFileStructuralInnovationCorrOption(";
-  else
-    output << "msdsgeinfo->addMeasurementErrorCorrOption(new ModFileMeasurementErrorCorrOption(";
-  output << "index, index1, init));" << endl;
-}
-
 OptionsEqualStatement::OptionsEqualStatement(string to_declaration_type_arg,
                                              string to_name1_arg,
                                              string to_name2_arg,
diff --git a/src/ComputingTasks.hh b/src/ComputingTasks.hh
index bce5b6f499d3e9ecb54b5c2b2ede97568634759f..abfb95ed71dd75021afc56dae4301d53a13acf58 100644
--- a/src/ComputingTasks.hh
+++ b/src/ComputingTasks.hh
@@ -841,7 +841,6 @@ public:
   explicit MarkovSwitchingStatement(OptionsList options_list_arg);
   void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings) override;
   void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const override;
-  void writeCOutput(ostream &output, const string &basename) override;
   void writeJsonOutput(ostream &output) const override;
 };
 
@@ -961,10 +960,6 @@ protected:
   void writeVarianceOption(ostream &output, const string &lhs_field) const;
   void writeOutputHelper(ostream &output, const string &field, const string &lhs_field) const;
   void writeShape(ostream &output, const string &lhs_field) const;
-  void writeCOutputHelper(ostream &output, const string &field) const;
-  void writeCShape(ostream &output) const;
-  void writeCVarianceOption(ostream &output) const;
-  void writeCDomain(ostream &output) const;
   void writeJsonShape(ostream &output) const;
   void writeJsonPriorOutput(ostream &output) const;
 };
@@ -978,7 +973,6 @@ public:
                  expr_t variance_arg,
                  OptionsList options_list_arg);
   void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const override;
-  void writeCOutput(ostream &output, const string &basename) override;
   void writeJsonOutput(ostream &output) const override;
 };
 
@@ -994,7 +988,6 @@ public:
                     OptionsList options_list_arg,
                     const SymbolTable &symbol_table_arg);
   void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const override;
-  void writeCOutput(ostream &output, const string &basename) override;
   void writeJsonOutput(ostream &output) const override;
 };
 
@@ -1013,7 +1006,6 @@ public:
                      const SymbolTable &symbol_table_arg);
   void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings) override;
   void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const override;
-  void writeCOutput(ostream &output, const string &basename) override;
   void writeJsonOutput(ostream &output) const override;
 };
 
@@ -1062,7 +1054,6 @@ protected:
   bool is_structural_innovation(const SymbolType symb_type) const;
   void writeOptionsIndex(ostream &output, const string &lhs_field) const;
   void writeOutputHelper(ostream &output, const string &field, const string &lhs_field) const;
-  void writeCOutputHelper(ostream &output, const string &field) const;
   void writeJsonOptionsOutput(ostream &output) const;
 };
 
@@ -1071,7 +1062,6 @@ class OptionsStatement : public BasicOptionsStatement
 public:
   OptionsStatement(string name_arg, string subsample_name_arg, OptionsList options_list_arg);
   void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const override;
-  void writeCOutput(ostream &output, const string &basename) override;
   void writeJsonOutput(ostream &output) const override;
 };
 
@@ -1085,7 +1075,6 @@ public:
                       OptionsList options_list_arg,
                       const SymbolTable &symbol_table_arg);
   void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const override;
-  void writeCOutput(ostream &output, const string &basename) override;
   void writeJsonOutput(ostream &output) const override;
 };
 
@@ -1101,7 +1090,6 @@ public:
                        const SymbolTable &symbol_table_arg);
   void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings) override;
   void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const override;
-  void writeCOutput(ostream &output, const string &basename) override;
   void writeJsonOutput(ostream &output) const override;
 };
 
diff --git a/src/NumericalInitialization.cc b/src/NumericalInitialization.cc
index 02cd90acef6dec00da5cd496674dbaeb27b82c8e..fd3d0cacb00e31491806eee109230187649580bd 100644
--- a/src/NumericalInitialization.cc
+++ b/src/NumericalInitialization.cc
@@ -72,16 +72,6 @@ InitParamStatement::writeJsonOutput(ostream &output) const
   output << R"("})";
 }
 
-void
-InitParamStatement::writeCOutput(ostream &output, const string &basename)
-{
-  int id = symbol_table.getTypeSpecificID(symb_id);
-  output << "params[ " << id << " ] = ";
-  param_value->writeOutput(output);
-  output << ";" << endl;
-  output << "double " << symbol_table.getName(symb_id) << " = params[ " << id << " ];" << endl;
-}
-
 void
 InitParamStatement::fillEvalContext(eval_context_t &eval_context) const
 {
diff --git a/src/NumericalInitialization.hh b/src/NumericalInitialization.hh
index aa7bf41f7bc978b148d69b839f404b80140e44bc..2704088bf8a2f106afefdf1fdc944900b6fd47f4 100644
--- a/src/NumericalInitialization.hh
+++ b/src/NumericalInitialization.hh
@@ -42,7 +42,6 @@ public:
   void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings) override;
   void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const override;
   void writeJuliaOutput(ostream &output, const string &basename) override;
-  void writeCOutput(ostream &output, const string &basename) override;
   void writeJsonOutput(ostream &output) const override;
   //! Fill eval context with parameter value
   void fillEvalContext(eval_context_t &eval_context) const;
diff --git a/src/Statement.cc b/src/Statement.cc
index 13e492bb21fddc9605e1cbc950ef483411009b27..fd5ac82ce029d1744ea3cb66e1d344299711dd6b 100644
--- a/src/Statement.cc
+++ b/src/Statement.cc
@@ -29,11 +29,6 @@ Statement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &wa
 {
 }
 
-void
-Statement::writeCOutput(ostream &output, const string &basename)
-{
-}
-
 void
 Statement::writeJuliaOutput(ostream &output, const string &basename)
 {
diff --git a/src/Statement.hh b/src/Statement.hh
index 137a2dcaadb5af62aba19d91061a6218f2359ce8..3ea991307a7005a9366c7526fffdc1ec2dcd3b66 100644
--- a/src/Statement.hh
+++ b/src/Statement.hh
@@ -155,7 +155,6 @@ public:
     \param basename is the name of the modfile (without extension) which can be used to build auxiliary files
   */
   virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const = 0;
-  virtual void writeCOutput(ostream &output, const string &basename);
   virtual void writeJuliaOutput(ostream &output, const string &basename);
   virtual void writeJsonOutput(ostream &output) const;
 };
diff --git a/src/SymbolTable.cc b/src/SymbolTable.cc
index 74daa328a8f9a00c3d7f91df36cc38bb242a300f..0093b5748b2211ceb8620c8f630d78d3174e11f1 100644
--- a/src/SymbolTable.cc
+++ b/src/SymbolTable.cc
@@ -443,204 +443,6 @@ SymbolTable::writeOutput(ostream &output) const noexcept(false)
     }
 }
 
-void
-SymbolTable::writeCOutput(ostream &output) const noexcept(false)
-{
-  if (!frozen)
-    throw NotYetFrozenException();
-
-  output << endl
-         << "int exo_nbr = " << exo_nbr() << ";" << endl;
-  if (exo_nbr() > 0)
-    {
-      output << "char *exo_names[" << exo_nbr() << "];" << endl;
-      for (int id = 0; id < exo_nbr(); id++)
-        output << "exo_names[" << id << R"(] = ")" << getName(exo_ids[id]) << R"(";)" << endl;
-    }
-
-  output << endl
-         << "int exo_det_nbr = " << exo_det_nbr() << ";" << endl;
-  if (exo_det_nbr() > 0)
-    {
-      output << "char *exo_det_names[" << exo_det_nbr() << "];" << endl;
-      for (int id = 0; id < exo_det_nbr(); id++)
-        output << "exo_det_names[" << id << R"(] = ")" << getName(exo_det_ids[id]) << R"(";)" << endl;
-    }
-
-  output << endl
-         << "int endo_nbr = " << endo_nbr() << ";" << endl;
-  if (endo_nbr() > 0)
-    {
-      output << "char *endo_names[" << endo_nbr() << "];" << endl;
-      for (int id = 0; id < endo_nbr(); id++)
-        output << "endo_names[" << id << R"(] = ")" << getName(endo_ids[id]) << R"(";)" << endl;
-    }
-
-  output << endl
-         << "int param_nbr = " << param_nbr() << ";" << endl;
-  if (param_nbr() > 0)
-    {
-      output << "char *param_names[" << param_nbr() << "];" << endl;
-      for (int id = 0; id < param_nbr(); id++)
-        output << "param_names[" << id << R"(] = ")" << getName(param_ids[id]) << R"(";)" << endl;
-    }
-
-  // Write the auxiliary variable table
-  output << "int aux_var_nbr = " << aux_vars.size() << ";" << endl;
-  if (aux_vars.size() > 0)
-    {
-      output << "struct aux_vars_t *av[" << aux_vars.size() << "];" << endl;
-      for (int i = 0; i < static_cast<int>(aux_vars.size()); i++)
-        {
-          output << "av[" << i << "].endo_index = " << getTypeSpecificID(aux_vars[i].get_symb_id()) << ";" << endl
-                 << "av[" << i << "].type = " << aux_vars[i].get_type_id() << ";" << endl;
-          switch (aux_vars[i].get_type())
-            {
-            case AuxVarType::endoLead:
-            case AuxVarType::exoLead:
-            case AuxVarType::expectation:
-            case AuxVarType::multiplier:
-            case AuxVarType::diffForward:
-              break;
-            case AuxVarType::endoLag:
-            case AuxVarType::exoLag:
-            case AuxVarType::varModel:
-              output << "av[" << i << "].orig_index = " << getTypeSpecificID(aux_vars[i].get_orig_symb_id()) << ";" << endl
-                     << "av[" << i << "].orig_lead_lag = " << aux_vars[i].get_orig_lead_lag() << ";" << endl;
-              break;
-            case AuxVarType::unaryOp:
-              if (aux_vars[i].get_orig_symb_id() >= 0)
-                output << "av[" << i << "].orig_index = " << getTypeSpecificID(aux_vars[i].get_orig_symb_id()) << ";" << endl
-                       << "av[" << i << "].orig_lead_lag = " << aux_vars[i].get_orig_lead_lag() << ";" << endl;
-              output << "av[" << i << R"(].unary_op = ")" << aux_vars[i].get_unary_op() << R"(";)" << endl;
-              break;
-            case AuxVarType::diff:
-            case AuxVarType::diffLag:
-            case AuxVarType::diffLead:
-              if (aux_vars[i].get_orig_symb_id() >= 0)
-                output << "av[" << i << "].orig_index = " << getTypeSpecificID(aux_vars[i].get_orig_symb_id()) << ";" << endl
-                       << "av[" << i << "].orig_lead_lag = " << aux_vars[i].get_orig_lead_lag() << ";" << endl;
-              break;
-            }
-        }
-    }
-
-  output << "int predeterminedNbr = " << predeterminedNbr() << ";" << endl;
-  if (predeterminedNbr() > 0)
-    {
-      output << "int predetermined_variables[" << predeterminedNbr() << "] = {";
-      for (auto it = predetermined_variables.begin();
-           it != predetermined_variables.end(); it++)
-        {
-          if (it != predetermined_variables.begin())
-            output << ",";
-          output << getTypeSpecificID(*it);
-        }
-      output << "};" << endl;
-    }
-
-  output << "int observedVariablesNbr = " << observedVariablesNbr() << ";" << endl;
-  if (observedVariablesNbr() > 0)
-    {
-      output << "int varobs[" << observedVariablesNbr() << "] = {";
-      for (auto it = varobs.begin();
-           it != varobs.end(); it++)
-        {
-          if (it != varobs.begin())
-            output << ",";
-          output << getTypeSpecificID(*it);
-        }
-      output << "};" << endl;
-    }
-
-  output << "int observedExogenousVariablesNbr = " << observedExogenousVariablesNbr() << ";" << endl;
-  if (observedExogenousVariablesNbr() > 0)
-    {
-      output << "int varexobs[" << observedExogenousVariablesNbr() << "] = {";
-      for (auto it = varexobs.begin();
-           it != varexobs.end(); it++)
-        {
-          if (it != varexobs.begin())
-            output << ",";
-          output << getTypeSpecificID(*it);
-        }
-      output << "};" << endl;
-    }
-}
-
-void
-SymbolTable::writeCCOutput(ostream &output) const noexcept(false)
-{
-  if (!frozen)
-    throw NotYetFrozenException();
-
-  output << endl
-         << "exo_nbr = " << exo_nbr() << ";" << endl;
-  for (int id = 0; id < exo_nbr(); id++)
-    output << R"(exo_names[")" << getName(exo_ids[id]) << R"("] = )" << id << ";" << endl;
-
-  output << endl
-         << "exo_det_nbr = " << exo_det_nbr() << ";" << endl;
-  for (int id = 0; id < exo_det_nbr(); id++)
-    output << R"(exo_det_names[")" << getName(exo_det_ids[id]) << R"("] = )" << id << " ;" << endl;
-
-  output << endl
-         << "endo_nbr = " << endo_nbr() << ";" << endl;
-  for (int id = 0; id < endo_nbr(); id++)
-    output << R"(endo_names[")" << getName(endo_ids[id]) << R"("] = )" << id << ";" << endl;
-
-  output << endl
-         << "param_nbr = " << param_nbr() << ";" << endl;
-  for (int id = 0; id < param_nbr(); id++)
-    output << R"(param_names[")" << getName(param_ids[id]) << R"("] = )" << id << ";" << endl;
-
-  // Write the auxiliary variable table
-  for (int i = 0; i < static_cast<int>(aux_vars.size()); i++)
-    {
-      output << "aux_vars_t av" << i << ";" << endl;
-      output << "av" << i << ".endo_index = " << getTypeSpecificID(aux_vars[i].get_symb_id()) << ";" << endl
-             << "av" << i << ".type = " << aux_vars[i].get_type_id() << ";" << endl;
-      switch (aux_vars[i].get_type())
-        {
-        case AuxVarType::endoLead:
-        case AuxVarType::exoLead:
-        case AuxVarType::expectation:
-        case AuxVarType::multiplier:
-        case AuxVarType::diffForward:
-          break;
-        case AuxVarType::endoLag:
-        case AuxVarType::exoLag:
-        case AuxVarType::varModel:
-          output << "av" << i << ".orig_index = " << getTypeSpecificID(aux_vars[i].get_orig_symb_id()) << ";" << endl
-                 << "av" << i << ".orig_lead_lag = " << aux_vars[i].get_orig_lead_lag() << ";" << endl;
-          break;
-        case AuxVarType::unaryOp:
-          if (aux_vars[i].get_orig_symb_id() >= 0)
-            output << "av" << i << ".orig_index = " << getTypeSpecificID(aux_vars[i].get_orig_symb_id()) << ";" << endl
-                   << "av" << i << ".orig_lead_lag = " << aux_vars[i].get_orig_lead_lag() << ";" << endl;
-          output << "av" << i << R"(.unary_op = ")" << aux_vars[i].get_unary_op() << R"(";)" << endl;
-          break;
-        case AuxVarType::diff:
-        case AuxVarType::diffLag:
-        case AuxVarType::diffLead:
-          if (aux_vars[i].get_orig_symb_id() >= 0)
-            output << "av" << i << ".orig_index = " << getTypeSpecificID(aux_vars[i].get_orig_symb_id()) << ";" << endl
-                   << "av" << i << ".orig_lead_lag = " << aux_vars[i].get_orig_lead_lag() << ";" << endl;
-          break;
-        }
-      output << "aux_vars.push_back(" << "av" << i << ");" << endl;
-    }
-
-  for (int predetermined_variable : predetermined_variables)
-    output << "predetermined_variables.push_back(" << getTypeSpecificID(predetermined_variable) << ");" << endl;
-
-  for (int varob : varobs)
-    output << "varobs.push_back(" << getTypeSpecificID(varob) << ");" << endl;
-
-  for (int varexob : varexobs)
-    output << "varexobs.push_back(" << getTypeSpecificID(varexob) << ");" << endl;
-}
-
 int
 SymbolTable::addLeadAuxiliaryVarInternal(bool endo, int index, expr_t expr_arg) noexcept(false)
 {
diff --git a/src/SymbolTable.hh b/src/SymbolTable.hh
index 64bd7b376014b3b6d4e478ba6e65645948cf750d..94830f9734c99c805751c4f3b87fb23a17e54c8c 100644
--- a/src/SymbolTable.hh
+++ b/src/SymbolTable.hh
@@ -371,10 +371,6 @@ public:
   void writeJsonOutput(ostream &output) const;
   //! Write Julia output of this class
   void writeJuliaOutput(ostream &output) const noexcept(false);
-  //! Write C output of this class
-  void writeCOutput(ostream &output) const noexcept(false);
-  //! Write CC output of this class
-  void writeCCOutput(ostream &output) const noexcept(false);
   //! Mark a symbol as predetermined variable
   void markPredetermined(int symb_id) noexcept(false);
   //! Test if a given symbol is a predetermined variable