Anguish

NAME

Acme::Anguish - Use Anguish programming language in your Raku 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.

AUTHOR

Zoffix Znet

COPYRIGHT AND LICENSE

Copyright 2017 Zoffix Znet

Copyright 2018 - 2022 Raku Community

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.

Acme::Anguish v1.1

Use Anguish programming language in your Raku programs

Authors

  • Zoffix Znet

License

Artistic-2.0

Dependencies

Term::termios

Test Dependencies

Provides

  • Acme::Anguish

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.