@designliquido/delegua
    Preparing search index...

    Class AvaliadorSintatico

    O avaliador sintático (Parser) é responsável por transformar os símbolos do Lexador em estruturas de alto nível. Essas estruturas de alto nível são as partes que executam lógica de programação de fato. Há dois grupos de estruturas de alto nível: Construtos e Declarações.

    Construtos não existem por si só: cada construto precisa estar dentro de uma declaração para ser aceito pela próxima etapa, como tradução, interpretação, análise semântica, etc.

    Este é o avaliador sintático de Delégua que, assim como todos os demais dialetos baseados neste núcleo, são uma derivação do avaliador sintático base. Aqui estão implementadas várias mecânicas a mais relacionadas a tipagem e registros de bibliotecas externas:

    • tiposDeFerramentasExternas é utilizada em Liquido para registro de tipos exclusivos de Liquido, como classes de requisição e resposta;
    • primitivasConhecidas é utilizada aqui para registro de métodos relacionados a tipos, e também para as bibliotecas externas de Delégua registrarem suas respectivas resoluções de tipos;
    • montaoTipos é uma implementação de montão muito semelhante ao montão do interpretador, para tipos complexos com N níveis de profundidade, como dicionários e objetos.

    Hierarchy (View Summary)

    Implements

    Index

    Constructors

    Properties

    Methods

    adicaoOuSubtracao analisar atribuir avancarEDevolverAnterior bitE bitOu bitShift blocoEscopo chamar comparacaoIgualdade comparar construtoDicionario construtoTupla consumir corpoDaFuncao declaracaoComentarioMultilinha declaracaoComentarioUmaLinha declaracaoContinua declaracaoDeClasse declaracaoDeConstantes declaracaoDesestruturacaoConstante declaracaoDesestruturacaoVariavel declaracaoDeVariaveis declaracaoDeVariavel declaracaoEnquanto declaracaoEscolha declaracaoEscreva declaracaoExpressao declaracaoFalhar declaracaoFazer declaracaoImportar declaracaoPara declaracaoParaCada declaracaoParaCadaDicionario declaracaoParaCadaVetor declaracaoParaTradicional declaracaoRetorna declaracaoSe declaracaoSustar declaracaoTendoComo declaracaoTente e em enquantoComoConstruto erro estaNoFinal exponenciacao expressao expressaoLeia fazerComoConstruto finalizarChamada funcao inicializarPilhaEscopos logicaComumEnquanto logicaComumFazer logicaComumInferenciaTiposVariaveisEConstantes logicaComumPara logicaComumParaCadaVetor logicaComumParametros logicaParaCadaDicionario multiplicar obterChaveDicionario ou paraCadaComoConstruto paraCadaComoConstrutoDicionario paraCadaComoConstrutoVetor paraComoConstruto paraTradicionalComoConstruto primario resolverCadeiaChamadas resolverDeclaracao resolverDeclaracaoForaDeBloco resolverDecorador resolverEntidadeChamada resolverEntidadeChamadaAcessoMetodoOuPropriedade resolverInformacaoElementoSintaticoDeDicionario resolverValorConstruto simboloAnterior sincronizar unario validarArgumentosEntidadeChamada verificarDefinicaoTipoAtual verificarSeSimboloAtualEIgualA verificarTipoProximoSimbolo verificarTipoSimboloAtual

    Constructors

    Properties

    atual: number
    blocos: number
    hashArquivo: number
    montaoTipos: MontaoTipos
    performance: boolean
    pilhaDecoradores: Decorador[]
    pilhaEscopos: PilhaEscopos
    primitivasConhecidas: {
        [nomeModuloOuClasse: string]: {
            [nomePrimitiva: string]: InformacaoElementoSintatico;
        };
    }
    simbolos: SimboloInterface<string>[]
    superclasseAtual: string
    tiposDeFerramentasExternas: {
        [nomeFerramenta: string]: { [nomeTipo: string]: string };
    }
    tiposDefinidosEmCodigo: { [nomeTipo: string]: Declaracao }

    Methods

    • Inicializa o primeiro nível da pilha de escopos, normalmente com ítens da biblioteca global. É separada da inicialização do avaliador sintático, pois é necessário manipular essa inicialização de outra forma em delegua-node.

      Returns void

    • Diversas verificações de resolução de entidade chamada, como resolver chamada da pilha ou usar referência, argumentos, etc.

      Parameters

      • entidadeChamada: Construto

        O construto da entidade chamada.

      • argumentos: Construto[]

        Os argumentos utilizados na chamada.

      • tipoPrimitiva: string = undefined

        Se for uma primitiva, o tipo dela. Senão, undefined.

      Returns Construto

      A entidade chamada resolvida, se as validações passarem.