UNPKG

@designliquido/delegua

Version:

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

107 lines 7.8 kB
import { AcessoElementoMatriz, AcessoIndiceVariavel, AcessoIntervaloVariavel, AcessoMetodo, AcessoMetodoOuPropriedade, AcessoPropriedade, Agrupamento, ArgumentoReferenciaFuncao, AtribuicaoPorIndice, AtribuicaoPorIndicesMatriz, Atribuir, Binario, Chamada, ComentarioComoConstruto, Constante, DefinirValor, Dicionario, ExpressaoRegular, FimPara, FormatacaoEscrita, FuncaoConstruto, Isto, Leia, Literal, Logico, Morsa, ReferenciaFuncao, Separador, Super, TipoDe, Tupla, TuplaN, Unario, Variavel, Vetor } from '../construtos'; import { Bloco, CabecalhoPrograma, Classe, Comentario, Const, ConstMultiplo, Continua, Declaracao, Enquanto, Escolha, Escreva, EscrevaMesmaLinha, Expressao, Falhar, Fazer, FuncaoDeclaracao, InicioAlgoritmo, Para, ParaCada, Retorna, Se, Sustar, TendoComo, Tente, TextoDocumentacao, Var, VarMultiplo } from '../declaracoes'; import { CaminhoEscolha, TradutorInterface, VisitanteComumInterface } from '../interfaces'; import { ArestaFluxograma, SubgrafoClasse, SubgrafoFuncao, VerticeFluxograma } from './mermaid'; /** * [MermaidJs](https://mermaid.js.org/) é uma especificação que nos permite * criar fluxogramas através de uma notação por texto. * * Este tradutor converte estruturas da avaliação sintática em um fluxograma * compatível com o MermaidJs. * * Diferentemente de outros tradutores, este não trabalha diretamente com `string`s. * Construtos sim devolvem `string`s, mas declarações devolvem um vetor de * `VerticeFluxograma`. * @see VerticeFluxograma */ export declare class TradutorMermaidJs implements TradutorInterface<Declaracao>, VisitanteComumInterface { anteriores: ArestaFluxograma[]; vertices: VerticeFluxograma[]; ultimaDicaVertice: string | undefined; declaracoesFuncoes: { [nome: string]: SubgrafoFuncao; }; declaracoesClasses: { [nome: string]: SubgrafoClasse; }; indentacaoAtual: number; visitarDeclaracaoCabecalhoPrograma(declaracao: CabecalhoPrograma): Promise<any> | void; visitarDeclaracaoClasse(declaracao: Classe): Promise<VerticeFluxograma[]>; visitarDeclaracaoComentario(declaracao: Comentario): Promise<string>; visitarDeclaracaoConst(declaracao: Const): Promise<VerticeFluxograma[]>; visitarDeclaracaoConstMultiplo(declaracao: ConstMultiplo): Promise<any> | void; visitarDeclaracaoDeExpressao(declaracao: Expressao): Promise<VerticeFluxograma[]>; visitarDeclaracaoDefinicaoFuncao(declaracao: FuncaoDeclaracao): Promise<VerticeFluxograma[]>; visitarDeclaracaoEnquanto(declaracao: Enquanto): Promise<VerticeFluxograma[]>; visitarDeclaracaoEscolha(declaracao: Escolha): Promise<VerticeFluxograma[]>; visitarDeclaracaoEscreva(declaracao: Escreva): Promise<VerticeFluxograma[]>; visitarDeclaracaoEscrevaMesmaLinha(declaracao: EscrevaMesmaLinha): Promise<any> | void; visitarDeclaracaoFazer(declaracao: Fazer): Promise<VerticeFluxograma[]>; visitarDeclaracaoInicioAlgoritmo(declaracao: InicioAlgoritmo): Promise<any> | void; visitarDeclaracaoParaCada(declaracao: ParaCada): Promise<VerticeFluxograma[]>; visitarDeclaracaoPara(declaracao: Para): Promise<VerticeFluxograma[]>; visitarDeclaracaoSe(declaracao: Se): Promise<VerticeFluxograma[]>; visitarDeclaracaoTendoComo(declaracao: TendoComo): Promise<VerticeFluxograma[]>; visitarDeclaracaoTente(declaracao: Tente): Promise<VerticeFluxograma[]>; visitarDeclaracaoTextoDocumentacao(declaracao: TextoDocumentacao): Promise<any> | void; visitarDeclaracaoVar(declaracao: Var): Promise<VerticeFluxograma[]>; visitarDeclaracaoVarMultiplo(declaracao: VarMultiplo): Promise<any> | void; visitarExpressaoDeAtribuicao(expressao: Atribuir): Promise<string>; visitarExpressaoAcessoIndiceVariavel(expressao: AcessoIndiceVariavel): Promise<string>; visitarExpressaoAcessoIntervaloVariavel(expressao: AcessoIntervaloVariavel): Promise<any> | void; visitarExpressaoAcessoElementoMatriz(expressao: AcessoElementoMatriz): Promise<any> | void; visitarExpressaoAcessoMetodo(expressao: AcessoMetodo): Promise<string>; visitarExpressaoAcessoMetodoOuPropriedade(expressao: AcessoMetodoOuPropriedade): Promise<string>; visitarExpressaoAcessoPropriedade(expressao: AcessoPropriedade): Promise<string>; visitarExpressaoAgrupamento(expressao: Agrupamento): Promise<string>; visitarExpressaoArgumentoReferenciaFuncao(expressao: ArgumentoReferenciaFuncao): Promise<string>; visitarExpressaoAtribuicaoPorIndice(expressao: AtribuicaoPorIndice): Promise<string>; visitarExpressaoAtribuicaoPorIndicesMatriz(expressao: AtribuicaoPorIndicesMatriz): Promise<any> | void; visitarExpressaoBinaria(expressao: Binario): Promise<string>; visitarExpressaoBloco(bloco: Bloco): Promise<VerticeFluxograma[]>; visitarExpressaoComentario(expressao: ComentarioComoConstruto): Promise<string>; visitarExpressaoContinua(declaracao?: Continua): Promise<VerticeFluxograma[]>; visitarExpressaoDeChamada(expressao: Chamada): Promise<string>; visitarExpressaoDefinirValor(expressao: DefinirValor): Promise<string>; visitarExpressaoFuncaoConstruto(expressao: FuncaoConstruto): Promise<string>; visitarExpressaoDeVariavel(expressao: Variavel | Constante): Promise<string>; visitarExpressaoDicionario(expressao: Dicionario): Promise<string>; visitarExpressaoExpressaoRegular(expressao: ExpressaoRegular): Promise<string>; visitarExpressaoFalhar(expressao: Falhar): Promise<VerticeFluxograma[]>; visitarExpressaoFimPara(declaracao: FimPara): Promise<any> | void; visitarExpressaoFormatacaoEscrita(declaracao: FormatacaoEscrita): Promise<string>; visitarExpressaoIsto(expressao: Isto): Promise<string>; visitarExpressaoLeia(expressao: Leia): Promise<string>; visitarExpressaoLiteral(expressao: Literal): Promise<string>; visitarExpressaoLogica(expressao: Logico): Promise<string>; visitarExpressaoReferenciaFuncao(expressao: ReferenciaFuncao): Promise<string>; visitarExpressaoRetornar(expressao: Retorna): Promise<VerticeFluxograma[]>; visitarExpressaoSeparador(expressao: Separador): Promise<string>; visitarExpressaoSuper(expressao: Super): Promise<string>; visitarExpressaoSustar(declaracao?: Sustar): Promise<VerticeFluxograma[]>; visitarExpressaoTupla(expressao: Tupla): Promise<string>; visitarExpressaoTuplaN(expressao: TuplaN): Promise<string>; visitarExpressaoTipoDe(expressao: TipoDe): Promise<any> | void; visitarExpressaoUnaria(expressao: Unario): Promise<string>; visitarExpressaoVetor(expressao: Vetor): Promise<string>; visitarExpressaoMorsa(expressao: Morsa): Promise<any>; /** * Traduz uma declaração de Expressao que contém uma chamada de função, * criando os vértices necessários para conectar ao subgrafo da função. */ traduzirChamadaFuncao(declaracaoExpressao: Expressao, chamada: Chamada): Promise<VerticeFluxograma[]>; protected logicaComumConexaoArestas(aresta: ArestaFluxograma): VerticeFluxograma[]; protected logicaComumCaminhoEscolha(declaracaoEscolha: Escolha, caminhoEscolha: CaminhoEscolha, linha: number, textoIdentificadorOuLiteral: string, caminhoPadrao: boolean): Promise<{ caminho: ArestaFluxograma; declaracoesCaminho: VerticeFluxograma[]; }>; protected logicaComumTraducaoVarEConst(declaracaoVarOuConst: Var | Const, textoInicial: string): Promise<string>; /** * Ponto de entrada para a tradução de declarações em um fluxograma * no formato MermaidJs. * @param {Declaracao[]} declaracoes As declarações a serem traduzidas. * @returns {string} Texto no formato MermaidJs representando o fluxograma. */ traduzir(declaracoes: Declaracao[]): Promise<string>; } //# sourceMappingURL=tradutor-mermaidjs.d.ts.map