Abrupt Numerical Graph Language
By Aries Powvalla
- Every ANGL program operates on a 16x16 grid. a. From (1,1) at top left to (16,16) at bottom right.
- Space values can span -128 to 128.
- At the beginning of the program, the (1,1) tile is selected.
- Commands can be used to manipulate the grid.
Pros: Extremely low file size Extremely minimal compiler Moderately fast at industry standard
Cons: Very complex syntax Not expandable Few use cases
PRACTICAL USE CASES: Mathematical Computation/Evaluation Physics Computation Fluid Dynamics
POTENTIAL USAGES: Non-classical Mathematics (Sub-Euclidian, Relativity Plot) Root programming ASCII Construction
Fully initializing your program is not required. Not initializing your program will set the following values:
projectname: AngledScript projectauthor: Unknown projectversion: v0.1 process_clock: 23 error_skipping: 0 parse_timeout: 100 builtin_debugger: 0 alternate_complier: 0 max_cache: 6
In order to modify these options in your project, add the line as shown above to the beginning of the .angl (or .a) file.
NOTE: ONLY LETTERS, NUMBERS, _, AND - CAN BE USED
After modifying settings as desired, a line should be left empty. The line following should contain a single start character, "!" (More below), and the code can begin.
PROCESS CLOCK -- Milliseconds per tick. ANGL attempts to run at 10 operations per tick, but upon failing will fallback to the next multiple of ticks. Setting to 0 is not recommended as it disables the space operation. 23 is an optimal value according to Veghowards lawset.
ERROR SKIPPING -- Whether errors stop the program and raise a callback or ignore the operation. 1 = SKIP, 0 = FLAG
PARSE TIMEOUT -- Milliseconds an operation is allowed to take to execute fully. Values above 120 are not recommended because if a function takes this long, something is probably broken.
BUILT-IN DEBUGGER -- Enables the builtin debugger that is wrapped with the engine itself. Enabing the debugger force-disables the visualizer (~)
ALTERNATE COMPILER -- Whether an alternate compiler is used. Can be useful on unstable platforms, or if main compiler causes a memory leak. 0 = MAIN COMPILER, 1 = ALTERNATE COMPILER, -1 = C.A.R. SELECTION (Test both once, then use best)
MAX CACHE -- Maximum amount of operations allowed to be cached at a certain point in time. Decrease to free up resources but slow down large programs. 6 is sufficient for most devices (4GB RAM) and programs (<2k OPERATIONS).
Important notes: Some operations can handle multiple inputs/outputs, and some have a separate function for such cases. When the guide refers to a "selected" space, that is where the selector is currently placed. When the guide refers to a "saved" space, that is the position(s) previously saved using the (@) operation.
! : Script start/end (Comments can be added only after the final "!" character.)
* : Move selector to (1,1).
v : Move selector down one space.
^ : Move selector up one space.
> : Move selector right one space.
< : Move selector left one space.
@ : Save to selector (STM).
_ : Deselect/Unsave (STM).
Q : Expand selector by one space both down and right.
q : Shrink selector by one space both up and left.
$ : Reset selector to 1x1.
+ : Adds one to the space(s) selected.
- : Subtracts one from the space(s) selected.
x : Resets space(s) selected to 0.
" : Doubles space(s) selected.
' : Halves space(s) selected.
a : Adds the saved spaces' value to the space(s) selected.
If saved and selected space amount match, they add correspondingly. If amount of saved spaces are more than or less than amount of selected spaces, saved spaces are added together and the resulting value is added to each selected space.
s : Subtracts the saved spaces' value from the space(s) selected.
If saved and selected space amount match, they subtract correspondingly. If amount of saved spaces are more than or less than amount of selected spaces, saved spaces are added together and the resulting value is subtracted from each selected space.
m : Multiplies the saved spaces' value and the spaces' value(s). Same rules apply.
d : Divides the saved spaces' value from the spaces' value(s). Same rules apply.
% : Performs the modulo of the selected space over the saved space. Same rules apply.
{ : Saves the value of all selected spaces' values added together.
} : Saves the value of all selected spaces' values subtracted, in order.
- : Saves the value of all selected spaces' values multiplied together.
p : Output raw data of spaces selected (Number/Array).
P : Output ASCII table conversion of SPACE (1) selected (ABSOLUTE VALUE).
m : Perform addition operation on selected SPACES (>1) and output number.
f : Perform subtraction operation on selected SPACES (>1) and output number (NEGATIVES ALLOWED).
M : Perform addition operation on selected SPACES (>1) and output ASCII.
F : Perform subtraction operation on selected SPACES (>1) and output ASCII (ABSOLUTE VALUE).
r : Output selected row.
c : Output selected column.
R : Save selected row.
C : Save selected column.
[CODE]# : Loop CODE for # times.
d : Get numerical user input and insert as selected space(s) value.
D : Get 1 character user input, convert via ASCII, and insert as selected space(s) value.
u : Get numerical user input and save it.
U : Get 1 character user input, convert via ASCII, and save.
( : Move selector to the first instance of the saved number (Left-Right, Top-Bottom).
) : Move selector to the last instance of the saved number (Bottom-Top, Right-Left).
\ : Sets selected space to 1 if value of selected space is greater than value of saved space.
= : Sets current space to 1 if current space(s) matches saved value(s), otherwise set to 0. Same amount of tiles must be selected.
[space] : Halt for 10 ticks (200 ms by default).
[newline] : Deselect, Move to (1,1).
[double_newline] : Deselect, Move to (1,1), Reset all tiles to 0.
. : Lock space (Cannot be modified).
, : Unlock space (Can be modified).
# : Filler character
? : Move cursor in a random direction