Exemplo de uso de Autômato Finito para o Kata Expressão Aritmética realizado em 23 de setembro de 2009 na Reunião #34 do Dojo Rio
Calcular fazendo operações de soma, subtração, multiplicação e divisão de números inteiros, incluindo negativos e podendo usar parênteses. Para calcular o valor da expressão o parênteses tem maior prioridade que qualquer operação.
Calcular Expressão (ExpressaoAritmetica) => valor
Analisar Sintaxe (ExpressaoAritmetica, Autômato de Expressão Aritmética, EstadoInicial, EstadosFinais, TipoToken) => Lista de Tokens
Aplicar Regras (Lista de Tokens, Lista de Regras) => valor
2, Analisar Sintaxe (ExpressaoAritmetica, Autômato de Expressão Aritmética, EstadoInicial, EstadosFinais, TipoToken)
Lista de Regras
Calcular Expressão ("34 + ((3 + 7) * -6) / 4") => 19
Dada a expressão aritmética "34 + ((3 + 7) * -6) / 4", Analisar Sintaxe gera a Lista de Token abaixo e Aplicar Regras gera valor final.
expressao: OpUnario* (inteiro | '(' expressao ')') [OpBinario expressao]
(OpUnario* (inteiro | '('expressao')')OpBinario)*OpUnario*(inteiro | '('expressao')')
Diagrama Sintático - Exemplos e convenções