Toy brainf**k interpreter; example app that can be modified without restarting
# Toy interpreter for Brainf@@k

![screenshot]assets/bf.gif

https://en.wikipedia.org/wiki/Brainfuck

![screenshot]assets/bf.gif

Example program for trying out [driver.love]https://git.sr.ht/~akkartik/driver.love,
a programming environment for modifying programs live, without restarting
them.

This repo is an example of a [Freewheeling App]http://akkartik.name/freewheeling,
designed above all to be easy to run, easy to modify and easy to share.

## Getting started

Install [LÖVE]https://love2d.org. It's just a 5MB download, open-source and
extremely well-behaved.

[Run the app using LÖVE.]https://love2d.org/wiki/Getting_Started#Running_Games

## Hacking

To modify it live without restarting the app each time, download [the driver
app](https://git.sr.ht/~akkartik/driver.love).

![screenshot of driver app showing overview of this repo]assets/bf-codemap.gif

If the app being modified by the driver lives in a .love file, your changes
will go into the [save directory]https://love2d.org/wiki/love.filesystem.getSaveDirectory.
If it lives in a directory (like this repo), your changes will go straight
into the same directory.

## Keyboard shortcuts

Press `f4` to evaluate a program.

Within each editor panel:

* `ctrl+f` to find patterns within a file
* `ctrl+c` to copy, `ctrl+x` to cut, `ctrl+v` to paste
* `ctrl+z` to undo, `ctrl+y` to redo
* `ctrl+=` to zoom in, `ctrl+-` to zoom out, `ctrl+0` to reset zoom
* `alt+right`/`alt+left` to jump to the next/previous word, respectively
* mouse drag or `shift` + movement to select text, `ctrl+a` to select all

Exclusively tested so far with a US keyboard layout. If
you use a different layout, please let me know if things worked, or if you
found anything amiss: http://akkartik.name/contact

## Known issues

## Mirrors and Forks

This repo is a fork of [lines.love]http://akkartik.name/lines.html, an
editor for plain text where you can also seamlessly insert line drawings.
Its immediate upstream is [the template repo for freewheeling apps]https://git.sr.ht/~akkartik/template-live-editor.
Updates to it can be downloaded from the following mirrors:

* https://git.sr.ht/~akkartik/bf.love
* https://tildegit.org/akkartik/bf.love
* https://git.merveilles.town/akkartik/bf.love
* https://nest.pijul.com/akkartik/bf.love (using the Pijul version control system)

Further forks are encouraged. If you show me your fork, I'll link to it here.

## Feedback

[Most appreciated.]http://akkartik.name/contact Messages, PRs, patches,
forks, it's all good.
[Some reference documentation on how to create your own apps.]reference.md