Skip to content

PedroBinotto/INE5622-2024.01

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

INE5622-2024.01

Trabalho final da disciplina de Introdução a Compiladores

Analisador Léxico Analisador Sintático implementados via Flex Bison.

self link


Instruções de execução do projeto

Pré-requisitos:

É necessário instalar estas dependências através do gerenciador de pacotes do seu sistema operacional antes de tentar compilar o projeto.


Para compilar o projeto, basta executar o comando make no diretório src do projeto:

# pwd: [...]/INE5622-2024.01/src
user@linux ➜ src $ make
# bison -t -v -d parser.y
# flex lexer.l
# gcc -o lsi.out parser.tab.c lex.yy.c

Em seguida, é possível executar a análise de código da gramática "lsi" diretamente ou através de arqvuivos de código:

# pwd: [...]/INE5622-2024.01/src
user@linux ➜ $ src ./lsi.out
# > int D;
# > T_INTT_IDENTT_SEMICOLON
# > D = func();
# > T_IDENT T_EQUALS_SIGN T_IDENT T_OPEN_PAREN T_CLOSE_PAREN T_SEMICOLON
# > ^C
user@linux ➜ src $ ./lsi.out < ./test-sources/test_1.lsi
# T_FUNCDEF T_IDENT T_OPEN_PAREN T_INT T_IDENT T_COMMA T_INT T_IDENT T_CLOSE_PAREN[...]

Os testes também podem ser executados automaticamente através do script incluido:

# pwd: [...]/INE5622-2024.01/src
user@linux ➜ $ ./run_tests
# =========================================
# Executando arquivo de teste './test-sources/test_1.lsi'
# T_FUNCDEF T_IDENT T_OPEN_PAREN T_CLOSE_PAREN ...
#
# =========================================
# Executando arquivo de teste './test-sources/test_2.lsi'
# ...