UNPKG

@designliquido/delegua

Version:

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

80 lines 4.08 kB
import { AvaliadorSintaticoInterface, SimboloInterface } from '../../interfaces'; import { ConstrutoInterface } from '../../interfaces/construtos/construto-interface'; import { Chamada, FuncaoConstruto, 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 { RetornoAvaliadorSintaticoInterface } from '../../interfaces/retornos/retorno-avaliador-sintatico-interface'; import { RetornoLexadorInterface } from '../../interfaces/retornos/retorno-lexador-interface'; /** * 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, codigoDiagnostico?: string, simboloRelacionado?: SimboloInterface): 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(): ConstrutoInterface; finalizarChamada(entidadeChamada: ConstrutoInterface): Chamada; chamar(): ConstrutoInterface; unario(): ConstrutoInterface; /** * 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(): ConstrutoInterface; multiplicar(): ConstrutoInterface; adicaoOuSubtracao: any; adicionar(): ConstrutoInterface; bitShift(): ConstrutoInterface; bitE(): ConstrutoInterface; bitOu(): ConstrutoInterface; comparar(): ConstrutoInterface; comparacaoIgualdade(): ConstrutoInterface; em(): ConstrutoInterface; e(): ConstrutoInterface; ou(): ConstrutoInterface; atribuir(): ConstrutoInterface; expressao(): ConstrutoInterface; 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: RetornoLexadorInterface<SimboloInterface>, hashArquivo: number): Promise<RetornoAvaliadorSintaticoInterface<Declaracao>>; } //# sourceMappingURL=avaliador-sintatico-egua-classico.d.ts.map