User:Wattmann/Shīrén

From Esolang
Jump to navigation Jump to search

This is my eso.

Shiren has two distinct modes:

夜 - Night mode<br\> 日 - Day mode

Each mode is defined by its name, Night or Day, and their usage is that they use the same block in different ways. Night functions are bracketed. Only modal blocks (blocks which deal with the modes specifically) and a few of the most basic blocks have no difference when in either Night or Day.

Input can be made in either arabic numerals or chinese ones.

To swap between the modes, one would use 變 (change), optionally followed by a mode. If no mode is specified, the block simply toggles modes. Toggling is useful when modes are known, but certain blocks obfuscate the current mode state. Certain blocks work only in compounds. An example is 奇 (weird). Logic blocks work by detecting a number's pairedness - if it is odd, it is marked as a zero; if it is paired, it is marked as a one.

Blocks:

或 - Logical OR (XOR) on first two values, values popped, result pushed.<br\> 者 - Point to a certain value from the top (bottom) and push it.<br\> 没 - Logical AND (NOR) on first two values, values popped, result pushed.<br\> 變 - Modeswap. <br\> 加 - Add the first two values, (pop them), and push the result.<br\> 奇 - Placed before a logical operation, toggles mode if result is 1.<br\> 放 - Push value.<br\> 拿 - Store (in the bottom the) value - the day mode takes an argument while the night mode doesn't.<br\> 多 - Needs to be placed after [brackets] and needs to be followed by a positive number. It repeats the bracketed information that many times (and modeswaps).<br\> 殺 - Pop.<br\> 輪 - Swap the first two pieces of the stack.<br\> 印 - Print the first part of the / (the whole) stack.

So, something like "[拿4拿5拿6或變没變]多2變夜" gives us the following information: "00". Zeroes aren't removed, and are instead stored.