@@ 1,10 1,11 @@
-# Yet Another Brainf--k Interpreter
## 1. Description
-yabfig is a [Brainf--k](https://en.wikipedia.org/wiki/Brainfuck)
+yabfig is a [BF](https://en.wikipedia.org/wiki/brainfuck)
interpreter written in Go. It has also been extended to lint
-code (by removing un-interpreted characters) and a gdb-style debugger.
+code (by removing un-interpreted characters) and to include a gdb-style
## 2. Requirements
@@ 16,10 17,8 @@ The following packages must be installed on your system.
## 3. Copying and contributing
This program is written by Humaid AlQassimi,
-and is distributed under the BSD 2 Clause license.
-Contribution is currently accepted as merge requests on GitLab. Patches
-via email is also accepted if preferred.
+and is distributed under the
+[BSD 2 Clause](https://humaidq.ae/license/bsd-2-clause) license.
## 4. Download and install
@@ 36,6 35,44 @@ Options:
-lint Lint (format) a Brainfuck file by removing spaces and non-instruction characters and output it to standard output.
-debug Run an interactive gdb-style debugger.
+To run the example program `hello-world.bf`:
+$ yabfig programs/hello-world.bf
+Using the debugger to set breakpoints:
+$ yabfig -debug programs/hello-world.bf
+yabfig debugger for Brainfuck.
+Commands are similar to gdb, type "help" for a list of compatible commands.
+List of commands:
+run -- Run the program
+print [pos] -- Print value at memory position
+next [count] -- Execute next instruction[s]
+jump [pos] -- Jump to a program position and resume
+break [pos] -- Add breakpoint at program position
+clear [pos] -- Delete breakpoint at program position
+watch [n = x] -- Set watchpoint when memory position n is x
+kill -- Kill program execution
+(yabfig-dbg) b 98
+Breakpoint #1 at position 98
+(yabfig-dbg) b 102
+Breakpoint #2 at position 102
+(yabfig-dbg) b 106
+Breakpoint #3 at position 106
+Running program: programs/hello-world.bf
+Hello WorldBreakpoint hit at position 98
+!Breakpoint hit at position 102
+Breakpoint hit at position 106
## 6. Change log
@@ 52,13 89,3 @@ Options:
- Add a simple gdb-style debugger
- Improve interpreter functions
-## 7. To-do
-- [x] Unit testing & example programs
-- [x] gdb-like debugger
- - [x] Viewing memory
- - [x] Stepping
- - [x] Breakpoints
- - [ ] Ignore
- - [ ] View source
-- [ ] A web interface with debugger and visualiser