preprocessor: JSON output for statements, #1387
parent
181ffd65c5
commit
1007ea1301
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2003-2016 Dynare Team
|
||||
* Copyright (C) 2003-2017 Dynare Team
|
||||
*
|
||||
* This file is part of Dynare.
|
||||
*
|
||||
|
@ -36,6 +36,7 @@ public:
|
|||
SteadyStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class CheckStatement : public Statement
|
||||
|
@ -46,6 +47,7 @@ public:
|
|||
CheckStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class SimulStatement : public Statement
|
||||
|
@ -56,6 +58,7 @@ public:
|
|||
SimulStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class PerfectForesightSetupStatement : public Statement
|
||||
|
@ -65,6 +68,7 @@ private:
|
|||
public:
|
||||
PerfectForesightSetupStatement(const OptionsList &options_list_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class PerfectForesightSolverStatement : public Statement
|
||||
|
@ -75,6 +79,7 @@ public:
|
|||
PerfectForesightSolverStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class PriorPosteriorFunctionStatement : public Statement
|
||||
|
@ -86,6 +91,7 @@ public:
|
|||
PriorPosteriorFunctionStatement(const bool prior_func_arg, const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class ModelInfoStatement : public Statement
|
||||
|
@ -96,6 +102,7 @@ public:
|
|||
ModelInfoStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class StochSimulStatement : public Statement
|
||||
|
@ -108,6 +115,7 @@ public:
|
|||
const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class ForecastStatement : public Statement
|
||||
|
@ -119,6 +127,7 @@ public:
|
|||
ForecastStatement(const SymbolList &symbol_list_arg,
|
||||
const OptionsList &options_list_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class RamseyModelStatement : public Statement
|
||||
|
@ -131,6 +140,7 @@ public:
|
|||
const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class RamseyConstraintsStatement : public Statement
|
||||
|
@ -143,11 +153,13 @@ public:
|
|||
};
|
||||
typedef vector<Constraint> constraints_t;
|
||||
private:
|
||||
const SymbolTable &symbol_table;
|
||||
const constraints_t constraints;
|
||||
public:
|
||||
RamseyConstraintsStatement(const constraints_t &constraints_arg);
|
||||
RamseyConstraintsStatement(const SymbolTable &symbol_table_arg, const constraints_t &constraints_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
// virtual Statement *cloneAndReindexSymbIds(DataTree &dynamic_datatree, SymbolTable &orig_symbol_table);
|
||||
};
|
||||
|
||||
|
@ -164,6 +176,7 @@ public:
|
|||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
void checkRamseyPolicyList();
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class DiscretionaryPolicyStatement : public Statement
|
||||
|
@ -176,6 +189,7 @@ public:
|
|||
const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class RplotStatement : public Statement
|
||||
|
@ -185,6 +199,7 @@ private:
|
|||
public:
|
||||
RplotStatement(const SymbolList &symbol_list_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class UnitRootVarsStatement : public Statement
|
||||
|
@ -192,6 +207,7 @@ class UnitRootVarsStatement : public Statement
|
|||
public:
|
||||
UnitRootVarsStatement(void);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class PeriodsStatement : public Statement
|
||||
|
@ -201,6 +217,7 @@ private:
|
|||
public:
|
||||
PeriodsStatement(int periods_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class DsampleStatement : public Statement
|
||||
|
@ -211,6 +228,7 @@ public:
|
|||
DsampleStatement(int val1_arg);
|
||||
DsampleStatement(int val1_arg, int val2_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class EstimationStatement : public Statement
|
||||
|
@ -223,6 +241,7 @@ public:
|
|||
const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class DynareSensitivityStatement : public Statement
|
||||
|
@ -233,6 +252,7 @@ public:
|
|||
DynareSensitivityStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class ObservationTrendsStatement : public Statement
|
||||
|
@ -246,6 +266,7 @@ public:
|
|||
ObservationTrendsStatement(const trend_elements_t &trend_elements_arg,
|
||||
const SymbolTable &symbol_table_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class OsrParamsStatement : public Statement
|
||||
|
@ -257,6 +278,7 @@ public:
|
|||
OsrParamsStatement(const SymbolList &symbol_list_arg, const SymbolTable &symbol_table_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class OsrStatement : public Statement
|
||||
|
@ -269,6 +291,7 @@ public:
|
|||
const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
//! Temporary structure used when parsing estimation_params* statements
|
||||
|
@ -295,6 +318,7 @@ public:
|
|||
OsrParamsBoundsStatement(const vector<OsrParams> &osr_params_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class DynaTypeStatement : public Statement
|
||||
|
@ -306,6 +330,7 @@ public:
|
|||
DynaTypeStatement(const SymbolList &symbol_list_arg,
|
||||
const string &filename_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class DynaSaveStatement : public Statement
|
||||
|
@ -317,6 +342,7 @@ public:
|
|||
DynaSaveStatement(const SymbolList &symbol_list_arg,
|
||||
const string &filename_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class ModelComparisonStatement : public Statement
|
||||
|
@ -330,6 +356,7 @@ public:
|
|||
ModelComparisonStatement(const filename_list_t &filename_list_arg,
|
||||
const OptionsList &options_list_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
//! Temporary structure used when parsing estimation_params* statements
|
||||
|
@ -369,6 +396,7 @@ public:
|
|||
const SymbolTable &symbol_table_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class EstimatedParamsInitStatement : public Statement
|
||||
|
@ -383,6 +411,7 @@ public:
|
|||
const bool use_calibration_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class EstimatedParamsBoundsStatement : public Statement
|
||||
|
@ -394,6 +423,7 @@ public:
|
|||
EstimatedParamsBoundsStatement(const vector<EstimationParams> &estim_params_list_arg,
|
||||
const SymbolTable &symbol_table_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class OptimWeightsStatement : public Statement
|
||||
|
@ -411,6 +441,7 @@ public:
|
|||
const SymbolTable &symbol_table_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
/*! \todo Make model_tree a member instead of a pointer */
|
||||
|
@ -430,6 +461,7 @@ public:
|
|||
/*! \todo allow for the possibility of disabling temporary terms */
|
||||
virtual void computingPass();
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
//! Return the Planner Objective
|
||||
StaticModel *getPlannerObjective() const;
|
||||
};
|
||||
|
@ -443,6 +475,7 @@ public:
|
|||
BVARDensityStatement(int maxnlags_arg, const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class BVARForecastStatement : public Statement
|
||||
|
@ -454,6 +487,7 @@ public:
|
|||
BVARForecastStatement(int nlags_arg, const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class SBVARStatement : public Statement
|
||||
|
@ -464,6 +498,7 @@ public:
|
|||
SBVARStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class MSSBVAREstimationStatement : public Statement
|
||||
|
@ -474,6 +509,7 @@ public:
|
|||
MSSBVAREstimationStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class MSSBVARSimulationStatement : public Statement
|
||||
|
@ -484,6 +520,7 @@ public:
|
|||
MSSBVARSimulationStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class MSSBVARComputeMDDStatement : public Statement
|
||||
|
@ -494,6 +531,7 @@ public:
|
|||
MSSBVARComputeMDDStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class MSSBVARComputeProbabilitiesStatement : public Statement
|
||||
|
@ -504,6 +542,7 @@ public:
|
|||
MSSBVARComputeProbabilitiesStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class MSSBVARIrfStatement : public Statement
|
||||
|
@ -516,6 +555,7 @@ public:
|
|||
const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class MSSBVARForecastStatement : public Statement
|
||||
|
@ -526,6 +566,7 @@ public:
|
|||
MSSBVARForecastStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class MSSBVARVarianceDecompositionStatement : public Statement
|
||||
|
@ -536,6 +577,7 @@ public:
|
|||
MSSBVARVarianceDecompositionStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class IdentificationStatement : public Statement
|
||||
|
@ -546,6 +588,7 @@ public:
|
|||
IdentificationStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class WriteLatexDynamicModelStatement : public Statement
|
||||
|
@ -555,6 +598,7 @@ private:
|
|||
public:
|
||||
WriteLatexDynamicModelStatement(const DynamicModel &dynamic_model_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class WriteLatexStaticModelStatement : public Statement
|
||||
|
@ -564,6 +608,7 @@ private:
|
|||
public:
|
||||
WriteLatexStaticModelStatement(const StaticModel &static_model_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class WriteLatexOriginalModelStatement : public Statement
|
||||
|
@ -573,6 +618,7 @@ private:
|
|||
public:
|
||||
WriteLatexOriginalModelStatement(const DynamicModel &original_model_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class ShockDecompositionStatement : public Statement
|
||||
|
@ -584,6 +630,7 @@ public:
|
|||
ShockDecompositionStatement(const SymbolList &symbol_list_arg,
|
||||
const OptionsList &options_list_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class ConditionalForecastStatement : public Statement
|
||||
|
@ -593,6 +640,7 @@ private:
|
|||
public:
|
||||
ConditionalForecastStatement(const OptionsList &options_list_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class PlotConditionalForecastStatement : public Statement
|
||||
|
@ -604,6 +652,7 @@ private:
|
|||
public:
|
||||
PlotConditionalForecastStatement(int periods_arg, const SymbolList &symbol_list_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class CalibSmootherStatement : public Statement
|
||||
|
@ -616,6 +665,7 @@ public:
|
|||
const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class ExtendedPathStatement : public Statement
|
||||
|
@ -626,6 +676,7 @@ public:
|
|||
ExtendedPathStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class SvarIdentificationStatement : public Statement
|
||||
|
@ -657,6 +708,7 @@ public:
|
|||
const SymbolTable &symbol_table_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class MarkovSwitchingStatement : public Statement
|
||||
|
@ -669,6 +721,7 @@ public:
|
|||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeCOutput(ostream &output, const string &basename);
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class SvarStatement : public Statement
|
||||
|
@ -679,6 +732,7 @@ public:
|
|||
SvarStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class SvarGlobalIdentificationCheckStatement : public Statement
|
||||
|
@ -686,6 +740,7 @@ class SvarGlobalIdentificationCheckStatement : public Statement
|
|||
public:
|
||||
SvarGlobalIdentificationCheckStatement();
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class SetTimeStatement : public Statement
|
||||
|
@ -695,6 +750,7 @@ private:
|
|||
public:
|
||||
SetTimeStatement(const OptionsList &options_list_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class EstimationDataStatement : public Statement
|
||||
|
@ -705,6 +761,7 @@ public:
|
|||
EstimationDataStatement(const OptionsList &options_list_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class SubsamplesStatement : public Statement
|
||||
|
@ -724,6 +781,7 @@ public:
|
|||
const SymbolTable &symbol_table_arg);
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class SubsamplesEqualStatement : public Statement
|
||||
|
@ -741,6 +799,7 @@ public:
|
|||
const string &from_name2_arg,
|
||||
const SymbolTable &symbol_table_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class JointPriorStatement : public Statement
|
||||
|
@ -756,6 +815,7 @@ public:
|
|||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
void writeOutputHelper(ostream &output, const string &field, const string &lhs_field) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
|
||||
|
@ -788,6 +848,8 @@ protected:
|
|||
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;
|
||||
};
|
||||
|
||||
class PriorStatement : public BasicPriorStatement
|
||||
|
@ -800,6 +862,7 @@ public:
|
|||
const OptionsList &options_list_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeCOutput(ostream &output, const string &basename);
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class StdPriorStatement : public BasicPriorStatement
|
||||
|
@ -815,6 +878,7 @@ public:
|
|||
const SymbolTable &symbol_table_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeCOutput(ostream &output, const string &basename);
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class CorrPriorStatement : public BasicPriorStatement
|
||||
|
@ -833,6 +897,7 @@ public:
|
|||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeCOutput(ostream &output, const string &basename);
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class PriorEqualStatement : public Statement
|
||||
|
@ -860,6 +925,7 @@ public:
|
|||
void get_base_name(const SymbolType symb_type, string &lhs_field) const;
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class BasicOptionsStatement : public Statement
|
||||
|
@ -882,6 +948,7 @@ protected:
|
|||
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;
|
||||
};
|
||||
|
||||
class OptionsStatement : public BasicOptionsStatement
|
||||
|
@ -890,6 +957,7 @@ public:
|
|||
OptionsStatement(const string &name_arg, const string &subsample_name_arg, const OptionsList &options_list_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeCOutput(ostream &output, const string &basename);
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class StdOptionsStatement : public BasicOptionsStatement
|
||||
|
@ -903,6 +971,7 @@ public:
|
|||
const SymbolTable &symbol_table_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeCOutput(ostream &output, const string &basename);
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class CorrOptionsStatement : public BasicOptionsStatement
|
||||
|
@ -918,6 +987,7 @@ public:
|
|||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeCOutput(ostream &output, const string &basename);
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class OptionsEqualStatement : public Statement
|
||||
|
@ -945,6 +1015,7 @@ public:
|
|||
void get_base_name(const SymbolType symb_type, string &lhs_field) const;
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class ModelDiagnosticsStatement : public Statement
|
||||
|
@ -952,6 +1023,7 @@ class ModelDiagnosticsStatement : public Statement
|
|||
public:
|
||||
ModelDiagnosticsStatement();
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class Smoother2histvalStatement : public Statement
|
||||
|
@ -961,6 +1033,7 @@ private:
|
|||
public:
|
||||
Smoother2histvalStatement(const OptionsList &options_list_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1259,29 +1259,12 @@ ModFile::writeJsonOutput(const string &basename, JsonFileOutputType json_output_
|
|||
if (!statements.empty())
|
||||
{
|
||||
output << ",\"statements\": [";
|
||||
bool printed_statement = false;
|
||||
for (vector<Statement *>::const_iterator it = statements.begin();
|
||||
it != statements.end();)
|
||||
it != statements.end(); it++)
|
||||
{
|
||||
if (it != statements.begin())
|
||||
output << ", " << endl;
|
||||
(*it)->writeJsonOutput(output);
|
||||
|
||||
if (dynamic_cast<InitParamStatement *>(*it) != NULL ||
|
||||
dynamic_cast<InitValStatement *>(*it) != NULL ||
|
||||
dynamic_cast<EndValStatement *>(*it) != NULL ||
|
||||
dynamic_cast<HistValStatement *>(*it) != NULL)
|
||||
printed_statement = true;
|
||||
|
||||
if (++it == statements.end())
|
||||
break;
|
||||
|
||||
// tests to see if the next statement will be one for which we support writing JSON files
|
||||
// to be deleted once we support all statements
|
||||
if (printed_statement &&
|
||||
(dynamic_cast<InitParamStatement *>(*it) != NULL ||
|
||||
dynamic_cast<InitValStatement *>(*it) != NULL ||
|
||||
dynamic_cast<EndValStatement *>(*it) != NULL ||
|
||||
dynamic_cast<HistValStatement *>(*it) != NULL))
|
||||
output << "," << endl;
|
||||
}
|
||||
output << "]" << endl;
|
||||
}
|
||||
|
|
|
@ -177,16 +177,15 @@ InitOrEndValStatement::writeInitValues(ostream &output) const
|
|||
void
|
||||
InitOrEndValStatement::writeJsonInitValues(ostream &output) const
|
||||
{
|
||||
int i = 0;
|
||||
deriv_node_temp_terms_t tef_terms;
|
||||
for (init_values_t::const_iterator it = init_values.begin();
|
||||
it != init_values.end(); it++, i++)
|
||||
it != init_values.end(); it++)
|
||||
{
|
||||
if (it != init_values.begin())
|
||||
output << ", ";
|
||||
output << "{\"name\": \"" << symbol_table.getName(it->first) << "\", " << "\"value\": \"";
|
||||
it->second->writeJsonOutput(output, oMatlabOutsideModel, temporary_terms_t(), tef_terms);
|
||||
output << "\"}";
|
||||
if (i < init_values.size() - 1)
|
||||
output << ", ";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -419,19 +418,18 @@ HistValStatement::writeOutput(ostream &output, const string &basename, bool mini
|
|||
void
|
||||
HistValStatement::writeJsonOutput(ostream &output) const
|
||||
{
|
||||
int i = 0;
|
||||
deriv_node_temp_terms_t tef_terms;
|
||||
output << "{\"statementName\": \"hist_val\", \"vals\": [";
|
||||
for (hist_values_t::const_iterator it = hist_values.begin();
|
||||
it != hist_values.end(); it++)
|
||||
{
|
||||
if (it != hist_values.begin())
|
||||
output << ", ";
|
||||
output << "{ \"name\": \"" << symbol_table.getName(it->first.first) << "\""
|
||||
<< ", \"lag\": " << it->first.second
|
||||
<< ", \"value\": \"";
|
||||
it->second->writeJsonOutput(output, oMatlabOutsideModel, temporary_terms_t(), tef_terms);
|
||||
output << "\"}";
|
||||
if (i < hist_values.size() - 1)
|
||||
output << ", ";
|
||||
}
|
||||
output << "]}";
|
||||
}
|
||||
|
@ -451,6 +449,14 @@ InitvalFileStatement::writeOutput(ostream &output, const string &basename, bool
|
|||
<< "initvalf('" << filename << "');" << endl;
|
||||
}
|
||||
|
||||
void
|
||||
InitvalFileStatement::writeJsonOutput(ostream &output) const
|
||||
{
|
||||
output << "{\"statementName\": \"init_val_file\""
|
||||
<< ", \"filename\": \"" << filename << "\""
|
||||
<< "}";
|
||||
}
|
||||
|
||||
HistvalFileStatement::HistvalFileStatement(const string &filename_arg) :
|
||||
filename(filename_arg)
|
||||
{
|
||||
|
@ -462,6 +468,14 @@ HistvalFileStatement::writeOutput(ostream &output, const string &basename, bool
|
|||
output << "histvalf('" << filename << "');" << endl;
|
||||
}
|
||||
|
||||
void
|
||||
HistvalFileStatement::writeJsonOutput(ostream &output) const
|
||||
{
|
||||
output << "{\"statementName\": \"hist_val_file\""
|
||||
<< ", \"filename\": \"" << filename << "\""
|
||||
<< "}";
|
||||
}
|
||||
|
||||
HomotopyStatement::HomotopyStatement(const homotopy_values_t &homotopy_values_arg,
|
||||
const SymbolTable &symbol_table_arg) :
|
||||
homotopy_values(homotopy_values_arg),
|
||||
|
@ -498,6 +512,31 @@ HomotopyStatement::writeOutput(ostream &output, const string &basename, bool min
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
HomotopyStatement::writeJsonOutput(ostream &output) const
|
||||
{
|
||||
deriv_node_temp_terms_t tef_terms;
|
||||
output << "{\"statementName\": \"homotopy\", "
|
||||
<< "\"values\": [";
|
||||
for (homotopy_values_t::const_iterator it = homotopy_values.begin();
|
||||
it != homotopy_values.end(); it++)
|
||||
{
|
||||
if (it != homotopy_values.begin())
|
||||
output << ", ";
|
||||
output << "{\"name\": \"" << symbol_table.getName(it->first) << "\""
|
||||
<< ", \"initial_value\": \"";
|
||||
if (it->second.first != NULL)
|
||||
it->second.first->writeJsonOutput(output, oMatlabOutsideModel, temporary_terms_t(), tef_terms);
|
||||
else
|
||||
output << "NaN";
|
||||
output << "\", \"final_value\": \"";
|
||||
it->second.second->writeJsonOutput(output, oMatlabOutsideModel, temporary_terms_t(), tef_terms);
|
||||
output << "\"}";
|
||||
}
|
||||
output << "]"
|
||||
<< "}";
|
||||
}
|
||||
|
||||
SaveParamsAndSteadyStateStatement::SaveParamsAndSteadyStateStatement(const string &filename_arg) :
|
||||
filename(filename_arg)
|
||||
{
|
||||
|
@ -509,6 +548,14 @@ SaveParamsAndSteadyStateStatement::writeOutput(ostream &output, const string &ba
|
|||
output << "save_params_and_steady_state('" << filename << "');" << endl;
|
||||
}
|
||||
|
||||
void
|
||||
SaveParamsAndSteadyStateStatement::writeJsonOutput(ostream &output) const
|
||||
{
|
||||
output << "{\"statementName\": \"save_params_and_steady_state\""
|
||||
<< ", \"filename\": \"" << filename << "\""
|
||||
<< "}";
|
||||
}
|
||||
|
||||
LoadParamsAndSteadyStateStatement::LoadParamsAndSteadyStateStatement(const string &filename,
|
||||
const SymbolTable &symbol_table_arg,
|
||||
WarningConsolidation &warnings) :
|
||||
|
@ -574,6 +621,24 @@ LoadParamsAndSteadyStateStatement::writeOutput(ostream &output, const string &ba
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
LoadParamsAndSteadyStateStatement::writeJsonOutput(ostream &output) const
|
||||
{
|
||||
deriv_node_temp_terms_t tef_terms;
|
||||
output << "{\"statementName\": \"load_params_and_steady_state\""
|
||||
<< "\"values\": [";
|
||||
for (map<int, string>::const_iterator it = content.begin();
|
||||
it != content.end(); it++)
|
||||
{
|
||||
if (it != content.begin())
|
||||
output << ", ";
|
||||
output << "{\"name\": \"" << symbol_table.getName(it->first) << "\""
|
||||
<< ", \"value\": \"" << it->second << "\"}";
|
||||
}
|
||||
output << "]"
|
||||
<< "}";
|
||||
}
|
||||
|
||||
void
|
||||
LoadParamsAndSteadyStateStatement::fillEvalContext(eval_context_t &eval_context) const
|
||||
{
|
||||
|
|
|
@ -128,6 +128,7 @@ private:
|
|||
public:
|
||||
InitvalFileStatement(const string &filename_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class HistvalFileStatement : public Statement
|
||||
|
@ -137,6 +138,7 @@ private:
|
|||
public:
|
||||
HistvalFileStatement(const string &filename_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class HomotopyStatement : public Statement
|
||||
|
@ -152,6 +154,7 @@ public:
|
|||
HomotopyStatement(const homotopy_values_t &homotopy_values_arg,
|
||||
const SymbolTable &symbol_table_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class SaveParamsAndSteadyStateStatement : public Statement
|
||||
|
@ -161,6 +164,7 @@ private:
|
|||
public:
|
||||
SaveParamsAndSteadyStateStatement(const string &filename_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class LoadParamsAndSteadyStateStatement : public Statement
|
||||
|
@ -177,6 +181,7 @@ public:
|
|||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
//! Fill eval context with parameters/variables values
|
||||
void fillEvalContext(eval_context_t &eval_context) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -2934,7 +2934,7 @@ ParsingDriver::prior_posterior_function(bool prior_func)
|
|||
void
|
||||
ParsingDriver::add_ramsey_constraints_statement()
|
||||
{
|
||||
mod_file->addStatement(new RamseyConstraintsStatement(ramsey_constraints));
|
||||
mod_file->addStatement(new RamseyConstraintsStatement(mod_file->symbol_table, ramsey_constraints));
|
||||
ramsey_constraints.clear();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2003-2016 Dynare Team
|
||||
* Copyright (C) 2003-2017 Dynare Team
|
||||
*
|
||||
* This file is part of Dynare.
|
||||
*
|
||||
|
@ -67,6 +67,34 @@ AbstractShocksStatement::writeDetShocks(ostream &output) const
|
|||
output << "M_.exo_det_length = " << exo_det_length << ";\n";
|
||||
}
|
||||
|
||||
void
|
||||
AbstractShocksStatement::writeJsonDetShocks(ostream &output) const
|
||||
{
|
||||
deriv_node_temp_terms_t tef_terms;
|
||||
output << "\"deterministic_shocks\": [";
|
||||
for (det_shocks_t::const_iterator it = det_shocks.begin();
|
||||
it != det_shocks.end(); it++)
|
||||
{
|
||||
if (it != det_shocks.begin())
|
||||
output << ", ";
|
||||
output << "{\"var\": \"" << symbol_table.getName(it->first) << "\", "
|
||||
<< "\"values\": [";
|
||||
for (vector<DetShockElement>::const_iterator it1 = it->second.begin();
|
||||
it1 != it->second.end(); it1++)
|
||||
{
|
||||
if (it1 != it->second.begin())
|
||||
output << ", ";
|
||||
output << "{\"period1\": " << it1->period1 << ", "
|
||||
<< "\"period2\": " << it1->period2 << ", "
|
||||
<< "\"value\": \"";
|
||||
it1->value->writeJsonOutput(output, oMatlabOutsideModel, temporary_terms_t(), tef_terms);
|
||||
output << "\"}";
|
||||
}
|
||||
output << "]}";
|
||||
}
|
||||
output << "]";
|
||||
}
|
||||
|
||||
ShocksStatement::ShocksStatement(bool overwrite_arg,
|
||||
const det_shocks_t &det_shocks_arg,
|
||||
const var_and_std_shocks_t &var_shocks_arg,
|
||||
|
@ -123,6 +151,73 @@ ShocksStatement::writeOutput(ostream &output, const string &basename, bool minim
|
|||
output << "M_.sigma_e_is_diagonal = 1;" << endl;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ShocksStatement::writeJsonOutput(ostream &output) const
|
||||
{
|
||||
deriv_node_temp_terms_t tef_terms;
|
||||
output << "{\"statementName\": \"shocks\""
|
||||
<< ", \"overwrite\": ";
|
||||
if (overwrite)
|
||||
output << "true";
|
||||
else
|
||||
output << "false";
|
||||
if (!det_shocks.empty())
|
||||
{
|
||||
output << ", ";
|
||||
writeJsonDetShocks(output);
|
||||
}
|
||||
output<< ", \"variance\": [";
|
||||
for (var_and_std_shocks_t::const_iterator it = var_shocks.begin(); it != var_shocks.end(); it++)
|
||||
{
|
||||
if (it != var_shocks.begin())
|
||||
output << ", ";
|
||||
output << "{\"name\": \"" << symbol_table.getName(it->first) << "\", "
|
||||
<< "\"variance\": \"";
|
||||
it->second->writeJsonOutput(output, oMatlabOutsideModel, temporary_terms_t(), tef_terms);
|
||||
output << "\"}";
|
||||
}
|
||||
output << "]"
|
||||
<< ", \"stderr\": [";
|
||||
for (var_and_std_shocks_t::const_iterator it = std_shocks.begin(); it != std_shocks.end(); it++)
|
||||
{
|
||||
if (it != std_shocks.begin())
|
||||
output << ", ";
|
||||
output << "{\"name\": \"" << symbol_table.getName(it->first) << "\", "
|
||||
<< "\"stderr\": \"";
|
||||
it->second->writeJsonOutput(output, oMatlabOutsideModel, temporary_terms_t(), tef_terms);
|
||||
output << "\"}";
|
||||
}
|
||||
output << "]"
|
||||
<< ", \"covariance\": [";
|
||||
for (covar_and_corr_shocks_t::const_iterator it = covar_shocks.begin(); it != covar_shocks.end(); it++)
|
||||
{
|
||||
if (it != covar_shocks.begin())
|
||||
output << ", ";
|
||||
output << "{"
|
||||
<< "\"name\": \"" << symbol_table.getName(it->first.first) << "\", "
|
||||
<< "\"name2\": \"" << symbol_table.getName(it->first.second) << "\", "
|
||||
<< "\"covariance\": \"";
|
||||
it->second->writeJsonOutput(output, oMatlabOutsideModel, temporary_terms_t(), tef_terms);
|
||||
output << "\"}";
|
||||
}
|
||||
output << "]"
|
||||
<< ", \"correlation\": [";
|
||||
for (covar_and_corr_shocks_t::const_iterator it = corr_shocks.begin(); it != corr_shocks.end(); it++)
|
||||
{
|
||||
if (it != corr_shocks.begin())
|
||||
output << ", ";
|
||||
output << "{"
|
||||
<< "\"name\": \"" << symbol_table.getName(it->first.first) << "\", "
|
||||
<< "\"name2\": \"" << symbol_table.getName(it->first.second) << "\", "
|
||||
<< "\"correlation\": \"";
|
||||
it->second->writeJsonOutput(output, oMatlabOutsideModel, temporary_terms_t(), tef_terms);
|
||||
output << "\"}";
|
||||
}
|
||||
output << "]"
|
||||
<< "}";
|
||||
}
|
||||
|
||||
void
|
||||
ShocksStatement::writeVarOrStdShock(ostream &output, var_and_std_shocks_t::const_iterator &it,
|
||||
bool stddev) const
|
||||
|
@ -430,6 +525,26 @@ MomentCalibration::writeOutput(ostream &output, const string &basename, bool min
|
|||
output << "};" << endl;
|
||||
}
|
||||
|
||||
void
|
||||
MomentCalibration::writeJsonOutput(ostream &output) const
|
||||
{
|
||||
output << "{\"statementName\": \"moment_calibration\""
|
||||
<< ", \"moment_calibration_criteria\": [";
|
||||
for (constraints_t::const_iterator it = constraints.begin(); it != constraints.end(); it++)
|
||||
{
|
||||
if (it != constraints.begin())
|
||||
output << ", ";
|
||||
output << "{\"endogenous1\": \"" << symbol_table.getName(it->endo1) << "\""
|
||||
<< ", \"endogenous2\": \"" << symbol_table.getName(it->endo2) << "\""
|
||||
<< ", \"lags\": \"" << it->lags << "\""
|
||||
<< ", \"lower_bound\": \"" << it->lower_bound << "\""
|
||||
<< ", \"upper_bound\": \"" << it->upper_bound << "\""
|
||||
<< "}";
|
||||
}
|
||||
output << "]"
|
||||
<< "}";
|
||||
}
|
||||
|
||||
IrfCalibration::IrfCalibration(const constraints_t &constraints_arg,
|
||||
const SymbolTable &symbol_table_arg,
|
||||
const OptionsList &options_list_arg)
|
||||
|
@ -455,6 +570,32 @@ IrfCalibration::writeOutput(ostream &output, const string &basename, bool minima
|
|||
output << "};" << endl;
|
||||
}
|
||||
|
||||
void
|
||||
IrfCalibration::writeJsonOutput(ostream &output) const
|
||||
{
|
||||
output << "{\"statementName\": \"irf_calibration\"";
|
||||
if (options_list.getNumberOfOptions())
|
||||
{
|
||||
output << ", ";
|
||||
options_list.writeJsonOutput(output);
|
||||
}
|
||||
|
||||
output << ", \"irf_restrictions\": [";
|
||||
for (constraints_t::const_iterator it = constraints.begin(); it != constraints.end(); it++)
|
||||
{
|
||||
if (it != constraints.begin())
|
||||
output << ", ";
|
||||
output << "{\"endogenous\": \"" << symbol_table.getName(it->endo) << "\""
|
||||
<< ", \"exogenous\": \"" << symbol_table.getName(it->exo) << "\""
|
||||
<< ", \"periods\": \"" << it->periods << "\""
|
||||
<< ", \"lower_bound\": \"" << it->lower_bound << "\""
|
||||
<< ", \"upper_bound\": \"" << it->upper_bound << "\""
|
||||
<< "}";
|
||||
}
|
||||
output << "]"
|
||||
<< "}";
|
||||
}
|
||||
|
||||
ShockGroupsStatement::ShockGroupsStatement(const group_t &shock_groups_arg, const string &name_arg)
|
||||
: shock_groups(shock_groups_arg), name(name_arg)
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2003-2016 Dynare Team
|
||||
* Copyright (C) 2003-2017 Dynare Team
|
||||
*
|
||||
* This file is part of Dynare.
|
||||
*
|
||||
|
@ -50,6 +50,7 @@ protected:
|
|||
const det_shocks_t det_shocks;
|
||||
const SymbolTable &symbol_table;
|
||||
void writeDetShocks(ostream &output) const;
|
||||
void writeJsonDetShocks(ostream &output) const;
|
||||
|
||||
AbstractShocksStatement(bool mshocks_arg, bool overwrite_arg,
|
||||
const det_shocks_t &det_shocks_arg,
|
||||
|
@ -77,8 +78,9 @@ public:
|
|||
const covar_and_corr_shocks_t &covar_shocks_arg,
|
||||
const covar_and_corr_shocks_t &corr_shocks_arg,
|
||||
const SymbolTable &symbol_table_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class MShocksStatement : public AbstractShocksStatement
|
||||
|
@ -120,6 +122,7 @@ public:
|
|||
MomentCalibration(const constraints_t &constraints_arg,
|
||||
const SymbolTable &symbol_table_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class IrfCalibration : public Statement
|
||||
|
@ -141,6 +144,7 @@ public:
|
|||
const SymbolTable &symbol_table_arg,
|
||||
const OptionsList &options_list_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class ShockGroupsStatement : public Statement
|
||||
|
|
|
@ -109,6 +109,14 @@ NativeStatement::writeOutput(ostream &output, const string &basename, bool minim
|
|||
output << ns << endl;
|
||||
}
|
||||
|
||||
void
|
||||
NativeStatement::writeJsonOutput(ostream &output) const
|
||||
{
|
||||
output << "{\"statementName\": \"native\""
|
||||
<< ", \"string\": \"" << native_statement << "\""
|
||||
<< "}";
|
||||
}
|
||||
|
||||
VerbatimStatement::VerbatimStatement(const string &verbatim_statement_arg) :
|
||||
verbatim_statement(verbatim_statement_arg)
|
||||
{
|
||||
|
@ -120,6 +128,14 @@ VerbatimStatement::writeOutput(ostream &output, const string &basename, bool min
|
|||
output << verbatim_statement << endl;
|
||||
}
|
||||
|
||||
void
|
||||
VerbatimStatement::writeJsonOutput(ostream &output) const
|
||||
{
|
||||
output << "{\"statementName\": \"verbatim\""
|
||||
<< ", \"string\": \"" << verbatim_statement << "\""
|
||||
<< "}";
|
||||
}
|
||||
|
||||
void
|
||||
OptionsList::writeOutput(ostream &output) const
|
||||
{
|
||||
|
@ -213,6 +229,100 @@ OptionsList::writeOutput(ostream &output, const string &option_group) const
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
OptionsList::writeJsonOutput(ostream &output) const
|
||||
{
|
||||
if (getNumberOfOptions() == 0)
|
||||
return;
|
||||
|
||||
output << "\"options\": {";
|
||||
for (num_options_t::const_iterator it = num_options.begin();
|
||||
it != num_options.end();)
|
||||
{
|
||||
output << "\""<< it->first << "\": " << it->second;
|
||||
it++;
|
||||
if (it != num_options.end() ||
|
||||
!(paired_num_options.empty() &&
|
||||
string_options.empty() &&
|
||||
date_options.empty() &&
|
||||
symbol_list_options.empty() &&
|
||||
vector_int_options.empty()))
|
||||
output << ", ";
|
||||
}
|
||||
|
||||
for (paired_num_options_t::const_iterator it = paired_num_options.begin();
|
||||
it != paired_num_options.end();)
|
||||
{
|
||||
output << "\""<< it->first << "\": [" << it->second.first << " " << it->second.second << "]";
|
||||
it++;
|
||||
if (it != paired_num_options.end() ||
|
||||
!(string_options.empty() &&
|
||||
date_options.empty() &&
|
||||
symbol_list_options.empty() &&
|
||||
vector_int_options.empty()))
|
||||
output << ", ";
|
||||
}
|
||||
|
||||
for (string_options_t::const_iterator it = string_options.begin();
|
||||
it != string_options.end();)
|
||||
{
|
||||
output << "\""<< it->first << "\": \"" << it->second << "\"";
|
||||
it++;
|
||||
if (it != string_options.end() ||
|
||||
!(date_options.empty() &&
|
||||
symbol_list_options.empty() &&
|
||||
vector_int_options.empty()))
|
||||
output << ", ";
|
||||
}
|
||||
|
||||
for (date_options_t::const_iterator it = date_options.begin();
|
||||
it != date_options.end();)
|
||||
{
|
||||
output << "\""<< it->first << "\": \"" << it->second << "\"";
|
||||
it++;
|
||||
if (it != date_options.end() ||
|
||||
!(symbol_list_options.empty() &&
|
||||
vector_int_options.empty()))
|
||||
output << ", ";
|
||||
}
|
||||
|
||||
for (symbol_list_options_t::const_iterator it = symbol_list_options.begin();
|
||||
it != symbol_list_options.end(); it++)
|
||||
{
|
||||
output << "\""<< it->first << "\":";
|
||||
it->second.writeJsonOutput(output);
|
||||
it++;
|
||||
if (it != symbol_list_options.end() ||
|
||||
!vector_int_options.empty())
|
||||
output << ", ";
|
||||
}
|
||||
|
||||
for (vec_int_options_t::const_iterator it = vector_int_options.begin();
|
||||
it != vector_int_options.end();)
|
||||
{
|
||||
output << "\""<< it->first << "\": [";
|
||||
if (it->second.size() > 1)
|
||||
{
|
||||
for (vector<int>::const_iterator viit = it->second.begin();
|
||||
viit != it->second.end();)
|
||||
{
|
||||
output << *viit;
|
||||
viit++;
|
||||
if (viit != it->second.end())
|
||||
output << ", ";
|
||||
}
|
||||
}
|
||||
else
|
||||
output << it->second.front() << endl;
|
||||
output << "]";
|
||||
it++;
|
||||
if (it != vector_int_options.end())
|
||||
output << ", ";
|
||||
}
|
||||
|
||||
output << "}";
|
||||
}
|
||||
|
||||
void
|
||||
OptionsList::clear()
|
||||
{
|
||||
|
@ -223,3 +333,14 @@ OptionsList::clear()
|
|||
symbol_list_options.clear();
|
||||
vector_int_options.clear();
|
||||
}
|
||||
|
||||
int
|
||||
OptionsList::getNumberOfOptions() const
|
||||
{
|
||||
return num_options.size()
|
||||
+ paired_num_options.size()
|
||||
+ string_options.size()
|
||||
+ date_options.size()
|
||||
+ symbol_list_options.size()
|
||||
+ vector_int_options.size();
|
||||
}
|
||||
|
|
|
@ -154,6 +154,7 @@ private:
|
|||
public:
|
||||
NativeStatement(const string &native_statement_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class VerbatimStatement : public Statement
|
||||
|
@ -163,6 +164,7 @@ private:
|
|||
public:
|
||||
VerbatimStatement(const string &verbatim_statement_arg);
|
||||
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
|
||||
virtual void writeJsonOutput(ostream &output) const;
|
||||
};
|
||||
|
||||
class OptionsList
|
||||
|
@ -180,8 +182,10 @@ public:
|
|||
date_options_t date_options;
|
||||
symbol_list_options_t symbol_list_options;
|
||||
vec_int_options_t vector_int_options;
|
||||
int getNumberOfOptions() const;
|
||||
void writeOutput(ostream &output) const;
|
||||
void writeOutput(ostream &output, const string &option_group) const;
|
||||
void writeJsonOutput(ostream &output) const;
|
||||
void clear();
|
||||
};
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2003-2014 Dynare Team
|
||||
* Copyright (C) 2003-2017 Dynare Team
|
||||
*
|
||||
* This file is part of Dynare.
|
||||
*
|
||||
|
@ -39,6 +39,20 @@ SymbolList::writeOutput(const string &varname, ostream &output) const
|
|||
output << ");" << endl;
|
||||
}
|
||||
|
||||
void
|
||||
SymbolList::writeJsonOutput(ostream &output) const
|
||||
{
|
||||
output << "\"symbol_list\": [";
|
||||
for (vector<string>::const_iterator it = symbols.begin();
|
||||
it != symbols.end(); ++it)
|
||||
{
|
||||
if (it != symbols.begin())
|
||||
output << ",";
|
||||
output << "\"" << *it << "\"";
|
||||
}
|
||||
output << "]";
|
||||
}
|
||||
|
||||
void
|
||||
SymbolList::clear()
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2003-2011 Dynare Team
|
||||
* Copyright (C) 2003-2017 Dynare Team
|
||||
*
|
||||
* This file is part of Dynare.
|
||||
*
|
||||
|
@ -39,6 +39,8 @@ public:
|
|||
//! Output content in Matlab format
|
||||
/*! Creates a string array for Matlab, stored in variable "varname" */
|
||||
void writeOutput(const string &varname, ostream &output) const;
|
||||
//! Write JSON output
|
||||
void writeJsonOutput(ostream &output) const;
|
||||
//! Clears all content
|
||||
void clear();
|
||||
//! Get a copy of the string vector
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
*.prn
|
||||
*_simul
|
||||
*-macroexp.mod
|
||||
*.json
|
||||
|
||||
wsOct
|
||||
/run_test_octave_output.txt
|
||||
|
|
|
@ -893,7 +893,11 @@ clean-local:
|
|||
$(patsubst %.trs, %.log, $(M_TRS_FILES)) \
|
||||
$(patsubst %.trs, %.log, $(M_XFAIL_TRS_FILES)) \
|
||||
$(patsubst %.trs, %.log, $(O_TRS_FILES)) \
|
||||
$(patsubst %.trs, %.log, $(O_XFAIL_TRS_FILES))
|
||||
$(patsubst %.trs, %.log, $(O_XFAIL_TRS_FILES)) \
|
||||
$(patsubst %.trs, %.json, $(M_TRS_FILES)) \
|
||||
$(patsubst %.trs, %.json, $(M_XFAIL_TRS_FILES)) \
|
||||
$(patsubst %.trs, %.json, $(O_TRS_FILES)) \
|
||||
$(patsubst %.trs, %.json, $(O_XFAIL_TRS_FILES))
|
||||
|
||||
rm -f $(patsubst %.mod, %.m, $(MODFILES)) \
|
||||
$(patsubst %.mod, %_static.*, $(MODFILES)) \
|
||||
|
|
Loading…
Reference in New Issue