+++ /dev/null
-/**
-
- Immediate Tag Values:
- Nil { 0x00
- Undefined { 0x01
- False { 0x02
- True { 0x03
- / 0x04
- Unused {
- \ 0x07
-
- NaN Tag Values:
- Object { 0000:PPPP:PPPP:PPPP
- Array { 0001:PPPP:PPPP:PPPP
- String { 0002:PPPP:PPPP:PPPP
- Block { 0003:PPPP:PPPP:PPPP
- NativeBlock { 0004:PPPP:PPPP:PPPP
- Symbol { 0005:0000:IIII:IIII
- Integer { 0006:0000:IIII:IIII
- / 0007:****:****:****
- Double { ...
- \ FFFF:****:****:****
-
-*/
-
-#include <runtime.h>
-
-/* Start The Program
- *************************************************/
-
-int main(int argc, char** argv)
-{
- String *str1, *str2;
- Value val;
-
- val = MakeNil();
- assert(IsNil(val));
- assert(!IsFalse(val));
- assert(!IsTrue(val));
- assert(!IsBool(val));
- assert(!IsNumber(val));
- assert(!IsInt(val));
- assert(!IsReal(val));
- assert(!IsString(val));
-
- val = MakeBool(true);
- assert(!IsNil(val));
- assert(!IsFalse(val));
- assert(IsTrue(val));
- assert(IsBool(val));
- assert(!IsNumber(val));
- assert(!IsInt(val));
- assert(!IsReal(val));
- assert(!IsString(val));
-
- val = MakeBool(false);
- assert(!IsNil(val));
- assert(IsFalse(val));
- assert(!IsTrue(val));
- assert(IsBool(val));
- assert(!IsNumber(val));
- assert(!IsInt(val));
- assert(!IsReal(val));
- assert(!IsString(val));
-
- val = MakeInt(42);
- assert(!IsNil(val));
- assert(!IsFalse(val));
- assert(!IsTrue(val));
- assert(!IsBool(val));
- assert(IsNumber(val));
- assert(IsInt(val));
- assert(!IsReal(val));
- assert(!IsString(val));
-
- val = MakeReal(42.0);
- assert(!IsNil(val));
- assert(!IsFalse(val));
- assert(!IsTrue(val));
- assert(!IsBool(val));
- assert(IsNumber(val));
- assert(!IsInt(val));
- assert(IsReal(val));
- assert(!IsString(val));
-
- val = MakeString("Hi!");
- assert(!IsNil(val));
- assert(!IsFalse(val));
- assert(!IsTrue(val));
- assert(!IsBool(val));
- assert(!IsNumber(val));
- assert(!IsInt(val));
- assert(!IsReal(val));
- assert(IsString(val));
- assert(!strcmp(ValueAsString(val)->bytes, "Hi!"));
-
- val = ToString(MakeNil());
- assert(!strcmp(ValueAsString(val)->bytes, "nil"));
-
- val = ToString(MakeBool(true));
- assert(!strcmp(ValueAsString(val)->bytes, "true"));
-
- val = ToString(MakeBool(false));
- assert(!strcmp(ValueAsString(val)->bytes, "false"));
-
- val = ToString(MakeInt(42));
- assert(!strcmp(ValueAsString(val)->bytes, "42"));
-
- val = ToString(MakeReal(42.5));
- assert(!strcmp(ValueAsString(val)->bytes, "42.500000"));
-
- extern Value Main(void);
- (void)Main();
- return 0;
-}