test_->Output(out, Precedence() - 1, CYLeft(flags));
out << ' ' << '?' << ' ';
if (true_ != NULL)
- true_->Output(out, CYAssign::Precedence_, CYNoFlags);
+ true_->Output(out, CYAssign::Precedence_, CYNoColon);
out << ' ' << ':' << ' ';
false_->Output(out, CYAssign::Precedence_, CYRight(flags));
}
void CYClause::Output(CYOutput &out) const {
out << '\t';
- if (value_ != NULL)
- out << "case" << ' ' << *value_;
- else
+ if (value_ == NULL)
out << "default";
+ else {
+ out << "case" << ' ';
+ value_->Output(out, CYNoColon);
+ }
out << ':' << '\n';
++out.indent_;
out << code_;
out << Value();
}
+void CYResolveMember::Output(CYOutput &out, CYFlags flags) const {
+ object_->Output(out, Precedence(), CYLeft(flags));
+ if (const char *word = property_->Word())
+ out << "::" << word;
+ else
+ out << "::" << '[' << *property_ << ']';
+}
+
void CYReturn::Output(CYOutput &out, CYFlags flags) const {
out << "return";
if (value_ != NULL)
out << '\t' << '}';
}
+void CYSymbol::Output(CYOutput &out, CYFlags flags) const {
+ bool protect((flags & CYNoColon) != 0);
+ if (protect)
+ out << '(';
+ out << ':' << name_;
+ if (protect)
+ out << ')';
+}
+
void CYThis::Output(CYOutput &out, CYFlags flags) const {
out << "this";
}