}
CYStatement *CYBlock::Replace(CYContext &context) {
- statements_ = statements_->ReplaceAll(context);
+ context.ReplaceAll(statements_);
if (statements_ == NULL)
return $ CYEmpty();
return this;
void CYClause::Replace(CYContext &context) { $T()
context.Replace(case_);
- statements_ = statements_->ReplaceAll(context);
+ context.ReplaceAll(statements_);
next_->Replace(context);
}
}
CYExpression *CYCompound::Replace(CYContext &context) {
- expressions_ = expressions_->ReplaceAll(context);
- return expressions_ == NULL ? NULL : this;
+ context.ReplaceAll(expressions_);
+ return this;
}
CYFunctionParameter *CYComprehension::Parameters(CYContext &context) const { $T(NULL)
return this;
}
-CYExpression *CYExpression::ReplaceAll(CYContext &context) { $T(NULL)
- CYExpression *replace(this);
- context.Replace(replace);
-
- if (CYExpression *next = next_->ReplaceAll(context))
- replace->SetNext(next);
- else
- replace->SetNext(next_);
-
- return replace;
-}
-
CYNumber *CYFalse::Number(CYContext &context) {
return $D(0);
}
CYScope scope(CYScopeProgram, context, statements_);
context.nextlocal_ = $ CYNonLocal();
- statements_ = statements_->ReplaceAll(context);
+ context.ReplaceAll(statements_);
context.NonLocal(statements_);
scope.Close();
return this;
}
-CYStatement *CYStatement::ReplaceAll(CYContext &context) { $T(NULL)
- CYStatement *replace(this);
- context.Replace(replace);
- replace->SetNext(next_->ReplaceAll(context));
- return replace->Collapse(context);
-}
-
CYString *CYString::Concat(CYContext &context, CYString *rhs) const {
size_t size(size_ + rhs->size_);
char *value($ char[size + 1]);