A-gram

a-gram is an esoteric programming language that only uses Unicode characters with "gram" in the name.

Basic commands
Note that if nothing is on the stack, using INCREASE and DECREASE will return with an error message.

Flow control
a-gram allows you to loop based on certain conditions. You may start a loop by using the DURATION hexagram,. There are multiple conditions on which to loop based on. These are placed directly after the DURATION hexagram.

The loop then must have a hexagram for BEFORE COMPLETION to start the loop block, as well as a hexagram for AFTER COMPLETION  to end it.

For example, here is a simple yes-like program, along with an explanation of how it works.

&#9869;&#19935;&#19908;&#19967;&#19958;&#9868;&#19966;

&#9869; Grab single character from STDIN &#19935; &#19908; Loop forever &#19967;  {  &#19958;   Duplicate value on stack &#9868;  Pop value off stack and print it &#19966;   }

As well, there is one additional flow-control related command: RETURN. This command jumps to the start of any loop it is in. If it is not in a loop, it will instead jump to the start of the file, making infinite loops that surround the entire program easier.

Hello, world!
☰䷩䷩䷩䷩䷩䷩䷩䷏䷩䷩䷩䷩䷩䷩䷩䷩⚌ ䷀䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷨䷶⚌ ䷩䷩䷩䷩䷩䷩䷩䷶⚌ ䷶⚌ ䷩䷩䷩⚌ ☰䷩䷩䷩䷩䷩䷩䷏䷨䷨䷨䷨䷨⚌ ☰䷩䷩䷩䷩䷩䷏䷨䷨䷨䷨⚌ ䷀䷨䷨䷨䷨䷨䷨䷨䷨䷶⚌ ䷨䷨䷨䷨䷨䷨䷨䷨䷶⚌ ䷩䷩䷩䷶⚌ ䷨䷨䷨䷨䷨䷨䷶⚌ ䷨䷨䷨䷨䷨䷨䷨䷨⚌ ☰䷩䷩䷩䷩䷩䷏䷨䷨䷨⚌ ☰䷩䷩䷩䷩䷩䷩䷩䷩䷩⚌

This outputs "Hello, world!" with a trailing newline.

Echo program
䷟䷄䷿⚏䷟䷺䷿䷠⚌䷾䷾

This fairly short program loops infinitely, echoing anything it receives from STDIN to STDOUT.

Implementations

 * Interpreter written in Ruby by the author.