preprocessor: reindex equations marked as [static]
parent
e045d42c12
commit
b27a60d06c
|
@ -4294,6 +4294,15 @@ DynamicModel::addStaticOnlyEquation(expr_t eq, int lineno)
|
|||
static_only_equations_lineno.push_back(lineno);
|
||||
}
|
||||
|
||||
void
|
||||
DynamicModel::reindexStaticOnlyEquations(SymbolTable &orig_symbol_table)
|
||||
{
|
||||
vector<BinaryOpNode *>eqbak = static_only_equations;
|
||||
static_only_equations.clear();
|
||||
for (size_t i = 0; i < eqbak.size(); i++)
|
||||
addStaticOnlyEquation(eqbak[i]->cloneDynamic(*this), static_only_equations_lineno[i]);
|
||||
}
|
||||
|
||||
size_t
|
||||
DynamicModel::staticOnlyEquationsNbr() const
|
||||
{
|
||||
|
|
|
@ -243,6 +243,9 @@ public:
|
|||
//! Adds an equation marked as [static]
|
||||
void addStaticOnlyEquation(expr_t eq, int lineno);
|
||||
|
||||
//! reindex equations marked as [static]
|
||||
void reindexStaticOnlyEquations(SymbolTable &orig_symbol_table);
|
||||
|
||||
//! Returns number of static only equations
|
||||
size_t staticOnlyEquationsNbr() const;
|
||||
|
||||
|
|
|
@ -314,6 +314,7 @@ ModFile::transformPass(bool nostrict)
|
|||
SymbolTable orig_symbol_table = symbol_table;
|
||||
symbol_table.rmExo(unusedExo);
|
||||
dynamic_model.reindex(orig_symbol_table);
|
||||
dynamic_model.reindexStaticOnlyEquations(orig_symbol_table);
|
||||
vector<Statement *> orig_statements = statements;
|
||||
statements.clear();
|
||||
for (vector<Statement *>::iterator it = orig_statements.begin(); it != orig_statements.end(); it++)
|
||||
|
|
Loading…
Reference in New Issue