Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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]
Ejemplo n.º 4
0
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)