Subreal Emulator and Compiler
Implementation of the Subreal Language.
Jumps in subfinite loops are relative to the first line of the loop. Line breaks in subfinite loops do not count for jumps outside them. Only base 10 is allowed for literals. When inputting a literal, two spaces in a row will return precedence to commands. Values of the form aω ± b ± cε must be in the form aω + -b + -cε if you want negative values.
To submit input, press enter. If "Display output as ASCII" is selected, letters will be translated to their integer equivalent when recieved as input. However, they must be recieved one at a time. An empty string is equal to a numeric zero.
The recursive depth is the number of recursive calls before a stack overflow. The subfinite depth is how many times to run a subfinite loop before evaluating the result.
Subfinite loops work by logging the values in L and R at the end of each loop, then extrapolating the endpoint. So, when using them, leave data in the L and R stacks instead of using = to push them to X. Currently they do very simple analysis. They judge if the user intends on one of five cases they are converging to: ω, -ω, n + ε, n - ε, n. As of now they work well enough.