Perl 6 module: interpreter for Anguish programming language
Other
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
lib/Acme
t
.gitignore
.travis.yml
LICENSE
META6.json
README.md

README.md

Build Status

NAME

Acme::Anguish - Use Anguish programming language in your Perl 6 programs

SYNOPSIS

use Acme::Anguish;
anguish "\x2061" x 72 ~ "\x2063"; # prints "H"

DESCRIPTION

Anguish is a Brainfuck variant that uses invisible Unicode characters instead of traditional Brainfuck's ones.

Here's the mapping of Brainfuck operators to Anguish:

>   [⁠] U+2060 WORD JOINER [Cf]
<   [​] U+200B ZERO WIDTH SPACE [Cf]
+   [⁡] U+2061 FUNCTION APPLICATION [Cf]
-   [⁢] U+2062 INVISIBLE TIMES [Cf]
.   [⁣] U+2063 INVISIBLE SEPARATOR [Cf]
,   [] U+FEFF ZERO WIDTH NO-BREAK SPACE [Cf]
[   [‌] U+200C ZERO WIDTH NON-JOINER [Cf]
]   [‍] U+200D ZERO WIDTH JOINER [Cf]

All other characters are silently ignored.

The meaning of original Brainfuck characters are as follows:

>   increment the data pointer (to point to the next cell to the right).
<   decrement the data pointer (to point to the next cell to the left).
+   increment (increase by one) the byte at the data pointer.
-   decrement (decrease by one) the byte at the data pointer.
.   output the byte at the data pointer.
,   accept one byte of input, storing its value in the byte at the data pointer.
[   if the byte at the data pointer is zero, then instead of moving the instruction pointer forward to the next command, jump it forward to the command after the matching ] command.
]   if the byte at the data pointer is nonzero, then instead of moving the instruction pointer forward to the next command, jump it back to the command after the matching [ command.

EXPORTED SUBROUTINES

anguish

Takes a single positional argument: string of Anguish code to evaluate.

EXAMPLES

See examples directory of this distribution for example Anguish programs.

BUGS AND CAVEATS

The U-FEFF character also serves as a file BOM, so avoid using it as the first character in your file.


REPOSITORY

Fork this module on GitHub: https://github.com/zoffixznet/perl6-Acme-Anguish

BUGS

To report bugs or request features, please use https://github.com/zoffixznet/perl6-Acme-Anguish/issues

AUTHOR

Zoffix Znet (http://zoffix.com/)

LICENSE

You can use and distribute this module under the terms of the The Artistic License 2.0. See the LICENSE file included in this distribution for complete details.