Programs follow this format: (entrees).(sides).(order)
Entrees and sides
Entrees follow the format [price][name]. The price excludes the zero, and the name knows to start and end depending on whether the next character is a letter. Sides are the same as entrees, but the price includes all digits. Multiple entrees/sides are separated by commas.
Order is a ton of instructions, not separated by commas. The format is [instruction][person number][menu item]. Any irrelevant fields are removed. The
Person N needs X dollars more/less for his order! instruction is special, and features an extra number for X preceded by + for more, and - for less. The
Person N would like what Person X has. instruction is also special, and precedes X with * for normal, & for "would also like", and ! for "would not like". Menu items work the same way. "With" the side item is represented with an additional &, and "Hold" the side item is represented with an additional !.
|Person N would like menu_item (with side_item).||~|
|Person N will pay for his order!||:|
|OK, what should Person N get?||;|
|OK, how much money should Person N have?||@|
|Let's just do this until Person N has no more money!||[|
|Person N has no more money!||] (this does not need an argument for N)|
|Person N needs X dollars more/less for his order!||>|
|Person N would like what Person X has.||<|
|Just wait while we decide...||?|
1Cat Food..~1Cat Food[1;1:1]
5Vodka.2Truth Serum.@1[1~1&Vodka!Truth Serum[1:1]]~1&Vodka!Truth Serum:1?