PIEvaluator code brush
This commit is contained in:
@@ -190,7 +190,7 @@ void PIEvaluatorContent::addFunction(const PIString & name, int args) {
|
||||
|
||||
int PIEvaluatorContent::addVariable(const PIString & name, const complexd & val) {
|
||||
variables << PIEvaluatorTypes::Variable(name, val);
|
||||
return variables.size_s()-1;
|
||||
return variables.size_s() - 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -480,19 +480,23 @@ bool PIEvaluator::fillElements() {
|
||||
}
|
||||
}
|
||||
cnum = 0;
|
||||
PIVector<PIPair<int, int> > var_index;
|
||||
typedef PIPair<int, int> PairII;
|
||||
PIVector<PairII> var_index;
|
||||
for (int i = 0; i < content.variables.size_s(); ++i)
|
||||
var_index << PIPair<int, int>(i, content.variables[i].name.length());
|
||||
var_index.sort([](const PIPair<int, int> * v1, const PIPair<int, int> * v2)->int {return v1->second > v2->second ? -1 : (v1->second == v2->second ? 0 : 1);});
|
||||
var_index << PairII(i, content.variables[i].name.length());
|
||||
var_index.sort([](const PairII * v1, const PairII * v2) -> int {
|
||||
return v1->second > v2->second ? -1 : (v1->second == v2->second ? 0 : 1);
|
||||
});
|
||||
for (int i = 0; i < var_index.size_s(); i++) {
|
||||
curfind = content.variables[var_index[i].first].name;
|
||||
int vind = var_index[i].first;
|
||||
curfind = content.variables[vind].name;
|
||||
flen = curfind.length();
|
||||
fstart = 0;
|
||||
while (fstart >= 0) {
|
||||
fstart = tmps.find(curfind, fstart);
|
||||
if (fstart < 0) break;
|
||||
for (int j = fstart; j < fstart + flen; j++) {
|
||||
elements[j].set(etVariable, cnum, var_index[i].first);
|
||||
elements[j].set(etVariable, cnum, vind);
|
||||
tmps.replace(j, 1, fc);
|
||||
}
|
||||
cnum++;
|
||||
|
||||
Reference in New Issue
Block a user