Skip to content

Um programa que lista os tokens de uma linguagem de programação definida.

License

Notifications You must be signed in to change notification settings

Carlos-Mareco/analisador_lexico

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Analisador Léxico (nível básico)

A partir da string inserida como parâmetro na função listarTokens() em main(), o programa lista todos os tokens da linguagem definida em espeficacoes_linguagem.pdf reconhecidos na string.
Veja abaixo o autômato usado pelo analisador léxico:

automato_lexico

Tabela de leximas reconhecidos

Na tabela abaixo, está especificado quais as classes de tokens que o analisador reconhece, pois, embora seja baseado em C, não reconhece todas as palavras reservadas e algumasexpressões da linguagem, visto que resultaria em um programa bastante complexo.

Classe do token Descrição da classe Expressão reconhecida
ID Identificador “a”, “ab0”, “Abc”, “abC123”
CONST_INT Um número inteiro não
negativo
“12”, “15”, “27”, “19”, “01”
CONST_FLOAT Um número real não
negativo
“10.2”, “0.5”, “00.1”, “.001”
LITERAL Qualquer caractere
alfanumérico entre aspas
“\” caractere 39\””
OPER_ATRIB Operação de atribuição “=”
OPER_RELAC Operadores relacionais “==”, “<=”, “>=”, “!=”
OPER_ARIT Operadores aritméticos “+”, “-”, “*”, “/”
OPER_BOOL Operador booleano “!”
DELIM Delimitadores “,”, “;”
CARAC_ESPEC Caracteres especiais “(”, “)”, “[“, “]”, “{“, “}”
IF Palavra reservada: if “if”
FOR Palavra reservada: for “for”
INT Palavra reservada: int “int”

Compilação e execução

Através do terminal, escolha um local onde será salvo os arquivos e use:

git clone https://github.com/Carlos-Mareco/analisador_lexico.git

Use o compilador G++ integrante da GCC (GNU Compiler Collection). Certifique-se de estar no diretório do programa.

g++ analisador_lexico.cpp -o program

E para executar, ainda no mesmo diretório do programa, use :

./program

Uso do programa

Para usar o analisador léxico é necessário, antes de cada compilação e execução, modificar o parâmetro da função listarTokens() em main() de analisador_lexico.cpp, veja abaixo um exemplo pré-definido:

int main(){
    listarTokens("for(int i = 0; i < 10; i=i+1)");

    return 0;
}

Ambiente de criação e teste

Informação do OS: Linux Mint 20.2 Cinnamon.
Kernel do Linux: 5.4.0-94-generic
Processador: Intel© Core™ i7-7500U CPU @ 2.70GHz × 2.
Memória: 7.7 GiB.
Editor/IDE: Visual Studio Code 1.63.2.
Compilador: G++ 9.3.0.

Licença

Licenciado sob a GNU General Public License.

Considerações finais

Este programa faz parte de um dos componentes avaliativos da disciplina de Compiladores do Curso de Ciência da Computação da Universidade Federal do Amapá.

About

Um programa que lista os tokens de uma linguagem de programação definida.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages