@designliquido/delegua 0.58.0 → 0.59.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico.js +7 -2
- package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/bibliotecas/dialetos/pitugues/primitivas-texto.d.ts.map +1 -1
- package/bibliotecas/dialetos/pitugues/primitivas-texto.js +54 -0
- package/bibliotecas/dialetos/pitugues/primitivas-texto.js.map +1 -1
- package/bibliotecas/primitivas-texto.d.ts.map +1 -1
- package/bibliotecas/primitivas-texto.js +17 -0
- package/bibliotecas/primitivas-texto.js.map +1 -1
- package/bin/package.json +1 -1
- package/interfaces/interpretador-interface.d.ts +1 -1
- package/interfaces/interpretador-interface.d.ts.map +1 -1
- package/interfaces/primitiva-interface.d.ts +1 -0
- package/interfaces/primitiva-interface.d.ts.map +1 -1
- package/interfaces/retornos/index.d.ts +1 -0
- package/interfaces/retornos/index.d.ts.map +1 -1
- package/interfaces/retornos/index.js +1 -0
- package/interfaces/retornos/index.js.map +1 -1
- package/interpretador/dialetos/pitugues/comum.d.ts +16 -0
- package/interpretador/dialetos/pitugues/comum.d.ts.map +1 -0
- package/interpretador/dialetos/pitugues/comum.js +270 -0
- package/interpretador/dialetos/pitugues/comum.js.map +1 -0
- package/interpretador/dialetos/pitugues/index.d.ts +1 -0
- package/interpretador/dialetos/pitugues/index.d.ts.map +1 -1
- package/interpretador/dialetos/pitugues/index.js +1 -0
- package/interpretador/dialetos/pitugues/index.js.map +1 -1
- package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.d.ts +8 -0
- package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.d.ts.map +1 -0
- package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.js +51 -0
- package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.js.map +1 -0
- package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts +0 -9
- package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts.map +1 -1
- package/interpretador/dialetos/pitugues/interpretador-pitugues.js +37 -234
- package/interpretador/dialetos/pitugues/interpretador-pitugues.js.map +1 -1
- package/interpretador/interpretador-base.d.ts.map +1 -1
- package/interpretador/interpretador-base.js +4 -0
- package/interpretador/interpretador-base.js.map +1 -1
- package/lexador/micro-lexador-pitugues.d.ts +1 -0
- package/lexador/micro-lexador-pitugues.d.ts.map +1 -1
- package/lexador/micro-lexador-pitugues.js +5 -1
- package/lexador/micro-lexador-pitugues.js.map +1 -1
- package/package.json +1 -1
- package/umd/delegua.js +335 -304
- package/interpretador/interpretador-com-depuracao.d.ts +0 -182
- package/interpretador/interpretador-com-depuracao.d.ts.map +0 -1
- package/interpretador/interpretador-com-depuracao.js +0 -563
- package/interpretador/interpretador-com-depuracao.js.map +0 -1
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
import { EspacoMemoria } from './espaco-memoria';
|
|
2
|
-
import { Declaracao, Enquanto, Escreva, Para, Retorna } from '../declaracoes';
|
|
3
|
-
import { PontoParada } from '../depuracao';
|
|
4
|
-
import { ComandoDepurador, InterpretadorComDepuracaoInterface } from '../interfaces';
|
|
5
|
-
import { TipoEscopoExecucao } from '../interfaces/escopo-execucao';
|
|
6
|
-
import { RetornoQuebra } from '../quebras';
|
|
7
|
-
import { RetornoInterpretadorInterface } from '../interfaces/retornos/retorno-interpretador-interface';
|
|
8
|
-
import { Chamada, Construto } from '../construtos';
|
|
9
|
-
import { Interpretador } from './interpretador';
|
|
10
|
-
/**
|
|
11
|
-
* Implementação do Interpretador com suporte a depuração.
|
|
12
|
-
* Herda o Interpretador padrão de Delégua e implementa métodos a mais, que são
|
|
13
|
-
* usados pelo servidor de depuração.
|
|
14
|
-
* Alguns métodos do Interpretador original, como `executarBloco` e `interpretar`,
|
|
15
|
-
* são reimplementados aqui.
|
|
16
|
-
*
|
|
17
|
-
* A separação entre `Interpretador` e `InterpretadorComDepuracao` se faz
|
|
18
|
-
* necessária por uma série de motivos.
|
|
19
|
-
* O primeiro deles é o desempenho. A depuração torna o desempenho do
|
|
20
|
-
* Interpretador com depuração inferior ao Interpretador original pelas
|
|
21
|
-
* várias verificações de controle que precisam ser feitas para a
|
|
22
|
-
* funcionalidade do suporte a depuração, como verificar pontos de parada,
|
|
23
|
-
* estados da pilha de execução e variáveis.
|
|
24
|
-
* O segundo deles é manter o Interpretador original tão simples quanto possível.
|
|
25
|
-
* Uma implementação mais simples normalmente é mais robusta.
|
|
26
|
-
* O terceiro deles é o uso de memória. O Interpretador original não possui
|
|
27
|
-
* uma série de variáveis implementadas aqui, o que o torna mais econômico em
|
|
28
|
-
* recursos de máquina.
|
|
29
|
-
*/
|
|
30
|
-
export declare class InterpretadorComDepuracao extends Interpretador implements InterpretadorComDepuracaoInterface {
|
|
31
|
-
pontosParada: PontoParada[];
|
|
32
|
-
finalizacaoDaExecucao: Function;
|
|
33
|
-
pontoDeParadaAtivo: boolean;
|
|
34
|
-
avisoPontoParadaAtivado: Function;
|
|
35
|
-
escopoAtual: number;
|
|
36
|
-
comando?: ComandoDepurador;
|
|
37
|
-
executandoChamada: boolean;
|
|
38
|
-
proximoEscopo?: TipoEscopoExecucao;
|
|
39
|
-
idChamadaAtual?: string;
|
|
40
|
-
passos: number;
|
|
41
|
-
aoEncerrarEscopo: Function;
|
|
42
|
-
constructor(diretorioBase: string, funcaoDeRetorno: Function, funcaoDeRetornoMesmaLinha: Function);
|
|
43
|
-
/**
|
|
44
|
-
* Quando um construto ou declaração possui id, significa que o interpretador
|
|
45
|
-
* deve resolver a avaliação e guardar seu valor até o final do escopo.
|
|
46
|
-
* Isso serve para quando a linguagem está em modo de depuração, e o contexto
|
|
47
|
-
* da execução deixa de existir com um ponto de parada, por exemplo.
|
|
48
|
-
* @param expressao A expressão a ser avaliada.
|
|
49
|
-
* @returns O resultado da avaliação.
|
|
50
|
-
*/
|
|
51
|
-
avaliar(expressao: Construto | Declaracao): Promise<any>;
|
|
52
|
-
/**
|
|
53
|
-
* Resolve problema de literais que tenham vírgulas, e confundem a resolução de chamadas.
|
|
54
|
-
* @param valor O valor do argumento, que pode ser um literal com virgulas.
|
|
55
|
-
* @returns Uma string com vírgulas escapadas.
|
|
56
|
-
*/
|
|
57
|
-
private escaparVirgulas;
|
|
58
|
-
/**
|
|
59
|
-
* Gera um identificador para resolução de chamadas.
|
|
60
|
-
* Usado para não chamar funções repetidamente quando usando instruções
|
|
61
|
-
* de passo, como "próximo" ou "adentrar-escopo".
|
|
62
|
-
* @param expressao A expressão de chamada.
|
|
63
|
-
* @returns Uma `Promise` que resolve como `string`.
|
|
64
|
-
*/
|
|
65
|
-
private gerarIdResolucaoChamada;
|
|
66
|
-
visitarExpressaoDeChamada(expressao: Chamada): Promise<any>;
|
|
67
|
-
visitarDeclaracaoEnquanto(declaracao: Enquanto): Promise<any>;
|
|
68
|
-
/**
|
|
69
|
-
* Execução de uma escrita na saída configurada, que pode ser `console` (padrão) ou
|
|
70
|
-
* alguma função para escrever numa página Web.
|
|
71
|
-
* Se ponto de parada foi ativado durante a avaliação de argumentos, não escreve.
|
|
72
|
-
* @param declaracao A declaração.
|
|
73
|
-
* @returns Sempre nulo, por convenção de visita.
|
|
74
|
-
*/
|
|
75
|
-
visitarDeclaracaoEscreva(declaracao: Escreva): Promise<any>;
|
|
76
|
-
visitarDeclaracaoPara(declaracao: Para): Promise<any>;
|
|
77
|
-
/**
|
|
78
|
-
* Ao executar um retorno, manter o valor retornado no Interpretador para
|
|
79
|
-
* uso por linhas que foram executadas com o comando `próximo` do depurador.
|
|
80
|
-
* @param declaracao Uma declaracao Retorna
|
|
81
|
-
* @returns O resultado da execução da visita.
|
|
82
|
-
*/
|
|
83
|
-
visitarExpressaoRetornar(declaracao: Retorna): Promise<RetornoQuebra>;
|
|
84
|
-
/**
|
|
85
|
-
* Se bloco de execução já foi instanciado antes (por exemplo, quando há um ponto de parada e a
|
|
86
|
-
* execução do código é retomada pelo depurador), retoma a execução do bloco do ponto em que havia parado.
|
|
87
|
-
* Se bloco de execução ainda não foi instanciado, empilha declarações na pilha de escopos de execução,
|
|
88
|
-
* cria um novo ambiente e executa as declarações empilhadas.
|
|
89
|
-
* Se depurador comandou uma instrução 'adentrar-escopo', execução do bloco não ocorre, mas
|
|
90
|
-
* ponteiros de escopo e execução são atualizados.
|
|
91
|
-
* @param declaracoes Um vetor de declaracoes a ser executado.
|
|
92
|
-
* @param ambiente O ambiente de execução quando houver, como parâmetros, argumentos, etc.
|
|
93
|
-
*/
|
|
94
|
-
executarBloco(declaracoes: Declaracao[], ambiente?: EspacoMemoria): Promise<any>;
|
|
95
|
-
/**
|
|
96
|
-
* Para fins de depuração, verifica se há ponto de parada no mesmo pragma da declaração.
|
|
97
|
-
* @param declaracao A declaração a ser executada.
|
|
98
|
-
* @returns True quando execução deve parar. False caso contrário.
|
|
99
|
-
*/
|
|
100
|
-
private verificarPontoParada;
|
|
101
|
-
/**
|
|
102
|
-
* No interpretador com depuração, este método é dividido em dois outros métodos privados:
|
|
103
|
-
* - `this.executarUmPassoNoEscopo`, que executa apenas uma instrução e nada mais;
|
|
104
|
-
* - `this.executarUltimoEscopoComandoContinuar`, que é a execução trivial de um escopo inteiro,
|
|
105
|
-
* ou com todas as instruções, ou até encontrar um ponto de parada.
|
|
106
|
-
* @param manterAmbiente Se verdadeiro, junta elementos do último escopo com o escopo
|
|
107
|
-
* imediatamente abaixo.
|
|
108
|
-
* @param naoVerificarPrimeiraExecucao Booleano que pede ao Interpretador para não
|
|
109
|
-
* verificar o ponto de parada na primeira execução.
|
|
110
|
-
* Normalmente usado pelo Servidor de Depuração para continuar uma linha.
|
|
111
|
-
* @returns O retorno da execução.
|
|
112
|
-
*/
|
|
113
|
-
executarUltimoEscopo(manterAmbiente?: boolean, naoVerificarPrimeiraExecucao?: boolean): Promise<any>;
|
|
114
|
-
private descartarTodosEscoposFinalizados;
|
|
115
|
-
private descartarEscopoPorRetornoFuncao;
|
|
116
|
-
private executarUmPassoNoEscopo;
|
|
117
|
-
/**
|
|
118
|
-
* Continua a interpretação parcial do último ponto em que parou.
|
|
119
|
-
* Pode ser tanto o começo da execução inteira, ou pós comando do depurador
|
|
120
|
-
* quando há um ponto de parada.
|
|
121
|
-
* @param manterAmbiente Se verdadeiro, junta elementos do último escopo com o escopo
|
|
122
|
-
* imediatamente abaixo.
|
|
123
|
-
* @param naoVerificarPrimeiraExecucao Booleano que pede ao Interpretador para não
|
|
124
|
-
* verificar o ponto de parada na primeira execução.
|
|
125
|
-
* Normalmente usado pelo Servidor de Depuração para continuar uma linha.
|
|
126
|
-
* @returns Um objeto de retorno, com erros encontrados se houverem.
|
|
127
|
-
*/
|
|
128
|
-
private executarUltimoEscopoComandoContinuar;
|
|
129
|
-
/**
|
|
130
|
-
* Continua a interpretação, conforme comando do depurador.
|
|
131
|
-
* Quando um ponto de parada é ativado, a pilha de execução do TypeScript é perdida.
|
|
132
|
-
* Esse método cria uma nova pilha de execução do lado do JS, começando do último elemento executado do
|
|
133
|
-
* primeiro escopo, subindo até o último elemento executado do último escopo.
|
|
134
|
-
* Se entre escopos houver ponto de parada ativo, a execução é suspensa até o próximo comando
|
|
135
|
-
* do desenvolvedor.
|
|
136
|
-
* @see executarUltimoEscopo
|
|
137
|
-
*/
|
|
138
|
-
instrucaoContinuarInterpretacao(escopo?: number): Promise<any>;
|
|
139
|
-
/**
|
|
140
|
-
* Empilha um escopo se for possível.
|
|
141
|
-
* Se não for, apenas executa a instrução corrente.
|
|
142
|
-
*/
|
|
143
|
-
adentrarEscopo(): Promise<any>;
|
|
144
|
-
/**
|
|
145
|
-
* Interpreta apenas uma instrução a partir do ponto de parada ativo, conforme comando do depurador.
|
|
146
|
-
* Esse método cria uma nova pilha de execução do lado do JS, começando do último elemento executado do
|
|
147
|
-
* primeiro escopo, subindo até o último elemento executado do último escopo.
|
|
148
|
-
* @param escopo Indica o escopo a ser visitado. Usado para construir uma pilha de chamadas do lado JS.
|
|
149
|
-
*/
|
|
150
|
-
instrucaoPasso(escopo?: number): Promise<any>;
|
|
151
|
-
/**
|
|
152
|
-
* Interpreta restante do bloco de execução em que o ponto de parada está, conforme comando do depurador.
|
|
153
|
-
* Se houver outros pontos de parada no mesmo escopo à frente da instrução atual, todos são ignorados.
|
|
154
|
-
* @param escopo Indica o escopo a ser visitado. Usado para construir uma pilha de chamadas do lado JS.
|
|
155
|
-
*/
|
|
156
|
-
instrucaoProximoESair(): Promise<void>;
|
|
157
|
-
/**
|
|
158
|
-
* Prepara a pilha de escopos para uma situação de depuração.
|
|
159
|
-
* Não há execução de código neste caso.
|
|
160
|
-
* @param declaracoes Um vetor de declarações.
|
|
161
|
-
*/
|
|
162
|
-
prepararParaDepuracao(declaracoes: Declaracao[]): void;
|
|
163
|
-
private abrirNovoBlocoEscopo;
|
|
164
|
-
/**
|
|
165
|
-
* Interpretação utilizada pelo depurador para avaliar valores de variáveis.
|
|
166
|
-
* Diferentemente da interpretação tradicional, não possui indicadores
|
|
167
|
-
* de performance porque eles não fazem sentido aqui.
|
|
168
|
-
* @param declaracoes Um vetor de declarações.
|
|
169
|
-
* @returns Um objeto de retorno, com erros encontrados se houverem.
|
|
170
|
-
*/
|
|
171
|
-
interpretar(declaracoes: Declaracao[], manterAmbiente?: boolean): Promise<RetornoInterpretadorInterface>;
|
|
172
|
-
/**
|
|
173
|
-
* Obtém o valor de uma variável por nome.
|
|
174
|
-
* Em versões anteriores, o mecanismo de avaliação fazia toda a avaliação tradicional,
|
|
175
|
-
* passando por Lexador, Avaliador Sintático e Interpretador.
|
|
176
|
-
* Isso tem sua cota de problemas, sobretudo porque a avaliação insere e descarta escopos,
|
|
177
|
-
* entrando em condição de corrida com a interpretação com depuração.
|
|
178
|
-
* @param nome O nome da variável.
|
|
179
|
-
*/
|
|
180
|
-
obterVariavel(nome: string): any;
|
|
181
|
-
}
|
|
182
|
-
//# sourceMappingURL=interpretador-com-depuracao.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interpretador-com-depuracao.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-com-depuracao.ts"],"names":[],"mappings":"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"}
|