gplz.yacuabll
Name says it all.
Currently, the following instructions are supported:
a FuncDefStatement
' FuncCallStatement
. VariableStatement
{ AssignmentStatement
} AddSelfStatement
< AddStatement
> SubSelfStatement
k SubStatement
b MulSelfStatement
9 MulStatement
+ DivSelfStatement
- DivStatement
* ModSelfStatement
/ ModStatement
~ OrSelfStatement
| OrStatement
% AndSelfStatement
! AndStatement
" NandSelfStatement
ยง NandStatement
$ BitOrSelfStatement
& BitOrStatement
( BitAndSelfStatement
) BitAndStatement
[ IsLessStatement
] IsEqualStatement
_ IsGreaterStatement
? IsLessOrEqualStatement
* IsNotEqualStatement
; IsGreaterOrEqualStatement
, LiteralStatement
: PrintCharStatement
@ PrintStatement
0 NegateStatement
1 IfStatement
2 WhileDoStatement
3 UntilDoStatement
4 IfThenElseStatement
5 IfThenUnlessStatement
6 IfThenProvidedStatement
7 WhileDoUnlessStatement
Variables are encoded as ., followed by a number of # that specifies the unique name. For example, .# is a unique variable, and so is .####. Similarily, Literals are encoded as ,{#}, where the number of # specifies the content of the integer literal.
Note that .yacuabll is completely freeform, and you can add any unused characters as comments.
Example
Hello, .yacuabll World
{.#,#H#E#L#}.#,#L#O# #b.#,#W#O#b.#,#R#L#:.#}.#,#D# #T#H#I#}.#,#S# #F#I
NE PROGRAM DOES NOT
NECESSARILY ##}.#,######}.#,######
}.#,#
#
#
#
#
:
.
# THIS SPACE FOR RENT
}
.
#
,
#
#
#
}
.
#
,
#
#
#
#
:.#:.#}.#,###WORK:.#{.##,####b.##,##b.##,####:.##
b.##,###>.##,####>.##,####>.##,#:.##:.#}.#,#AS##:.#>.#,######:.#>.#,####>.#,####
:.#