diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..ac5e0f7 --- /dev/null +++ b/src/main.c @@ -0,0 +1,39 @@ +#include "program.h" +#include "interpreter.h" + +#include <stdio.h> +#include <stdlib.h> +#include <stdbool.h> +#include <stdint.h> +#include <string.h> +#include <errno.h> + +/// < Move pointer left +/// > Move pointer right +/// + Increment cell by one +/// - Decrement cell by one +/// [ Jump past the matching ] if the cell at the pointer is 0 +/// ] Jump back to the matching [ if the cell at the pointer is nonzero +/// . Output ascii at current cell +/// , Input ascii into current cell +/// * Allocate new tape size of current cell and replace with pointer +/// ! Free allocated pointer in current cell +/// ( Go to tape at pointer in current cell +/// ) Leave tape last entered +/// ` Output null terminated string at current cell +/// ~ Input string into current cells with max length in current cell +/// % Clear screen + +int main(int argc, char** argv) { + if (argc != 2) { + printf("usage: brainfucked infile\n"); + return EXIT_FAILURE; + } + + Program program; + program_init(argv[1], &program); + run_program(&program); + program_free(&program); + + return EXIT_SUCCESS; +} |