UNPKG

@designliquido/delegua

Version:

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

110 lines 6.76 kB
import { AcessoMetodoOuPropriedade, AcessoPropriedade, ArgumentoReferenciaFuncao, Atribuir, Construto, ExpressaoRegular, FimPara, FormatacaoEscrita, Leia, ReferenciaFuncao, Super, TipoDe, Tupla, Variavel } from '../../../../construtos'; import { Aleatorio, Bloco, CabecalhoPrograma, Comentario, Const, ConstMultiplo, Declaracao, EscrevaMesmaLinha, Expressao, ParaCada, Se, TendoComo, Var, VarMultiplo } from '../../../../declaracoes'; import { InicioAlgoritmo } from '../../../../declaracoes/inicio-algoritmo'; import { EspacoMemoria } from '../../../espaco-memoria'; import { InterpretadorInterface, SimboloInterface } from '../../../../interfaces'; import { PilhaEscoposExecucaoInterface } from '../../../../interfaces/pilha-escopos-execucao-interface'; import { ResolvedorInterface } from '../../../../interfaces/resolvedor-interface'; import { RetornoInterpretador } from '../../../../interfaces/retornos'; import { ErroResolvedor } from './erro-resolvedor'; import { PilhaEscopos } from './pilha-escopos'; import { RetornoResolvedor } from './retorno-resolvedor'; /** * O Resolvedor (Resolver) é responsável por catalogar todos os identificadores complexos, como por exemplo: funções, classes, variáveis, * e delimitar os escopos onde esses identificadores existem. * * Exemplo: uma classe A declara dois métodos chamados M e N. Todas as variáveis declaradas dentro de M não podem ser vistas por N, e vice-versa. * No entanto, todas as variáveis declaradas dentro da classe A podem ser vistas tanto por M quanto por N. * * Não faz sentido ser implementado nos outros interpretadores pelos outros optarem por uma pilha de execução que * espera importar qualquer coisa a qualquer momento. */ export declare class ResolvedorEguaClassico implements ResolvedorInterface, InterpretadorInterface { erros: ErroResolvedor[]; escopos: PilhaEscopos; locais: Map<Construto, number>; funcaoAtual: any; classeAtual: any; cicloAtual: any; interfaceEntradaSaida: any; diretorioBase: any; funcaoDeRetorno: Function; pilhaEscoposExecucao: PilhaEscoposExecucaoInterface; constructor(); visitarExpressaoDeleguaFuncao(declaracao: any): void; visitarExpressaoArgumentoReferenciaFuncao(expressao: ArgumentoReferenciaFuncao): Promise<any> | void; visitarExpressaoReferenciaFuncao(expressao: ReferenciaFuncao): Promise<any> | void; visitarExpressaoAcessoPropriedade(expressao: AcessoPropriedade): Promise<any> | void; visitarExpressaoAcessoMetodo(expressao: any): void; visitarDeclaracaoComentario(declaracao: Comentario): Promise<any>; visitarDeclaracaoTendoComo(declaracao: TendoComo): Promise<any>; visitarDeclaracaoInicioAlgoritmo(declaracao: InicioAlgoritmo): Promise<any>; visitarDeclaracaoCabecalhoPrograma(declaracao: CabecalhoPrograma): Promise<any>; visitarExpressaoTupla(expressao: Tupla): Promise<any>; visitarExpressaoAcessoElementoMatriz(expressao: any): never; visitarExpressaoAtribuicaoPorIndicesMatriz(expressao: any): Promise<any>; visitarExpressaoExpressaoRegular(expressao: ExpressaoRegular): Promise<any>; visitarExpressaoTipoDe(expressao: TipoDe): Promise<any>; visitarExpressaoFalhar(expressao: any): Promise<any>; visitarDeclaracaoParaCada(declaracao: ParaCada): Promise<any>; visitarDeclaracaoConst(declaracao: Const): Promise<any>; visitarDeclaracaoConstMultiplo(declaracao: ConstMultiplo): Promise<any>; visitarExpressaoFimPara(declaracao: FimPara): never; visitarExpressaoFormatacaoEscrita(declaracao: FormatacaoEscrita): never; visitarDeclaracaoEscrevaMesmaLinha(declaracao: EscrevaMesmaLinha): never; avaliar(expressao: any): void; eVerdadeiro(objeto: any): boolean; verificarOperandoNumero(operador: SimboloInterface, operando: any): void; eIgual(esquerda: any, direita: any): boolean; verificarOperandosNumeros(operador: SimboloInterface, direita: any, esquerda: any): void; procurarVariavel(nome: SimboloInterface, expressao: any): void; visitarExpressaoLeia(expressao: Leia): Promise<any>; executarBloco(declaracoes: Declaracao[], ambiente?: EspacoMemoria): Promise<any>; paraTexto(objeto: any): void; executar(declaracao: Declaracao, mostrarResultado: boolean): void; interpretar(declaracoes: Declaracao[], manterAmbiente?: boolean): Promise<RetornoInterpretador>; finalizacao(): void; definir(simbolo: SimboloInterface): void; declarar(simbolo: SimboloInterface): void; inicioDoEscopo(): void; finalDoEscopo(): void; resolverLocal(expressao: Construto, simbolo: SimboloInterface): void; visitarExpressaoBloco(declaracao: Bloco): any; visitarExpressaoDeVariavel(expressao: Variavel): any; visitarDeclaracaoVar(declaracao: Var): any; visitarDeclaracaoVarMultiplo(declaracao: VarMultiplo): any; visitarExpressaoDeAtribuicao(expressao: Atribuir): any; resolverFuncao(funcao: any, funcType: any): void; visitarDeclaracaoDefinicaoFuncao(declaracao: any): any; visitarExpressaoFuncaoConstruto(declaracao: any): any; visitarDeclaracaoTente(declaracao: any): any; visitarDeclaracaoClasse(declaracao: any): any; visitarExpressaoSuper(expressao: Super): any; visitarExpressaoAcessoMetodoOuPropriedade(expressao: AcessoMetodoOuPropriedade): any; visitarDeclaracaoDeExpressao(declaracao: Expressao): any; visitarDeclaracaoSe(declaracao: Se): any; visitarDeclaracaoImportar(declaracao: any): Promise<void>; visitarDeclaracaoEscreva(declaracao: any): Promise<void>; visitarExpressaoRetornar(declaracao: any): any; visitarDeclaracaoEscolha(declaracao: any): Promise<void>; visitarDeclaracaoEnquanto(declaracao: any): any; visitarDeclaracaoPara(declaracao: any): any; visitarDeclaracaoFazer(declaracao: any): any; visitarExpressaoBinaria(expressao: any): any; visitarExpressaoDeChamada(expressao: any): any; visitarExpressaoAgrupamento(expressao: any): any; visitarExpressaoDicionario(expressao: any): any; visitarExpressaoVetor(expressao: any): any; visitarExpressaoAcessoIndiceVariavel(expressao: any): any; visitarExpressaoContinua(declaracao?: any): any; visitarExpressaoSustar(declaracao?: any): any; visitarExpressaoAtribuicaoPorIndice(expressao?: any): any; visitarExpressaoLiteral(expressao?: any): any; visitarExpressaoLogica(expressao?: any): any; visitarExpressaoUnaria(expressao?: any): any; visitarExpressaoDefinirValor(expressao?: any): any; visitarExpressaoIsto(expressao?: any): any; visitarDeclaracaoAleatorio(declaracao: Aleatorio): Promise<any>; resolver(declaracoes: Construto | Declaracao | Declaracao[]): Promise<RetornoResolvedor>; } //# sourceMappingURL=resolvedor.d.ts.map