UNPKG

@designliquido/delegua

Version:

Linguagem de programação simples e moderna usando português estruturado.

53 lines 3.01 kB
import { Construto, FuncaoConstruto, Leia } from '../../construtos'; import { Bloco, Declaracao, Enquanto, Escolha, Escreva, EscrevaMesmaLinha, Fazer, FuncaoDeclaracao, Para, Retorna, Se, Var } from '../../declaracoes'; import { RetornoLexador, SimboloInterface, RetornoAvaliadorSintatico } from '../../interfaces'; import { AvaliadorSintaticoBase } from '../avaliador-sintatico-base'; import { PilhaEscopos } from '../pilha-escopos'; export declare class AvaliadorSintaticoCalango extends AvaliadorSintaticoBase { pilhaEscopos: PilhaEscopos; /** Flag ativa quando se está a parsear a condição de um `se`, `enquanto` ou `faca/enquanto`. * Permite que `=` seja tratado como igualdade (não atribuição) nesses contextos. */ private emContextoCondicao; constructor(); protected atribuir(): Promise<Construto>; protected blocoEscopo(): Promise<Declaracao[]>; protected chamar(): Promise<Construto>; protected declaracaoEnquanto(): Promise<Enquanto>; protected declaracaoEscolha(): Promise<Escolha>; protected declaracaoEscreva(): Promise<Escreva>; /** * Em Calango, este é o método `escreva()`. * @returns {EscrevaMesmaLinha} Uma declaracao de escrita na mesma linha. */ protected declaracaoEscrevaMesmaLinha(): Promise<EscrevaMesmaLinha>; private declaracaoVariaveis; protected declaracaoInteiros(): Var[]; protected declaracaoReais(): Var[]; protected declaracaoLogicos(): Var[]; protected declaracaoCaracteres(): Var[]; protected declaracaoTextos(): Var[]; protected declaracaoFazer(): Promise<Fazer>; protected declaracaoPara(): Promise<Para>; /** * Em Calango, `=` é usado tanto para atribuição (em comandos) quanto para igualdade (em condições). * Este override só trata `IGUAL_ATRIBUICAO` como igualdade quando `emContextoCondicao` estiver ativo, * evitando que `i = i + 1` dentro de blocos seja erroneamente interpretado como comparação. */ protected comparacaoIgualdade(): Promise<Construto>; protected resolverBloco(simbolosParada: string[]): Promise<Bloco>; protected declaracaoSe(): Promise<Se>; protected expressaoLeia(): Promise<Leia>; protected primario(): Promise<Construto>; resolverDeclaracaoForaDeBloco(): Promise<Declaracao | Declaracao[] | Construto | Construto[] | any>; protected corpoDaFuncao(_tipo: string): Promise<FuncaoConstruto>; /** Mapeia um tipo de token Calango para a string de tipo da Delégua. */ private mapearTipo; private analisarParametrosCalango; protected declaracaoFuncao(): Promise<FuncaoDeclaracao>; protected declaracaoProcedimento(): Promise<FuncaoDeclaracao>; protected declaracaoRetorna(): Promise<Retorna>; private validarSegmentoAlgoritmo; private validarSegmentoPrincipal; analisar(retornoLexador: RetornoLexador<SimboloInterface>, hashArquivo: number): Promise<RetornoAvaliadorSintatico<Declaracao>>; } //# sourceMappingURL=avaliador-sintatico-calango.d.ts.map