analisadorlexicosintatico
v2.0.0
Published
Implementação de um analisador léxico e sintático para a gramática de expressões aritméticas. As regras da gramática devem ser definidas diretamente no código-fonte do programa. O programa deve realizar as análises léxica e sintática. A saída do progra
Downloads
3
Readme
Analisador Léxico e Sintático
Veja funcionando aqui!
Implementação de um analisador léxico e sintático para a gramática de expressões aritméticas. A lib realiza as análises léxica e sintática e provê uma indicação de que a sentença de entrada está correta ou incorreta (léxica ou sintaticamente).
Suporte de Navegadores
Esta lib funciona nos seguintes navegadores:
| | | | | --- | --- | --- | --- | --- | 39+ ✔ | 42+ ✔ | 29+ ✔ | 10.1+ ✔ | 11.3+ ✔ |
Dependências
Esta biblioteca não possui dependências.
Instalação
$ npm install analisadorlexicosintatico --save
Como Usar
UMD no Navegador
<!-- para importar a versão não-minificada -->
<script src="analisador-lex-sin.umd.js"></script>
<!-- para importar a versão minificada -->
<script src="analisador-lex-sin.umd.min.js"></script>
Depois disso, a lib estará disponível globalmente como analisador
. Veja um exemplo:
const sentenca = "( x )" //tokens separados por " "
console.log(analisador.verificaSentenca(sentenca))
Métodos
Métodos que a biblioteca provê:
verificaSentenca(sentenca)
Realiza as análises léxica e sintática e retorna um
JSON
contendo uma indicação de que a sentença de entrada está correta ou incorreta (léxica ou sintaticamente).
Argumentos
| Argumento | Tipo | Opções |
|--------------|---------|---------------------------------------|
|sentenca
|string | 'Entrada com tokens separados por " "'|
Exemplo
const entrada = "( x + y )";
const result = analisador.verificaSentenca(entrada);
console.log(result)
Autores
| | |:---------------------:| | Alexandre Kavalerski
| | |:---------------------:| | Jhemeson Mota
| | |:---------------------:| | Ian Maiwald
| | |:---------------------:| | Kennedy Santos
Veja também a lista de colaboradores who participated in this project.
Obs:
O analisador referente a este trabalho foi construído sobre uma gramática previamente definida. A mesma pode ser conferida a seguir:
E ::= E OPERADOR E | E | '(' E ')' | INCOGNITA | NUMERO
OPERADOR ::= '+' | '-' | '*' | '/'
INCOGNITA ::= 'x' | 'y'
NUMERO ::= [0-9]+
Licença
Este projeto está licenciado sob a MIT License - Veja o arquivo LICENSE.md para detalhes