quinta-feira, 21 de setembro de 2017

Construindo um PARSER em javascript - IV

Até o momento, nesta série de artigos sobre a construção de um Parser para expressões, não nos preocupamos com a definição forçada de prioridades através do uso de parênteses.

Neste post, vamos mostrar como será resolvido o problema dos níveis de parênteses, de forma extremamente simples, seguindo a mesma lógica da resolução das expressões mostrada anteriormente, vamos repetir, sem as árvores de operandos e operadores comumente utilizadas.

Fluxograma de rastreio dos parênteses

Os parênteses serão encarados da mesma forma que os operadores aritméticos. O truque é achar não um abre-parênteses, e sim um fecha parênteses, retrocedendo o pointer de caracteres até o primeiro abre-parênteses que o precede:



Repare que sempre que procurarmos o primeiro fecha-parênteses, ele será o mais interno, tornando o nosso algoritmo o mais eficiente na busca pelas expressões de maior prioridade para resolução.

No próximo post mostraremos o código javascript do parse da expressão sem níveis de parênteses.

Conclusão

Existem formas mais eficientes de se tratar os níveis de parênteses nas expressões aritméticas.



Nenhum comentário:

Postar um comentário