def compila_sintactico(*args, **kwargs): json_data = json.loads(request.data) sintactico = Sintactico(codigo=json_data.get('codigo', '')) programa = sintactico.PROGRAMA() resultado = {'programa': programa} resultado['tabla_de_simbolos'] = [{ 'token': s.token, 'lexema': s.lexema, 'codigo': s.codigo, 'tipo': s.codigo_tipo, } for s in sintactico.lexico.tabla_de_simbolos] resultado['tabla_de_funciones'] = [{ 'token': s.token, 'lexema': s.lexema, 'codigo': s.codigo, 'tipo': s.codigo_tipo, } for s in sintactico.lexico.tabla_de_funciones] resultado['codigo_intermedio'] = sintactico.semantico.codigo_intermedio resultado['errores'] = [{ 'tipo': error.tipo, 'num_linea': error.num_linea, 'mensaje': error.mensaje } for error in sintactico.errores.coleccion] return (resultado, 200)
def compila_expresion(*args, **kwargs): json_data = json.loads(request.data) sintactico = Sintactico(codigo=json_data.get('codigo', '')) expresion = sintactico.EXPRESION() resultado = {'expresion': expresion} resultado['errores'] = [{ 'tipo': error.tipo, 'num_linea': error.num_linea, 'mensaje': error.mensaje } for error in sintactico.errores.coleccion] return (resultado, 200)
def compila_sintactico(*args, **kwargs): json_data = json.loads(request.data) sintactico = Sintactico(codigo=json_data.get('codigo', '')) programa = sintactico.PROGRAMA() resultado = {'programa': programa } resultado['tabla_de_simbolos'] = [{ 'token': s.token, 'lexema': s.lexema, 'codigo': s.codigo 'codigo': s.codigo, 'tipo': s.tipo } for s in sintactico.lexico.tabla_de_simbolos]
from compilador.sintactico import Sintactico codigo = input('Ingresa una expresion: ') sin = Sintactico(codigo=codigo) if sin.PROGRAMA() and len(sin.errores.coleccion) == 0: print('Programa valido') else: print('Programa invalido') for error in sin.errores.coleccion: print(error)