Construindo um compilador



Parte 1 - O Analisador Léxico

Linguagem:C# .NET.
SO:Windows XP.
Input:Um arquivo de código-fonte da linguagem "LC4".
Output: Uma listagens de todos os tokens do programa-fonte e suas respectivas classes.(Veja exemplo)


 
Name
Size Date Description  
Main.cs
400 5/12/2004 Ponto de entrada do programa.  
Testador.cs
1461 5/12/2004 Possui método que testa o analisador Léxico.  
FPrimHash.cs
3624 5/12/2004 Tabela Hash das Funções primarias.  
Acoes.cs
1730 5/12/2004 As ações para cada evento do automato.  
AnalisadorLexico.cs
2454 5/12/2004 Analisa cada token do programa fonte, e define a classe deste token.  
FPrim.cs
368 5/12/2004 Classe que representa as funções primarias (escritas em fprim.inc).  
Automato.cs
3439 5/12/2004 Classe que representa o automato (escrito em automato.inc) do analisador léxico.  
ItemLexico.cs
380 5/12/2004 Classe que representa 1 item lexico.  
Conjuntos.cs 1853 5/12/2004 Classe que representa cada conjunto de caracteres definidos no automato.  

Desenho do Automato:

 


Parte 2 - O Analisador Sintático

Linguagem: C# .NET.
SO: Windows XP.
Input: Um arquivo de código-fonte da linguagem "LC4".
Output: Um relatório sobre a analise sintática, feita para cada item léxico. (Veja exemplo)

 

 

  Name Size Date Description
Testador.cs 1125 23/3/2005 Possui função para testar o analisador Sintático.
Main.cs 596 23/3/2005 Chama o testador para executar o analisador Sintático.
Pilha.cs 905 23/3/2005 Classe que implementa a estrutura de dados chamada pilha.
GrafoSintatico.cs 4261 23/3/2005 Classe que representa o grafo Sintatico. (escrito em grafoSintatico.txt)
AnalisadorSintatico.cs 3807 23/3/2005 Analisa cada item lexico do programa fonte num contexto sintático.

 

Código Fonte: compiladorcod.zip
Executável: compiladorexe.zip
Programas testes testeslc4.zip

 

Eduardo Rocha Monteiro
([email protected])

1