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.

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 full)

Implements

Constructors

Properties

Methods

avaliacaoDeclaracaoVarOuConst avaliar avaliarArgumentosEscreva chamarMetodoPrimitiva eIgual eVerdadeiro executar executarBloco executarUltimoEscopo interpretar paraTexto procurarVariavel resolverArgumentosChamada resolverInterpolacoes resolverParametrosChamada retirarInterpolacao textoParaRegex verificarOperandoNumero verificarOperandosNumeros visitarDeclaracaoAleatorio visitarDeclaracaoCabecalhoPrograma visitarDeclaracaoClasse visitarDeclaracaoComentario visitarDeclaracaoConst visitarDeclaracaoConstMultiplo visitarDeclaracaoDeExpressao visitarDeclaracaoDefinicaoFuncao visitarDeclaracaoEnquanto visitarDeclaracaoEscolha visitarDeclaracaoEscreva visitarDeclaracaoEscrevaMesmaLinha visitarDeclaracaoFazer visitarDeclaracaoImportar visitarDeclaracaoInicioAlgoritmo visitarDeclaracaoPara visitarDeclaracaoParaCada visitarDeclaracaoSe visitarDeclaracaoTendoComo visitarDeclaracaoTente visitarDeclaracaoVar visitarDeclaracaoVarMultiplo visitarExpressaoAcessoElementoMatriz visitarExpressaoAcessoIndiceVariavel visitarExpressaoAcessoMetodo visitarExpressaoAgrupamento visitarExpressaoAtribuicaoPorIndice visitarExpressaoAtribuicaoPorIndicesMatriz visitarExpressaoBinaria visitarExpressaoBloco visitarExpressaoContinua visitarExpressaoDeAtribuicao visitarExpressaoDeChamada visitarExpressaoDefinirValor visitarExpressaoDeleguaFuncao visitarExpressaoDeVariavel visitarExpressaoDicionario visitarExpressaoExpressaoRegular visitarExpressaoFalhar visitarExpressaoFimPara visitarExpressaoFormatacaoEscrita visitarExpressaoIsto visitarExpressaoLeia visitarExpressaoLeiaMultiplo visitarExpressaoLiteral visitarExpressaoLogica visitarExpressaoQualTipo visitarExpressaoRetornar visitarExpressaoSuper visitarExpressaoSustar visitarExpressaoTipoDe visitarExpressaoTupla visitarExpressaoUnaria visitarExpressaoVetor

Constructors

Properties

declaracoes: Declaracao[]
diretorioBase: string
emDeclaracaoTente: boolean = false
erros: ErroInterpretador[]
expandirPropriedadesDeObjetosEmEspacoVariaveis: boolean
funcaoDeRetorno: Function = null
funcaoDeRetornoMesmaLinha: Function = null
interfaceDeEntrada: any = null
interfaceEntradaSaida: any = null
microAvaliadorSintatico: MicroAvaliadorSintaticoBase = ...
microLexador: MicroLexador = ...
performance: boolean
pilhaEscoposExecucao: PilhaEscoposExecucaoInterface
regexInterpolacao: RegExp = ...
requerDeclaracaoPropriedades: boolean
resultadoInterpretador: string[] = []

Methods

  • 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.

    • entidadeChamada: 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.

  • 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: EspacoVariaveis

      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.

  • Retira a interpolação de um texto.

    Parameters

    • texto: string

      O texto

    • variaveis: any[]

      A lista de variaveis interpoladas

    Returns string

    O texto com o valor das variaveis.

  • 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<string>

      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.