您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 
 

46 行
1.7 KiB

  1. // proc assert_type(Lisp_Object*, Lisp_Object_Type) -> void;
  2. proc built_in_load(String*, Environment*) -> Lisp_Object*;
  3. proc built_in_import(String*, Environment*) -> Lisp_Object*;
  4. proc create_error(const char* c_file_name, int c_file_line, Lisp_Object* type, String* message) -> void;
  5. proc create_error(const char* c_file_name, int c_file_line, Lisp_Object* type, const char* format, ...) -> void;
  6. proc create_error(Lisp_Object* type, const char* message, const char* c_file_name, int c_file_line) -> void;
  7. proc eval_arguments(Lisp_Object*, Environment*, int*) -> Lisp_Object*;
  8. proc eval_expr(Lisp_Object*, Environment*) -> Lisp_Object*;
  9. proc is_truthy (Lisp_Object*, Environment*) -> bool;
  10. proc list_length(Lisp_Object*) -> int;
  11. proc load_built_ins_into_environment(Environment*) -> void;
  12. proc parse_argument_list(Lisp_Object*, Function*) -> void;
  13. proc print_environment(Environment*) -> void;
  14. proc exe_dir() -> char*;
  15. proc Lisp_Object_Type_to_string(Lisp_Object_Type type) -> const char*;
  16. proc visualize_lisp_machine() -> void;
  17. namespace Memory {
  18. proc create_built_ins_environment() -> Environment*;
  19. proc get_or_create_lisp_object_keyword(const char* identifier) -> Lisp_Object*;
  20. inline proc get_type(Lisp_Object* node) -> Lisp_Object_Type;
  21. }
  22. namespace Parser {
  23. extern Environment* environment_for_macros;
  24. extern String* standard_in;
  25. extern String* parser_file;
  26. extern int parser_line;
  27. extern int parser_col;
  28. }
  29. namespace Globals {
  30. Environment* root_environment; // contains the built-ins
  31. Log_Level log_level = Log_Level::Debug;
  32. // TODO(Felix): make this the callstack by using a arraylist
  33. // instead
  34. Lisp_Object* current_source_code = nullptr;
  35. Error* error = nullptr;
  36. }