User:ScallopMonger/AAAAAAAAAAAAAA!!!!
Appearance
AAAAAAAAAAAAAA!!!! is an esoteric programming language expressed entirely by the letter A, spaces, commas, and exclamation points. Because of the limited set of characters used, it can be difficult to find the beginning and end of expressions. AAAAAAAAAAAAAA!!!! was first developed in 2006.
Syntax
[edit]Commands
[edit]AA AAA n! | Outputs number as a character |
AAA AAAA AA n! | Input a character store to index n |
AAA AA n! | Go to label n |
AAAAA n! | Define a label n |
AAA AAAA AAA n! | Skip n commands |
AAAA AA n! | Shift indexes n backwards |
AAAA AAAA n! | Shift indexes n forwards |
AA AAAA AA! | End program |
AAA A AAA n! | Begin define subroutine named n |
AAAA A AAA! | End define subroutine |
AAA A AA AAAA n! | End subroutine, return value n |
AAAAAA n! | Call subroutine n |
AAAA, AAAA n! | Forget n entries from subroutine stack |
AAAA AAA n! | Increment value at index n |
AAAA AAA, n! | Decrement value at index n unless value is zero |
AAAA, A n! | Set command change register to n |
AAAA, AA A n! | Change all commands in program that start with what is in command change register to start with n instead |
AAAA, AA AAA n! | Change all commands in program that end with what is in command change register to end with n instead |
AAAAA, AA A n! | Change all commands in program that start with n to start with what is in command change register instead |
AAAAA, AA AAA n! | Change all commands in program that end with n to end with what is in command change register instead |
AAAAA, AAAAA! | Clear command change register |
AAAAA, AAAA A n! | Add block of n number of A's at end of command change register |
AAAAA, AAAA AAA n! | Add block of n number of A's and comma at end of command change register |
Operators
[edit]AAAA | number 0 |
AAA | number 1 |
A | number 2 |
AA A | number 3 |
AAAA A | last index number read by a previous command |
AAAAA, n | value at index n |
AA A, a b | a + b |
AA AA | a b = abs(a - b) |
AAA | a b = a * b |
AA AAA | a b = a AND b |
AAAA | a b = a XOR b |
AAAAAA n a b | Call subroutine n with parameter a and b, and return value |
AAAAA A n, a | Call subroutine n with parameter a and a, and return value |
AAAAA AA | First parameter |
AAAAA AAA | Second parameter |
Sample Code
[edit]Copy input to output, forever:
AAAAA A! AAA AAAA AA A! AA AAA AAAAA, A! AAA AA A! AA AAAA AA!