@designliquido/delegua
Version:
Linguagem de programação simples e moderna usando português estruturado.
93 lines • 3.57 kB
TypeScript
import { FuncaoConstruto, Leia } from '../../construtos';
import { ConstrutoInterface } from '../../interfaces/construtos/construto-interface';
import { Declaracao, Enquanto, Escolha, Escreva, Fazer, Para, Se } from '../../declaracoes';
import { RetornoLexadorInterface, RetornoAvaliadorSintaticoInterface } from '../../interfaces/retornos';
import { AvaliadorSintaticoBase } from '../avaliador-sintatico-base';
import { SimboloInterface } from '../../interfaces';
export declare class AvaliadorSintaticoPortugolIpt extends AvaliadorSintaticoBase {
private simboloAtualEh;
private fechamentoEnquantoAtual;
private consumirFechamentoEnquanto;
private fechamentoEscolheAtual;
private consumirFechamentoEscolhe;
private avaliarExpressaoNumericaConstante;
/**
* Consome quebras de linha opcionais.
*/
private consumirQuebrasLinha;
/**
* Coleta declarações até encontrar um token cujo tipo esteja em `tiposParada`.
* O token de parada NÃO é consumido.
*/
private resolverBloco;
primario(): Promise<ConstrutoInterface>;
/**
* Suporta chamadas de funções embutidas: SEN(x), COS(x), POTENCIA(b,e), etc.
*/
chamar(): Promise<ConstrutoInterface>;
/**
* Override de `unario()` para incluir operadores unários aritméticos.
* `NAO` é tratado em `e()` para ter precedência menor que comparações.
*/
protected unario(): Promise<ConstrutoInterface>;
/**
* Override de `e()` para suportar o operador lógico `NAO` com precedência
* menor que comparações: `nao x = 0` → `nao (x = 0)`.
*/
protected e(): Promise<ConstrutoInterface>;
/**
* Override de `ou()` para incluir o operador lógico `XOU`.
*/
protected ou(): Promise<ConstrutoInterface>;
atribuir(): Promise<ConstrutoInterface>;
/**
* `escrever expr [, expr ...]`
*/
declaracaoEscreva(): Promise<Escreva>;
/**
* `se cond entao ... [senao ...] fimse`
*/
declaracaoSe(): Promise<Se>;
/**
* `enquanto cond faz ... fimenquanto`
*/
declaracaoEnquanto(): Promise<Enquanto>;
/**
* `para v de ini ate fim [passo p]` + corpo + `proximo`
*/
declaracaoPara(): Promise<Para>;
/**
* `repete ... ate cond`
* Semântica: executa o corpo e repete enquanto a condição for FALSA (repeat-until).
* Mapeado para `Fazer` com a condição invertida via `nao`.
*/
private declaracaoRepete;
/**
* `faz ... enquanto cond`
* O `enquanto` de fechamento é distinguido no lexer (FAZENQUANTO) do `enquanto` de abertura.
*/
declaracaoFazer(): Promise<Fazer>;
/**
* `escolhe expr caso v[, v...]: instr ... [defeito: instr] fimescolhe`
*/
declaracaoEscolha(): Escolha;
private declaracaoEscolhaAsync;
/**
* `ler var [, var ...]`
*/
expressaoLeia(): Promise<Leia>;
/**
* Declara variáveis de um dado tipo, com suporte a arrays e valor inicial.
* Ex: `inteiro x`, `real y = 3.14`, `logico v[5]`
*/
private declaracaoVariaveis;
/**
* `constante tipo nome = valor`
*/
private declaracaoConstante;
resolverDeclaracaoForaDeBloco(): Promise<Declaracao | Declaracao[]>;
blocoEscopo(): Promise<Declaracao[]>;
corpoDaFuncao(_tipo: string): Promise<FuncaoConstruto>;
analisar(retornoLexador: RetornoLexadorInterface<SimboloInterface>, hashArquivo: number): Promise<RetornoAvaliadorSintaticoInterface<Declaracao>>;
}
//# sourceMappingURL=avaliador-sintatico-portugol-ipt.d.ts.map