Aaargh++
		
		
		
		Jump to navigation
		Jump to search
		
- This is still a work in progress. It may be changed in the future.
 
Aaargh++ (for Aargh plus 2 dimensions) is the language I'm working on right now. It's gonna be 4d. These are the specs:
Goals
- 4d grid/code/data-array - entire folder with "planes".
 - Stack can be pushed to cell.
 - Stack can be imported from cell.
 - Self modding.
 - Run in native python.
 - Push stored stack to stack, to get list in list.
 - Very heavy on the stack, functions take arguments from the stack, they can't take instructions/data from the grid directly.
 - Basically Aaargh++!
 - Complicated, not limited.
 - Run by native python code.
 
Specs
- Planes are 80*80 and form dimension 1 and 2.
 - The grid is an 2d grid of planes, and forms dimension 3 and 4.
 - There is a main file, that's the one you need to execute. It defines the grid, but later on extra planes can be added.
 
The main file
- 1d, kinda regular.
 - Planes are loaded with lines like:
 
0 0 plane1.txt 1 0 plane2.txt
- There is no need for them to touch, but one can't use code in a plane that isn't touching any plane (unless you load a bridge plane from the program itself). There can be "holes" in the grid, they'll just give you an error if your cursor tries to enter it.
 
Instructions
| Instruction | Description | 
|---|---|
d | 
Set flow direction to d1, increasing ("right") This is the default flow direction. | 
a | 
Set flow direction to d1, decreasing ("left"). | 
s | 
Set flow direction to d2, increasing ("down"). | 
w | 
Set flow direction to d2, decreasing ("up"). | 
6 | 
Set flow direction to d3, increasing ("right"). | 
4 | 
Set flow direction to d3, decreasing ("left"). | 
2 | 
Set flow direction to d4, increasing ("down"). | 
8 | 
Set flow direction to d4, decreasing ("up"). | 
5 | 
If the first value at stack is 0, invert flow direction (d becomes a, etc.), and jump over the next instriction. | 
j | 
Store (push) value of the cell above the current cell to stack. | 
J | 
Store entire stack to cell above. | 
k | 
Duplicate top value on stack. | 
K | 
Delete top value off stack. | 
L | 
Add value of the cell above the current cell to the value on top of the stack. | 
l | 
Reduce the value on top of the stack by the value of the cell above. | 
; | 
Fetch (pop) value from top of stack and store to cell above. | 
: | 
Switch entire stack with cell above. | 
i | 
Get single char and store it on top of stack. | 
I | 
Get a set of chars and replace the stack by it. | 
o | 
Print top value of stack. | 
O | 
Print entire stack. | 
p | 
Add plane to the grid. The first 2 values of the stack are the location of it in d3 and d4. The rest of the stack represents the name of the plane. | 
- | 
Do nothing, and continue to next instruction. | 
Notes
What cell is above another cell depends on the flow direction. For example, when the flow direction is d1+ (the default), the cell above would be the first cell in the direction d2-. If it's d2-, the cell above is the first cell found in d3+. d4 loops to d1