]> git.saurik.com Git - cycript.git/blobdiff - Output.cpp
Manually unify CYLocal<CYPool>::key_ into Library.
[cycript.git] / Output.cpp
index 17f7bde19345cf9d50cbb11e20488ecf6ee330e4..778acb5d0c3557486380fc328d1adafecdf3cb57 100644 (file)
@@ -118,8 +118,7 @@ void CYArgument::Output(CYOutput &out) const {
     if (value_ != NULL)
         value_->Output(out, CYAssign::Precedence_, CYNoFlags);
     if (next_ != NULL) {
     if (value_ != NULL)
         value_->Output(out, CYAssign::Precedence_, CYNoFlags);
     if (next_ != NULL) {
-        if (next_->name_ == NULL)
-            out << ',';
+        out << ',';
         out << ' ' << *next_;
     }
 }
         out << ' ' << *next_;
     }
 }
@@ -194,19 +193,13 @@ void CYComment::Output(CYOutput &out, CYFlags flags) const {
 }
 
 void CYCompound::Output(CYOutput &out, CYFlags flags) const {
 }
 
 void CYCompound::Output(CYOutput &out, CYFlags flags) const {
-    if (CYExpression *expression = expressions_)
-        if (CYExpression *next = expression->next_) {
-            expression->Output(out, CYLeft(flags));
-            CYFlags center(CYCenter(flags));
-            while (next != NULL) {
-                expression = next;
-                out << ',' << ' ';
-                next = expression->next_;
-                CYFlags right(next != NULL ? center : CYRight(flags));
-                expression->Output(out, right);
-            }
-        } else
-            expression->Output(out, flags);
+    if (next_ == NULL)
+        expression_->Output(out, flags);
+    else {
+        expression_->Output(out, CYLeft(flags));
+        out << ',' << ' ';
+        next_->Output(out, CYRight(flags));
+    }
 }
 
 void CYCondition::Output(CYOutput &out, CYFlags flags) const {
 }
 
 void CYCondition::Output(CYOutput &out, CYFlags flags) const {
@@ -447,6 +440,10 @@ void CYIfComprehension::Output(CYOutput &out) const {
     out << "if" << ' ' << '(' << *test_ << ')' << next_;
 }
 
     out << "if" << ' ' << '(' << *test_ << ')' << next_;
 }
 
+void CYImport::Output(CYOutput &out, CYFlags flags) const {
+    out << "@import";
+}
+
 void CYIndirectMember::Output(CYOutput &out, CYFlags flags) const {
     object_->Output(out, Precedence(), CYLeft(flags));
     if (const char *word = property_->Word())
 void CYIndirectMember::Output(CYOutput &out, CYFlags flags) const {
     object_->Output(out, Precedence(), CYLeft(flags));
     if (const char *word = property_->Word())
@@ -481,6 +478,12 @@ void CYTypeArrayOf::Output(CYOutput &out, CYIdentifier *identifier) const {
     out << ']';
 }
 
     out << ']';
 }
 
+void CYTypeBlockWith::Output(CYOutput &out, CYIdentifier *identifier) const {
+    out << '(' << '^';
+    next_->Output(out, Precedence(), identifier);
+    out << ')' << '(' << parameters_ << ')';
+}
+
 void CYTypeConstant::Output(CYOutput &out, CYIdentifier *identifier) const {
     out << "const";
     next_->Output(out, Precedence(), identifier);
 void CYTypeConstant::Output(CYOutput &out, CYIdentifier *identifier) const {
     out << "const";
     next_->Output(out, Precedence(), identifier);
@@ -517,7 +520,7 @@ void CYTypeModifier::Output(CYOutput &out, int precedence, CYIdentifier *identif
 }
 
 void CYTypedIdentifier::Output(CYOutput &out) const {
 }
 
 void CYTypedIdentifier::Output(CYOutput &out) const {
-    type_->Output(out, 0, CYNoFlags);
+    specifier_->Output(out);
     modifier_->Output(out, 0, identifier_);
 }
 
     modifier_->Output(out, 0, identifier_);
 }
 
@@ -548,6 +551,12 @@ void CYLetStatement::Output(CYOutput &out, CYFlags flags) const {
     code_->Single(out, CYRight(flags));
 }
 
     code_->Single(out, CYRight(flags));
 }
 
+void CYModule::Output(CYOutput &out) const {
+    out << part_;
+    if (next_ != NULL)
+        out << '.' << next_;
+}
+
 namespace cy {
 namespace Syntax {
 
 namespace cy {
 namespace Syntax {
 
@@ -742,6 +751,34 @@ void Try::Output(CYOutput &out, CYFlags flags) const {
 
 } }
 
 
 } }
 
+void CYTypeError::Output(CYOutput &out) const {
+    out << "@error";
+}
+
+void CYTypeLong::Output(CYOutput &out) const {
+    out << "long" << specifier_;
+}
+
+void CYTypeShort::Output(CYOutput &out) const {
+    out << "short" << specifier_;
+}
+
+void CYTypeSigned::Output(CYOutput &out) const {
+    out << "signed" << specifier_;
+}
+
+void CYTypeUnsigned::Output(CYOutput &out) const {
+    out << "unsigned" << specifier_;
+}
+
+void CYTypeVariable::Output(CYOutput &out) const {
+    out << *name_;
+}
+
+void CYTypeVoid::Output(CYOutput &out) const {
+    out << "void";
+}
+
 void CYVar::Output(CYOutput &out, CYFlags flags) const {
     out << "var";
     declarations_->Output(out, flags);
 void CYVar::Output(CYOutput &out, CYFlags flags) const {
     out << "var";
     declarations_->Output(out, flags);