Matriz de transições
estados \ entradas
\ 0 1 2 3 4
0 0 1 2 . .
1 0 . . . .
2 . . . 1 .
Matriz de ações
estados \ entradas
0 1 2 3 4
0 . . a . .
1 . . . . .
2 . . . b .

Lista de Ações
(ação)
  • a: Analisar Sintaxe (ExpressaoAritmetica, 
    Matriz de Transições, Matriz de Ações,
    EstadoInicial, EstadosFinais,
    TipoToken, ListaAcoes)
  • b: return
  • : token, Tipo de Token, prioridade =>  Lista de Token
EstadoInicial = 0
EstadosFinais = [1]

TipoToken (token) => tipo, prioridade // token: tipo (entrada)

  1. 'Operador unário -' e estado == 0: 0, 2
  2. inteiro: 1, 0
  3. (: 2, 1
  4. ): 3, 1
  5. Operador binário
    • *: 4, 3
    • /: 4, 3
    • +: 4, 4
    • -: 4, 4
Lista de Tokens: token, Tipo de Token, prioridade

Lista de Regras

  1. -unário inteiro: Lista de Tokens [-1 * inteiro]  => Lista de Tokens [-unário, inteiro] 
  2. (inteiro): Lista de Tokens [inteiro]  => Lista de Tokens ['(', inteiro, ')']
  3. inteiro operador prioridade==3 inteiro: Lista de Tokens [operação entre os inteiros]  => Lista de Tokens [inteiro, operador prioridade==3, inteiro] 
  4. inteiro operador prioridade==4 inteiro: Lista de Tokens [operação entre os inteiros]  => Lista de Tokens [inteiro, operador prioridade==4, inteiro] 
  5. : return lista [0]
Lista de Tokens: token, Tipo de Token, prioridade