UNPKG

@designliquido/delegua

Version:

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

63 lines 3.31 kB
import { ArgumentoReferenciaFuncao, Atribuir, Chamada, Construto, FuncaoConstruto, ReferenciaFuncao, TipoDe, Variavel } from '../construtos'; import { Const, Declaracao, Enquanto, Escolha, Escreva, Expressao, Falhar, FuncaoDeclaracao, Retorna, Var } from '../declaracoes'; import { ParametroInterface, SimboloInterface } from '../interfaces'; import { DiagnosticoAnalisadorSemantico } from '../interfaces/erros'; import { RetornoAnalisadorSemantico } from '../interfaces/retornos/retorno-analisador-semantico'; import { RetornoQuebra } from '../quebras'; import { AnalisadorSemanticoBase } from './analisador-semantico-base'; import { PilhaVariaveis } from './pilha-variaveis'; interface VariavelHipoteticaInterface { tipo: string; subtipo?: 'texto' | 'número' | 'inteiro' | 'longo' | 'lógico'; imutavel: boolean; valor?: any; } interface FuncaoHipoteticaInterface { valor: FuncaoConstruto; } export declare class AnalisadorSemantico extends AnalisadorSemanticoBase { pilhaVariaveis: PilhaVariaveis; variaveis: { [nomeVariavel: string]: VariavelHipoteticaInterface; }; funcoes: { [nomeFuncao: string]: FuncaoHipoteticaInterface; }; atual: number; diagnosticos: DiagnosticoAnalisadorSemantico[]; constructor(); erro(simbolo: SimboloInterface, mensagem: string): void; aviso(simbolo: SimboloInterface, mensagem: string): void; verificarTipoAtribuido(declaracao: Var | Const): void; visitarExpressaoTipoDe(expressao: TipoDe): Promise<any>; private verificarTipoDe; visitarExpressaoFalhar(expressao: Falhar): Promise<any>; private verificarFalhar; comparacaoArgumentosContraParametrosFuncao(simboloFuncao: SimboloInterface, parametros: ParametroInterface[], argumentos: Construto[]): void; visitarChamadaPorArgumentoReferenciaFuncao(argumentoReferenciaFuncao: ArgumentoReferenciaFuncao, argumentos: Construto[]): void; visitarChamadaPorReferenciaFuncao(referenciaFuncao: ReferenciaFuncao, argumentos: Construto[]): void; visitarChamadaPorVariavel(entidadeChamadaVariavel: Variavel, argumentos: Construto[]): Promise<void>; visitarExpressaoDeChamada(expressao: Chamada): Promise<void>; visitarExpressaoDeAtribuicao(expressao: Atribuir): Promise<void>; visitarDeclaracaoDeExpressao(declaracao: Expressao): Promise<any>; visitarDeclaracaoEscolha(declaracao: Escolha): Promise<void>; visitarDeclaracaoEnquanto(declaracao: Enquanto): Promise<void>; private verificarCondicao; private verificarVariavelBinaria; private verificarVariavel; private verificarBinario; private verificarOperadorBinario; private verificarLadoBinario; private verificarLogico; private verificarChamada; private verificarLadoLogico; visitarDeclaracaoEscreva(declaracao: Escreva): Promise<void>; visitarDeclaracaoConst(declaracao: Const): Promise<any>; virificarTipoDeclaracaoConst(declaracao: Const): Promise<any>; visitarDeclaracaoVar(declaracao: Var): Promise<any>; visitarExpressaoRetornar(declaracao: Retorna): Promise<RetornoQuebra>; visitarDeclaracaoDefinicaoFuncao(declaracao: FuncaoDeclaracao): Promise<void>; analisar(declaracoes: Declaracao[]): RetornoAnalisadorSemantico; } export {}; //# sourceMappingURL=analisador-semantico.d.ts.map