You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

34 lines
1.4 KiB

  1. namespace Slime {
  2. proc create_source_code_location(String file, int line, int col) -> Source_Code_Location* {
  3. if (!file.data)
  4. return nullptr;
  5. Source_Code_Location* ret = (Source_Code_Location*)malloc(sizeof(Source_Code_Location));
  6. ret->file = file;
  7. ret->line = line;
  8. ret->column = col;
  9. return ret;
  10. }
  11. proc lisp_object_type_to_string(Lisp_Object_Type type) -> const char* {
  12. switch (type) {
  13. case(Lisp_Object_Type::Nil): return "nil";
  14. case(Lisp_Object_Type::T): return "t";
  15. case(Lisp_Object_Type::Number): return "number";
  16. case(Lisp_Object_Type::String): return "string";
  17. case(Lisp_Object_Type::Symbol): return "symbol";
  18. case(Lisp_Object_Type::Keyword): return "keyword";
  19. case(Lisp_Object_Type::Function): return "function";
  20. case(Lisp_Object_Type::Continuation): return "continuation";
  21. case(Lisp_Object_Type::Pair): return "pair";
  22. case(Lisp_Object_Type::Vector): return "vector";
  23. case(Lisp_Object_Type::Pointer): return "pointer";
  24. case(Lisp_Object_Type::HashMap): return "hashmap";
  25. case(Lisp_Object_Type::Invalid_Garbage_Collected): return "Invalid: Garbage Collected";
  26. case(Lisp_Object_Type::Invalid_Under_Construction): return "Invalid: Under Construction";
  27. }
  28. return "unknown";
  29. }
  30. }