Point Break
Point Break is an esolang by User:PythonshellDebugwindow.
Storage
Point Break uses a variable system. Variables can hold unbounded signed integers.
Commands
Point Break has only four commands: LET
, POINT
, BREAK
, and END
. As well as this, #
denotes a line comment.
LET
LET
takes the syntax of LET var:=expr
. It sets the variable var to the result of expr, where var is a series of lowercase letters. expr can be either a variable, a number, or an expression, which is a series of operator-separated variables and/or numbers (operators are + for addition, - for subtraction, * for multiplication, and /
for integer division). ?
can replace a number, and represents a number input by the user.
POINT
POINT
takes the syntax of POINT label
. It opens a new infinite loop with the label label, where label is a series of lowercase letters. Loops cannot be empty.
BREAK
BREAK
takes the syntax of IF var BREAK label
. Where var and label are both series of lowercase letters, it breaks out of the loop labeled label, as well as all its child loops and their (recursive) children.
END
END
takes the syntax of END label
. It closes the loop with the label label, as well as all its child loops and their (recursive) children (ends children as well to shorten code).
Examples
Infinite loop
LET zero:=0 POINT loop IF zero BREAK loop END loop
Truth-machine
LET n:=? LET one:=1 POINT truth POINT check IF n BREAK check IF one BREAK truth END truth
Computational class
Point Break is Turing-complete, as it can simulate a Minsky machine. LET x:=x+1
to increment, LET x:=x-1
to decrement. While loops can be achieved; the following does <code>
while user input is nonzero (do not change constantone):
LET n:=? LET constantone:=1 POINT while POINT check IF n BREAK check IF constantone BREAK while END check <code> END while
This loop can be modified to use any condition, not just user input.