/include/OPDefines.h

http://github.com/digego/extempore · C Header · 198 lines · 198 code · 0 blank · 0 comment · 0 complexity · 72808d167b26d505030ee71459a7a968 MD5 · raw file

  1. _OP_DEF(opexe_0, "load", 1, 1, TST_STRING, OP_LOAD )
  2. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_T0LVL )
  3. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_T1LVL )
  4. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_READ_INTERNAL )
  5. _OP_DEF(opexe_0, "gensym", 0, 0, 0, OP_GENSYM )
  6. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_VALUEPRINT )
  7. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_EVAL )
  8. #if USE_TRACING
  9. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_REAL_EVAL )
  10. #endif
  11. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_E0ARGS )
  12. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_E1ARGS )
  13. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_APPLY )
  14. #if USE_TRACING
  15. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_REAL_APPLY )
  16. _OP_DEF(opexe_0, "tracing", 1, 1, TST_NATURAL, OP_TRACING )
  17. #endif
  18. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_DOMACRO )
  19. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_LAMBDA )
  20. _OP_DEF(opexe_0, "make-closure", 1, 2, TST_PAIR TST_ENVIRONMENT, OP_MKCLOSURE )
  21. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_QUOTE )
  22. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_DEF0 )
  23. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_DEF1 )
  24. _OP_DEF(opexe_0, "defined?", 1, 2, TST_SYMBOL TST_ENVIRONMENT, OP_DEFP )
  25. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_BEGIN )
  26. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_IF0 )
  27. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_IF1 )
  28. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_SET0 )
  29. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_SET1 )
  30. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_LET0 )
  31. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_LET1 )
  32. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_LET2 )
  33. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_LET0AST )
  34. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_LET1AST )
  35. _OP_DEF(opexe_0, 0, 0, 0, 0, OP_LET2AST )
  36. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_LET0REC )
  37. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_LET1REC )
  38. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_LET2REC )
  39. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_COND0 )
  40. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_COND1 )
  41. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_DELAY )
  42. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_AND0 )
  43. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_AND1 )
  44. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_OR0 )
  45. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_OR1 )
  46. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_C0STREAM )
  47. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_C1STREAM )
  48. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_MACRO0 )
  49. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_MACRO1 )
  50. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_CASE0 )
  51. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_CASE1 )
  52. _OP_DEF(opexe_1, 0, 0, 0, 0, OP_CASE2 )
  53. _OP_DEF(opexe_1, "eval", 1, 2, TST_ANY TST_ENVIRONMENT, OP_PEVAL )
  54. _OP_DEF(opexe_1, "apply", 1, INF_ARG, TST_NONE, OP_PAPPLY )
  55. _OP_DEF(opexe_1, "call-with-current-continuation", 1, 1, TST_NONE, OP_CONTINUATION )
  56. #if USE_MATH
  57. _OP_DEF(opexe_2, "inexact->exact", 1, 1, TST_NUMBER, OP_INEX2EX )
  58. _OP_DEF(opexe_2, "exp", 1, 1, TST_NUMBER, OP_EXP )
  59. _OP_DEF(opexe_2, "log", 1, 1, TST_NUMBER, OP_LOG )
  60. _OP_DEF(opexe_2, "sin", 1, 1, TST_NUMBER, OP_SIN )
  61. _OP_DEF(opexe_2, "cos", 1, 1, TST_NUMBER, OP_COS )
  62. _OP_DEF(opexe_2, "tan", 1, 1, TST_NUMBER, OP_TAN )
  63. _OP_DEF(opexe_2, "asin", 1, 1, TST_NUMBER, OP_ASIN )
  64. _OP_DEF(opexe_2, "acos", 1, 1, TST_NUMBER, OP_ACOS )
  65. _OP_DEF(opexe_2, "atan", 1, 2, TST_NUMBER, OP_ATAN )
  66. _OP_DEF(opexe_2, "sqrt", 1, 1, TST_NUMBER, OP_SQRT )
  67. _OP_DEF(opexe_2, "expt", 2, 2, TST_NUMBER, OP_EXPT )
  68. _OP_DEF(opexe_2, "floor", 1, 1, TST_NUMBER, OP_FLOOR )
  69. _OP_DEF(opexe_2, "ceiling", 1, 1, TST_NUMBER, OP_CEILING )
  70. _OP_DEF(opexe_2, "truncate", 1, 1, TST_NUMBER, OP_TRUNCATE )
  71. _OP_DEF(opexe_2, "round", 1, 1, TST_NUMBER, OP_ROUND )
  72. #endif
  73. _OP_DEF(opexe_2, "+", 0, INF_ARG, TST_NUMBER, OP_ADD )
  74. _OP_DEF(opexe_2, "-", 1, INF_ARG, TST_NUMBER, OP_SUB )
  75. _OP_DEF(opexe_2, "*", 0, INF_ARG, TST_NUMBER, OP_MUL )
  76. _OP_DEF(opexe_2, "/", 1, INF_ARG, TST_NUMBER, OP_DIV )
  77. _OP_DEF(opexe_2, "bitwise-not", 1, 1, TST_INTEGER, OP_BITNOT )
  78. _OP_DEF(opexe_2, "bitwise-and", 2, INF_ARG, TST_INTEGER, OP_BITAND )
  79. _OP_DEF(opexe_2, "bitwise-or", 2, INF_ARG, TST_INTEGER, OP_BITOR )
  80. _OP_DEF(opexe_2, "bitwise-eor", 2, INF_ARG, TST_INTEGER, OP_BITEOR )
  81. _OP_DEF(opexe_2, "bitwise-shift-left", 2, INF_ARG, TST_INTEGER, OP_BITLSL )
  82. _OP_DEF(opexe_2, "bitwise-shift-right", 2, INF_ARG, TST_INTEGER, OP_BITLSR )
  83. _OP_DEF(opexe_2, "quotient", 1, INF_ARG, TST_INTEGER, OP_INTDIV )
  84. _OP_DEF(opexe_2, "remainder", 2, 2, TST_INTEGER, OP_REM )
  85. _OP_DEF(opexe_2, "modulo", 2, 2, TST_NUMBER, OP_MOD )
  86. _OP_DEF(opexe_2, "car", 1, 1, TST_PAIR, OP_CAR )
  87. _OP_DEF(opexe_2, "cdr", 1, 1, TST_PAIR, OP_CDR )
  88. _OP_DEF(opexe_2, "cons", 2, 2, TST_NONE, OP_CONS )
  89. _OP_DEF(opexe_2, "set-car!", 2, 2, TST_PAIR TST_ANY, OP_SETCAR )
  90. _OP_DEF(opexe_2, "set-cdr!", 2, 2, TST_PAIR TST_ANY, OP_SETCDR )
  91. _OP_DEF(opexe_2, "char->integer", 1, 1, TST_CHAR, OP_CHAR2INT )
  92. _OP_DEF(opexe_2, "integer->char", 1, 1, TST_NATURAL, OP_INT2CHAR )
  93. _OP_DEF(opexe_2, "char-upcase", 1, 1, TST_CHAR, OP_CHARUPCASE )
  94. _OP_DEF(opexe_2, "char-downcase", 1, 1, TST_CHAR, OP_CHARDNCASE )
  95. _OP_DEF(opexe_2, "symbol->string", 1, 1, TST_SYMBOL, OP_SYM2STR )
  96. _OP_DEF(opexe_2, "atom->string", 1, 1, TST_ANY, OP_ATOM2STR )
  97. _OP_DEF(opexe_2, "string->symbol", 1, 1, TST_STRING, OP_STR2SYM )
  98. _OP_DEF(opexe_2, "string->atom", 1, 1, TST_STRING, OP_STR2ATOM )
  99. _OP_DEF(opexe_2, "make-string", 1, 2, TST_NATURAL TST_CHAR, OP_MKSTRING )
  100. _OP_DEF(opexe_2, "string-length", 1, 1, TST_STRING, OP_STRLEN )
  101. _OP_DEF(opexe_2, "string-ref", 2, 2, TST_STRING TST_NATURAL, OP_STRREF )
  102. _OP_DEF(opexe_2, "string-set!", 3, 3, TST_STRING TST_NATURAL TST_CHAR, OP_STRSET )
  103. _OP_DEF(opexe_2, "string-append", 0, INF_ARG, TST_STRING, OP_STRAPPEND )
  104. _OP_DEF(opexe_2, "substring", 2, 3, TST_STRING TST_NATURAL, OP_SUBSTR )
  105. _OP_DEF(opexe_2, "vector", 0, INF_ARG, TST_NONE, OP_VECTOR )
  106. _OP_DEF(opexe_2, "make-vector", 1, 2, TST_NATURAL TST_ANY, OP_MKVECTOR )
  107. _OP_DEF(opexe_2, "vector-length", 1, 1, TST_VECTOR, OP_VECLEN )
  108. _OP_DEF(opexe_2, "vector-ref", 2, 2, TST_VECTOR TST_NATURAL, OP_VECREF )
  109. _OP_DEF(opexe_2, "vector-set!", 3, 3, TST_VECTOR TST_NATURAL TST_ANY, OP_VECSET )
  110. _OP_DEF(opexe_3, "not", 1, 1, TST_NONE, OP_NOT )
  111. _OP_DEF(opexe_3, "boolean?", 1, 1, TST_NONE, OP_BOOLP )
  112. _OP_DEF(opexe_3, "eof-object?", 1, 1, TST_NONE, OP_EOFOBJP )
  113. _OP_DEF(opexe_3, "null?", 1, 1, TST_NONE, OP_NULLP )
  114. _OP_DEF(opexe_3, "=", 2, INF_ARG, TST_NUMBER, OP_NUMEQ )
  115. _OP_DEF(opexe_3, "<", 2, INF_ARG, TST_NUMBER, OP_LESS )
  116. _OP_DEF(opexe_3, ">", 2, INF_ARG, TST_NUMBER, OP_GRE )
  117. _OP_DEF(opexe_3, "<=", 2, INF_ARG, TST_NUMBER, OP_LEQ )
  118. _OP_DEF(opexe_3, ">=", 2, INF_ARG, TST_NUMBER, OP_GEQ )
  119. _OP_DEF(opexe_3, "symbol?", 1, 1, TST_ANY, OP_SYMBOLP )
  120. _OP_DEF(opexe_3, "number?", 1, 1, TST_ANY, OP_NUMBERP )
  121. _OP_DEF(opexe_3, "string?", 1, 1, TST_ANY, OP_STRINGP )
  122. _OP_DEF(opexe_3, "integer?", 1, 1, TST_ANY, OP_INTEGERP )
  123. _OP_DEF(opexe_3, "real?", 1, 1, TST_ANY, OP_REALP )
  124. _OP_DEF(opexe_3, "rational?", 1, 1, TST_ANY, OP_RATIONALP )
  125. _OP_DEF(opexe_3, "char?", 1, 1, TST_ANY, OP_CHARP )
  126. #if USE_CHAR_CLASSIFIERS
  127. _OP_DEF(opexe_3, "char-alphabetic?", 1, 1, TST_CHAR, OP_CHARAP )
  128. _OP_DEF(opexe_3, "char-numeric?", 1, 1, TST_CHAR, OP_CHARNP )
  129. _OP_DEF(opexe_3, "char-whitespace?", 1, 1, TST_CHAR, OP_CHARWP )
  130. _OP_DEF(opexe_3, "char-upper-case?", 1, 1, TST_CHAR, OP_CHARUP )
  131. _OP_DEF(opexe_3, "char-lower-case?", 1, 1, TST_CHAR, OP_CHARLP )
  132. #endif
  133. _OP_DEF(opexe_3, "port?", 1, 1, TST_ANY, OP_PORTP )
  134. _OP_DEF(opexe_3, "input-port?", 1, 1, TST_ANY, OP_INPORTP )
  135. _OP_DEF(opexe_3, "output-port?", 1, 1, TST_ANY, OP_OUTPORTP )
  136. _OP_DEF(opexe_3, "procedure?", 1, 1, TST_ANY, OP_PROCP )
  137. _OP_DEF(opexe_3, "pair?", 1, 1, TST_ANY, OP_PAIRP )
  138. _OP_DEF(opexe_3, "list?", 1, 1, TST_ANY, OP_LISTP )
  139. _OP_DEF(opexe_3, "environment?", 1, 1, TST_ANY, OP_ENVP )
  140. _OP_DEF(opexe_3, "vector?", 1, 1, TST_ANY, OP_VECTORP )
  141. _OP_DEF(opexe_3, "cptr?", 1, 1, TST_ANY, OP_CPTRP )
  142. _OP_DEF(opexe_3, "eq?", 2, 2, TST_ANY, OP_EQ )
  143. _OP_DEF(opexe_3, "eqv?", 2, 2, TST_ANY, OP_EQV )
  144. _OP_DEF(opexe_4, "force", 1, 1, TST_ANY, OP_FORCE )
  145. _OP_DEF(opexe_4, 0, 0, 0, 0, OP_SAVE_FORCED )
  146. _OP_DEF(opexe_4, "write", 1, 2, TST_ANY TST_OUTPORT, OP_WRITE )
  147. _OP_DEF(opexe_4, "write-char", 1, 2, TST_CHAR TST_OUTPORT, OP_WRITE_CHAR )
  148. _OP_DEF(opexe_4, "display", 1, 2, TST_ANY TST_OUTPORT, OP_DISPLAY )
  149. _OP_DEF(opexe_4, "newline", 0, 1, TST_OUTPORT, OP_NEWLINE )
  150. _OP_DEF(opexe_4, "error", 1, INF_ARG, TST_NONE, OP_ERR0 )
  151. _OP_DEF(opexe_4, 0, 0, 0, 0, OP_ERR1 )
  152. _OP_DEF(opexe_4, "reverse", 1, 1, TST_LIST, OP_REVERSE )
  153. _OP_DEF(opexe_4, "list*", 1, INF_ARG, TST_NONE, OP_LIST_STAR )
  154. _OP_DEF(opexe_4, "append", 0, INF_ARG, TST_NONE, OP_APPEND )
  155. _OP_DEF(opexe_4, "put", 3, 3, TST_NONE, OP_PUT )
  156. _OP_DEF(opexe_4, "get", 2, 2, TST_NONE, OP_GET )
  157. _OP_DEF(opexe_4, "quit", 0, 1, TST_NUMBER, OP_QUIT )
  158. _OP_DEF(opexe_4, "new-segment", 0, 1, TST_NUMBER, OP_NEWSEGMENT )
  159. _OP_DEF(opexe_4, "oblist", 0, 0, 0, OP_OBLIST )
  160. _OP_DEF(opexe_4, "current-input-port", 0, 0, 0, OP_CURR_INPORT )
  161. _OP_DEF(opexe_4, "current-output-port", 0, 0, 0, OP_CURR_OUTPORT )
  162. _OP_DEF(opexe_4, "open-input-file", 1, 1, TST_STRING, OP_OPEN_INFILE )
  163. _OP_DEF(opexe_4, "open-output-file", 1, 1, TST_STRING, OP_OPEN_OUTFILE )
  164. _OP_DEF(opexe_4, "open-input-output-file", 1, 1, TST_STRING, OP_OPEN_INOUTFILE )
  165. #if USE_STRING_PORTS
  166. _OP_DEF(opexe_4, "open-input-string", 1, 1, TST_STRING, OP_OPEN_INSTRING )
  167. _OP_DEF(opexe_4, "open-input-output-string", 1, 1, TST_STRING, OP_OPEN_INOUTSTRING )
  168. _OP_DEF(opexe_4, "open-output-string", 0, 1, TST_STRING, OP_OPEN_OUTSTRING )
  169. _OP_DEF(opexe_4, "get-output-string", 1, 1, TST_OUTPORT, OP_GET_OUTSTRING )
  170. #endif
  171. _OP_DEF(opexe_4, "close-input-port", 1, 1, TST_INPORT, OP_CLOSE_INPORT )
  172. _OP_DEF(opexe_4, "close-output-port", 1, 1, TST_OUTPORT, OP_CLOSE_OUTPORT )
  173. _OP_DEF(opexe_4, "interaction-environment", 0, 0, 0, OP_INT_ENV )
  174. _OP_DEF(opexe_4, "current-environment", 0, 0, 0, OP_CURR_ENV )
  175. _OP_DEF(opexe_5, "read", 0, 1, TST_INPORT, OP_READ )
  176. _OP_DEF(opexe_5, "read-char", 0, 1, TST_INPORT, OP_READ_CHAR )
  177. _OP_DEF(opexe_5, "peek-char", 0, 1, TST_INPORT, OP_PEEK_CHAR )
  178. _OP_DEF(opexe_5, "char-ready?", 0, 1, TST_INPORT, OP_CHAR_READY )
  179. _OP_DEF(opexe_5, "set-input-port", 1, 1, TST_INPORT, OP_SET_INPORT )
  180. _OP_DEF(opexe_5, "set-output-port", 1, 1, TST_OUTPORT, OP_SET_OUTPORT )
  181. _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDSEXPR )
  182. _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDLIST )
  183. _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDDOT )
  184. _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDQUOTE )
  185. _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDQQUOTE )
  186. _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDQQUOTEVEC )
  187. _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDUNQUOTE )
  188. _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDUQTSP )
  189. _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDVEC )
  190. _OP_DEF(opexe_5, 0, 0, 0, 0, OP_P0LIST )
  191. _OP_DEF(opexe_5, 0, 0, 0, 0, OP_P1LIST )
  192. _OP_DEF(opexe_5, 0, 0, 0, 0, OP_PVECFROM )
  193. _OP_DEF(opexe_6, "length", 1, 1, TST_LIST, OP_LIST_LENGTH )
  194. _OP_DEF(opexe_6, "assq", 2, 2, TST_NONE, OP_ASSQ )
  195. _OP_DEF(opexe_6, "get-closure-code", 1, 1, TST_NONE, OP_GET_CLOSURE )
  196. _OP_DEF(opexe_6, "closure?", 1, 1, TST_NONE, OP_CLOSUREP )
  197. _OP_DEF(opexe_6, "macro?", 1, 1, TST_NONE, OP_MACROP )
  198. #undef _OP_DEF