@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 analisarMembroMetodo analisarMembroOperador analisarMembroPropriedade atribuir avancarEDevolverAnterior bitE bitOu bitShift blocoEscopo chamar comparacaoIgualdade comparar compreenderMembros construtoAjuda construtoDicionario construtoImportar construtoTupla consumir corpoDaFuncao criarConstrutoComparacao declaracaoAjuda declaracaoAssercao declaracaoBloco declaracaoComentarioMultilinha declaracaoComentarioUmaLinha declaracaoContinua declaracaoDeClasse declaracaoDeConstantes declaracaoDeExtensao declaracaoDeInterface declaracaoDesestruturacaoConstante declaracaoDesestruturacaoVariavel declaracaoDeVariaveis declaracaoDeVariavel declaracaoEnquanto declaracaoEscolha declaracaoEscreva declaracaoExpressao declaracaoFalhar declaracaoFazer declaracaoImportar declaracaoPara declaracaoParaCada declaracaoParaCadaDicionario declaracaoParaCadaVetor declaracaoParaTradicional declaracaoRetorna declaracaoSe declaracaoSustar declaracaoTendoComo declaracaoTente e elvis em encontrarIndiceAposFechamentoDeBloco enquantoComoConstruto erro estaNoFinal exponenciacao expressao expressaoLeia fazerComoConstruto finalizarChamada funcao inicializarPilhaEscopos logicaComumComparacao logicaComumEnquanto logicaComumFazer logicaComumInferenciaTiposAcessoMetodoOuPropriedade logicaComumInferenciaTiposVariaveisEConstantes logicaComumPara logicaComumParaCadaVetor logicaComumParametros logicaParaCadaDicionario multiplicar obterChaveDicionario ou paraCadaComoConstruto paraCadaComoConstrutoDicionario paraCadaComoConstrutoVetor paraComoConstruto paraTradicionalComoConstruto primario resolverCadeiaChamadas resolverCompreensaoDeLista resolverDeclaracao resolverDeclaracaoForaDeBloco resolverDecoradores resolverElementoMontao resolverEntidadeChamada resolverEntidadeChamadaAcessoMetodoOuPropriedade resolverInformacaoElementoSintaticoDeDicionario resolverTipoAcessoIndiceVariavel resolverValorConstruto seTernario simboloAnterior sincronizar tupla unario validacaoComparacao validarArgumentosEntidadeChamada verificacaoOperacoesBinariasIlegais verificarDefinicaoTipoAtual verificarSeSimboloAtualEIgualA verificarTipoProximoSimbolo verificarTipoSimboloAtual

    Constructors

    Properties

    atual: number
    blocos: number
    emAjuda: boolean
    hashArquivo: number
    interfacesDeclaradas: { [nomeInterface: string]: InterfaceDeclaracao } = {}
    intuirTipoQualquerParaIdentificadores: boolean
    metodosClasseAtualEmAnalise: FuncaoDeclaracao[]
    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 } = {}
    tiposDefinidosPorBibliotecas: { [nomeTipo: string]: ClasseDeModulo } = {}

    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

    • Returns Promise<
          {
              condicao: any;
              corpo: Bloco;
              incrementar: any;
              inicializador: Expressao
              | Var
              | Var[]
              | Const[];
          },
      >