@designliquido/delegua 0.8.1 → 0.9.0-0

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.
Files changed (169) hide show
  1. package/bin/package.json +1 -1
  2. package/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +2 -1
  3. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js +3 -0
  4. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  5. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +2 -1
  6. package/fontes/avaliador-sintatico/avaliador-sintatico.js +14 -0
  7. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  8. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts +2 -1
  9. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +3 -0
  10. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  11. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.d.ts +2 -1
  12. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +12 -0
  13. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
  14. package/fontes/bibliotecas/biblioteca-global.js +351 -177
  15. package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
  16. package/fontes/construtos/acesso-indice-variavel.d.ts +1 -1
  17. package/fontes/construtos/acesso-indice-variavel.js +41 -1
  18. package/fontes/construtos/acesso-indice-variavel.js.map +1 -1
  19. package/fontes/construtos/acesso-metodo.d.ts +1 -1
  20. package/fontes/construtos/acesso-metodo.js +41 -1
  21. package/fontes/construtos/acesso-metodo.js.map +1 -1
  22. package/fontes/construtos/agrupamento.d.ts +1 -1
  23. package/fontes/construtos/agrupamento.js +41 -1
  24. package/fontes/construtos/agrupamento.js.map +1 -1
  25. package/fontes/construtos/atribuicao-sobrescrita.d.ts +2 -1
  26. package/fontes/construtos/atribuicao-sobrescrita.js +41 -1
  27. package/fontes/construtos/atribuicao-sobrescrita.js.map +1 -1
  28. package/fontes/construtos/atribuir.d.ts +1 -1
  29. package/fontes/construtos/atribuir.js +41 -1
  30. package/fontes/construtos/atribuir.js.map +1 -1
  31. package/fontes/construtos/binario.d.ts +1 -1
  32. package/fontes/construtos/binario.js +41 -1
  33. package/fontes/construtos/binario.js.map +1 -1
  34. package/fontes/construtos/chamada.d.ts +1 -1
  35. package/fontes/construtos/chamada.js +41 -1
  36. package/fontes/construtos/chamada.js.map +1 -1
  37. package/fontes/construtos/conjunto.d.ts +2 -1
  38. package/fontes/construtos/conjunto.js +41 -1
  39. package/fontes/construtos/conjunto.js.map +1 -1
  40. package/fontes/construtos/construto.d.ts +1 -1
  41. package/fontes/construtos/dicionario.d.ts +2 -1
  42. package/fontes/construtos/dicionario.js +41 -1
  43. package/fontes/construtos/dicionario.js.map +1 -1
  44. package/fontes/construtos/funcao.d.ts +1 -1
  45. package/fontes/construtos/funcao.js +41 -1
  46. package/fontes/construtos/funcao.js.map +1 -1
  47. package/fontes/construtos/isto.d.ts +2 -1
  48. package/fontes/construtos/isto.js +41 -1
  49. package/fontes/construtos/isto.js.map +1 -1
  50. package/fontes/construtos/literal.d.ts +1 -1
  51. package/fontes/construtos/literal.js +41 -1
  52. package/fontes/construtos/literal.js.map +1 -1
  53. package/fontes/construtos/logico.d.ts +2 -1
  54. package/fontes/construtos/logico.js +41 -1
  55. package/fontes/construtos/logico.js.map +1 -1
  56. package/fontes/construtos/super.d.ts +2 -2
  57. package/fontes/construtos/super.js +41 -1
  58. package/fontes/construtos/super.js.map +1 -1
  59. package/fontes/construtos/unario.d.ts +2 -1
  60. package/fontes/construtos/unario.js +41 -1
  61. package/fontes/construtos/unario.js.map +1 -1
  62. package/fontes/construtos/variavel.d.ts +1 -1
  63. package/fontes/construtos/variavel.js +41 -1
  64. package/fontes/construtos/variavel.js.map +1 -1
  65. package/fontes/construtos/vetor.d.ts +2 -1
  66. package/fontes/construtos/vetor.js +41 -1
  67. package/fontes/construtos/vetor.js.map +1 -1
  68. package/fontes/declaracoes/bloco.d.ts +1 -1
  69. package/fontes/declaracoes/bloco.js +41 -1
  70. package/fontes/declaracoes/bloco.js.map +1 -1
  71. package/fontes/declaracoes/classe.d.ts +2 -2
  72. package/fontes/declaracoes/classe.js +41 -1
  73. package/fontes/declaracoes/classe.js.map +1 -1
  74. package/fontes/declaracoes/continua.d.ts +2 -2
  75. package/fontes/declaracoes/continua.js +41 -1
  76. package/fontes/declaracoes/continua.js.map +1 -1
  77. package/fontes/declaracoes/declaracao.d.ts +2 -1
  78. package/fontes/declaracoes/declaracao.js +41 -1
  79. package/fontes/declaracoes/declaracao.js.map +1 -1
  80. package/fontes/declaracoes/enquanto.d.ts +2 -1
  81. package/fontes/declaracoes/enquanto.js +41 -1
  82. package/fontes/declaracoes/enquanto.js.map +1 -1
  83. package/fontes/declaracoes/escolha.d.ts +2 -1
  84. package/fontes/declaracoes/escolha.js +41 -1
  85. package/fontes/declaracoes/escolha.js.map +1 -1
  86. package/fontes/declaracoes/escreva.d.ts +1 -1
  87. package/fontes/declaracoes/escreva.js +41 -1
  88. package/fontes/declaracoes/escreva.js.map +1 -1
  89. package/fontes/declaracoes/expressao.d.ts +1 -1
  90. package/fontes/declaracoes/expressao.js +41 -1
  91. package/fontes/declaracoes/expressao.js.map +1 -1
  92. package/fontes/declaracoes/fazer.d.ts +2 -1
  93. package/fontes/declaracoes/fazer.js +41 -1
  94. package/fontes/declaracoes/fazer.js.map +1 -1
  95. package/fontes/declaracoes/funcao.d.ts +1 -1
  96. package/fontes/declaracoes/funcao.js +41 -1
  97. package/fontes/declaracoes/funcao.js.map +1 -1
  98. package/fontes/declaracoes/importar.d.ts +2 -1
  99. package/fontes/declaracoes/importar.js +41 -1
  100. package/fontes/declaracoes/importar.js.map +1 -1
  101. package/fontes/declaracoes/leia.d.ts +1 -1
  102. package/fontes/declaracoes/leia.js +44 -1
  103. package/fontes/declaracoes/leia.js.map +1 -1
  104. package/fontes/declaracoes/para.d.ts +2 -1
  105. package/fontes/declaracoes/para.js +41 -1
  106. package/fontes/declaracoes/para.js.map +1 -1
  107. package/fontes/declaracoes/retorna.d.ts +1 -1
  108. package/fontes/declaracoes/retorna.js +41 -1
  109. package/fontes/declaracoes/retorna.js.map +1 -1
  110. package/fontes/declaracoes/se.d.ts +1 -1
  111. package/fontes/declaracoes/se.js +41 -1
  112. package/fontes/declaracoes/se.js.map +1 -1
  113. package/fontes/declaracoes/sustar.d.ts +1 -1
  114. package/fontes/declaracoes/sustar.js +41 -1
  115. package/fontes/declaracoes/sustar.js.map +1 -1
  116. package/fontes/declaracoes/tente.d.ts +1 -1
  117. package/fontes/declaracoes/tente.js +41 -1
  118. package/fontes/declaracoes/tente.js.map +1 -1
  119. package/fontes/declaracoes/var.d.ts +1 -1
  120. package/fontes/declaracoes/var.js +41 -1
  121. package/fontes/declaracoes/var.js.map +1 -1
  122. package/fontes/delegua.d.ts +3 -3
  123. package/fontes/delegua.js +136 -61
  124. package/fontes/delegua.js.map +1 -1
  125. package/fontes/depuracao/servidor-depuracao.d.ts +4 -4
  126. package/fontes/depuracao/servidor-depuracao.js +121 -47
  127. package/fontes/depuracao/servidor-depuracao.js.map +1 -1
  128. package/fontes/estruturas/funcao-padrao.d.ts +1 -1
  129. package/fontes/estruturas/funcao-padrao.js +46 -2
  130. package/fontes/estruturas/funcao-padrao.js.map +1 -1
  131. package/fontes/estruturas/funcao.d.ts +1 -1
  132. package/fontes/estruturas/funcao.js +74 -28
  133. package/fontes/estruturas/funcao.js.map +1 -1
  134. package/fontes/interfaces/avaliador-sintatico-interface.d.ts +5 -4
  135. package/fontes/interfaces/delegua-interface.d.ts +2 -2
  136. package/fontes/interfaces/interpretador-com-depuracao-interface.d.ts +3 -4
  137. package/fontes/interfaces/interpretador-interface.d.ts +6 -5
  138. package/fontes/interpretador/dialetos/egua-classico.d.ts +31 -30
  139. package/fontes/interpretador/dialetos/egua-classico.js +906 -470
  140. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  141. package/fontes/interpretador/interpretador-com-depuracao.d.ts +6 -6
  142. package/fontes/interpretador/interpretador-com-depuracao.js +280 -155
  143. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
  144. package/fontes/interpretador/interpretador.d.ts +43 -34
  145. package/fontes/interpretador/interpretador.js +1045 -535
  146. package/fontes/interpretador/interpretador.js.map +1 -1
  147. package/fontes/lexador/lexador.js +2 -2
  148. package/fontes/lexador/lexador.js.map +1 -1
  149. package/fontes/lexador/palavras-reservadas.d.ts +22 -21
  150. package/fontes/lexador/palavras-reservadas.js +22 -21
  151. package/fontes/lexador/palavras-reservadas.js.map +1 -1
  152. package/fontes/resolvedor/dialetos/egua-classico.d.ts +25 -3
  153. package/fontes/resolvedor/dialetos/egua-classico.js +40 -0
  154. package/fontes/resolvedor/dialetos/egua-classico.js.map +1 -1
  155. package/fontes/tipos-de-simbolos/delegua.d.ts +2 -1
  156. package/fontes/tipos-de-simbolos/delegua.js +2 -1
  157. package/fontes/tipos-de-simbolos/delegua.js.map +1 -1
  158. package/fontes/tipos-de-simbolos/eguap.d.ts +1 -0
  159. package/fontes/tipos-de-simbolos/eguap.js +1 -0
  160. package/fontes/tipos-de-simbolos/eguap.js.map +1 -1
  161. package/package.json +1 -1
  162. package/testes/biblioteca-global.test.js +424 -181
  163. package/testes/biblioteca-global.test.js.map +1 -1
  164. package/testes/egua-classico/interpretador.test.js +379 -163
  165. package/testes/egua-classico/interpretador.test.js.map +1 -1
  166. package/testes/eguap/interpretador.test.js +388 -172
  167. package/testes/eguap/interpretador.test.js.map +1 -1
  168. package/testes/interpretador.test.js +876 -399
  169. package/testes/interpretador.test.js.map +1 -1
