Yuij
Jump to navigation
Jump to search
Yuij is an esolang which uses few characters. + increases the amount of the current unit by 1. - decreases the amount of the current unit by 1. | prints everything after it till there is another |. Hello World:
|Hello World|
Implementation (made by AI, cuz i don't wanna learn how to make interpreters):
# This is a simple interpreter for a custom, text-based language.
# It reads a string of commands and executes them one by one.
def run_interpreter(program_string: str) -> None:
"""
Interprets a string of commands for a custom language.
The language supports the following commands:
'+': Increases the current unit value by 1.
'-': Decreases the current unit value by 1.
'|...|': Prints the text between the two vertical bars.
Args:
program_string: A string containing the program to be interpreted.
"""
# Initialize the "unit" variable.
# This is the value that the '+' and '-' commands will manipulate.
unit = 0
# Use an index to iterate through the program string.
# A while loop is used instead of a for loop so we can manually
# advance the index when processing the '|...|' command.
index = 0
while index < len(program_string):
command = program_string[index]
if command == '+':
# Increase the unit value by one.
unit += 1
print(f"Command: '+' -> Unit value is now {unit}")
elif command == '-':
# Decrease the unit value by one.
unit -= 1
print(f"Command: '-' -> Unit value is now {unit}")
elif command == '|':
# This is the start of a print command.
# We need to find the matching closing '|'.
try:
# Find the index of the next '|' starting from the position after the current one.
end_index = program_string.index('|', index + 1)
# Extract the text between the two bars.
text_to_print = program_string[index + 1:end_index]
print(f"Command: '|...|' -> Output: '{text_to_print}'")
# Move the index past the entire print block to avoid processing
# the characters inside the bars and the closing bar itself.
index = end_index
except ValueError:
# Handle the case where a closing '|' is not found.
print("Error: Missing closing '|' for print command.")
break # Stop execution on an error.
else:
# If the character is not a recognized command, skip it.
print(f"Warning: Unrecognized command '{command}'")
# Move to the next character in the program string.
index += 1
print("-" * 30)
print(f"Program finished. Final unit value is: {unit}")