6#ifndef BFX_LANGS_GRIN_H
7#define BFX_LANGS_GRIN_H
29#ifndef BFX_GRIN_DEFAULT_PRECISION
33#define BFX_GRIN_DEFAULT_PRECISION 4
#define BFX_DEFAULT_TAPE_SIZE
Default tape size for the interpreter.
Definition: bfx.h:25
BFX_Error
Definition: bfx.h:93
BFX_Error bfx_op_grin_tan(BFX *, BFX_FileIndex *)
Tangent of current cell value (Grin)
Definition: grin.c:412
BFX_Error bfx_op_grin_putchar_number(BFX *, BFX_FileIndex *)
Output current cell as a number (Grin)
Definition: grin.c:181
BFX_Error bfx_op_grin_exp(BFX *, BFX_FileIndex *)
Raise current cell to the power of register (Grin)
Definition: grin.c:266
BFX_Error bfx_op_grin_arccos(BFX *, BFX_FileIndex *)
Arccosine of current cell value (Grin)
Definition: grin.c:428
BFX_Error bfx_op_grin_swap(BFX *, BFX_FileIndex *)
Swap current cell value with register value (Grin)
Definition: grin.c:290
BFX_Error bfx_op_grin_dec_t(BFX *, BFX_FileIndex *)
Decrement value at tape pointer (Grin).
Definition: grin.c:121
BFX_Error bfx_op_grin_round(BFX *, BFX_FileIndex *)
Round current cell value (Grin)
Definition: grin.c:324
BFX_Error bfx_op_grin_getchar_ascii(BFX *, BFX_FileIndex *)
Set current cell to inputted ASCII character (Grin)
Definition: grin.c:189
BFX_Error bfx_op_grin_putchar_register_number(BFX *, BFX_FileIndex *)
Print register as number (Grin)
Definition: grin.c:226
BFX_Error bfx_op_grin_div(BFX *, BFX_FileIndex *)
Divide current cell by register (Grin)
Definition: grin.c:258
BFX_Error bfx_op_grin_store(BFX *, BFX_FileIndex *)
Store current cell value in register (Grin)
Definition: grin.c:274
BFX_Error bfx_op_grin_sub(BFX *, BFX_FileIndex *)
Subtract register from current cell (Grin)
Definition: grin.c:242
BFX_Error bfx_op_grin_print(BFX *, BFX_FileIndex *)
Print from instruction pointer to next ')' (Grin)
Definition: grin.c:376
BFX_Error bfx_op_grin_cos(BFX *, BFX_FileIndex *)
Cosine of current cell value (Grin)
Definition: grin.c:404
BFX_Error bfx_op_grin_zero_ptr(BFX *, BFX_FileIndex *)
Zero cell at register value (Grin)
Definition: grin.c:308
BFX_Error bfx_op_grin_log(BFX *, BFX_FileIndex *)
Base-10 logarithm of current cell value (Grin)
Definition: grin.c:500
BFX_Error bfx_op_grin_negate(BFX *, BFX_FileIndex *)
Negate current cell value (Grin)
Definition: grin.c:358
BFX_Error bfx_op_grin_toggle_deg_rad(BFX *, BFX_FileIndex *)
Toggle between degrees and radians (Grin)
Definition: grin.c:518
BFX_Error bfx_op_grin_inc_t(BFX *, BFX_FileIndex *)
Increment value at tape pointer (Grin).
Definition: grin.c:113
BFX_Error bfx_op_grin_ln(BFX *, BFX_FileIndex *)
Natural logarithm of current cell value (Grin)
Definition: grin.c:476
BFX_Error bfx_op_grin_arcsin(BFX *, BFX_FileIndex *)
Arcsine of current cell value (Grin)
Definition: grin.c:420
BFX_Error bfx_op_grin_inv(BFX *, BFX_FileIndex *)
Inverse of current cell value (Grin)
Definition: grin.c:444
BFX_Error bfx_op_grin_mod2(BFX *, BFX_FileIndex *)
Modulo of current cell value by 2 (Grin)
Definition: grin.c:452
BFX_Error bfx_op_grin_putchar_register_ascii(BFX *, BFX_FileIndex *)
Print register as ASCII character (Grin)
Definition: grin.c:218
BFX_Error bfx_op_grin_getchar_number(BFX *, BFX_FileIndex *)
Set current cell to inputted number (Grin)
Definition: grin.c:197
BFX_Error bfx_op_grin_add(BFX *, BFX_FileIndex *)
Add register to current cell (Grin)
Definition: grin.c:234
BFX_Error bfx_op_grin_not(BFX *, BFX_FileIndex *)
NOT current cell value (Grin)
Definition: grin.c:350
BFX_Error bfx_op_grin_simplify(BFX *, BFX_FileIndex *)
Simplify current cell value (set to -1.0 if < -1.0, 1.0 if > 1.0, 0.0 otherwise) (Grin)
Definition: grin.c:366
BFX_Error bfx_op_grin_sin(BFX *, BFX_FileIndex *)
Sine of current cell value (Grin)
Definition: grin.c:396
BFX_Error bfx_op_grin_zero(BFX *, BFX_FileIndex *)
Zero current cell value (Grin)
Definition: grin.c:300
BFX_Error bfx_op_grin_loop_start(BFX *, BFX_FileIndex *)
Start of loop (Grin).
Definition: grin.c:129
BFX_Error bfx_op_grin_nand(BFX *, BFX_FileIndex *)
NAND current cell value with register value (Grin)
Definition: grin.c:332
BFX_Error bfx_op_grin_putchar_ascii(BFX *, BFX_FileIndex *)
Output current cell as ASCII character (Grin)
Definition: grin.c:173
BFX_Error bfx_op_grin_loop_end(BFX *, BFX_FileIndex *)
End of loop (Grin).
Definition: grin.c:151
BFX_Error bfx_op_grin_newline(BFX *, BFX_FileIndex *)
Print a newline (Grin)
Definition: grin.c:388
BFX_Error bfx_op_grin_sqrt(BFX *, BFX_FileIndex *)
Square root of current cell value (Grin)
Definition: grin.c:492
BFX_Error bfx_op_grin_mean(BFX *, BFX_FileIndex *)
Mean of current cell value and register value (Grin)
Definition: grin.c:484
BFX_Error bfx_op_grin_mod(BFX *, BFX_FileIndex *)
Modulo (Grin)
Definition: grin.c:316
BFX_Error bfx_op_grin_jump(BFX *, BFX_FileIndex *)
Jump n instructions, n=register value (Grin)
Definition: grin.c:508
BFX_Error bfx_op_grin_exit(BFX *, BFX_FileIndex *)
Exit the program (Grin)
Definition: grin.c:530
BFX_GrinUnit
Unit of measurement for Grin language.
Definition: grin.h:14
@ BFX_GRIN_DEG
Degrees.
Definition: grin.h:15
@ BFX_GRIN_RAD
Radians.
Definition: grin.h:16
BFX_Error bfx_op_grin_pi(BFX *, BFX_FileIndex *)
Set current cell to Pi (Grin)
Definition: grin.c:468
BFX_Error bfx_op_grin_mul(BFX *, BFX_FileIndex *)
Multiply current cell by register (Grin)
Definition: grin.c:250
BFX_Error bfx_op_grin_e(BFX *, BFX_FileIndex *)
Set current cell to Euler's number (Grin)
Definition: grin.c:460
BFX_Error bfx_grin_init(BFX *)
Initialize the Grin interpreter.
Definition: grin.c:24
BFX_Error bfx_grin_run(BFX *)
Run the Grin interpreter.
Definition: grin.c:57
BFX_Error bfx_op_grin_or(BFX *, BFX_FileIndex *)
OR current cell value with register value (Grin)
Definition: grin.c:341
BFX_Error bfx_op_grin_arctan(BFX *, BFX_FileIndex *)
Arctangent of current cell value (Grin)
Definition: grin.c:436
BFX_Error bfx_op_grin_load(BFX *, BFX_FileIndex *)
Store register value in current cell (Grin)
Definition: grin.c:282
Structure to represent an index in a file (or user input).
Definition: bfx.h:126
Data structure for Grin language.
Definition: grin.h:22
double reg
Register value.
Definition: grin.h:24
BFX_GrinUnit unit
Unit of measurement.
Definition: grin.h:23
int precision
Number of decimal places to print.
Definition: grin.h:25
Structure to store generic data for a brainfuck-like esolang interpreter.
Definition: bfx.h:149