aboutsummaryrefslogtreecommitdiff
path: root/src/object.cpp
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2012-06-11 04:05:22 +0000
committerMike Buland <eichlan@xagasoft.com>2012-06-11 04:05:22 +0000
commit380b36be3352cd9a5c93dbd67db25346166a8547 (patch)
treef69613e7b6238744c34af6dc14d6feb68a4f6706 /src/object.cpp
parent3905f9962bbfb312c3804ff9c7b7d1e0fa203cbc (diff)
downloadlibgats-380b36be3352cd9a5c93dbd67db25346166a8547.tar.gz
libgats-380b36be3352cd9a5c93dbd67db25346166a8547.tar.bz2
libgats-380b36be3352cd9a5c93dbd67db25346166a8547.tar.xz
libgats-380b36be3352cd9a5c93dbd67db25346166a8547.zip
All languages now support Null except for python and php, python is proving
slightly trickier.
Diffstat (limited to 'src/object.cpp')
-rw-r--r--src/object.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/object.cpp b/src/object.cpp
index 9662b6a..15d7cb5 100644
--- a/src/object.cpp
+++ b/src/object.cpp
@@ -6,6 +6,7 @@
6#include "gats/string.h" 6#include "gats/string.h"
7#include "gats/list.h" 7#include "gats/list.h"
8#include "gats/dictionary.h" 8#include "gats/dictionary.h"
9#include "gats/null.h"
9 10
10#include <stdlib.h> 11#include <stdlib.h>
11 12
@@ -56,6 +57,10 @@ Gats::Object *Gats::Object::read( Bu::Stream &rIn )
56 pObj = new Gats::Float(); 57 pObj = new Gats::Float();
57 break; 58 break;
58 59
60 case 'n':
61 pObj = new Gats::Null();
62 break;
63
59 case 'e': 64 case 'e':
60 return NULL; 65 return NULL;
61 66
@@ -250,6 +255,10 @@ Gats::Object *Gats::Object::strToGats( Bu::String::const_iterator &i )
250 { 255 {
251 return new Gats::Boolean( false ); 256 return new Gats::Boolean( false );
252 } 257 }
258 else if( st == "null" )
259 {
260 return new Gats::Null();
261 }
253 } 262 }
254 } 263 }
255 } 264 }
@@ -288,6 +297,9 @@ Bu::Formatter &operator<<( Bu::Formatter &f, const Gats::Object &obj )
288 case Gats::typeBoolean: 297 case Gats::typeBoolean:
289 return f << dynamic_cast<const Gats::Boolean &>(obj); 298 return f << dynamic_cast<const Gats::Boolean &>(obj);
290 299
300 case Gats::typeNull:
301 return f << dynamic_cast<const Gats::Null &>(obj);
302
291 default: 303 default:
292 return f << "***ERROR: Bad Gats type***"; 304 return f << "***ERROR: Bad Gats type***";
293 } 305 }
@@ -303,6 +315,7 @@ Bu::Formatter &operator<<( Bu::Formatter &f, const Gats::Type &t )
303 case Gats::typeInteger: return f << "integer"; 315 case Gats::typeInteger: return f << "integer";
304 case Gats::typeFloat: return f << "float"; 316 case Gats::typeFloat: return f << "float";
305 case Gats::typeBoolean: return f << "boolean"; 317 case Gats::typeBoolean: return f << "boolean";
318 case Gats::typeNull: return f << "null";
306 } 319 }
307 320
308 return f << "***unknown***"; 321 return f << "***unknown***";
@@ -318,6 +331,7 @@ const char *Gats::typeToStr( Gats::Type t )
318 case Gats::typeInteger: return "integer"; 331 case Gats::typeInteger: return "integer";
319 case Gats::typeFloat: return "float"; 332 case Gats::typeFloat: return "float";
320 case Gats::typeBoolean: return "boolean"; 333 case Gats::typeBoolean: return "boolean";
334 case Gats::typeNull: return "null";
321 } 335 }
322 336
323 return "***unknown***"; 337 return "***unknown***";