@designliquido/delegua
Version:
Linguagem de programação simples e moderna usando português estruturado.
79 lines • 3.73 kB
TypeScript
import { AvaliadorSintaticoInterface, SimboloInterface } from '../../interfaces';
import { Chamada, FuncaoConstruto, Construto, 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 { RetornoAvaliadorSintatico } from '../../interfaces/retornos/retorno-avaliador-sintatico';
import { RetornoLexador } from '../../interfaces/retornos/retorno-lexador';
/**
* 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): 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(): Construto;
finalizarChamada(entidadeChamada: Construto): Chamada;
chamar(): Construto;
unario(): Construto;
/**
* 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(): Construto;
multiplicar(): Construto;
adicaoOuSubtracao: any;
adicionar(): Construto;
bitShift(): Construto;
bitE(): Construto;
bitOu(): Construto;
comparar(): Construto;
comparacaoIgualdade(): Construto;
em(): Construto;
e(): Construto;
ou(): Construto;
atribuir(): Construto;
expressao(): Construto;
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: RetornoLexador<SimboloInterface>, hashArquivo: number): Promise<RetornoAvaliadorSintatico<Declaracao>>;
}
//# sourceMappingURL=avaliador-sintatico-egua-classico.d.ts.map