def crearVariable(semantico):
    tabla = obtenerTablaActual(semantico)
    token = pop(semantico)
    tipo = peek(semantico)
    variable = Variable(token.valor, tipo.valor)
    tabla.agregarSimbolo(variable)
    Triplete("crearVariable", tipo.valor, token.valor)
def borrarAlcance(semantico):
    tabla = obtenerTablaActual(semantico)
    if tabla.padre:
        semantico.tablaDeSimbolosActual = semantico.tablaDeSimbolosActual.padre
    del (tabla)
    Triplete("borrarAlcance")
def crearAlcance(semantico):
    tabla = obtenerTablaActual(semantico)
    semantico.tablaDeSimbolosActual = tabla
    Triplete("crearAlcance")
def esMenorOigual(op1, op2, resultado):
    return Triplete("esMenorOigual", op1, op2, resultado)
def esMenor(op1, op2, resultado):
    return Triplete("esMenor", op1, op2, resultado)
def esDiferente(op1, op2):
    return Triplete("esDiferente", op1, op2)
def esIgual(op1, op2):
    return Triplete("esIgual", op1, op2)
def dividir(op1, op2, resultado):
    return Triplete("dividir", op1, op2, resultado)
def multiplicar(op1, op2, resultado):
    return Triplete("multiplicar", op1, op2, resultado)
def restar(op1, op2, resultado):
    return Triplete("restar", op1, op2, resultado)
def sumar(op1, op2, resultado):
    return Triplete("sumar", op1, op2, resultado)
def leer(variable):
    variable.valor = True
    t = Triplete("leer", variable.nombre, None)
    Triplete("asignar", variable.nombre, t)
def imprimir(variable):
    if variable.valor:
        Triplete("imprimir", variable.nombre, None)
    else:
        raise NameError(f"La variable {variable.nombre} no tiene dato")
def asignar(variable, valor):
    Triplete("asignar", variable, valor)
def fin(semantico):
    Triplete("fin")
def inicio(semantico):
    Triplete("inicio")