builtins.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include "scm.h"
  2. typedef enum {
  3. bltn_gensym = 1,
  4. bltn_display = 2,
  5. bltn_newline = 3,
  6. bltn_eq = 5,
  7. bltn_cons = 7,
  8. bltn_car = 8,
  9. bltn_cdr = 9,
  10. bltn_set_car = 10,
  11. bltn_set_cdr = 11,
  12. bltn_nullq = 12,
  13. bltn_pairq = 13,
  14. bltn_numberq = 14,
  15. bltn_booleanq = 15,
  16. bltn_stringq = 16,
  17. bltn_charq = 17,
  18. bltn_symbolq = 18,
  19. bltn_add = 19,
  20. bltn_subtract = 20,
  21. bltn_multiply = 21,
  22. bltn_eql = 22,
  23. bltn_lt = 23,
  24. bltn_gt = 24,
  25. bltn_le = 25,
  26. bltn_ge = 26,
  27. bltn_quotient = 27,
  28. bltn_modulo = 28,
  29. bltn_vector_ref = 33,
  30. bltn_vector_set_bang = 34,
  31. bltn_make_vector = 35,
  32. bltn_vector_length = 36,
  33. bltn_make_string = 37,
  34. bltn_string_set_bang = 38,
  35. bltn_string_ref = 39,
  36. bltn_string_to_symbol = 40,
  37. bltn_string_length = 41,
  38. bltn_string_eql = 42,
  39. bltn_eof_objectq = 43,
  40. bltn_read_char = 44,
  41. bltn_peek_char = 45,
  42. bltn_vectorq = 46,
  43. bltn_symbol_to_string = 47,
  44. bltn_char_to_integer = 48,
  45. bltn_max = 50,
  46. } builtin;
  47. typedef scm (*builtin_handler)();
  48. extern builtin_handler handler[bltn_max];
  49. void scm_display(scm x);