Skip to content
/ retruco Public

An Interpreter and Virtual Machine for the TIMBA language

License

Notifications You must be signed in to change notification settings

qequ/retruco

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Retruco

Retroco_logo

A virtual machine and interpreter for the TIMBA language.

Un intérprete para el lenguaje de programación TIMBA

Prerequisites

  1. Python3
  2. Tkinter (if you want to use the gui)

To install Tkinter;

pip install tk

Usage

python retruco.py

Example programs

Hello Timba

The language can't handle strings so the most basic program is taking a card from a stack;

UCP EJECUTE CON LAS SIGUIENTES CARTAS
LA PILA HOLATIMBA TIENE 1 DE ESPADAS BOCA ARRIBA;

DEFINICION DE PROGRAMA
TOME UNA CARTA DE LA PILA HOLATIMBA

Sorting a stack

UCP EJECUTE CON LAS SIGUIENTES CARTAS
LA PILA INPUT TIENE       10 DE BASTOS BOCA ARRIBA -
                          7 DE BASTOS BOCA ARRIBA -
                          1 DE ESPADAS BOCA ARRIBA -
                          5 DE OROS BOCA ARRIBA -
                          11 DE COPAS BOCA ARRIBA -
                          2 DE COPAS BOCA ARRIBA -
                          6 DE ESPADAS BOCA ARRIBA,

LA PILA TMPSTACK NO TIENE CARTAS,
LA PILA AUXILIAR NO TIENE CARTAS,
LA PILA AUXILIAR2 NO TIENE CARTAS;


DEFINICION DE PROGRAMA
MIENTRAS LA PILA INPUT NO ESTA VACIA

    TOME UNA CARTA DE LA PILA INPUT

    MIENTRAS LA PILA TMPSTACK NO ESTA VACIA
        SI LA CARTA ES DE MENOR O IGUAL VALOR QUE TOPE DE PILA TMPSTACK
            # TOMAR EL TOPE DE PILA DE TMPSTACK Y PONERLO EN STACK DE INPUT
            # ANTES DEPOSITAR LA CARTA TMP EN AUXILIAR
            DEPOSITE LA CARTA EN PILA AUXILIAR

            TOME UNA CARTA DE PILA TMPSTACK
            DEPOSITE LA CARTA EN PILA INPUT
            TOME UNA CARTA DE PILA AUXILIAR


        SINO
            # NO HAY BREAK ASI QUE HAY QUE SACAR TODAS LAS CARTAS DE TMPSTACK ASI SE ROMPE EL WHILE

            #depositamos tmp en auxiliar 
            DEPOSITE LA CARTA EN PILA AUXILIAR

            MIENTRAS LA PILA TMPSTACK NO ESTA VACIA
                TOME UNA CARTA DE PILA TMPSTACK
                DEPOSITE LA CARTA EN PILA AUXILIAR2
            REPITA

            # recuperamos temp
            TOME UNA CARTA DE PILA AUXILIAR
        NADA MAS

    REPITA

    DEPOSITE LA CARTA EN PILA AUXILIAR

    # caso de romper el while antes
    SI LA PILA TMPSTACK ESTA VACIA Y LA PILA AUXILIAR2 NO ESTA VACIA
        MIENTRAS LA PILA AUXILIAR2 NO ESTA VACIA
            TOME UNA CARTA DE PILA AUXILIAR2
            DEPOSITE LA CARTA EN PILA TMPSTACK
        REPITA
    SINO
    NADA MAS

    TOME UNA CARTA DE PILA AUXILIAR
    DEPOSITE LA CARTA EN PILA TMPSTACK

REPITA

TODO

  • A setup script

License

MIT License Copyright (c) 2021 Alvaro Frias

About

An Interpreter and Virtual Machine for the TIMBA language

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages