ProtectedadicaoEste é o ponto de entrada de toda a avaliação sintática. É o único método mencionado na interface do avaliador sintático, e cada avaliador sintático deve implementar o seu método.
O retorno do Lexador.
O hash do arquivo, gerado pela função cyrb53.
Os métodos a seguir devem ser implementados nos seus respectivos dialetos por diferentes razões: seja porque o dialeto correspondente tem uma abordagem diferente sobre entrada e saída, seja porque a funcionalidade sequer existe, mas é suprimida por outra.
Esses métodos não precisam ser expostos. A recomendação geral é
implementá-los como protected.
ProtectedavancarProtectedbitProtectedbitProtectedbitOs métodos a seguir só devem ser implementados se o dialeto em questão realmente possui a funcionalidade, e devem levantar erro em caso contrário.
Suporta chamadas de funções embutidas: SEN(x), COS(x), POTENCIA(b,e), etc.
ProtectedcomparacaoProtectedcompararProtectedconsumirProtecteddeclaracaoProtecteddeclaracaoProtecteddeclaracaoProtecteddeclaracaoEste método é usado por Delégua e alguns dialetos de Portugol que possuem declarações de múltiplas variáveis na mesma linha.
Protecteddeclaracaoenquanto cond faz ... fimenquanto
escolhe expr caso v[, v...]: instr ... [defeito: instr] fimescolhe
escrever expr [, expr ...]
ProtecteddeclaracaoOptionalsimboloAnterior: SimboloInterfacefaz ... enquanto cond
O enquanto de fechamento é distinguido no lexer (FAZENQUANTO) do enquanto de abertura.
para v de ini ate fim [passo p] + corpo + proximo
Protecteddeclaracaose cond entao ... [senao ...] fimse
ProtecteddeclaracaoProtecteddeclaracaoProtectedeOverride de e() para suportar o operador lógico NAO com precedência
menor que comparações: nao x = 0 → nao (x = 0).
ProtectedemProtectedestaProtectedexponenciacaoA exponenciacão é uma exceção na ordem de avaliação (resolve primeiro à direita).
Por isso direito chama exponenciacao(), e não unario().
A expressão binária na forma do construto Binario.
Protectedexpressaoler var [, var ...]
ProtectedfinalizarProtectedfuncaoProtectedlogicaProtectedmultiplicarProtectedouOverride de ou() para incluir o operador lógico XOU.
ProtectedresolverProtectedsimboloProtectedtuplaProcessa tuplas, que são expressões separadas por vírgula entre parênteses. Se não houver vírgula, retorna apenas a expressão simples.
ProtectedunarioOverride de unario() para incluir operadores unários aritméticos.
NAO é tratado em e() para ter precedência menor que comparações.
ProtectedverificarProtectedverificarProtectedverificar
O Avaliador Sintático Base é uma tentativa de mapear métodos em comum entre todos os outros Avaliadores Sintáticos. Depende de um dicionário de tipos de símbolos comuns entre todos os dialetos.