]> git.saurik.com Git - cycript.git/blobdiff - Output.cpp
Massive changes to lexer to get template literals.
[cycript.git] / Output.cpp
index d3dbb0f71838d427d2655554dd9b3806b1a36949..9ec05c2044e100057f8c43489dbf7545add0ccaa 100644 (file)
@@ -147,7 +147,9 @@ void CYBlock::Output(CYOutput &out, CYFlags flags) const {
 }
 
 void CYBoolean::Output(CYOutput &out, CYFlags flags) const {
-    out << (Value() ? "true" : "false");
+    out << '!' << (Value() ? "0" : "1");
+    if ((flags & CYNoInteger) != 0)
+        out << '.';
 }
 
 void CYBreak::Output(CYOutput &out, CYFlags flags) const {
@@ -181,13 +183,6 @@ void Catch::Output(CYOutput &out) const {
 
 } }
 
-void CYComment::Output(CYOutput &out, CYFlags flags) const {
-    out << '\r';
-    out(value_);
-    out.right_ = true;
-    out << '\r';
-}
-
 void CYCompound::Output(CYOutput &out, CYFlags flags) const {
     if (next_ == NULL)
         expression_->Output(out, flags);
@@ -508,6 +503,10 @@ void CYStatement::Output(CYOutput &out) const {
     Multiple(out);
 }
 
+void CYTemplate::Output(CYOutput &out, CYFlags flags) const {
+    _assert(false);
+}
+
 void CYTypeArrayOf::Output(CYOutput &out, CYIdentifier *identifier) const {
     next_->Output(out, Precedence(), identifier);
     out << '[';
@@ -608,7 +607,7 @@ void New::Output(CYOutput &out, CYFlags flags) const {
 } }
 
 void CYNull::Output(CYOutput &out, CYFlags flags) const {
-    CYWord::Output(out);
+    out << "null";
 }
 
 void CYNumber::Output(CYOutput &out, CYFlags flags) const {
@@ -651,7 +650,7 @@ void CYPrefix::Output(CYOutput &out, CYFlags flags) const {
     rhs_->Output(out, Precedence(), CYRight(flags));
 }
 
-void CYProgram::Output(CYOutput &out) const {
+void CYScript::Output(CYOutput &out) const {
     out << code_;
 }
 
@@ -684,8 +683,7 @@ void CYRubyBlock::Output(CYOutput &out, CYFlags flags) const {
 }
 
 void CYRubyProc::Output(CYOutput &out, CYFlags flags) const {
-    // XXX: this is not outputting the parameters
-    out << '{' << '\n';
+    out << '{' << ' ' << '|' << parameters_ << '|' << '\n';
     ++out.indent_;
     out << code_;
     --out.indent_;
@@ -783,7 +781,7 @@ void CYSwitch::Output(CYOutput &out, CYFlags flags) const {
 }
 
 void CYThis::Output(CYOutput &out, CYFlags flags) const {
-    CYWord::Output(out);
+    out << "this";
 }
 
 namespace cy {