cy::Syntax::Catch *rescue(
$ cy::Syntax::Catch(cye, $$->*
- $ CYIf($ CYIdentical($M($ CYVariable(cye), $S("$cyk")), $ CYVariable(unique)), $$->*
- $ CYReturn($M($ CYVariable(cye), $S("$cyv"))))->*
- $ cy::Syntax::Throw($ CYVariable(cye))));
+ $ CYIf($ CYIdentical($M($V(cye), $S("$cyk")), $V(unique)), $$->*
+ $ CYReturn($M($V(cye), $S("$cyv"))))->*
+ $ cy::Syntax::Throw($V(cye))));
- declare = declare->Replace(context);
+ context.Replace(declare);
rescue->Replace(context);
statements = $$->*
}
CYExpression *CYDeclaration::ForEachIn(CYContext &context) {
- return $ CYVariable(identifier_);
+ return $V(identifier_);
}
CYExpression *CYDeclaration::Replace(CYContext &context) {
context.Replace(identifier_);
context.scope_->Declare(context, identifier_, CYIdentifierVariable);
- return $ CYVariable(identifier_);
+ return $V(identifier_);
}
CYProperty *CYDeclarations::Property(CYContext &context) { $T(NULL)
}
CYStatement *CYForInComprehension::Replace(CYContext &context, CYStatement *statement) const {
- return $ CYForIn($ CYVariable(name_), set_, CYComprehension::Replace(context, statement));
+ return $ CYForIn($V(name_), set_, CYComprehension::Replace(context, statement));
}
CYStatement *CYForEachIn::Replace(CYContext &context) {
}
CYFunctionParameter *CYFunctionParameter::Replace(CYContext &context, CYBlock &code) {
- name_ = name_->Replace(context);
+ context.Replace(name_);
context.scope_->Declare(context, name_, CYIdentifierArgument);
if (next_ != NULL)
next_ = next_->Replace(context, code);
CYFunctionParameter *CYOptionalFunctionParameter::Replace(CYContext &context, CYBlock &code) {
CYFunctionParameter *parameter($ CYFunctionParameter(name_, next_));
parameter = parameter->Replace(context, code);
- initializer_ = initializer_->Replace(context);
+ context.Replace(initializer_);
- CYVariable *name($ CYVariable(name_));
+ CYVariable *name($V(name_));
code.AddPrev($ CYIf($ CYIdentical($ CYTypeOf(name), $S("undefined")), $$->*
$E($ CYAssign(name, initializer_))
));
if (context.nonlocal_ != NULL) {
CYProperty *value(value_ == NULL ? NULL : $ CYProperty($S("$cyv"), value_));
return $ cy::Syntax::Throw($ CYObject(
- $ CYProperty($S("$cyk"), $ CYVariable(context.nonlocal_->Target(context)), value)
+ $ CYProperty($S("$cyk"), $V(context.nonlocal_->Target(context)), value)
));
}
}
CYExpression *CYVariable::Replace(CYContext &context) {
- name_ = name_->Replace(context);
+ context.Replace(name_);
return this;
}