00001 // Copyright (C) Calum Grant 2008 00002 00003 #include "cppscript" 00004 #include "dynamic/extensions.hpp" 00005 00006 static_call( register_pickle_type( cmp_null, null ) ); 00007 00008 00010 00011 namespace dynamic 00012 { 00013 namespace types 00014 { 00016 00017 class null_impl : public dynamic::var_impl 00018 { 00019 public: 00020 void output(ostream & os) 00021 { 00022 os << "null"; 00023 } 00024 00025 void output(wostream & os) 00026 { 00027 os << L"null"; 00028 } 00029 00030 std::string class_name() 00031 { 00032 return "null"; 00033 } 00034 00035 var_cmp_index comparison_index() 00036 { 00037 return cmp_null; 00038 } 00039 00040 void copy_to(void * dest) const 00041 { 00042 new(dest) null_impl(); 00043 } 00044 00045 var op_add(const var & v) 00046 { 00047 return v; 00048 } 00049 00050 var op_sub(const var & v) 00051 { 00052 return -v; 00053 } 00054 00055 var op_mul(const var & ) 00056 { 00057 return var(); 00058 } 00059 00060 var op_div(const var & ) 00061 { 00062 return var(); 00063 } 00064 00065 var op_mod(const var & ) 00066 { 00067 return var(); 00068 } 00069 00070 var op_neg() 00071 { 00072 return var(); 00073 } 00074 00075 var op_lshift(const var &) 00076 { 00077 return var(); 00078 } 00079 00080 var op_rshift(const var &) 00081 { 00082 return var(); 00083 } 00084 00085 var op_and(const var &) 00086 { 00087 return var(); 00088 } 00089 00090 var op_or(const var & v) 00091 { 00092 return v; 00093 } 00094 00095 var op_xor(const var & v) 00096 { 00097 return v; 00098 } 00099 00100 void pickle(pickler & p) 00101 { 00102 p.write_object_type(cmp_null); 00103 } 00104 00105 void unpickle(unpickler & u) 00106 { 00107 } 00108 }; 00109 } 00110 } 00111 00112 00113 var::var() : m_variant(types::null_impl()) 00114 { 00115 }
1.5.7.1