Reduct  v1.0.4-3-gdaf0d70
A functional and immutable language.
Loading...
Searching...
No Matches
intrinsic_impl.h File Reference
#include "compile.h"
#include "intrinsic.h"
#include "item.h"
#include "stdlib.h"
Include dependency graph for intrinsic_impl.h:

Go to the source code of this file.

Macros

#define REDUCT_INTRINSIC_NATIVE_ARITH(_name, _op, _identity)
 
#define REDUCT_INTRINSIC_NATIVE_LOGIC(_name, _short_circuit_truth)
 
#define REDUCT_INTRINSIC_NATIVE_BITWISE(_name, _op)
 
#define REDUCT_INTRINSIC_NATIVE_COMPARE(_name, _op)
 
#define REDUCT_INTRINSIC_NATIVE_COMPARE_STRICT(_name, _expected)
 

Functions

static void reduct_intrinsic_check_arity (reduct_compiler_t *compiler, reduct_item_t *list, reduct_size_t expected, const char *name)
 
static void reduct_intrinsic_check_min_arity (reduct_compiler_t *compiler, reduct_item_t *list, reduct_size_t min, const char *name)
 
static void reduct_intrinsic_check_arity_range (reduct_compiler_t *compiler, reduct_item_t *list, reduct_size_t min, reduct_size_t max, const char *name)
 
