19#define REDUCT_BUCKETS_MAX 128
20#define REDUCT_CONSTANTS_MAX 8
22#define REDUCT_GC_THRESHOLD_INITIAL 128
37typedef struct reduct_input
50typedef struct reduct_constant
Atom representation and operations.
#define REDUCT_PATH_MAX
Maximum path length for Reduct.
Error handling and reporting.
REDUCT_API void reduct_constant_register(reduct_t *reduct, const char *name, struct reduct_item *item)
Register a constant in a Reduct structure.
REDUCT_API reduct_t * reduct_new(reduct_error_t *error)
Create a new Reduct structure.
#define REDUCT_CONSTANTS_MAX
Maximum amount of predefined constants.
reduct_input_flags_t
Input flags.
REDUCT_API reduct_input_t * reduct_input_new(reduct_t *reduct, const char *buffer, reduct_size_t length, const char *path, reduct_input_flags_t flags)
Create a new input structure and push it onto the input stack.
#define REDUCT_BUCKETS_MAX
Amount of buckets used for intering atoms.
REDUCT_API void reduct_free(reduct_t *reduct)
Free the Reduct structure.
REDUCT_API void reduct_args_set(reduct_t *reduct, int argc, char **argv)
Set the command line arguments for the Reduct structure.
@ REDUCT_INPUT_FLAG_OWNED
The input buffer is owned by the input structure and should be freed.
struct reduct_atom * name
struct reduct_item * item
reduct_size_t gcThreshold
reduct_item_block_t * block
struct reduct_eval_state * evalState
reduct_item_block_t firstBlock
reduct_input_t firstInput
struct reduct_item * freeList
reduct_uint32_t constantCount
reduct_size_t blocksAllocated
reduct_item_t * falseItem