@designliquido/delegua
Version:
Linguagem de programação simples e moderna usando português estruturado.
80 lines • 4.08 kB
TypeScript
import { AvaliadorSintaticoInterface, SimboloInterface } from '../../interfaces';
import { ConstrutoInterface } from '../../interfaces/construtos/construto-interface';
import { Chamada, FuncaoConstruto, Leia, ImportarComoConstruto } from '../../construtos';
import { ErroAvaliadorSintatico } from '../erro-avaliador-sintatico';
import { Classe, Continua, Enquanto, Escolha, Escreva, Expressao, Fazer, FuncaoDeclaracao, Para, Sustar, Retorna, Se, Tente, Var, Const, Declaracao } from '../../declaracoes';
import { RetornoAvaliadorSintaticoInterface } from '../../interfaces/retornos/retorno-avaliador-sintatico-interface';
import { RetornoLexadorInterface } from '../../interfaces/retornos/retorno-lexador-interface';
/**
* 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.
*
* Esta implementação tenta seguir à risca o que está atualmente em https://github.com/eguatech/egua/blob/master/src/parser.js.
*/
export declare class AvaliadorSintaticoEguaClassico implements AvaliadorSintaticoInterface<SimboloInterface, Declaracao> {
simbolos: SimboloInterface[];
erros: ErroAvaliadorSintatico[];
hashArquivo: number;
atual: number;
blocos: number;
superclasseAtual: string | undefined;
constructor(simbolos?: SimboloInterface[]);
declaracaoDeConstantes(): Const[];
declaracaoDeVariaveis(): Var[];
declaracaoLeia(): Leia;
sincronizar(): void;
erro(simbolo: SimboloInterface, mensagemDeErro: string, codigoDiagnostico?: string, simboloRelacionado?: SimboloInterface): ErroAvaliadorSintatico;
consumir(tipo: string, mensagemDeErro: string): SimboloInterface;
verificarTipoSimboloAtual(tipo: string): boolean;
verificarTipoProximoSimbolo(tipo: string): boolean;
simboloAtual(): SimboloInterface;
simboloAnterior(): SimboloInterface;
simboloNaPosicao(posicao: number): SimboloInterface;
estaNoFinal(): boolean;
avancarEDevolverAnterior(): SimboloInterface;
verificarSeSimboloAtualEIgualA(...argumentos: string[]): boolean;
primario(): ConstrutoInterface;
finalizarChamada(entidadeChamada: ConstrutoInterface): Chamada;
chamar(): ConstrutoInterface;
unario(): ConstrutoInterface;
/**
* A exponenciacão de Égua [é implementada com resolução à esquerda](https://github.com/eguadev/egua/blob/main/src/parser.js#L230).
* Por isso esse dialeto resolve `direito` chamando `unario()`, e não `exponenciacao()` como os demais.
* @returns {Binario} A expressão binária na forma do construto `Binario`.
*/
exponenciacao(): ConstrutoInterface;
multiplicar(): ConstrutoInterface;
adicaoOuSubtracao: any;
adicionar(): ConstrutoInterface;
bitShift(): ConstrutoInterface;
bitE(): ConstrutoInterface;
bitOu(): ConstrutoInterface;
comparar(): ConstrutoInterface;
comparacaoIgualdade(): ConstrutoInterface;
em(): ConstrutoInterface;
e(): ConstrutoInterface;
ou(): ConstrutoInterface;
atribuir(): ConstrutoInterface;
expressao(): ConstrutoInterface;
declaracaoEscreva(): Escreva;
declaracaoExpressao(): Expressao;
blocoEscopo(): Declaracao[];
declaracaoSe(): Se;
declaracaoEnquanto(): Enquanto;
declaracaoPara(): Para;
declaracaoSustar(): Sustar;
declaracaoContinua(): Continua;
declaracaoRetorna(): Retorna;
declaracaoEscolha(): Escolha;
construtoImportar(): ImportarComoConstruto;
declaracaoTente(): Tente;
declaracaoFazer(): Fazer;
resolverDeclaracao(): any;
declaracaoDeVariavel(): Var;
funcao(kind: string): FuncaoDeclaracao;
corpoDaFuncao(kind: string): FuncaoConstruto;
declaracaoDeClasse(): Classe;
resolverDeclaracaoForaDeBloco(): Declaracao;
analisar(retornoLexador: RetornoLexadorInterface<SimboloInterface>, hashArquivo: number): Promise<RetornoAvaliadorSintaticoInterface<Declaracao>>;
}
//# sourceMappingURL=avaliador-sintatico-egua-classico.d.ts.map