@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. Por exemplo, 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.

    Hierarchy (View Summary)

    Implements

    Index

    Constructors

    Properties

    Methods

    Constructors

    Properties

    atual: number
    blocos: number
    hashArquivo: number
    performance: boolean
    pilhaDecoradores: Decorador[]
    pilhaEscopos: PilhaEscopos
    primitivasConhecidas: {
        [nomeModuloOuClasse: string]: {
            [nomePrimitiva: string]: InformacaoVariavelOuConstante;
        };
    }
    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.