added pointers to all swiches over types containing types
This commit is contained in:
@@ -18,6 +18,8 @@ proc lisp_object_equal(Lisp_Object* n1, Lisp_Object* n2) -> bool {
|
||||
// pointer, true is returned a
|
||||
// few lines above
|
||||
case Lisp_Object_Type::Function:
|
||||
case Lisp_Object_Type::Pointer: // TODO(Felix): should a pointer
|
||||
// object compare the pointer?
|
||||
case Lisp_Object_Type::Continuation: return false;
|
||||
case Lisp_Object_Type::T: // code for t and nil should never be
|
||||
// reached since they are memory unique
|
||||
@@ -861,6 +863,7 @@ proc load_built_ins_into_environment() -> void {
|
||||
case Lisp_Object_Type::Keyword: return Memory::get_or_create_lisp_object_keyword("keyword");
|
||||
case Lisp_Object_Type::Nil: return Memory::get_or_create_lisp_object_keyword("nil");
|
||||
case Lisp_Object_Type::T: return Memory::get_or_create_lisp_object_keyword("t");
|
||||
case Lisp_Object_Type::Pointer: return Memory::get_or_create_lisp_object_keyword("pointer");
|
||||
case Lisp_Object_Type::Number: return Memory::get_or_create_lisp_object_keyword("number");
|
||||
case Lisp_Object_Type::Pair: return Memory::get_or_create_lisp_object_keyword("pair");
|
||||
case Lisp_Object_Type::Vector: return Memory::get_or_create_lisp_object_keyword("vector");
|
||||
|
||||
+4
-3
@@ -279,10 +279,11 @@ proc print(Lisp_Object* node, bool print_repr = false, FILE* file = stdout) -> v
|
||||
else
|
||||
fprintf(file, "%f", node->value.number);
|
||||
} break;
|
||||
case (Lisp_Object_Type::Keyword): fputs(":", file); // NOTE(Felix): intentionall fallthough
|
||||
case (Lisp_Object_Type::Symbol): fprintf(file, "%s", Memory::get_c_str(node->value.symbol.identifier)); break;
|
||||
case (Lisp_Object_Type::Keyword): fputs(":", file); // NOTE(Felix): intentionall fallthough
|
||||
case (Lisp_Object_Type::Symbol): fprintf(file, "%s", Memory::get_c_str(node->value.symbol.identifier)); break;
|
||||
case (Lisp_Object_Type::Continuation): fputs("[continuation]", file); break;
|
||||
case (Lisp_Object_Type::CFunction): fputs("[C-function]", file); break;
|
||||
case (Lisp_Object_Type::CFunction): fputs("[C-function]", file); break;
|
||||
case (Lisp_Object_Type::Pointer): fputs("[pointer]", file); break;
|
||||
case (Lisp_Object_Type::String): {
|
||||
if (print_repr) {
|
||||
putc('\"', file);
|
||||
|
||||
+2
-1
@@ -21,7 +21,8 @@ proc Lisp_Object_Type_to_string(Lisp_Object_Type type) -> const char* {
|
||||
case(Lisp_Object_Type::CFunction): return "C-function";
|
||||
case(Lisp_Object_Type::Continuation): return "continuation";
|
||||
case(Lisp_Object_Type::Pair): return "pair";
|
||||
case(Lisp_Object_Type::Vector): return "vector";
|
||||
case(Lisp_Object_Type::Vector): return "vector";
|
||||
case(Lisp_Object_Type::Pointer): return "pointer";
|
||||
}
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user