/bfckr

A little brainfuck interpreter and debugger written in C.

Primary LanguageCDo What The F*ck You Want To Public LicenseWTFPL

bfckr Build Status

A simple to use brainfuck interpreter with built in debugger written in C.

How to run

  • Type "make"
  • Read this
  • Create your own brainfuck software
  • let bfckr run your own .bf code

Usage

Usage: ./bfckr [OPTION]
-h        Show this help.
-d        Enable debugger.
-f        Execute brainfuck code given as file.
-e        Execute brainfuck expression given as argument.

examples:

./bfckr -f examples/pi.bf

3.14070455282885

./bfckr -d -f examples/pi.bf

[ENTER]: single step [c]: continue
Source viewer:                                            
------------------------------------------------------------
                              >+++++++++++++++[<+>>>>>>>>+++
                              ^                             
                              ip=0                         
------------------------------------------------------------

Memory viewer:                                            
------------------------------------------------------------
000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 

                              ^                             
                              mp=1                         
000 000 000 000 000 000 001 002 003 004 005 006 007 008 009 
------------------------------------------------------------

Output viewer:                                              
------------------------------------------------------------

------------------------------------------------------------

./bfckr -e "----[---->+<]>++."

A

echo "42=" | ./bfckr -f examples/bintodec.bf

42=101010

Breakpoints

A # in the brainfuck source will be interpreted as breakpoint. You can use them if you want to stop the program flow at a specific point and start the debugger from there. If you are in debugger mode pressing c will get you back to executing the program.

./bfckr -e "----[#---->+<]>++."

[ENTER]: single step [c]: continue

Source viewer:                                            
------------------------------------------------------------
                         ----[#---->+<]>++.
                              ^                             
                              ip=5                         
------------------------------------------------------------

Memory viewer:                                            
------------------------------------------------------------
000 000 000 000 000 000 000 -04 000 000 000 000 000 000 000 
                              ^                             
                              mp=0                         
993 994 995 996 997 998 999 000 001 002 003 004 005 006 007 
------------------------------------------------------------

Output viewer:                                              
------------------------------------------------------------

------------------------------------------------------------

Licence

WTFPL

Copyright © 2016 Aaron aaron@duckpond.ch This work is free. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, as published by Sam Hocevar. See the COPYING file for more details.