## Requisitos minimos: - bison 3.0.4 - flex 2.6.0 - gcc 5.4.0 ## para compilar o program rode o seguinte comando na pasta raiz: make ## para rodar o analisador dobre um arquivo texto rode: --------- ./program.out <path_do_arquivo> ## a gramatica utilizada eh listada em Analisador_150131992.pdf(por falata de tempo a documentacao esta desatualizada em relacao ao analisador sintatico) ## estao presentes na pasta oito programas de exemplo, dois sem erros(sejam lexicos, sintaticos ou semanticos): teste_correto1.txt, teste_correto2.txt. Dois com erros lexicos: teste_errado1_lexico.txt, teste_errado_lexico2.txt. Dois com erros sintaticos: teste_errado1_sintatico.txt, teste_errado_sintatico.txt. E dois com erros semanticos: teste_errado1_semantico.txt, teste_errado2_semantico. ## os codigos de exemplo com erro lexico possuem erros relacionados a simbolos nao reconhecidos na gramatica. No teste_errado1_lexico.txt duas linha vao apresentar erro ao nao reconhecer "!", no teste_errado2_lexico.txt vai apresentar uma linha erro em uma linha com o simbolo "@". ## os codigos de exemplo com erro sinstatico possuem erro por tentarem declarar uma variavel e atribuir um valor a ela numa mesma linha, coisa que a linguagem nao suporta. ## No arquivo teste_errado1_semantico.txt sao esperados dois tipos de erro o primeiro relacionado a falta de uma funcao main, e os outros dois relacionados a mismacth de tipos na operacao da linha 3, O arquivo teste_errado2_semantico.txt sao esperados dois tipos de erro semantico um mismacth de tipo no tipo passado para a funcao e um mismacth de tipo com o tipo de retorno da main. ## Depois de compilado o codigo um arquivo tac/out.tac é gerado e pode ser excutado com a ferramenta tac.