Letters++

From Esolang
Jump to navigation Jump to search
This is still a work in progress. It may be changed in the future. WILL IMPROVE AS TIME GOES ON... hopefully...

Letters++ is an esolang created by User:Saka, that is made of, as the name suggests, letters.

Mark Scanning

All mark scanning is relative to the instruction that initiates the mark scan.

Data

Data is stored "within" the code. All characters that are not lowercase Latin letters will be interpreted as data. To write a lowercase letter, put "w" before the uppercase letter. Numbers (0,1,2,3,4,...) can be incremented as usual, as well as letters (A,B,C...Z,AA,AB...). If you try to increment a symbol (e.g. """), it will do nothing (Won't give an error, won't stop the program, it will act as if it has done it successfully.).

Instructions

Since every instruction is a Latin lowercase letter, all other chars (Such as UPPERCASE, space and punctuation,) are used as "data".

I/O

Instruction Description
p Print all current stored data as is.
q Print data after next marker as is.
n Print numbers of next marker.
i Take 1 character from input stream, put after mark, if failed, go to next mark.
d Delete char after next mark.

Control Flow

Instruction Description
a Go to mark.
e if data after previous mark is equal to data after next mark carry on, else, go to said next mark.
l Move the data after the next mark to after the previous mark, if no data on next mark, go to next mark.
r Move the data after the previous mark to after the next mark, if no data on previous mark, go to next mark.
x Terminate the program.

Mark Scanning Controls

Instruction Description
m Marker.
s Skip the next marker scanned.
b Change direction.
g Ignore next turn around instruction.
j Ignore next skip instruction.

Arithmetic

Instruction Description
u Increase the value of the data after mark by 1
c Decrease the value of the data after mark by 1, if no char or char is 0, go to next mark.

Example Programs

Hello, World!

HwEwLwLwO, WwOwRwLwD!p

Cat program

miamp

TM

imedpxm0dbmpa

Add 2 Numbers

imimcbgsubjgamsdbpx

Duplicate number

imcbujusgjammdb