SYA

Publicado em 02/08/2024 - Código fonte

SYA é um Shunting Yard Algorithm implementado em Rust, com um Lexer/Tokenizador incluído.

Shunting Yard Algorithm

O algoritmo pode ser usado para avaliar e calcular expressões matemáticas e é extremamente útil para desenvolver interpretadores e compiladores simples.

Basicamente, o algoritmo primeiro converte a expressão matemática para Notação Polonesa Reversa (RPN):

( A + B * C → ABC * +)

O que é muito estranho de ler e leva algum tempo para se acostumar, mas será útil para resolver corretamente as expressões na ordem de precedência certa. Após isso, o algoritmo percorre a RPN empurrando números para a pilha. Quando um operador é encontrado, ele é aplicado aos dois últimos números da pilha.

Você pode conferir o código fonte aqui.