98 lines
3.4 KiB
Markdown
98 lines
3.4 KiB
Markdown
# bfckr [](https://travis-ci.org/id101010/bfckr)
|
|
A simple to use brainfuck interpreter with built in debugger written in C.
|
|
|
|
# How to run
|
|
* Type "make"
|
|
* Read [this](https://en.wikipedia.org/wiki/Brainf**k)
|
|
* 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
|
|
|
|

|
|
|
|
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.
|