EchoLang (None1)

From Esolang
Jump to navigation Jump to search

EchoLang is an esolang prompted by User:None1 and invented by Cursor AI:

Commands

+ : Increment the current memory cell. - : Decrement the current memory cell. > : Move the memory pointer to the right. < : Move the memory pointer to the left. . : Output the ASCII character corresponding to the value in the current memory cell. , : Input a character and store its ASCII value in the current memory cell.

Interpreter in Python

def interpret_echolang(code, input_stream=None):
    # Initialize memory and pointer
    memory = [0] * 30000
    pointer = 0
    output = []
    input_index = 0

    # Convert input stream to a list of ASCII values if provided
    if input_stream:
        input_stream = list(map(ord, input_stream))

    # Iterate over each command in the code
    for command in code:
        if command == '+':
            memory[pointer] = (memory[pointer] + 1) % 256
        elif command == '-':
            memory[pointer] = (memory[pointer] - 1) % 256
        elif command == '>':
            pointer = (pointer + 1) % len(memory)
        elif command == '<':
            pointer = (pointer - 1) % len(memory)
        elif command == '.':
            output.append(chr(memory[pointer]))
        elif command == ',':
            if input_stream and input_index < len(input_stream):
                memory[pointer] = input_stream[input_index]
                input_index += 1
            else:
                memory[pointer] = 0  # Default to 0 if no input is available

    # Return the output as a string
    return ''.join(output)

Examples

Output the control character with ASCII value 6

+++++>++++[<+>-]<.