Grocery List
Jump to navigation
Jump to search
This language by User:PuzzleHunter84 takes the form of a grocery list. Each food item does a certain function depending on the first letter of the item.
Letter | Function |
---|---|
a | pops the top two values on the stack, adds them together and pops the result. |
b | brings the bottom stack value to the top. |
c | copies the top value of the stack on top of the stack. |
d | pops the top two values on the stack, divides the second-to-the-top into the top, and pushes the result rounding down if necesssary. |
e | ends a loop and rechecks the top value. |
f | flips the top two stack values so the top value becomes the second-to-top value and vice versa. |
g | pops the top two values, pushes 1 if the top value is greater than the second-to-top value and 0 otherwise. |
h | pops a value, takes the value mod 26, adds 1, finds the letter of the alphabet in that position, and executes the instruction of that letter. |
i | inputs a character and pushes it's ASCII value on top of the stack. |
j | pops the top value and jumps forward that many instructions. |
k | kills the stack, removing every value. |
l | opens a loop that runs if the top value is nonzero. |
m | pops the top two values on the stack, multiplies them together, and pushes the result. |
n | pushes a number onto the stack equal to the number of letters in this food item. |
o | pops the top value on the stack and outputs it as a numeral. |
p | pops the top value and prints it as an ASCII character. |
q | nop. |
r | pops the top two values on the stack, divides the second-to-the-top into the top, and pushes the remainder. |
s | pops the top two values on the stack, subtracts the second-to-the-top from the top, and pushes the result. |
t | terminates the program immediately. |
u | unbrings the top value to the bottom. |
v | take the next list item, does not execute it, and instead pushes the ASCII value of the first letter of the list item. |
w | pushes 100. |
x | pops the top value. |
y | pops the stack item that corresponds to the number of letters in this item. |
z | pops the top value, and pushes 1 if it is 0 and 0 otherwise. |
Each program starts with a title that is the store name and is ignored such as: "Hello World Marketplace". Then there is an empty line before the list. Each item is seperated by a new line.
Programs
Cat Program
Cat Groceryplace ice cream lettuce popcorn imported bisque eggs tunafish
This is equivalent to the BF program:
,[.,]
Implementation
An interpreter in Python 3 that tries to follow the specification above as closely as possible can be found here.
Another in hare can be found here, along with a modified version of the above Python version.