UNPKG

@designliquido/delegua

Version:

Linguagem de programação simples e moderna usando português estruturado.

79 lines 3.73 kB
import { AvaliadorSintaticoInterface, SimboloInterface } from '../../interfaces'; import { Chamada, FuncaoConstruto, Construto, Leia, ImportarComoConstruto } from '../../construtos'; import { ErroAvaliadorSintatico } from '../erro-avaliador-sintatico'; import { Classe, Continua, Enquanto, Escolha, Escreva, Expressao, Fazer, FuncaoDeclaracao, Para, Sustar, Retorna, Se, Tente, Var, Const, Declaracao } from '../../declaracoes'; import { RetornoAvaliadorSintatico } from '../../interfaces/retornos/retorno-avaliador-sintatico'; import { RetornoLexador } from '../../interfaces/retornos/retorno-lexador'; /** * O avaliador sintático (_Parser_) é responsável por transformar os símbolos do Lexador em estruturas de alto nível. * Essas estruturas de alto nível são as partes que executam lógica de programação de fato. * * Esta implementação tenta seguir à risca o que está atualmente em https://github.com/eguatech/egua/blob/master/src/parser.js. */ export declare class AvaliadorSintaticoEguaClassico implements AvaliadorSintaticoInterface<SimboloInterface, Declaracao> { simbolos: SimboloInterface[]; erros: ErroAvaliadorSintatico[]; hashArquivo: number; atual: number; blocos: number; superclasseAtual: string | undefined; constructor(simbolos?: SimboloInterface[]); declaracaoDeConstantes(): Const[]; declaracaoDeVariaveis(): Var[]; declaracaoLeia(): Leia; sincronizar(): void; erro(simbolo: SimboloInterface, mensagemDeErro: string): ErroAvaliadorSintatico; consumir(tipo: string, mensagemDeErro: string): SimboloInterface; verificarTipoSimboloAtual(tipo: string): boolean; verificarTipoProximoSimbolo(tipo: string): boolean; simboloAtual(): SimboloInterface; simboloAnterior(): SimboloInterface; simboloNaPosicao(posicao: number): SimboloInterface; estaNoFinal(): boolean; avancarEDevolverAnterior(): SimboloInterface; verificarSeSimboloAtualEIgualA(...argumentos: string[]): boolean; primario(): Construto; finalizarChamada(entidadeChamada: Construto): Chamada; chamar(): Construto; unario(): Construto; /** * A exponenciacão de Égua [é implementada com resolução à esquerda](https://github.com/eguadev/egua/blob/main/src/parser.js#L230). * Por isso esse dialeto resolve `direito` chamando `unario()`, e não `exponenciacao()` como os demais. * @returns {Binario} A expressão binária na forma do construto `Binario`. */ exponenciacao(): Construto; multiplicar(): Construto; adicaoOuSubtracao: any; adicionar(): Construto; bitShift(): Construto; bitE(): Construto; bitOu(): Construto; comparar(): Construto; comparacaoIgualdade(): Construto; em(): Construto; e(): Construto; ou(): Construto; atribuir(): Construto; expressao(): Construto; declaracaoEscreva(): Escreva; declaracaoExpressao(): Expressao; blocoEscopo(): Declaracao[]; declaracaoSe(): Se; declaracaoEnquanto(): Enquanto; declaracaoPara(): Para; declaracaoSustar(): Sustar; declaracaoContinua(): Continua; declaracaoRetorna(): Retorna; declaracaoEscolha(): Escolha; construtoImportar(): ImportarComoConstruto; declaracaoTente(): Tente; declaracaoFazer(): Fazer; resolverDeclaracao(): any; declaracaoDeVariavel(): Var; funcao(kind: string): FuncaoDeclaracao; corpoDaFuncao(kind: string): FuncaoConstruto; declaracaoDeClasse(): Classe; resolverDeclaracaoForaDeBloco(): Declaracao; analisar(retornoLexador: RetornoLexador<SimboloInterface>, hashArquivo: number): Promise<RetornoAvaliadorSintatico<Declaracao>>; } //# sourceMappingURL=avaliador-sintatico-egua-classico.d.ts.map