From b5783dacf216af9bb70ad2eab95d555277e204a1 Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Mon, 21 Nov 2022 14:46:24 +0200 Subject: Reformat --- README | 8 +++----- brainfuck.c | 59 ++++++++++++++--------------------------------------------- 2 files changed, 17 insertions(+), 50 deletions(-) diff --git a/README b/README index 98c184a..4022180 100644 --- a/README +++ b/README @@ -1,14 +1,12 @@ ./brainfuck: Brainfuck programming language interpreter -See for more details - Usage: ./brainfuck [options] [file] Size of each data cell is 4 byte(s) All data cells are zeros initially -Options (defaults are in brackets): - -s num stack size (128) - -d num data size (1024) +Options: + -s num stack size (default 128) + -d num data size (default 1024) -t trace execution for debugging -O optimize code -C translate into C (to stdout) diff --git a/brainfuck.c b/brainfuck.c index fb15282..6279668 100644 --- a/brainfuck.c +++ b/brainfuck.c @@ -1,4 +1,3 @@ - /* * gcc -ansi -pedantic -Wall -Wextra -Werror -o brainfuck brainfuck.c */ @@ -9,41 +8,27 @@ #include #include +#define xstr(a) str(a) +#define str(a) #a #define DATATYPE int -#define DATATYPE_STR "int" +#define DATATYPE_STR xstr(DATATYPE) FILE *prog; - char *print_as = NULL; - char *code = NULL; - DATATYPE *data = NULL; - unsigned int *stack = NULL; - unsigned int data_size = 1024; - unsigned int stack_size = 128; - char fmt = 'u'; - char format[9] = "%u"; - int trace = 0; - int compile = 0; - int optimize = 0; - unsigned int cp = 0; - unsigned int dp = 0; - unsigned int max_dp = 0; - unsigned int sp = 0; - char commands[] = "+-<>,.[]cioux"; void @@ -404,9 +389,9 @@ optimize_code () else if (d != 0) { if (d < 0) - sprintf (tmp, "L%u", -d); /* move left by d */ + sprintf (tmp, "L%u", -d); /* move left by d */ else - sprintf (tmp, "R%u", d); /* move right by d */ + sprintf (tmp, "R%u", d); /* move right by d */ k = 0; while (tmp[k]) new_code[j++] = tmp[k++]; @@ -422,14 +407,10 @@ optimize_code () */ substr = new_code; while (NULL != (substr = strstr (substr, "[-]"))) - { - memcpy (substr, "Z ", 3); /* [-] set current cell to 0 */ - } + memcpy (substr, "Z ", 3); /* [-] set current cell to 0 */ substr = new_code; while (NULL != (substr = strstr (substr, "[+]"))) - { - memcpy (substr, "Z ", 3); /* [-] set current cell to 0 */ - } + memcpy (substr, "Z ", 3); /* [-] set current cell to 0 */ free (code); code = new_code; @@ -619,17 +600,15 @@ void usage (char *self) { printf ("%s: Brainfuck programming language interpreter\n", self); - printf - ("See for more details\n\n"); printf ("Usage: %s [options] [file]\n\n", self); printf ("Size of each data cell is %lu byte(s)\n", (long unsigned int) sizeof (DATATYPE)); printf ("All data cells are zeros initially\n\n"); - printf ("Options (defaults are in brackets):\n"); - printf (" -s num stack size (%u)\n", stack_size); - printf (" -d num data size (%u)\n", data_size); + printf ("Options:\n"); + printf (" -s num stack size (default %u)\n", stack_size); + printf (" -d num data size (default %u)\n", data_size); printf (" -t trace execution for debugging\n"); printf (" -O optimize code\n"); printf (" -C translate into C (to stdout)\n"); @@ -673,9 +652,7 @@ int main (int argc, char **argv) { char *filename; - char *self = argv[0]; - int opt; while (-1 != (opt = getopt (argc, argv, "p:OCts:d:h?iucox"))) @@ -724,9 +701,7 @@ main (int argc, char **argv) } } else - { - prog = stdin; - } + prog = stdin; read_code (); @@ -737,19 +712,13 @@ main (int argc, char **argv) optimize_code (); if (compile) - { - bf2c (); - } + bf2c (); else if (print_as != NULL) { if (strcmp (print_as, "cow") == 0) - { - bf2moo (); - } + bf2moo (); else - { - fprintf (stderr, "Unknown argument to -p: %s\n", print_as); - } + fprintf (stderr, "Unknown argument to -p: %s\n", print_as); } else { -- cgit v1.2.3