2016-01-27 11:39:35 -08:00
|
|
|
# Rufunge
|
|
|
|
|
2016-02-21 15:30:33 -08:00
|
|
|
Rufunge is a befunge clone which aims to make the language more practical,
|
|
|
|
because that is obviously what befunge needs.
|
2016-01-27 11:39:35 -08:00
|
|
|
|
|
|
|
## Aims
|
|
|
|
|
|
|
|
* Should be a "superset" of befunge: a befunge program should work in rufunge.
|
|
|
|
* Adds good support for subprogram libraries.
|
|
|
|
* Adds file access.
|
|
|
|
|
2016-02-21 16:05:12 -08:00
|
|
|
## Features
|
|
|
|
|
2017-05-20 17:59:10 -07:00
|
|
|
* From Befunge:
|
2016-02-21 16:05:12 -08:00
|
|
|
* Program flow, ext
|
|
|
|
* Output
|
|
|
|
* Arithmetic, Stack Manip,
|
|
|
|
* Get put
|
|
|
|
* Todo:
|
|
|
|
* Input
|
|
|
|
* Jump
|
|
|
|
* Wrapping canvas
|
2017-05-20 17:59:10 -07:00
|
|
|
* Rufunge superset
|
|
|
|
* Load other Rufunge scripts as instructions.
|
|
|
|
* Todo:
|
2016-02-21 16:05:12 -08:00
|
|
|
* load C++ files as symbols to call.
|
2017-05-20 17:59:10 -07:00
|
|
|
* Standard library:
|
|
|
|
* String manip (length, compare)
|
|
|
|
* file system
|
|
|
|
* networking
|
|
|
|
* graphics
|
2016-02-21 16:07:56 -08:00
|
|
|
|
|
|
|
# Usage
|
|
|
|
|
|
|
|
## Compilation
|
|
|
|
|
2016-02-21 16:13:48 -08:00
|
|
|
```Shell
|
2016-02-21 16:07:56 -08:00
|
|
|
sudo apt-get install build-essential cmake
|
|
|
|
cmake .
|
|
|
|
make -j3
|
|
|
|
```
|
|
|
|
|
|
|
|
## Run
|
|
|
|
|
2016-02-21 16:13:48 -08:00
|
|
|
```Shell
|
2016-02-21 16:07:56 -08:00
|
|
|
./bin/a path/to/rufunge.rf
|
|
|
|
```
|
|
|
|
|
2016-02-21 16:15:20 -08:00
|
|
|
eg `./bin/a examples/hello_world.rf`
|
2016-02-21 16:07:56 -08:00
|
|
|
|
|
|
|
## Unit Tests
|
|
|
|
|
2016-02-21 16:13:48 -08:00
|
|
|
```Shell
|
2016-02-21 16:07:56 -08:00
|
|
|
./test.sh
|
|
|
|
```
|