@@ -1,3 +1,5 @@
1
+ /// <reference types="node" />
2
+ import * as readline from 'readline';
1
3
  import { EspacoVariaveis } from '../espaco-variaveis';
2
4
  import { InterpretadorInterface, SimboloInterface, VariavelInterface } from '../interfaces';
3
5
  import { Bloco, Classe, Continua, Declaracao, Enquanto, Escolha, Escreva, Expressao, Fazer, Funcao, Importar, Leia, Para, Retorna, Se, Tente, Var } from '../declaracoes';
@@ -18,17 +20,19 @@ export declare class Interpretador implements InterpretadorInterface {
18
20
  erros: ErroInterpretador[];
19
21
  performance: boolean;
20
22
  funcaoDeRetorno: Function;
23
+ interfaceDeEntrada: readline.Interface;
21
24
  resultadoInterpretador: Array<string>;
22
25
  declaracoes: Declaracao[];
23
26
  pilhaEscoposExecucao: PilhaEscoposExecucaoInterface;
24
27
  regexInterpolacao: RegExp;
25
- constructor(importador: ImportadorInterface, diretorioBase: string, performance: boolean, funcaoDeRetorno: Function);
28
+ constructor(importador: ImportadorInterface, diretorioBase: string, performance?: boolean, funcaoDeRetorno?: Function);
26
29
  /**
27
30
  * Execução da leitura de valores da entrada configurada no
28
31
  * início da aplicação.
29
- * @param expressao
32
+ * @param expressao Expressão do tipo Leia
33
+ * @returns Promise com o resultado da leitura.
30
34
  */
31
- visitarExpressaoLeia(expressao: Leia): void;
35
+ visitarExpressaoLeia(expressao: Leia): Promise<any>;
32
36
  /**
33
37
  * Retira a interpolação de um texto.
34
38
  * @param {texto} texto O texto
@@ -43,11 +47,11 @@ export declare class Interpretador implements InterpretadorInterface {
43
47
  */
44
48
  buscarVariaveisInterpolacao(textoOriginal: string): any[];
45
49
  visitarExpressaoLiteral(expressao: Literal): any;
46
- avaliar(expressao: Construto): any;
47
- visitarExpressaoAgrupamento(expressao: any): any;
50
+ avaliar(expressao: Construto): Promise<any>;
51
+ visitarExpressaoAgrupamento(expressao: any): Promise<any>;
48
52
  eVerdadeiro(objeto: any): boolean;
49
- verificarOperandoNumero(operador: any, operando: any): void;
50
- visitarExpressaoUnaria(expressao: any): any;
53
+ verificarOperandoNumero(operador: SimboloInterface, operando: any): void;
54
+ visitarExpressaoUnaria(expressao: any): Promise<any>;
51
55
  eIgual(esquerda: VariavelInterface | any, direita: VariavelInterface | any): boolean;
52
56
  /**
53
57
  * Verifica se operandos são números, que podem ser tanto variáveis puras do JavaScript
@@ -58,43 +62,43 @@ export declare class Interpretador implements InterpretadorInterface {
58
62
  * @returns Se ambos os operandos são números ou não.
59
63
  */
60
64
  verificarOperandosNumeros(operador: any, direita: VariavelInterface | any, esquerda: VariavelInterface | any): void;
61
- visitarExpressaoBinaria(expressao: any): any;
65
+ visitarExpressaoBinaria(expressao: any): Promise<any>;
62
66
  /**
63
67
  * Executa uma chamada de função, método ou classe.
64
68
  * @param expressao A expressão chamada.
65
69
  * @returns O resultado da chamada.
66
70
  */
67
- visitarExpressaoDeChamada(expressao: any): any;
71
+ visitarExpressaoDeChamada(expressao: any): Promise<any>;
68
72
  /**
69
73
  * Execução de uma expressão de atribuição.
70
74
  * @param expressao A expressão.
71
75
  * @returns O valor atribuído.
72
76
  */
73
- visitarExpressaoDeAtribuicao(expressao: Atribuir): any;
77
+ visitarExpressaoDeAtribuicao(expressao: Atribuir): Promise<any>;
74
78
  procurarVariavel(simbolo: SimboloInterface): any;
75
79
  visitarExpressaoDeVariavel(expressao: Variavel): any;
76
- visitarDeclaracaoDeExpressao(declaracao: Expressao): any;
77
- visitarExpressaoLogica(expressao: any): any;
80
+ visitarDeclaracaoDeExpressao(declaracao: Expressao): Promise<any>;
81
+ visitarExpressaoLogica(expressao: any): Promise<any>;
78
82
  /**
79
83
  * Executa uma expressão Se, que tem uma condição, pode ter um bloco
80
84
  * Senão, e múltiplos blocos Senão-se.
81
85
  * @param declaracao A declaração Se.
82
86
  * @returns O resultado da avaliação do bloco cuja condição é verdadeira.
83
87
  */
84
- visitarExpressaoSe(declaracao: Se): any;
85
- visitarExpressaoPara(declaracao: Para): any;
86
- visitarExpressaoFazer(declaracao: Fazer): any;
87
- visitarExpressaoEscolha(declaracao: Escolha): any;
88
- visitarExpressaoTente(declaracao: Tente): any;
89
- visitarExpressaoEnquanto(declaracao: Enquanto): any;
90
- visitarExpressaoImportar(declaracao: Importar): any;
88
+ visitarExpressaoSe(declaracao: Se): Promise<any>;
89
+ visitarExpressaoPara(declaracao: Para): Promise<any>;
90
+ visitarExpressaoFazer(declaracao: Fazer): Promise<any>;
91
+ visitarExpressaoEscolha(declaracao: Escolha): Promise<any>;
92
+ visitarExpressaoTente(declaracao: Tente): Promise<any>;
93
+ visitarExpressaoEnquanto(declaracao: Enquanto): Promise<any>;
94
+ visitarExpressaoImportar(declaracao: Importar): Promise<any>;
91
95
  /**
92
96
  * Execução de uma escrita na saída configurada, que pode ser `console` (padrão) ou
93
97
  * alguma função para escrever numa página Web.
94
98
  * @param declaracao A declaração.
95
99
  * @returns Sempre nulo, por convenção de visita.
96
100
  */
97
- visitarExpressaoEscreva(declaracao: Escreva): any;
101
+ visitarExpressaoEscreva(declaracao: Escreva): Promise<any>;
98
102
  /**
99
103
  * Empilha declarações na pilha de escopos de execução, cria um novo ambiente e
100
104
  * executa as declarações empilhadas.
@@ -104,37 +108,37 @@ export declare class Interpretador implements InterpretadorInterface {
104
108
  * @param declaracoes Um vetor de declaracoes a ser executado.
105
109
  * @param ambiente O ambiente de execução quando houver, como parâmetros, argumentos, etc.
106
110
  */
107
- executarBloco(declaracoes: Declaracao[], ambiente?: EspacoVariaveis): any;
108
- visitarExpressaoBloco(declaracao: Bloco): any;
111
+ executarBloco(declaracoes: Declaracao[], ambiente?: EspacoVariaveis): Promise<any>;
112
+ visitarExpressaoBloco(declaracao: Bloco): Promise<any>;
109
113
  /**
110
114
  * Executa expressão de definição de variável.
111
115
  * @param declaracao A declaração Var
112
116
  * @returns Sempre retorna nulo.
113
117
  */
114
- visitarExpressaoVar(declaracao: Var): any;
118
+ visitarExpressaoVar(declaracao: Var): Promise<any>;
115
119
  visitarExpressaoContinua(declaracao?: Continua): ContinuarQuebra;
116
120
  visitarExpressaoSustar(declaracao?: any): SustarQuebra;
117
- visitarExpressaoRetornar(declaracao: Retorna): RetornoQuebra;
121
+ visitarExpressaoRetornar(declaracao: Retorna): Promise<RetornoQuebra>;
118
122
  visitarExpressaoDeleguaFuncao(expressao: any): DeleguaFuncao;
119
- visitarExpressaoAtribuicaoSobrescrita(expressao: any): void;
120
- visitarExpressaoAcessoIndiceVariavel(expressao: AcessoIndiceVariavel | any): any;
121
- visitarExpressaoDefinir(expressao: any): any;
123
+ visitarExpressaoAtribuicaoSobrescrita(expressao: any): Promise<any>;
124
+ visitarExpressaoAcessoIndiceVariavel(expressao: AcessoIndiceVariavel | any): Promise<any>;
125
+ visitarExpressaoDefinir(expressao: any): Promise<any>;
122
126
  visitarExpressaoFuncao(declaracao: Funcao): void;
123
127
  /**
124
128
  * Executa uma declaração de classe.
125
129
  * @param declaracao A declaração de classe.
126
130
  * @returns Sempre retorna nulo, por ser requerido pelo contrato de visita.
127
131
  */
128
- visitarExpressaoClasse(declaracao: Classe): any;
132
+ visitarExpressaoClasse(declaracao: Classe): Promise<any>;
129
133
  /**
130
134
  * Executa um acesso a método, normalmente de um objeto de classe.
131
135
  * @param expressao A expressão de acesso.
132
136
  * @returns O resultado da execução.
133
137
  */
134
- visitarExpressaoAcessoMetodo(expressao: any): any;
138
+ visitarExpressaoAcessoMetodo(expressao: any): Promise<any>;
135
139
  visitarExpressaoIsto(expressao: any): any;
136
- visitarExpressaoDicionario(expressao: any): {};
137
- visitarExpressaoVetor(expressao: any): any[];
140
+ visitarExpressaoDicionario(expressao: any): Promise<any>;
141
+ visitarExpressaoVetor(expressao: any): Promise<any>;
138
142
  visitarExpressaoSuper(expressao: Super): any;
139
143
  paraTexto(objeto: any): any;
140
144
  /**
@@ -143,7 +147,7 @@ export declare class Interpretador implements InterpretadorInterface {
143
147
  * @param mostrarResultado Se resultado deve ser mostrado ou não. Normalmente usado
144
148
  * pelo modo LAIR.
145
149
  */
146
- executar(declaracao: Declaracao, mostrarResultado?: boolean): any;
150
+ executar(declaracao: Declaracao, mostrarResultado?: boolean): Promise<any>;
147
151
  /**
148
152
  * Executa o último escopo empilhado no topo na pilha de escopos do interpretador.
149
153
  * Esse método pega exceções, mas apenas as devolve.
@@ -154,7 +158,7 @@ export declare class Interpretador implements InterpretadorInterface {
154
158
  * @param manterAmbiente Se verdadeiro, ambiente do topo da pilha de escopo é copiado para o ambiente imediatamente abaixo.
155
159
  * @returns O resultado da execução do escopo, se houver.
156
160
  */
157
- executarUltimoEscopo(manterAmbiente?: boolean): any;
161
+ executarUltimoEscopo(manterAmbiente?: boolean): Promise<any>;
158
162
  /**
159
163
  * Interpretação sem depurador, com medição de performance.
160
164
  * Método que efetivamente inicia o processo de interpretação.
@@ -163,5 +167,10 @@ export declare class Interpretador implements InterpretadorInterface {
163
167
  * pelo modo REPL (LEIA).
164
168
  * @returns Um objeto com o resultado da interpretação.
165
169
  */
166
- interpretar(declaracoes: Declaracao[], manterAmbiente?: boolean): RetornoInterpretador;
170
+ interpretar(declaracoes: Declaracao[], manterAmbiente?: boolean): Promise<RetornoInterpretador>;
171
+ /**
172
+ * Procedimento de finalização de execução, normalmente solicitado pelo
173
+ * núcleo da linguagem.
174
+ */
175
+ finalizacao(): void;
167
176
  }