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")