void CYAddressOf::Output(std::ostream &out, CYFlags flags) const {
rhs_->Output(out, 1, CYLeft(flags));
- out << ".addressOf()";
+ out << ".$cya()";
}
void CYArgument::Output(std::ostream &out) const {
out << ';';
}
+void CYDirectMember::Output(std::ostream &out, CYFlags flags) const {
+ object_->Output(out, Precedence(), CYLeft(flags));
+ if (const char *word = property_->Word())
+ out << '.' << word;
+ else {
+ out << '[';
+ property_->Output(out, CYNoFlags);
+ out << ']';
+ }
+}
+
void CYDoWhile::Output(std::ostream &out) const {
// XXX: extra space character!
out << "do ";
void CYIndirect::Output(std::ostream &out, CYFlags flags) const {
rhs_->Output(out, 1, CYLeft(flags));
- out << "[0]";
+ out << ".$cyi";
+}
+
+void CYIndirectMember::Output(std::ostream &out, CYFlags flags) const {
+ object_->Output(out, Precedence(), CYLeft(flags));
+ out << ".$cyi";
+ if (const char *word = property_->Word())
+ out << '.' << word;
+ else {
+ out << '[';
+ property_->Output(out, CYNoFlags);
+ out << ']';
+ }
}
void CYInfix::Output(std::ostream &out, CYFlags flags) const {
out << ')';
}
-void CYMember::Output(std::ostream &out, CYFlags flags) const {
- object_->Output(out, Precedence(), CYLeft(flags));
- if (const char *word = property_->Word())
- out << '.' << word;
- else {
- out << '[';
- property_->Output(out, CYNoFlags);
- out << ']';
- }
-}
-
void CYMessage::Output(std::ostream &out, bool replace) const {
if (next_ != NULL)
next_->Output(out, replace);
out << "try";
try_->Output(out, true);
if (catch_ != NULL)
- out << catch_;
+ catch_->Output(out);
if (finally_ != NULL) {
out << "finally";
finally_->Output(out, true);