Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

79 строки
3.2 KiB

  1. void add_to_load_path(const char*);
  2. bool lisp_object_equal(Lisp_Object*,Lisp_Object*);
  3. Lisp_Object* built_in_load(String*);
  4. Lisp_Object* built_in_import(String*);
  5. void delete_error();
  6. void create_error(const char* c_func_name, const char* c_file_name, int c_file_line, Lisp_Object* type, const char* format, ...);
  7. void create_error(const char* c_func_name, const char* c_file_name, int c_file_line, Lisp_Object* type, String* message);
  8. void create_error(Lisp_Object* type, const char* message, const char* c_file_name, int c_file_line);
  9. Lisp_Object* eval_arguments(Lisp_Object*);
  10. Lisp_Object* eval_expr(Lisp_Object*);
  11. bool is_truthy (Lisp_Object*);
  12. int list_length(Lisp_Object*);
  13. void load_built_ins_into_environment();
  14. void create_arguments_from_lambda_list_and_inject(Lisp_Object* formal_arguments, Lisp_Object* function);
  15. Lisp_Object* lookup_symbol(Lisp_Object* symbol, Environment*);
  16. void define_symbol(Lisp_Object* symbol, Lisp_Object* value);
  17. void print(Lisp_Object* node, bool print_repr = false, FILE* file = stdout);
  18. void print_environment(Environment*);
  19. bool run_all_tests();
  20. inline Environment* get_root_environment();
  21. inline Environment* get_current_environment();
  22. inline void push_environment(Environment*);
  23. inline void pop_environment();
  24. const char* Lisp_Object_Type_to_string(Lisp_Object_Type type);
  25. void visualize_lisp_machine();
  26. void generate_docs(String* path);
  27. namespace Memory {
  28. Environment* create_built_ins_environment();
  29. Lisp_Object* create_lisp_object_cfunction(bool is_special);
  30. Lisp_Object* get_or_create_lisp_object_keyword(const char* identifier);
  31. inline Lisp_Object_Type get_type(Lisp_Object* node);
  32. void init(int);
  33. char* get_c_str(String*);
  34. void free_everything();
  35. String* create_string(const char*);
  36. Lisp_Object* create_lisp_object_number(double);
  37. Lisp_Object* get_or_create_lisp_object_symbol(String* identifier);
  38. Lisp_Object* get_or_create_lisp_object_symbol(const char*);
  39. Lisp_Object* get_or_create_lisp_object_keyword(String* identifier);
  40. Lisp_Object* get_or_create_lisp_object_keyword(const char*);
  41. Lisp_Object* create_lisp_object_string(const char*);
  42. Lisp_Object* create_list(Lisp_Object*);
  43. Lisp_Object* create_list(Lisp_Object*,Lisp_Object*);
  44. Lisp_Object* create_list(Lisp_Object*,Lisp_Object*,Lisp_Object*);
  45. Lisp_Object* create_list(Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*);
  46. Lisp_Object* create_list(Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*);
  47. Lisp_Object* create_list(Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*);
  48. }
  49. namespace Parser {
  50. // extern Environment* environment_for_macros;
  51. extern String* standard_in;
  52. extern String* parser_file;
  53. extern int parser_line;
  54. extern int parser_col;
  55. Lisp_Object* parse_single_expression(char* text);
  56. Lisp_Object* parse_single_expression(wchar_t* text);
  57. }
  58. namespace Globals {
  59. extern char* bin_path;
  60. extern Log_Level log_level;
  61. extern Array_List<void*> load_path;
  62. namespace Current_Execution {
  63. extern Array_List<Lisp_Object*> call_stack;
  64. extern Array_List<Environment*> envi_stack;
  65. }
  66. extern Error* error;
  67. extern bool breaking_on_errors;
  68. }