@designliquido/delegua
Version:
Linguagem de programação simples e moderna usando português estruturado.
71 lines • 5.51 kB
TypeScript
import { Atribuir, AcessoIndiceVariavel, AcessoElementoMatriz, AcessoMetodoOuPropriedade, Agrupamento, AtribuicaoPorIndice, AtribuicaoPorIndicesMatriz, Binario, Chamada, DefinirValor, FuncaoConstruto, Dicionario, ExpressaoRegular, FimPara, FormatacaoEscrita, Isto, Literal, Logico, Super, Tupla, TipoDe, Unario, Vetor, Comentario, AcessoMetodo, AcessoPropriedade } from '../construtos';
import { Declaracao, TendoComo, InicioAlgoritmo, Aleatorio, CabecalhoPrograma, Classe, Const, ConstMultiplo, Expressao, FuncaoDeclaracao, Enquanto, Escolha, Escreva, Fazer, Importar, Para, ParaCada, Se, Tente, Var, VarMultiplo, Bloco, Continua, EscrevaMesmaLinha, Falhar, Leia, Retorna, Sustar } from '../declaracoes';
import { DiagnosticoAnalisadorSemantico, DiagnosticoSeveridade, SimboloInterface } from '../interfaces';
import { AnalisadorSemanticoInterface } from '../interfaces/analisador-semantico-interface';
import { RetornoAnalisadorSemantico } from '../interfaces/retornos/retorno-analisador-semantico';
import { ContinuarQuebra, RetornoQuebra, SustarQuebra } from '../quebras';
/**
* Essa classe só existe para eliminar redundância entre todos os analisadores
* sintáticos. Por padrão, quando um método não é implementado, ao invés de dar erro,
* simplesmente passa por ele (`return Promise.resolve()`).
*/
export declare abstract class AnalisadorSemanticoBase implements AnalisadorSemanticoInterface {
diagnosticos: DiagnosticoAnalisadorSemantico[];
abstract analisar(declaracoes: Declaracao[]): RetornoAnalisadorSemantico;
adicionarDiagnostico(simbolo: SimboloInterface, mensagem: string, severidade?: DiagnosticoSeveridade): void;
visitarExpressaoAcessoMetodo(expressao: AcessoMetodo): Promise<any> | void;
visitarExpressaoAcessoPropriedade(expressao: AcessoPropriedade): Promise<any> | void;
visitarDeclaracaoAleatorio(declaracao: Aleatorio): Promise<any>;
visitarDeclaracaoCabecalhoPrograma(declaracao: CabecalhoPrograma): Promise<any>;
visitarDeclaracaoClasse(declaracao: Classe): Promise<any>;
visitarDeclaracaoComentario(declaracao: Comentario): void | Promise<any>;
visitarDeclaracaoConst(declaracao: Const): Promise<any>;
visitarDeclaracaoConstMultiplo(declaracao: ConstMultiplo): Promise<any>;
visitarExpressaoDeAtribuicao(expressao: Atribuir): Promise<any>;
visitarDeclaracaoDeExpressao(declaracao: Expressao): Promise<any>;
visitarDeclaracaoDefinicaoFuncao(declaracao: FuncaoDeclaracao): void;
visitarDeclaracaoEnquanto(declaracao: Enquanto): Promise<any>;
visitarDeclaracaoEscolha(declaracao: Escolha): Promise<any>;
visitarDeclaracaoEscreva(declaracao: Escreva): Promise<any>;
visitarDeclaracaoFazer(declaracao: Fazer): Promise<any>;
visitarDeclaracaoImportar(declaracao: Importar): Promise<any>;
visitarDeclaracaoInicioAlgoritmo(declaracao: InicioAlgoritmo): Promise<any>;
visitarDeclaracaoPara(declaracao: Para): Promise<any>;
visitarDeclaracaoParaCada(declaracao: ParaCada): Promise<any>;
visitarDeclaracaoSe(declaracao: Se): Promise<any>;
visitarDeclaracaoTendoComo(declaracao: TendoComo): Promise<any>;
visitarDeclaracaoTente(declaracao: Tente): Promise<any>;
visitarDeclaracaoVar(declaracao: Var): Promise<any>;
visitarDeclaracaoVarMultiplo(declaracao: VarMultiplo): Promise<any>;
visitarExpressaoAcessoIndiceVariavel(expressao: AcessoIndiceVariavel): Promise<any>;
visitarExpressaoAcessoElementoMatriz(expressao: AcessoElementoMatriz): Promise<any>;
visitarExpressaoAcessoMetodoOuPropriedade(expressao: AcessoMetodoOuPropriedade): Promise<any>;
visitarExpressaoAgrupamento(expressao: Agrupamento): Promise<any>;
visitarExpressaoAtribuicaoPorIndice(expressao: AtribuicaoPorIndice): Promise<any>;
visitarExpressaoAtribuicaoPorIndicesMatriz(expressao: AtribuicaoPorIndicesMatriz): Promise<any>;
visitarExpressaoBinaria(expressao: Binario): Promise<any>;
visitarExpressaoBloco(declaracao: Bloco): Promise<any>;
visitarExpressaoContinua(declaracao?: Continua): ContinuarQuebra;
visitarExpressaoDeChamada(expressao: Chamada): Promise<any>;
visitarExpressaoDefinirValor(expressao: DefinirValor): Promise<any>;
visitarExpressaoDeleguaFuncao(expressao: FuncaoConstruto): Promise<any>;
visitarExpressaoDeVariavel(expressao: Var): Promise<any>;
visitarExpressaoDicionario(expressao: Dicionario): Promise<any>;
visitarExpressaoExpressaoRegular(expressao: ExpressaoRegular): Promise<RegExp>;
visitarDeclaracaoEscrevaMesmaLinha(declaracao: EscrevaMesmaLinha): Promise<any>;
visitarExpressaoFalhar(expressao: Falhar): Promise<any>;
visitarExpressaoFimPara(declaracao: FimPara): Promise<any>;
visitarExpressaoFormatacaoEscrita(declaracao: FormatacaoEscrita): Promise<any>;
visitarExpressaoIsto(expressao: Isto): Promise<any>;
visitarExpressaoLeia(expressao: Leia): Promise<any>;
visitarExpressaoLiteral(expressao: Literal): Promise<any>;
visitarExpressaoLogica(expressao: Logico): Promise<any>;
visitarExpressaoRetornar(declaracao: Retorna): Promise<RetornoQuebra>;
visitarExpressaoSuper(expressao: Super): Promise<any>;
visitarExpressaoSustar(declaracao?: Sustar): SustarQuebra;
visitarExpressaoTupla(expressao: Tupla): Promise<any>;
visitarExpressaoTipoDe(expressao: TipoDe): Promise<any>;
visitarExpressaoUnaria(expressao: Unario): Promise<any>;
visitarExpressaoVetor(expressao: Vetor): Promise<any>;
}
//# sourceMappingURL=analisador-semantico-base.d.ts.map