Пример #1
0
    def __funcion_analizar():

        g.errores_lexicos.clear()
        g.errores_sintacticos.clear()

        tablaSimbolos = TS.Entorno(None)
        entrada = my_editor.text.get('1.0', END)

        arbol = g.parse(entrada)

        if len(g.errores_lexicos) == 0:

            if len(g.errores_sintacticos) == 0:
                
                # raiz = graficando.analizador(entrada)
                data=principal.interpretar_sentencias(arbol,tablaSimbolos)
                tablaSimbolos.mostrar()
                imprimir_consola(data)
                # GraficarAST(raiz)
            
            else:

                imprimir_consola('Se detectaron algunos errores sintácticos')
                append_consola('')
                append_consola('No. \t Lexema \t Tipo \t\t Fila \t Columna \t Descripción ')
                
                i = 0
                while i < len(g.errores_sintacticos):
                    
                    append_consola( str(i) + ' \t ' + str(g.errores_sintacticos[i].lexema) +  ' \t ' + str(g.errores_sintacticos[i].tipo) +  ' \t ' + str(g.errores_sintacticos[i].fila) +  ' \t ' + str(g.errores_sintacticos[i].columna) +  ' \t ' + str(g.errores_sintacticos[i].descripcion) +  ' ')
                    i += 1
        else:

            imprimir_consola('Se detectaron algunos errores léxicos')
            append_consola('')
            append_consola('No. \t Lexema \t Tipo \t\t Fila \t Columna \t Descripción ')
                
            i = 0
            while i < len(g.errores_lexicos):
                    
                append_consola( str(i) + ' \t ' + str(g.errores_lexicos[i].lexema) +  ' \t ' + str(g.errores_lexicos[i].tipo) +  ' \t ' + str(g.errores_lexicos[i].fila) +  ' \t ' + str(g.errores_lexicos[i].columna) +  ' \t ' + str(g.errores_lexicos[i].descripcion) +  ' ')
                i += 1
Пример #2
0
import tkinter as tk
import gramaticaASC as g
from tkinter import filedialog as FileDialog
from tkinter import colorchooser as ColorChooser
from tkinter import messagebox as MessageBox

import Graficar as graficando
import principal as principal
import os
from tkinter import filedialog
from tkinter import StringVar
from tkinter.constants import END, INSERT
import TablaSimbolos as TS

tablaSimbolos = TS.Entorno(None)
from tkinter import messagebox
import pickle
from graphviz import Digraph

pathFile = ''


#################################### CLASE TextLineNumbers ####################################
class TextLineNumbers(tk.Canvas):
    def __init__(self, *args, **kwargs):
        tk.Canvas.__init__(self, *args, **kwargs)
        self.textwidget = None

    def attach(self, text_widget):
        self.textwidget = text_widget