=pod

=for comment
DO NOT EDIT. This Pod was generated by Swim.
See http://github.com/ingydotnet/swim-pm#readme

=encoding utf8

=head1 NAME

Language::SNUSP - A SNUSP Interpreter and Visual Debugger

=for html
<a href="https://travis-ci.org/ingydotnet/language-snusp-pm"><img src="https://travis-ci.org/ingydotnet/language-snusp-pm.png" alt="language-snusp-pm"></a>
<a href="https://coveralls.io/r/ingydotnet/language-snusp-pm?branch=master"><img src="https://coveralls.io/repos/ingydotnet/language-snusp-pm/badge.png" alt="language-snusp-pm"></a>

=head1 SYNOPSIS

    > snusp examples/fizzbuzz.snusp
    > snusp --trace examples/fizzbuzz.snusp
    > snusp --debug examples/fizzbuzz.snusp

=head1 DESCRIPTION

SNUSP is a two-dimensional programming language described here:

=over

=item * L<http://c2.com/cgi/wiki?SnuspLanguage>

=item * L<http://rosettacode.org/wiki/Category:SNUSP>

=back

Here is the well known FizzBuzz algorithm, written in SNUSP:

            /               'B' @=@@=@@++++#
           // /             'u' @@@@@=@+++++#
          // // /           'z' @=@@@@+@++++#
         // // // /         'i' @@@@@@=+++++#
        // // // // /       'F' @@@=@@+++++#
       // // // // // /      LF  ++++++++++#
      // // // // // // /   100 @@@=@@@=++++#
    $@/>@/>@/>@/>@/>@/>@/\   0
    /                    /
    !                             /======= Fizz <<<.<.<..>>>#
    /                             |      \
    \?!#->+ @\.>?!#->+ @\.>?!#->+@/.>\   |
    /        !          !         !  /   |
    \?!#->+ @\.>?!#->+@\ .>?!#->+@/.>\   |
    /        !         \!===\!    !  /   |
    \?!#->+ @\.>?!#->+ @\.>?!#->+@/.>\   |
    /        !          !   |     !  /   |
    \?!#->+@\ .>?!#->+ @\.>?!#->+@/.>\   |
    /       \!==========!===\!    !  /   |
    \?!#->+ @\.>?!#->+ @\.>?!#->+@/>>@\.>/
             !          |   |         |
             /==========/   \========!\=== Buzz <<<<<<<.>.>..>>>#
             |
             \!/=dup==?\>>@\<!/back?\<<<#
               \<<+>+>-/   |  \>+<- /
                           |
    /======================/
    |
    |       /recurse\    #/?\ zero
    \print=!\@\>?!\@/<@\.!\-/
              |   \=/  \=itoa=@@@+@+++++#
              !     /+ !/+ !/+ !/+   \    mod10
              /<+> -\!?-\!?-\!?-\!?-\!
              \?!\-?!\-?!\-?!\-?!\-?/\    div10
                 #  +/! +/! +/! +/! +/

This module installs a SNUSP interpreter so that you can run this code
yourself. It also installs a visual debugger, to help you follow the flow of
SNUSP programs.

Try it. It's very cool!

=head1 CREDIT

This code originated from L<http://c2.com/cgi/wiki?SnuspLanguage> but has been
fairly heavily refactored to be clear, DRY and conform to modern Perl
standards.

I have packaged it on CPAN and GitHub for easy installation and continued
maintenance.

=head1 AUTHOR

Ingy döt Net <ingy@cpan.org>

=head1 COPYRIGHT AND LICENSE

Copyright 2004. Rick Klement.

Copyright 2013-2014. Ingy döt Net.

This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.

See L<http://www.perl.com/perl/misc/Artistic.html>

=cut
