Un curioso intento de lenguaje de programacion...

Iniciado por n1sendev, Noviembre 23, 2017, 11:00:26 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Noviembre 23, 2017, 11:00:26 PM Ultima modificación: Noviembre 24, 2017, 01:45:06 PM por n1sendev
Estaba buscando en las carpetas en mi pendrive, donde guardo muchas cosas sobre programacion, cuando encontre esto, un script que es un interprete para un intento de lenguaje de programacion que habia hecho:
El codigo del "interprete"  se los dejo aca:
Código: python

#!/usr/bin/python3

from instr import *

global file_name
file_name = "test.ctk" #input("~ ")

def main():
        global line_cout
        line_cout = 0
        try:
            with open(file_name) as file:
                for file_input in file:
                    line_cout += 1

                    #Se pone esto para evitar que se ejecuten
                    #instrucciones de Python, ya que se usa exec()
                    #Lo se, esto es horrible, sangra la vista...

                    if "putsln" in file_input:
                        try:
                            exec(file_input)
                        except:
                            pass
                   
                    elif "clrscr" in file_input:
                        exec(file_input)
                       
                    elif "pause" in file_input:
                        exec(file_input)

                    else:
                        print("Exception:")
                        print('\tInvalid "%s" instruction at line %s!\n' % (file_input[:-1], line_cout))

                    """
                    try:
                        exec(file_input)
                    except (NameError, SyntaxError):
                        print("Exception:")
                        print('\tInvalid "%s" instruction at line %s!\n' % (file_input[:-1], line_cout))
                    """

        except FileNotFoundError:
            print('File "%s" not founded' % file_name) 

if __name__ == '__main__':
    main()
   

Como vemos, importa una libreria propia, que, en este caso es instr, donde estan las instrucciones de este "lenguaje".
Código: python

#!/usr/bin/python3
import os
import time


def putsln(text):
    print(text)

def GetInt(varname): #Esta funcion, que lee el teclado para un valor int, no sirve,
    value_key = int(input("")) #debido a que lo he logrado crear las variables aun :(
    return varname == value_key

def clrscr():
    name = os.name
    if name == 'posix':
        os.system("clear")
    elif name == 'nt':
        os.system("cls")
    else:
        print()

def pause(time_wait):
    if time_wait > 0:
        time.sleep(time_wait)
    elif time_wait == 0:
        input("[PAUSED] Press any key to continue... ")
    else:
        if time_wait is str():
            print("Value cannot be a string!")
        else:
            print("")


En el codigo, comento que no logre hacer lo mas basico, las variables. Para eso se me habia ocurrido usar clases para la variable, y cada vez que se llamara a esa clase, se crea un objeto que seria la variable, pero no logre hacerlo funcionar. (vaya lio)

Ah, y la sintaxis de este "lenguaje" es esta:
Código: php

putsln("Si esto se ve, es que funciono.")
pause(0)
clrscr()
putsln("Hola otra vez")

Eso se guarda en un archivo con extension .ctk.
Saludos

PD: Hagan lo que quieran con el codigo, se los regalo. (si es que no quedan ciegos con mi horrible codigo), y el "interprete" esta hecho en Python 3.
Tampoco logre hacer una sentencia "if"