fixed import bug
This commit is contained in:
+49
-47
@@ -1,53 +1,55 @@
|
||||
proc create_source_code_location(String* file, int line, int col) -> Source_Code_Location* {
|
||||
if (!file)
|
||||
return nullptr;
|
||||
namespace Slime {
|
||||
proc create_source_code_location(String* file, int line, int col) -> Source_Code_Location* {
|
||||
if (!file)
|
||||
return nullptr;
|
||||
|
||||
Source_Code_Location* ret = (Source_Code_Location*)malloc(sizeof(Source_Code_Location));
|
||||
ret->file = file;
|
||||
ret->line = line;
|
||||
ret->column = col;
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc Lisp_Object_Type_to_string(Lisp_Object_Type type) -> const char* {
|
||||
switch (type) {
|
||||
case(Lisp_Object_Type::Nil): return "nil";
|
||||
case(Lisp_Object_Type::T): return "t";
|
||||
case(Lisp_Object_Type::Number): return "number";
|
||||
case(Lisp_Object_Type::String): return "string";
|
||||
case(Lisp_Object_Type::Symbol): return "symbol";
|
||||
case(Lisp_Object_Type::Keyword): return "keyword";
|
||||
case(Lisp_Object_Type::Function): return "function";
|
||||
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::Pointer): return "pointer";
|
||||
case(Lisp_Object_Type::HashMap): return "hashmap";
|
||||
Source_Code_Location* ret = (Source_Code_Location*)malloc(sizeof(Source_Code_Location));
|
||||
ret->file = file;
|
||||
ret->line = line;
|
||||
ret->column = col;
|
||||
return ret;
|
||||
}
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
Lisp_Object::~Lisp_Object() {
|
||||
free(sourceCodeLocation);
|
||||
sourceCodeLocation = 0;
|
||||
proc Lisp_Object_Type_to_string(Lisp_Object_Type type) -> const char* {
|
||||
switch (type) {
|
||||
case(Lisp_Object_Type::Nil): return "nil";
|
||||
case(Lisp_Object_Type::T): return "t";
|
||||
case(Lisp_Object_Type::Number): return "number";
|
||||
case(Lisp_Object_Type::String): return "string";
|
||||
case(Lisp_Object_Type::Symbol): return "symbol";
|
||||
case(Lisp_Object_Type::Keyword): return "keyword";
|
||||
case(Lisp_Object_Type::Function): return "function";
|
||||
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::Pointer): return "pointer";
|
||||
case(Lisp_Object_Type::HashMap): return "hashmap";
|
||||
}
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
switch (Memory::get_type(this)) {
|
||||
case Lisp_Object_Type::HashMap: {
|
||||
delete this->value.hashMap;
|
||||
} break;
|
||||
case Lisp_Object_Type::CFunction: {
|
||||
this->value.cFunction->args.positional.symbols.~Array_List();
|
||||
this->value.cFunction->args.keyword.keywords.~Array_List();
|
||||
this->value.cFunction->args.keyword.values.~Array_List();
|
||||
delete this->value.cFunction;
|
||||
} break;
|
||||
case Lisp_Object_Type::Function:{
|
||||
this->value.function->args.positional.symbols.~Array_List();
|
||||
this->value.function->args.keyword.keywords.~Array_List();
|
||||
this->value.function->args.keyword.values.~Array_List();
|
||||
delete this->value.function;
|
||||
} break;
|
||||
default: break;
|
||||
Lisp_Object::~Lisp_Object() {
|
||||
free(sourceCodeLocation);
|
||||
sourceCodeLocation = 0;
|
||||
|
||||
switch (Memory::get_type(this)) {
|
||||
case Lisp_Object_Type::HashMap: {
|
||||
delete this->value.hashMap;
|
||||
} break;
|
||||
case Lisp_Object_Type::CFunction: {
|
||||
this->value.cFunction->args.positional.symbols.~Array_List();
|
||||
this->value.cFunction->args.keyword.keywords.~Array_List();
|
||||
this->value.cFunction->args.keyword.values.~Array_List();
|
||||
delete this->value.cFunction;
|
||||
} break;
|
||||
case Lisp_Object_Type::Function:{
|
||||
this->value.function->args.positional.symbols.~Array_List();
|
||||
this->value.function->args.keyword.keywords.~Array_List();
|
||||
this->value.function->args.keyword.values.~Array_List();
|
||||
delete this->value.function;
|
||||
} break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user