]> git.saurik.com Git - cycript.git/blobdiff - Output.cpp
Allow C++ tagless type reference, in struct field.
[cycript.git] / Output.cpp
index 0bc11727f29c47ed99bc86ce772bc51c2357d1b7..ae441be9b51f5d9e867f3bc187a9219802fdb145 100644 (file)
@@ -457,11 +457,15 @@ void CYExtend::Output(CYOutput &out, CYFlags flags) const {
     out << ' ' << object_;
 }
 
-void CYExternal::Output(CYOutput &out, CYFlags flags) const {
+void CYExternalDefinition::Output(CYOutput &out, CYFlags flags) const {
     out << "extern" << ' ' << abi_ << ' ' << typed_;
     out.Terminate();
 }
 
+void CYExternalExpression::Output(CYOutput &out, CYFlags flags) const {
+    out << '(' << "extern" << ' ' << abi_ << ' ' << typed_ << ')';
+}
+
 void CYFatArrow::Output(CYOutput &out, CYFlags flags) const {
     out << '(' << parameters_ << ')' << ' ' << "=>" << ' ' << '{' << code_ << '}';
 }
@@ -1067,6 +1071,16 @@ void CYTypeError::Output(CYOutput &out) const {
     out << "@error";
 }
 
+void CYTypeInt128::Output(CYOutput &out) const {
+    switch (signing_) {
+        case CYTypeNeutral: break;
+        case CYTypeSigned: out << "signed" << ' '; break;
+        case CYTypeUnsigned: out << "unsigned" << ' '; break;
+    }
+
+    out << "__int128";
+}
+
 void CYTypeIntegral::Output(CYOutput &out) const {
     if (signing_ == CYTypeUnsigned)
         out << "unsigned" << ' ';