Solus

From Esolang
Jump to navigation Jump to search
This is still a work in progress. It may be changed in the future.

Solus is a language being developed in C++ by User:H33T33.

Solus works by reading characters one by one from a file. It will only ever hold one character at a time, meaning characters cannot work together. They can only adjust the different states of the program for the next character.

Program States and Modes

SEVERAL more modes and states will be added later.

State/Mode Purpose
NO Short for "None".

Allows characters to pass regardless of the current condition.

BO Short for "Boolean"

If the current character is non-zero, the next character will be allowed to pass. Otherwise, all next characters are skipped until the condition is reset.

Characters

Any non-command characters will be stored.

Character Description Example Output
$ Outputs the currently stored character. a$ b$ c$ abc
< Infinitely moves back by one character until stopped or it reaches the start of the file. a$<b$ aaaaaaaaaa...
> Infinitely moves forward by one character until stopped or it reaches the end of the file. a$>b$ a
| Manual movement through the file stops when it runs into this. a$>|b& ab
~ Toggles between the different "modes", as listed above.
! Acts as a logical operator based on the current "mode". If a condition is met while the operator is active, all characters that follow will be ignored until another ! is found.
  • If the current mode is NO, ! will be treated as a regular character.
BO Mode:

1~!a$!~

a
@ Creates a goto. The name assigned to it will be the currently stored character. 1@
^ Goes to a goto by a given name. 1@ a$ 1^ aaaaaaaaaa...

Special Characters

Character Description
_ Space
/ Next Line

Hello, world!

H$e$l$$o$,$_$w$o$r$l$d$!$