diff --git a/preprocessor/ExprNode.cc b/preprocessor/ExprNode.cc index 8b007dd3a..b9d4ae8e2 100644 --- a/preprocessor/ExprNode.cc +++ b/preprocessor/ExprNode.cc @@ -422,20 +422,6 @@ NumConstNode::substituteExpectation(subst_table_t &subst_table, vector(this); } -VariableNode::VariableNode(DataTree &datatree_arg, int symb_id_arg, int lag_arg) : - ExprNode(datatree_arg), - symb_id(symb_id_arg), - type(datatree.symbol_table.getType(symb_id_arg)), - lag(lag_arg) -{ - // Add myself to the variable map - datatree.variable_node_map[make_pair(symb_id, lag)] = this; - - // It makes sense to allow a lead/lag on parameters: during steady state calibration, endogenous and parameters can be swapped - assert(type != eExternalFunction - && (lag == 0 || (type != eModelLocalVariable && type != eModFileLocalVariable))); -} - bool NumConstNode::isNumConstNodeEqualTo(double value) const { @@ -469,6 +455,20 @@ NumConstNode::removeTrendLeadLag(map trend_symbols_map) const return const_cast(this); } +VariableNode::VariableNode(DataTree &datatree_arg, int symb_id_arg, int lag_arg) : + ExprNode(datatree_arg), + symb_id(symb_id_arg), + type(datatree.symbol_table.getType(symb_id_arg)), + lag(lag_arg) +{ + // Add myself to the variable map + datatree.variable_node_map[make_pair(symb_id, lag)] = this; + + // It makes sense to allow a lead/lag on parameters: during steady state calibration, endogenous and parameters can be swapped + assert(type != eExternalFunction + && (lag == 0 || (type != eModelLocalVariable && type != eModFileLocalVariable))); +} + void VariableNode::prepareForDerivation() {