This is a quick reference for how the EULA programming language works. It's not very clean at the moment, and there might be a few details that are in the official intepreter but are undocumented.
- The actual program starts with "TERMS AND CONDITIONS" and everything before it is treated as a comment.
-
The "definitions" section initializes the variables. Special varibles:
- "User", when using its special commands (none other will work) will save a character to the standard input (see below).
- Whenever something sets the value of "Program" it prints a character to the standard output.
"The User" and "The Program" can only be used if they're defined. Every definition except the special ones above are arrays. Items in an array are seperated by semicolons or commas.
- Commands are seperated by commas and periods.
- "The User should count [...] X" gets a number from the standard input and saves it to X. Only works if the "User" was defined.
- "The User should [...] X" gets a character from the standard input and saves it to X. Only works if the "User" was defined.
- "X should [reduce/decrease/decrement/subtract] [...]" reduces X by the number of words in "[...]" (with "The Program" it outputs the last outputted value plus the number).
- "X should [increase/increment/add] [...]" increases X by the number of words in "[...]" (with "The Program" it outputs the last outputted value minus the number).
- "X should multiply [...]" multiplies X by the number of words in "[...]" (with "The Program" it outputs the last outputted value times the number)
- "X should divide [...]" divides X by the number of words in "[...]" (with "The Program" it outputs the last outputted value divided by the number)
- "X should mod* [...]" modulates X by the number of words in "[...]" (with "The Program" it outputs the last outputted value modulated by the number)
- "X should be [...]" sets X to the number of words in "[...]"
- "X should [match/balance out/equate to/ensure] Y [...]" sets X to Y, and "[...]" is ignored.
- If one of the above 7 is setting "The Program" then whether it outputs as a number or character depends on whether the first word of [...] starts with a vowel or not. (Vowels = numbers, characters otherwise).
- "The point is that [...]" changes X's index pointer instead of X's currently selected value when the next variable-changing command is used.
- "Refer to section N" jumps to section N.
- "If X [...] more than Y" only executes the next command if X is more than Y. The "[...]" part is ignored.
- "If X [...] less than Y" only executes the next command if X is less than Y. The "[...]" part is ignored.
- "If X does not [...] Y" only executes the next command if X does not equal Y. The "[...]" part is ignored.
- "If X [...] Y" only executes the next command if X equals Y. The "[...]" part is ignored except if it matches the one of the above conditionals.
- If one of the above X's is "it" or "and it", then it means whatever was last used as X.
- Jumping out of range terminates the program.
- The program ends with "END OF TERMS AND CONDITIONS" and everything after it is treated as a comment.
- Any number written in digits is counted as an amount of words represented by the number instead of a single word.
- If the section headers begin with a number, the EOF value is -1, otherwise it's 0.
Back to Programming
No copyright infringement is intended on this website.