Expression Interpreter

A standalone browser interpreter for the emoticon-based Expression esolang.

Program

One command per line. The editor and interpreter run locally in this browser.

Ready.

Program input

When the program reaches (•o•?), it will pause here and ask for a response. For a truth machine, enter 0 or 1.

Output

Nothing run yet.

Variables

Variables will appear here after execution.
Supported syntax and current interpreter assumptions
SyntaxImplemented behavior
(•o•?)Pause execution and wait for the user to enter a response; save it as the latest input value.
:# Name = expressionAssign a value to a variable. Example: :# Input = :&.
:&Use the most recently read input value.
(•o•) expressionPrint a quoted string or the evaluated value of an expression.
:) / :(True / false.
=/ conditionStart an if branch.
=\ conditionElse-if branch. (Leading spaces are ignored.)
=|Else branch.
=OClose the current conditional or loop block.
:SStart a repeating loop, closed by =O. A safety limit prevents runaway programs.
>:3Generate a random integer from 0 through 99; may be used as an expression or printed.
=, ==, !=, >, <, >=, <=Comparison operators accepted in conditions.