$E($ CYAssign($V("$cyp"), $C1($V("object_getClass"), cys)))->*
$E($ CYAssign(cyc, $C3($V("objc_allocateClassPair"), cys, name, $D(0))))->*
$E($ CYAssign($V("$cym"), $C1($V("object_getClass"), cyc)))->*
+ protocols_->Replace(context)->*
fields_->Replace(context)->*
messages_->Replace(context, false)->*
$E($C1($V("objc_registerClassPair"), cyc))->*
return tag_ == NULL ? next : $ CYSelectorPart(tag_, name_ != NULL, next);
}
+CYStatement *CYProtocol::Replace(CYContext &context) const { $T(NULL)
+ return $ CYBlock($$->*
+ next_->Replace(context)->*
+ $E($C2($V("class_addProtocol"),
+ $V("$cyc"), name_
+ ))
+ );
+}
+
CYExpression *CYSelector::Replace(CYContext &context) {
return $N1($V("Selector"), name_->Replace(context));
}
std::ostringstream str;
for (const CYSelectorPart *part(this); part != NULL; part = part->next_) {
if (part->name_ != NULL)
- str << part->name_->Value();
+ str << part->name_->Word();
if (part->value_)
str << ':';
}