}
_finline CYFlags CYLeft(CYFlags flags) {
- return flags;
+ return flags & ~CYNoDangle;
}
_finline CYFlags CYRight(CYFlags flags) {
}
_finline CYFlags CYCenter(CYFlags flags) {
- return CYRight(flags);
+ return CYLeft(CYRight(flags));
}
#define CYPA 16
void CYDoWhile::Output(CYOutput &out, CYFlags flags) const {
out << "do";
- code_->Single(out, CYNoFlags);
+ code_->Single(out, CYCenter(flags));
out << "while" << ' ' << '(' << *test_ << ')';
}
out.Terminate();
out << increment_;
out << ')';
- code_->Single(out, CYNoFlags);
+ code_->Single(out, CYRight(flags));
}
void CYForEachIn::Output(CYOutput &out, CYFlags flags) const {
out << "if" << ' ' << '(' << *test_ << ')';
CYFlags right(protect ? CYNoFlags : CYRight(flags));
+
CYFlags jacks(CYNoDangle);
if (false_ == NULL)
jacks |= right;
+ else
+ jacks |= protect ? CYNoFlags : CYCenter(flags);
bool single(true_->Single(out, jacks));