]> git.saurik.com Git - cycript.git/blobdiff - Output.cpp
Made Selector derive from Function, fixed numerability of Instance.{constructor,proto...
[cycript.git] / Output.cpp
index fdbc733e4eeb2c426f3aaef93bd785d99fb6fa3f..f15b90d6324c9a399c5a093c84f2fb864bb0e0c0 100644 (file)
@@ -79,6 +79,11 @@ void CYAssignment::Output(std::ostream &out, CYFlags flags) const {
     rhs_->Output(out, Precedence(), CYRight(flags));
 }
 
+void CYBlock::Output(std::ostream &out) const {
+    for (CYSource *statement(statements_); statement != NULL; statement = statement->next_)
+        statement->Output(out);
+}
+
 void CYBoolean::Output(std::ostream &out, CYFlags flags) const {
     if ((flags & CYNoLeader) != 0)
         out << ' ';
@@ -529,11 +534,11 @@ void CYSend::Output(std::ostream &out, CYFlags flags) const {
 
 void CYSource::Show(std::ostream &out) const {
     for (const CYSource *next(this); next != NULL; next = next->next_)
-        next->Output(out);
+        next->Output_(out);
 }
 
 void CYSource::Output(std::ostream &out, bool block) const {
-    if (!block && next_ == NULL)
+    if (!block && !IsBlock())
         Output(out);
     else {
         out << '{';
@@ -542,6 +547,16 @@ void CYSource::Output(std::ostream &out, bool block) const {
     }
 }
 
+void CYSource::Output_(std::ostream &out) const {
+    Output(out);
+}
+
+void CYStatement::Output_(std::ostream &out) const {
+    for (CYLabel *label(labels_); label != NULL; label = label->next_)
+        out << *label->name_ << ':';
+    Output(out);
+}
+
 void CYString::Output(std::ostream &out, CYFlags flags) const {
     unsigned quot(0), apos(0);
     for (const char *value(value_), *end(value_ + size_); value != end; ++value)