void reduct_intrinsic_quote (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_list (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
static void reduct_compile_build_into_target (reduct_compiler_t *compiler, reduct_item_t *item, reduct_reg_t target)
 
void reduct_intrinsic_block_generic (reduct_compiler_t *compiler, reduct_item_t *list, reduct_uint32_t startIdx, reduct_expr_t *out)
 
void reduct_intrinsic_do (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_lambda (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_thread (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_def (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
static reduct_bool_t reduct_expr_get_item (reduct_compiler_t *compiler, reduct_expr_t *expr, reduct_handle_t *outItem)
 
static reduct_bool_t reduct_expr_is_known_truthy (reduct_compiler_t *compiler, reduct_expr_t *expr, reduct_bool_t *isTruthy)
 
static reduct_item_treduct_intrinsic_get_pair (reduct_compiler_t *compiler, reduct_handle_t *h, const char *name)
 
static reduct_bool_t reduct_fold_comparison (reduct_t *reduct, reduct_opcode_t opBase, reduct_handle_t left, reduct_handle_t right, reduct_bool_t *result)
 
void reduct_intrinsic_if (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_cond (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_match (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
static void reduct_intrinsic_and_or (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out, reduct_opcode_t jumpOp)
 
void reduct_intrinsic_and (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_or (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_not (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
static reduct_atom_treduct_fold_binary_calc (reduct_compiler_t *compiler, reduct_opcode_t op, reduct_float_t lf, reduct_float_t rf, reduct_int64_t li, reduct_int64_t ri, reduct_bool_t isFloat)
 
static reduct_bool_t reduct_fold_binary_expr (reduct_compiler_t *compiler, reduct_opcode_t opBase, reduct_expr_t *leftExpr, reduct_expr_t *rightExpr, reduct_expr_t *outExpr)
 
void reduct_intrinsic_binary_generic (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out, reduct_opcode_t opBase)
 
void reduct_intrinsic_add (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_sub (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_mul (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_div (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_mod (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
static void reduct_intrinsic_unary_op_generic (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out, reduct_opcode_t op, reduct_expr_t rightExpr, const char *name)
 
void reduct_intrinsic_inc (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_dec (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_bit_and (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_bit_or (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_bit_xor (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_bit_not (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_bit_shl (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_bit_shr (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
static void reduct_intrinsic_comparison_generic (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out, reduct_opcode_t opBase)
 
void reduct_intrinsic_equal (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_strict_equal (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_not_equal (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_strict_not_equal (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_less (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_less_equal (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_greater (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
void reduct_intrinsic_greater_equal (reduct_compiler_t *compiler, reduct_item_t *list, reduct_expr_t *out)
 
static reduct_handle_t reduct_intrinsic_native_list (reduct_t *reduct, reduct_size_t argc, reduct_handle_t *argv)
 
static reduct_handle_t reduct_intrinsic_native_mod (reduct_t *reduct, reduct_size_t argc, reduct_handle_t *argv)
 
static reduct_handle_t reduct_intrinsic_native_inc (reduct_t *reduct, reduct_size_t argc, reduct_handle_t *argv)
 
static reduct_handle_t reduct_intrinsic_native_dec (reduct_t *reduct, reduct_size_t argc, reduct_handle_t *argv)
 
static reduct_handle_t reduct_intrinsic_native_bnot (reduct_t *reduct, reduct_size_t argc, reduct_handle_t *argv)
 
static reduct_handle_t reduct_intrinsic_native_shl (reduct_t *reduct, reduct_size_t argc, reduct_handle_t *argv)
 
static reduct_handle_t reduct_intrinsic_native_shr (reduct_t *reduct, reduct_size_t argc, reduct_handle_t *argv)
 
static reduct_handle_t reduct_intrinsic_native_do (reduct_t *reduct, reduct_size_t argc, reduct_handle_t *argv)
 
static reduct_handle_t reduct_intrinsic_native_not (reduct_t *reduct, reduct_size_t argc, reduct_handle_t *argv)
 
static void reduct_intrinsic_register (reduct_t *reduct, reduct_intrinsic_t intrinsic)
 
REDUCT_API void reduct_intrinsic_register_all (reduct_t *reduct)
 

Variables

reduct_intrinsic_handler_t reductIntrinsicHandlers [REDUCT_INTRINSIC_MAX]
 Intrinsic handler functions array.
 
const char * reductIntrinsics [REDUCT_INTRINSIC_MAX]
 Intrinsic names array.
 
reduct_native_fn reductIntrinsicNatives [REDUCT_INTRINSIC_MAX]
 Intrinsic native functions array.
 

Macro Definition Documentation

◆ REDUCT_INTRINSIC_NATIVE_ARITH

#define REDUCT_INTRINSIC_NATIVE_ARITH (   _name,
  _op,
  _identity 
)
Value:
static reduct_handle_t reduct_intrinsic_native_##_name(reduct_t* reduct, reduct_size_t argc, \
reduct_handle_t* argv) \
{ \
if (argc == 0) \
{ \
return REDUCT_HANDLE_FROM_INT(_identity); \
} \
if (argc == 1) \
{ \
REDUCT_HANDLE_ARITHMETIC_FAST(reduct, &res, &id, &argv[0], _op); \
return res; \
} \
reduct_handle_t res = argv[0]; \
for (reduct_size_t i = 1; i < argc; i++) \
{ \
REDUCT_HANDLE_ARITHMETIC_FAST(reduct, &res, &res, &argv[i], _op); \
} \
return res; \
}
size_t reduct_size_t
Definition defs.h:100
reduct_uint64_t reduct_handle_t
Handle type.
Definition defs.h:189
#define REDUCT_HANDLE_FROM_INT(_val)
Create a handle from an integer.
Definition handle.h:54
State structure.
Definition core.h:61

Definition at line 1280 of file intrinsic_impl.h.

◆ REDUCT_INTRINSIC_NATIVE_LOGIC

#define REDUCT_INTRINSIC_NATIVE_LOGIC (   _name,
  _short_circuit_truth 
)
Value:
static reduct_handle_t reduct_intrinsic_native_##_name(reduct_t* reduct, reduct_size_t argc, \
reduct_handle_t* argv) \
{ \
REDUCT_UNUSED(reduct); \
if (argc == 0) \
{ \
return REDUCT_HANDLE_FALSE(); \
} \
reduct_handle_t res = argv[0]; \
for (reduct_size_t i = 0; i < argc; i++) \
{ \
res = argv[i]; \
if (REDUCT_HANDLE_IS_TRUTHY(&res) == (_short_circuit_truth)) \
{ \
return res; \
} \
} \
return res; \
}
#define REDUCT_HANDLE_FALSE()
Constant false handle.
Definition handle.h:267
#define REDUCT_HANDLE_IS_TRUTHY(_handle)
Check if a handle is truthy.
Definition handle.h:338

Definition at line 1303 of file intrinsic_impl.h.

◆ REDUCT_INTRINSIC_NATIVE_BITWISE

#define REDUCT_INTRINSIC_NATIVE_BITWISE (   _name,
  _op 
)
Value:
static reduct_handle_t reduct_intrinsic_native_##_name(reduct_t* reduct, reduct_size_t argc, \
reduct_handle_t* argv) \
{ \
reduct_error_check_min_arity(reduct, argc, 2, #_op); \
reduct_int64_t res = reduct_get_int(reduct, &argv[0]); \
for (reduct_size_t i = 1; i < argc; i++) \
{ \
res _op## = reduct_get_int(reduct, &argv[i]); \
} \
return REDUCT_HANDLE_FROM_INT(res); \
}
int64_t reduct_int64_t
Definition defs.h:92
REDUCT_API reduct_handle_t reduct_get_int(struct reduct *reduct, reduct_handle_t *handle)

Definition at line 1324 of file intrinsic_impl.h.

◆ REDUCT_INTRINSIC_NATIVE_COMPARE

#define REDUCT_INTRINSIC_NATIVE_COMPARE (   _name,
  _op 
)
Value:
static reduct_handle_t reduct_intrinsic_native_##_name(reduct_t* reduct, reduct_size_t argc, \
reduct_handle_t* argv) \
{ \
if (argc < 2) \
{ \
return REDUCT_HANDLE_TRUE(); \
} \
for (reduct_size_t i = 0; i < argc - 1; i++) \
{ \
if (!(reduct_handle_compare(reduct, &argv[i], &argv[i + 1]) _op 0)) \
{ \
return REDUCT_HANDLE_FALSE(); \
} \
} \
return REDUCT_HANDLE_TRUE(); \
}
REDUCT_API reduct_int64_t reduct_handle_compare(struct reduct *reduct, reduct_handle_t *a, reduct_handle_t *b)
Compare two items for ordering (less than, equal, or greater than).
#define REDUCT_HANDLE_TRUE()
Constant true handle.
Definition handle.h:269

Definition at line 1337 of file intrinsic_impl.h.

◆ REDUCT_INTRINSIC_NATIVE_COMPARE_STRICT

#define REDUCT_INTRINSIC_NATIVE_COMPARE_STRICT (   _name,
  _expected 
)
Value:
static reduct_handle_t reduct_intrinsic_native_##_name(reduct_t* reduct, reduct_size_t argc, \
reduct_handle_t* argv) \
{ \
if (argc < 2) \
{ \
return REDUCT_HANDLE_TRUE(); \
} \
for (reduct_size_t i = 0; i < argc - 1; i++) \
{ \
if (reduct_handle_is_equal(reduct, &argv[i], &argv[i + 1]) != (_expected)) \
{ \
return REDUCT_HANDLE_FALSE(); \
} \
} \
return REDUCT_HANDLE_TRUE(); \
}
REDUCT_API reduct_bool_t reduct_handle_is_equal(struct reduct *reduct, reduct_handle_t *a, reduct_handle_t *b)
Check if two items are exactly equal string-wise or structurally.

Definition at line 1355 of file intrinsic_impl.h.

Function Documentation

◆ reduct_intrinsic_check_arity()

static void reduct_intrinsic_check_arity ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_size_t  expected,
const char *  name 
)
inlinestatic

Definition at line 9 of file intrinsic_impl.h.

Here is the caller graph for this function:

◆ reduct_intrinsic_check_min_arity()

static void reduct_intrinsic_check_min_arity ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_size_t  min,
const char *  name 
)
inlinestatic

Definition at line 19 of file intrinsic_impl.h.

Here is the caller graph for this function:

◆ reduct_intrinsic_check_arity_range()

static void reduct_intrinsic_check_arity_range ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_size_t  min,
reduct_size_t  max,
const char *  name 
)
inlinestatic

Definition at line 29 of file intrinsic_impl.h.

Here is the caller graph for this function:

◆ reduct_intrinsic_quote()

void reduct_intrinsic_quote ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 39 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_list()

void reduct_intrinsic_list ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 49 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_compile_build_into_target()

static void reduct_compile_build_into_target ( reduct_compiler_t compiler,
reduct_item_t item,
reduct_reg_t  target 
)
inlinestatic

Definition at line 72 of file intrinsic_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduct_intrinsic_block_generic()

void reduct_intrinsic_block_generic ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_uint32_t  startIdx,
reduct_expr_t out 
)

Definition at line 89 of file intrinsic_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduct_intrinsic_do()

void reduct_intrinsic_do ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 133 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_lambda()

void reduct_intrinsic_lambda ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 138 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_thread()

void reduct_intrinsic_thread ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 218 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_def()

void reduct_intrinsic_def ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 289 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_expr_get_item()

static reduct_bool_t reduct_expr_get_item ( reduct_compiler_t compiler,
reduct_expr_t expr,
reduct_handle_t outItem 
)
inlinestatic

Definition at line 315 of file intrinsic_impl.h.

Here is the caller graph for this function:

◆ reduct_expr_is_known_truthy()

static reduct_bool_t reduct_expr_is_known_truthy ( reduct_compiler_t compiler,
reduct_expr_t expr,
reduct_bool_t isTruthy 
)
inlinestatic

Definition at line 335 of file intrinsic_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduct_intrinsic_get_pair()

static reduct_item_t * reduct_intrinsic_get_pair ( reduct_compiler_t compiler,
reduct_handle_t h,
const char *  name 
)
static

Definition at line 351 of file intrinsic_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduct_fold_comparison()

static reduct_bool_t reduct_fold_comparison ( reduct_t reduct,
reduct_opcode_t  opBase,
reduct_handle_t  left,
reduct_handle_t  right,
reduct_bool_t result 
)
static

Definition at line 362 of file intrinsic_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduct_intrinsic_if()

void reduct_intrinsic_if ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 400 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_cond()

void reduct_intrinsic_cond ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 460 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_match()

void reduct_intrinsic_match ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 551 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_and_or()

static void reduct_intrinsic_and_or ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out,
reduct_opcode_t  jumpOp 
)
static

Definition at line 628 of file intrinsic_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduct_intrinsic_and()

void reduct_intrinsic_and ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 706 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_or()

void reduct_intrinsic_or ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 711 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_not()

void reduct_intrinsic_not ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 716 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_fold_binary_calc()

static reduct_atom_t * reduct_fold_binary_calc ( reduct_compiler_t compiler,
reduct_opcode_t  op,
reduct_float_t  lf,
reduct_float_t  rf,
reduct_int64_t  li,
reduct_int64_t  ri,
reduct_bool_t  isFloat 
)
inlinestatic

Definition at line 755 of file intrinsic_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduct_fold_binary_expr()

static reduct_bool_t reduct_fold_binary_expr ( reduct_compiler_t compiler,
reduct_opcode_t  opBase,
reduct_expr_t leftExpr,
reduct_expr_t rightExpr,
reduct_expr_t outExpr 
)
static

Definition at line 804 of file intrinsic_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduct_intrinsic_binary_generic()

void reduct_intrinsic_binary_generic ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out,
reduct_opcode_t  opBase 
)

Definition at line 844 of file intrinsic_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduct_intrinsic_add()

void reduct_intrinsic_add ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 937 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_sub()

void reduct_intrinsic_sub ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 942 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_mul()

void reduct_intrinsic_mul ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 947 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_div()

void reduct_intrinsic_div ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 952 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_mod()

void reduct_intrinsic_mod ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 957 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_unary_op_generic()

static void reduct_intrinsic_unary_op_generic ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out,
reduct_opcode_t  op,
reduct_expr_t  rightExpr,
const char *  name 
)
static

Definition at line 962 of file intrinsic_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduct_intrinsic_inc()

void reduct_intrinsic_inc ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 986 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_dec()

void reduct_intrinsic_dec ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 991 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_bit_and()

void reduct_intrinsic_bit_and ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 996 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_bit_or()

void reduct_intrinsic_bit_or ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 1001 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_bit_xor()

void reduct_intrinsic_bit_xor ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 1006 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_bit_not()

void reduct_intrinsic_bit_not ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 1011 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_bit_shl()

void reduct_intrinsic_bit_shl ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 1042 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_bit_shr()

void reduct_intrinsic_bit_shr ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 1047 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_comparison_generic()

static void reduct_intrinsic_comparison_generic ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out,
reduct_opcode_t  opBase 
)
static

Definition at line 1052 of file intrinsic_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduct_intrinsic_equal()

void reduct_intrinsic_equal ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 1161 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_strict_equal()

void reduct_intrinsic_strict_equal ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 1166 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_not_equal()

void reduct_intrinsic_not_equal ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 1171 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_strict_not_equal()

void reduct_intrinsic_strict_not_equal ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 1176 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_less()

void reduct_intrinsic_less ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 1181 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_less_equal()

void reduct_intrinsic_less_equal ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 1186 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_greater()

void reduct_intrinsic_greater ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 1191 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_greater_equal()

void reduct_intrinsic_greater_equal ( reduct_compiler_t compiler,
reduct_item_t list,
reduct_expr_t out 
)

Definition at line 1196 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_native_list()

static reduct_handle_t reduct_intrinsic_native_list ( reduct_t reduct,
reduct_size_t  argc,
reduct_handle_t argv 
)
static

Definition at line 1395 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_native_mod()

static reduct_handle_t reduct_intrinsic_native_mod ( reduct_t reduct,
reduct_size_t  argc,
reduct_handle_t argv 
)
static

Definition at line 1405 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_native_inc()

static reduct_handle_t reduct_intrinsic_native_inc ( reduct_t reduct,
reduct_size_t  argc,
reduct_handle_t argv 
)
static

Definition at line 1421 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_native_dec()

static reduct_handle_t reduct_intrinsic_native_dec ( reduct_t reduct,
reduct_size_t  argc,
reduct_handle_t argv 
)
static

Definition at line 1430 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_native_bnot()

static reduct_handle_t reduct_intrinsic_native_bnot ( reduct_t reduct,
reduct_size_t  argc,
reduct_handle_t argv 
)
static

Definition at line 1439 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_native_shl()

static reduct_handle_t reduct_intrinsic_native_shl ( reduct_t reduct,
reduct_size_t  argc,
reduct_handle_t argv 
)
static

Definition at line 1445 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_native_shr()

static reduct_handle_t reduct_intrinsic_native_shr ( reduct_t reduct,
reduct_size_t  argc,
reduct_handle_t argv 
)
static

Definition at line 1457 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_native_do()

static reduct_handle_t reduct_intrinsic_native_do ( reduct_t reduct,
reduct_size_t  argc,
reduct_handle_t argv 
)
static

Definition at line 1469 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_native_not()

static reduct_handle_t reduct_intrinsic_native_not ( reduct_t reduct,
reduct_size_t  argc,
reduct_handle_t argv 
)
static

Definition at line 1478 of file intrinsic_impl.h.

Here is the call graph for this function:

◆ reduct_intrinsic_register()

static void reduct_intrinsic_register ( reduct_t reduct,
reduct_intrinsic_t  intrinsic 
)
inlinestatic

Definition at line 1513 of file intrinsic_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduct_intrinsic_register_all()

REDUCT_API void reduct_intrinsic_register_all ( reduct_t reduct)

Definition at line 1533 of file intrinsic_impl.h.

Here is the call graph for this function: