YATDEL

From Esolang
Jump to navigation Jump to search

YATDEL (Yet Another Two-Dimensional Esoteric Language) is, obviously, a two-dimensional stack-based esoteric language created by User:HecknTarnation. Code is executed starting at an S. The pointer, then, moves right and continues to execute code. This language supports multiple files, called Abstracts.

Instructions

Opcodes Description
S Where the first pointer starts, should be present on the first abstract.
E When executed, it will terminate the current pointer's execution.
Q Exits the program.
T/t Creates a new Pointer that continues in the creating pointer's direction. The creating pointer has its direction set according to the direction rule/rule 2.
=/| Moves the pointer forward, they are interchangeable but you should only use = for horizontal and | for verticle.
</>/^/v Sets the pointer's direction to left/right/up/down.
( Stores the next set of characters into the pointer's stack as a number representing an ASCII character, this will occur until a matching ) is found. The characters will be in reverse order on the stack (first character in = last character on the stack).
# Same as (, but for a singular number instead. Goes until a matching # is found.
p Pops the top value from the pointer's stack.
+/-/*/d/% Adds/Subtracts/Multiples/Divides/Modulo the top value and the next value from the pointers stack, then pushes the result to the stack.
I (capital i) Gets input from the users and, if it is a number store it in the pointer's stack. Otherwise, it stores the string character by character in the same way ( does.
O/o Outputs the top value from the pointer's stack as a character/number.
\ Mirror (Right <-> Down, Left <-> Up)
/ Mirror (Right <-> Up, Left <-> Down)
@ Replaces a character on the current abstract. (first value on stack = x, second = y, third = character)
& Pushes a random number between 0-100 to the stack.
? Moves the pointer in a random direction.
$ Makes the pointer wait a specified number, the top value from the stack, of milliseconds.
! Duplicates the top value from the stack.
C/c If the pointer's top stack value is positive the pointer will have its direction set according to direction rule/rule 2, else direction rule 2/rule 1 (doesn't pop stack)
~ Makes the top value of the stack negative.
' Goes down one Abstract in the list.
" Goes down a specified number (top value in the stack) of Abstract down in the list.

Abstract Files

This language's code is written in files called Abstracts. These files are stored into a list that can be navigated individually by each pointer. The first file in the list should start with an S. When traveling between Abstracts, a pointer's position and direction will be preserved.

Direction Rule

Current Direction = New Direction

Rule 1:

  • Left or Right = Down
  • Up or Down = Left

Rule 2:

  • Left or Right = Up
  • Up or Down = Right

Examples

Hello World

S(Hello World)=======>C==========\
                     O|          E
                     ^<           

Multi-File Hello World

S(Hello World)='
===============>=====>C==========\
                     O|          E
                     ^<

External Resources