@designliquido/delegua
    Preparing search index...

    Class InterpretadorBase

    O Interpretador visita todos os elementos complexos gerados pelo avaliador sintático (parser), e de fato executa a lógica de programação descrita no código. Este interpretador base é usado por Delégua e todos os seus dialetos, contendo somente os pontos em comum entre todas as linguagens.

    O Interpretador Base não contém dependências com o Node.js. É recomendado para uso em execuções que ocorrem no navegador de internet.

    Hierarchy (View Summary)

    Implements

    Index

    Constructors

    Properties

    Methods

    avaliacaoDeclaracaoVarOuConst avaliar avaliarArgumentosEscreva cederControle chamarMetodoPrimitiva eIgual encontrarMetodoExtensao eVerdadeiro executar executarBloco executarUltimoEscopo interpretar logicaContemOuEm paraTexto procurarVariavel resolverArgumentosChamada resolverInterpolacoes resolverNomeObjectoAcessado resolverValor resolverValorRecursivo retirarInterpolacao textoParaRegex verificarOperandoNumero verificarOperandosNumeros visitarDeclaracaoCabecalhoPrograma visitarDeclaracaoClasse visitarDeclaracaoComentario visitarDeclaracaoConst visitarDeclaracaoConstMultiplo visitarDeclaracaoDeExpressao visitarDeclaracaoDefinicaoFuncao visitarDeclaracaoEnquanto visitarDeclaracaoEscolha visitarDeclaracaoEscreva visitarDeclaracaoEscrevaMesmaLinha visitarDeclaracaoExtensao visitarDeclaracaoFazer visitarDeclaracaoImportar visitarDeclaracaoInicioAlgoritmo visitarDeclaracaoInterface visitarDeclaracaoPara visitarDeclaracaoParaCada visitarDeclaracaoSe visitarDeclaracaoTendoComo visitarDeclaracaoTente visitarDeclaracaoTextoDocumentacao visitarDeclaracaoVar visitarDeclaracaoVarMultiplo visitarExpressaoAcessoElementoMatriz visitarExpressaoAcessoIndiceVariavel visitarExpressaoAcessoIntervaloVariavel visitarExpressaoAcessoMetodo visitarExpressaoAcessoMetodoOuPropriedade visitarExpressaoAcessoPropriedade visitarExpressaoAgrupamento visitarExpressaoArgumentoReferenciaFuncao visitarExpressaoAtribuicaoPorIndice visitarExpressaoAtribuicaoPorIndicesMatriz visitarExpressaoBinaria visitarExpressaoBloco visitarExpressaoComentario visitarExpressaoContinua visitarExpressaoDeAtribuicao visitarExpressaoDeChamada visitarExpressaoDefinirValor visitarExpressaoDeVariavel visitarExpressaoDicionario visitarExpressaoExpressaoRegular visitarExpressaoFalhar visitarExpressaoFimPara visitarExpressaoFormatacaoEscrita visitarExpressaoFuncaoConstruto visitarExpressaoIsto visitarExpressaoLeia visitarExpressaoLiteral visitarExpressaoLogica visitarExpressaoReferenciaFuncao visitarExpressaoRetornar visitarExpressaoSeparador visitarExpressaoSuper visitarExpressaoSustar visitarExpressaoTipoDe visitarExpressaoTupla visitarExpressaoTuplaN visitarExpressaoUnaria visitarExpressaoVetor

    Constructors

    Properties

    classeAtualEmExecucao: any = null

    Descritor da classe cujo método está sendo executado no momento. Nulo se fora de método de classe.

    declaracoes: Declaracao[]
    diretorioBase: string
    emDeclaracaoTente: boolean = false
    expandirPropriedadesDeObjetosEmEspacoMemoria: boolean
    extensoesGlobais: Map<string, Map<string, DeleguaFuncao>> = ...
    extensoesModulo: Map<number, Map<string, Map<string, DeleguaFuncao>>> = ...
    funcaoDeRetorno: Function = null
    funcaoDeRetornoMesmaLinha: Function = null
    hashArquivoDeclaracaoAtual: number
    interfaceDeEntrada: any = null
    interfaceEntradaSaida: any = null
    lancarErroPorDivisaoPorZero: boolean = false
    linhaDeclaracaoAtual: number
    microAvaliadorSintatico: MicroAvaliadorSintaticoBase = ...
    microLexador: MicroLexador = ...
    performance: boolean
    pilhaEscoposExecucao: PilhaEscoposExecucaoInterface
    regexInterpolacao: RegExp = ...
    requerDeclaracaoPropriedades: boolean
    resultadoInterpretador: ResultadoParcialInterpretadorInterface[] = []

    Methods

    • Cede o controle ao loop de eventos do JavaScript. Usado em laços de repetição para evitar bloqueio do loop de eventos em iterações longas ou infinitas.

      Parameters

      • iteracoes: number

      Returns Promise<void>

    • Faz a chamada do método de uma primitiva (por exemplo, número, texto, etc.) com seus respectivos argumentos.

      Parameters

      • expressao: Chamada

        A expressão de chamada.

      • metodoPrimitivaChamado: MetodoPrimitiva

        O método da primitiva chamado.

      Returns Promise<any>

      O resultado da chamada do método da primitiva.

    • Lógica para verificação de valores iguais, para Delégua e alguns dialetos.

      Parameters

      • esquerda: any

        Uma variável.

      • direita: any

        Outra variável.

      Returns boolean

      Verdadeiro se são iguais. Falso em caso contrário.

    • Procura um método de extensão nos registros de módulo e global, percorrendo os tipos na ordem indicada (específico antes de base).

      Parameters

      • tiposParaVerificar: string[]
      • nomeMetodo: string
      • hashArquivo: number

      Returns DeleguaFuncao

    • Empilha declarações na pilha de escopos de execução, cria um novo ambiente e executa as declarações empilhadas. Se o retorno do último bloco foi uma exceção (normalmente um erro em tempo de execução), atira a exceção daqui. Isso é usado, por exemplo, em blocos tente ... pegue ... finalmente.

      Parameters

      • declaracoes: Declaracao[]

        Um vetor de declaracoes a ser executado.

      • Optionalambiente: EspacoMemoria

        O ambiente de execução quando houver, como parâmetros, argumentos, etc.

      Returns Promise<any>

    • Executa o último escopo empilhado no topo na pilha de escopos do interpretador. Esse método pega exceções, mas apenas as devolve.

      O tratamento das exceções é feito de acordo com o bloco chamador. Por exemplo, em tente ... pegue ... finalmente, a exceção é capturada e tratada. Em outros blocos, pode ser desejável ter o erro em tela.

      Parameters

      • manterAmbiente: boolean = false

        Se verdadeiro, ambiente do topo da pilha de escopo é copiado para o ambiente imediatamente abaixo.

      Returns Promise<any>

      O resultado da execução do escopo, se houver.

    • Resolve todas as interpolações em um texto.

      Parameters

      • textoOriginal: string

        O texto original com as variáveis interpoladas.

      • linha: number

      Returns Promise<any[]>

      Uma lista de variáveis interpoladas.

    • Usado para chamadas de métodos de primitiva. Sendo uma variável ou constante, a primitiva precisa atualizar a referência para o objeto que está sendo acessado.

      Parameters

      • objetoAcessado: Construto

        O objeto que está sendo acessado.

      Returns string

      O nome desse objeto, se ele for uma variável ou constante.

      resolverValor

    • Resolve valores recursivamente, incluindo valores aninhados em arrays e dicionários. Remove metadados que não devem ser serializados.

      Parameters

      • objeto: any

        O objeto a ser resolvido

      Returns any

      O valor resolvido sem metadados

    • Retira a interpolação de um texto.

      Parameters

      • texto: string

        O texto

      • interpolacoes: { expressaoInterpolacao: string; valor: any }[]

        A lista de interpolações a serem resolvidas.

      Returns string

      O texto com o valor das variáveis.

    • Verifica se operandos são números, que podem ser tanto variáveis puras do JavaScript (neste caso, number), ou podem ser variáveis de Delégua com inferência (VariavelInterface).

      Parameters

      • operador: SimboloInterface

        O símbolo do operador.

      • direita: any

        O operando direito.

      • esquerda: any

        O operando esquerdo.

      Returns void

      Se ambos os operandos são números ou não.