Add missing 'all' target in Makefile
This target was specified in PHONY but had no definition.
Add asserts for documentation purposes
Minor improvements to documentation
There are so few allocations in the interpreter that a dedicated
error-checking realloc function is way overkill.
This commit replaces calls to xalloc with a combination of
calloc/realloc calls and explicit NULL checks.
Add documentation for the lines and jumps vars
I had to fight not to document the whole bfi.c source file.
At one point I had written cdoc comments for every global variable and
most utility functions, but I threw it all away in order to keep things
The initial contents of buffers returned by xallocz is irrelevant given
the current use of these buffers.
The xallocz function has been removed to slim down the size and
complexity of the bfi source code.
Add README documentation for the '#' character
Change identifier cell_idx to cellptr
Brainfuck documentation usually refers to this variable as the cell
pointer rather than the cell index.
Although this variable is size_t and not actually a pointer it *does*
fill the conceptual role of a pointer and will read better alongside
existing Brainfuck documentation.
Rename COPYING -> LICENSE
Improve argument checking code so that more than one error can be
displayed before calling exit.
Reformat and slightly improve help text.
Change a variable from int to bool to better match the type that is
assigned to it.
Fix incorrect capitalization of OOB error strings
Add --debug flag to enable the '#' instruction
Improved debug output formatting
Add debugging character '#'
Add additional examples and an invalid test
Many markdown viewers translate a tab into four spaces, causing
measurements from `time` to render incorrectly.
This commit manually expands these tabs to 8-spaces.