Glanose

From Esolang
Jump to navigation Jump to search

Gnalose

This is an esolang I made.

Example run:

   {>>>>&<<&| |i|s| |t|h|e| |a|n|s|w|e|r| |t|o| |e|v|e|r|y|t|h|i|n|g}+

This should output:

   4
   2
   i
   s 
   t
   h
   e
   a
   n
   s
   w
   e
   r
   t
   o
   e
   v
   e
   r
   y
   t
   h
   i
   n
   g

What the characters do:

{ allows code to run

} lets code run if it is inside the curly brackets

> adds one to the stack

< takes away one from the stack

| prints character coming after it

& prints length of stack

+ runs code

So that code could have been translated into:

   #include <iostream> using namespace std; int main(void) { int stack = 0; stack = 4; cout << stack; stack = 2; cout << stack; cout << ' \ni\ns\n \nt\nh\ne\n \na\ns\nw\ne\nr\n 
       \nt\no\n \ne\nv\ne\nr\ny\nt\nh\ni\nn\ng'; }

I didn't put it online, so you can't download it or find it anywhere, so just copy the following python code into a python interpreter or software and run it:


chars = []

mem = [0]

init = []

def code(txt):

   for i in range(len(txt)):
       if txt[i] == '>':
           mem[0] += 1
           chars.append(':' + str(mem[0]))
       elif txt[i] == '<':
           mem[0] -= 1
           chars.append(':' + str(mem[0]))
       elif txt[i] == '|':
           chars.append('"' + str(txt[i + 1]))
       elif txt[i] == '{':
           init.append('r')
       elif txt[i] == '}':
           init.append('c')
       elif txt[i] == '&':
           chars.append('"' + str(mem[0]))
       elif txt[i] == '+':
           if len(init) > 0:
               if init[0] == 'r':
                   if init[len(init) - 1] == 'c':
                       run()

def run():

   for i in range(len(mem)):
       mem.pop()
   mem.append(0)
   for i in range(len(chars)):
       if chars[i][0] == ':':
           mem[0] = int(chars[i][1:len(chars[i])])
       elif chars[i][0] == '"':
           print(chars[i][1])

while True:

   inpt = input()
   code(inpt)