Skip to content

El objetivo para este proyecto es tomar un código fuente escrito en python y realizar un análisis léxico sobre dicho código.

Notifications You must be signed in to change notification settings

reyandres015/Analizador-Lexico-Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Proyecto 1: Analizador Léxico Lenguaje Python

El objetivo para este proyecto es tomar un código fuente escrito en python y realizar un análisis léxico sobre dicho código.

La entrada que debe recibir este programa está dada por un archivo que contiene código fuente escrito en lenguaje Python. La salida consiste en una lista de tokens separados por saltos de línea, los cuales deben seguir el siguiente formato <tipo_de_token,lexema,fila,columna>. En el caso de las palabras reservadas, el token y el lexema son iguales. Entonces se debe imprimir el siguiente formato <tipo_de_token,fila,columna>.

Entrada:

class Animal(object): 
        makes_noise:bool = False 
     
        def make_noise(self: "Animal") -> object: 
            if (self.makes_noise): 
                print(self.sound()) 
     
        def sound(self: "Animal") -> str: 
            return "???" 
     
class Cow(Animal): 
        def __init__(self: "Cow"):  
                                    
            self.makes_noise = True 
     
        def sound(self: "Cow") -> str: 
            return "moo" 
     
c:Animal = None 
c = Cow() 
c.make_noise()             # Prints "moo" 

Salida:

<class,1,1> 
<id,Animal,1,7> 
<tk_par_izq,1,13> 
<object,1,14> 
<tk_par_der,1,20> 
<tk_dos_puntos,1,21> 
<id,makes_noise,2,5> 
<tk_dos_puntos,2,16> 
<bool,2,17> 
<tk_asig,2,22> 
<False,2,24> 
<def,4,5> 
<id,make_noise,4,9> 
<tk_par_izq,4,19> 
<self,4,20> 
<tk_dos_puntos,4,24> 
<tk_cadena,”Animal”,4,26> 
<tk_par_der,4,34> 
<tk_ejecuta,4,36> 
<object,4,39> 
<tk_dos_puntos,4,45> 
<if,5,9> 
<tk_par_izq,5,12> 
<self,5,13> 
<tk_punto,5,17> 
<id,makes_noise,5,18> 
<tk_par_der,5,29> 
<tk_dos_puntos,5,30> 
<print,6,13> 
<tk_par_izq,6,18> 
<self,6,19> 
<tk_punto,6,23> 
<id,sound,6,24> 
<tk_par_izq,6,29> 
<tk_par_der,6,30> 
<tk_par_der,6,31> 
<def,8,5> 
<id,sound,8,9> 
<tk_par_izq,8,14> 
<self,8,15> 
<tk_dos_puntos,8,19> 
<tk_cadena,”Animal”,8,21> 
<tk_par_der,8,29> 
<tk_ejecuta,8,31> 
<str,8,34> 
<tk_dos_puntos,8,37> 
<return,9,9> 
<tk_cadena,”???”,9,16> 
<class,11,1> 
<id,Cow,11,7> 
<tk_par_izq,11,10> 
<id,Animal,11,11> 
<tk_par_der,11,17> 
<tk_dos_puntos,11,18> 
<def,12,5> 
<__init__,12,9> 
<tk_par_izq,12,17> 
<self,12,18> 
<tk_dos_puntos,12,22> 
<tk_cadena,”Cow”,12,24> 
<tk_par_der,12,29> 
<tk_dos_puntos,12,30> 
<self,13,9> 
<tk_punto,13,13> 
<id,makes_noise,13,14> 
<tk_asig,13,26> 
<True,13,28> 
<def,15,5> 
<id,sound,15,9> 
<tk_par_izq,15,14> 
<self,15,15> 
<tk_dos_puntos,15,19> 
<tk_cadena,”Cow”,15,21> 
<tk_par_der,15,26> 
<tk_ejecuta,15,28> 
<str,15,31> 
<tk_dos_puntos,15,34> 
<return,16,9> 
<tk_cadena,”moo”,16,16> 
<id,c,18,1> 
<tk_dos_puntos,18,2> 
<id,Animal,18,3> 
<tk_asig,18,10> 
<None,18,12> 
<id,c,19,1> 
<tk_asig,19,3> 
<id,Cow,19,5> 
<tk_par_izq,19,8> 
<tk_par_der,19,9> 
<id,c,20,1> 
<tk_punto,20,2> 
<id,make_noise,20,3> 
<tk_par_izq,20,13> 
<tk_par_der,20,14>

About

El objetivo para este proyecto es tomar un código fuente escrito en python y realizar un análisis léxico sobre dicho código.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages