@designliquido/delegua-node 1.13.3 → 1.14.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.
- package/avaliador-sintatico/avaliador-sintatico-com-importacao.d.ts +6 -1
- package/avaliador-sintatico/avaliador-sintatico-com-importacao.d.ts.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico-com-importacao.js +39 -1
- package/avaliador-sintatico/avaliador-sintatico-com-importacao.js.map +1 -1
- package/avaliador-sintatico/micro-avaliador-ajuda.d.ts +38 -0
- package/avaliador-sintatico/micro-avaliador-ajuda.d.ts.map +1 -0
- package/avaliador-sintatico/micro-avaliador-ajuda.js +100 -0
- package/avaliador-sintatico/micro-avaliador-ajuda.js.map +1 -0
- package/bin/package.json +8 -7
- package/interpretador/comum.d.ts +19 -1
- package/interpretador/comum.d.ts.map +1 -1
- package/interpretador/comum.js +226 -1
- package/interpretador/comum.js.map +1 -1
- package/interpretador/conteudo-ajuda.d.ts +21 -0
- package/interpretador/conteudo-ajuda.d.ts.map +1 -0
- package/interpretador/conteudo-ajuda.js +845 -0
- package/interpretador/conteudo-ajuda.js.map +1 -0
- package/interpretador/interpretador-com-depuracao-importacao.d.ts.map +1 -1
- package/interpretador/interpretador-com-depuracao-importacao.js.map +1 -1
- package/interpretador/interpretador-com-importacao.d.ts +7 -1
- package/interpretador/interpretador-com-importacao.d.ts.map +1 -1
- package/interpretador/interpretador-com-importacao.js +11 -1
- package/interpretador/interpretador-com-importacao.js.map +1 -1
- package/interpretador/realcador-sintaxe-ajuda.d.ts +6 -0
- package/interpretador/realcador-sintaxe-ajuda.d.ts.map +1 -0
- package/interpretador/realcador-sintaxe-ajuda.js +210 -0
- package/interpretador/realcador-sintaxe-ajuda.js.map +1 -0
- package/maquinas-estados-lair/index.d.ts +1 -0
- package/maquinas-estados-lair/index.d.ts.map +1 -1
- package/maquinas-estados-lair/index.js +1 -0
- package/maquinas-estados-lair/index.js.map +1 -1
- package/maquinas-estados-lair/maquina-estados-ajuda.d.ts +43 -0
- package/maquinas-estados-lair/maquina-estados-ajuda.d.ts.map +1 -0
- package/maquinas-estados-lair/maquina-estados-ajuda.js +155 -0
- package/maquinas-estados-lair/maquina-estados-ajuda.js.map +1 -0
- package/maquinas-estados-lair/maquina-estados-lair-delegua.d.ts +10 -1
- package/maquinas-estados-lair/maquina-estados-lair-delegua.d.ts.map +1 -1
- package/maquinas-estados-lair/maquina-estados-lair-delegua.js +50 -1
- package/maquinas-estados-lair/maquina-estados-lair-delegua.js.map +1 -1
- package/mecanismo-importacao-bibliotecas/index.d.ts.map +1 -1
- package/mecanismo-importacao-bibliotecas/index.js +1 -0
- package/mecanismo-importacao-bibliotecas/index.js.map +1 -1
- package/nucleo-execucao.d.ts.map +1 -1
- package/nucleo-execucao.js +1 -1
- package/nucleo-execucao.js.map +1 -1
- package/package.json +8 -7
|
@@ -0,0 +1,845 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Conteúdo de ajuda para tópicos da linguagem Delégua.
|
|
4
|
+
* Baseado na documentação oficial: https://github.com/DesignLiquido/delegua/wiki
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.conteudoAjuda = void 0;
|
|
8
|
+
exports.normalizarParaBusca = normalizarParaBusca;
|
|
9
|
+
exports.buscarConteudoAjuda = buscarConteudoAjuda;
|
|
10
|
+
exports.listarTopicos = listarTopicos;
|
|
11
|
+
exports.conteudoAjuda = {
|
|
12
|
+
// ===== ENTRADA E SAÍDA =====
|
|
13
|
+
'escreva': `
|
|
14
|
+
# escreva(valores...)
|
|
15
|
+
|
|
16
|
+
Escreve valores na saída padrão (console).
|
|
17
|
+
|
|
18
|
+
**Sintaxe:**
|
|
19
|
+
escreva(valor1, valor2, ...)
|
|
20
|
+
|
|
21
|
+
**Parâmetros:**
|
|
22
|
+
- valores: Um ou mais valores de qualquer tipo a serem impressos
|
|
23
|
+
|
|
24
|
+
**Retorno:**
|
|
25
|
+
nulo
|
|
26
|
+
|
|
27
|
+
**Características:**
|
|
28
|
+
- Aceita múltiplos argumentos separados por vírgula
|
|
29
|
+
- Suporta interpolação de strings com \${variavel}
|
|
30
|
+
- Converte automaticamente valores para texto
|
|
31
|
+
|
|
32
|
+
**Exemplos:**
|
|
33
|
+
escreva(1)
|
|
34
|
+
var nome = 'Maria'
|
|
35
|
+
escreva(nome)
|
|
36
|
+
escreva('Números:', 1, 2, 3)
|
|
37
|
+
|
|
38
|
+
var comida = 'pizza'
|
|
39
|
+
escreva("Minha comida favorita é \${comida}")
|
|
40
|
+
`,
|
|
41
|
+
'leia': `
|
|
42
|
+
# leia([mensagem])
|
|
43
|
+
|
|
44
|
+
Lê entrada do usuário a partir da entrada padrão.
|
|
45
|
+
|
|
46
|
+
**Sintaxe:**
|
|
47
|
+
leia()
|
|
48
|
+
leia(mensagem)
|
|
49
|
+
|
|
50
|
+
**Parâmetros:**
|
|
51
|
+
- mensagem (opcional): Texto a ser exibido antes da leitura
|
|
52
|
+
|
|
53
|
+
**Retorno:**
|
|
54
|
+
texto - Sempre retorna uma string
|
|
55
|
+
|
|
56
|
+
**Importante:**
|
|
57
|
+
O retorno de leia() é SEMPRE do tipo texto. Para converter
|
|
58
|
+
para outro tipo, use as funções de conversão (numero, inteiro, etc.)
|
|
59
|
+
|
|
60
|
+
**Exemplos:**
|
|
61
|
+
var nome = leia()
|
|
62
|
+
escreva('Olá, ' + nome)
|
|
63
|
+
|
|
64
|
+
var idadeTexto = leia('Digite sua idade: ')
|
|
65
|
+
var idade = inteiro(idadeTexto)
|
|
66
|
+
`,
|
|
67
|
+
// ===== FUNÇÕES DE CONVERSÃO =====
|
|
68
|
+
'numero': `
|
|
69
|
+
# numero(valor)
|
|
70
|
+
|
|
71
|
+
Converte um valor para número (ponto flutuante).
|
|
72
|
+
|
|
73
|
+
**Sintaxe:**
|
|
74
|
+
numero(valor)
|
|
75
|
+
|
|
76
|
+
**Parâmetros:**
|
|
77
|
+
- valor: Valor a ser convertido (texto, inteiro, etc.)
|
|
78
|
+
|
|
79
|
+
**Retorno:**
|
|
80
|
+
número - Valor convertido para tipo numérico
|
|
81
|
+
|
|
82
|
+
**Sinônimos:**
|
|
83
|
+
número() - Mesma função com acento
|
|
84
|
+
|
|
85
|
+
**Exemplos:**
|
|
86
|
+
var texto = '3.14'
|
|
87
|
+
var num = numero(texto) // 3.14
|
|
88
|
+
|
|
89
|
+
var inteiro = 42
|
|
90
|
+
var float = numero(inteiro) // 42.0
|
|
91
|
+
`,
|
|
92
|
+
'número': `
|
|
93
|
+
# número(valor)
|
|
94
|
+
|
|
95
|
+
Converte um valor para número (ponto flutuante).
|
|
96
|
+
|
|
97
|
+
**Sintaxe:**
|
|
98
|
+
número(valor)
|
|
99
|
+
|
|
100
|
+
**Parâmetros:**
|
|
101
|
+
- valor: Valor a ser convertido (texto, inteiro, etc.)
|
|
102
|
+
|
|
103
|
+
**Retorno:**
|
|
104
|
+
número - Valor convertido para tipo numérico
|
|
105
|
+
|
|
106
|
+
**Sinônimos:**
|
|
107
|
+
numero() - Mesma função sem acento
|
|
108
|
+
|
|
109
|
+
**Exemplos:**
|
|
110
|
+
var texto = '3.14'
|
|
111
|
+
var num = número(texto) // 3.14
|
|
112
|
+
`,
|
|
113
|
+
'inteiro': `
|
|
114
|
+
# inteiro(valor)
|
|
115
|
+
|
|
116
|
+
Converte um valor para número inteiro.
|
|
117
|
+
|
|
118
|
+
**Sintaxe:**
|
|
119
|
+
inteiro(valor)
|
|
120
|
+
|
|
121
|
+
**Parâmetros:**
|
|
122
|
+
- valor: Valor a ser convertido
|
|
123
|
+
|
|
124
|
+
**Retorno:**
|
|
125
|
+
inteiro - Valor convertido, truncando casas decimais
|
|
126
|
+
|
|
127
|
+
**Exemplos:**
|
|
128
|
+
var texto = '42'
|
|
129
|
+
var num = inteiro(texto) // 42
|
|
130
|
+
|
|
131
|
+
var float = 3.7
|
|
132
|
+
var int = inteiro(float) // 3
|
|
133
|
+
`,
|
|
134
|
+
'real': `
|
|
135
|
+
# real(valor)
|
|
136
|
+
|
|
137
|
+
Converte um valor para número real (ponto flutuante).
|
|
138
|
+
|
|
139
|
+
**Sintaxe:**
|
|
140
|
+
real(valor)
|
|
141
|
+
|
|
142
|
+
**Parâmetros:**
|
|
143
|
+
- valor: Valor a ser convertido
|
|
144
|
+
|
|
145
|
+
**Retorno:**
|
|
146
|
+
real - Valor convertido para número real
|
|
147
|
+
|
|
148
|
+
**Exemplos:**
|
|
149
|
+
var texto = '2.5'
|
|
150
|
+
var num = real(texto) // 2.5
|
|
151
|
+
`,
|
|
152
|
+
'texto': `
|
|
153
|
+
# texto(valor)
|
|
154
|
+
|
|
155
|
+
Converte um valor para texto (string).
|
|
156
|
+
|
|
157
|
+
**Sintaxe:**
|
|
158
|
+
texto(valor)
|
|
159
|
+
|
|
160
|
+
**Parâmetros:**
|
|
161
|
+
- valor: Valor de qualquer tipo a ser convertido
|
|
162
|
+
|
|
163
|
+
**Retorno:**
|
|
164
|
+
texto - Representação textual do valor
|
|
165
|
+
|
|
166
|
+
**Exemplos:**
|
|
167
|
+
var num = 123
|
|
168
|
+
var str = texto(num) // '123'
|
|
169
|
+
|
|
170
|
+
var bool = verdadeiro
|
|
171
|
+
var str2 = texto(bool) // 'verdadeiro'
|
|
172
|
+
`,
|
|
173
|
+
// ===== FUNÇÕES DE ALEATORIEDADE =====
|
|
174
|
+
'aleatorio': `
|
|
175
|
+
# aleatorio()
|
|
176
|
+
|
|
177
|
+
Retorna um número aleatório entre 0 e 1.
|
|
178
|
+
|
|
179
|
+
**Sintaxe:**
|
|
180
|
+
aleatorio()
|
|
181
|
+
|
|
182
|
+
**Parâmetros:**
|
|
183
|
+
Nenhum
|
|
184
|
+
|
|
185
|
+
**Retorno:**
|
|
186
|
+
número - Valor aleatório entre 0.0 (inclusivo) e 1.0 (exclusivo)
|
|
187
|
+
|
|
188
|
+
**Exemplos:**
|
|
189
|
+
var valor = aleatorio()
|
|
190
|
+
escreva(valor) // Ex: 0.7234891
|
|
191
|
+
`,
|
|
192
|
+
'aleatório': `
|
|
193
|
+
# aleatório()
|
|
194
|
+
|
|
195
|
+
Retorna um número aleatório entre 0 e 1.
|
|
196
|
+
|
|
197
|
+
**Sintaxe:**
|
|
198
|
+
aleatório()
|
|
199
|
+
|
|
200
|
+
**Sinônimos:**
|
|
201
|
+
aleatorio() - Mesma função sem acento
|
|
202
|
+
|
|
203
|
+
**Retorno:**
|
|
204
|
+
número - Valor aleatório entre 0.0 e 1.0
|
|
205
|
+
|
|
206
|
+
**Exemplos:**
|
|
207
|
+
var valor = aleatório()
|
|
208
|
+
`,
|
|
209
|
+
'aleatorioEntre': `
|
|
210
|
+
# aleatorioEntre(minimo, maximo)
|
|
211
|
+
|
|
212
|
+
Retorna um número inteiro aleatório entre dois valores.
|
|
213
|
+
|
|
214
|
+
**Sintaxe:**
|
|
215
|
+
aleatorioEntre(minimo, maximo)
|
|
216
|
+
|
|
217
|
+
**Parâmetros:**
|
|
218
|
+
- minimo: Valor mínimo (inclusivo)
|
|
219
|
+
- maximo: Valor máximo (exclusivo)
|
|
220
|
+
|
|
221
|
+
**Retorno:**
|
|
222
|
+
inteiro - Número aleatório no intervalo [minimo, maximo)
|
|
223
|
+
|
|
224
|
+
**Exemplos:**
|
|
225
|
+
var dado = aleatorioEntre(1, 7) // 1 a 6
|
|
226
|
+
escreva('Você tirou:', dado)
|
|
227
|
+
`,
|
|
228
|
+
// ===== FUNÇÕES DE VETOR =====
|
|
229
|
+
'mapear': `
|
|
230
|
+
# mapear(vetor, funcao)
|
|
231
|
+
|
|
232
|
+
Aplica uma função a cada elemento de um vetor e retorna novo vetor.
|
|
233
|
+
|
|
234
|
+
**Sintaxe:**
|
|
235
|
+
mapear(vetor, funcao)
|
|
236
|
+
|
|
237
|
+
**Parâmetros:**
|
|
238
|
+
- vetor: Vetor a ser transformado
|
|
239
|
+
- funcao: Função a ser aplicada em cada elemento
|
|
240
|
+
|
|
241
|
+
**Retorno:**
|
|
242
|
+
vetor - Novo vetor com elementos transformados
|
|
243
|
+
|
|
244
|
+
**Exemplos:**
|
|
245
|
+
var numeros = [1, 2, 3, 4]
|
|
246
|
+
var dobrados = mapear(numeros, funcao(x) { retorna x * 2 })
|
|
247
|
+
escreva(dobrados) // [2, 4, 6, 8]
|
|
248
|
+
`,
|
|
249
|
+
'filtrarPor': `
|
|
250
|
+
# filtrarPor(vetor, funcao)
|
|
251
|
+
|
|
252
|
+
Filtra elementos de um vetor baseado em uma condição.
|
|
253
|
+
|
|
254
|
+
**Sintaxe:**
|
|
255
|
+
filtrarPor(vetor, funcao)
|
|
256
|
+
|
|
257
|
+
**Parâmetros:**
|
|
258
|
+
- vetor: Vetor a ser filtrado
|
|
259
|
+
- funcao: Função que retorna verdadeiro/falso para cada elemento
|
|
260
|
+
|
|
261
|
+
**Retorno:**
|
|
262
|
+
vetor - Novo vetor contendo apenas elementos que satisfazem a condição
|
|
263
|
+
|
|
264
|
+
**Sinônimos:**
|
|
265
|
+
filtrar() - Mesma funcionalidade
|
|
266
|
+
|
|
267
|
+
**Exemplos:**
|
|
268
|
+
var numeros = [1, 2, 3, 4, 5, 6]
|
|
269
|
+
var pares = filtrarPor(numeros, funcao(x) { retorna x % 2 == 0 })
|
|
270
|
+
escreva(pares) // [2, 4, 6]
|
|
271
|
+
`,
|
|
272
|
+
'ordenar': `
|
|
273
|
+
# ordenar(vetor)
|
|
274
|
+
|
|
275
|
+
Ordena os elementos de um vetor em ordem crescente.
|
|
276
|
+
|
|
277
|
+
**Sintaxe:**
|
|
278
|
+
ordenar(vetor)
|
|
279
|
+
|
|
280
|
+
**Parâmetros:**
|
|
281
|
+
- vetor: Vetor a ser ordenado
|
|
282
|
+
|
|
283
|
+
**Retorno:**
|
|
284
|
+
vetor - Novo vetor com elementos ordenados
|
|
285
|
+
|
|
286
|
+
**Exemplos:**
|
|
287
|
+
var numeros = [3, 1, 4, 1, 5, 9, 2, 6]
|
|
288
|
+
var ordenados = ordenar(numeros)
|
|
289
|
+
escreva(ordenados) // [1, 1, 2, 3, 4, 5, 6, 9]
|
|
290
|
+
`,
|
|
291
|
+
'paraCada': `
|
|
292
|
+
# paraCada(vetor, funcao)
|
|
293
|
+
|
|
294
|
+
Executa uma função para cada elemento de um vetor.
|
|
295
|
+
|
|
296
|
+
**Sintaxe:**
|
|
297
|
+
paraCada(vetor, funcao)
|
|
298
|
+
|
|
299
|
+
**Parâmetros:**
|
|
300
|
+
- vetor: Vetor a ser percorrido
|
|
301
|
+
- funcao: Função a ser executada para cada elemento
|
|
302
|
+
|
|
303
|
+
**Retorno:**
|
|
304
|
+
nulo
|
|
305
|
+
|
|
306
|
+
**Exemplos:**
|
|
307
|
+
var nomes = ['Ana', 'Bruno', 'Carlos']
|
|
308
|
+
paraCada(nomes, funcao(nome) {
|
|
309
|
+
escreva('Olá, ' + nome)
|
|
310
|
+
})
|
|
311
|
+
`,
|
|
312
|
+
'tamanho': `
|
|
313
|
+
# tamanho(colecao)
|
|
314
|
+
|
|
315
|
+
Retorna o número de elementos em uma coleção.
|
|
316
|
+
|
|
317
|
+
**Sintaxe:**
|
|
318
|
+
tamanho(colecao)
|
|
319
|
+
|
|
320
|
+
**Parâmetros:**
|
|
321
|
+
- colecao: Vetor, texto ou dicionário
|
|
322
|
+
|
|
323
|
+
**Retorno:**
|
|
324
|
+
inteiro - Quantidade de elementos
|
|
325
|
+
|
|
326
|
+
**Exemplos:**
|
|
327
|
+
var lista = [1, 2, 3, 4, 5]
|
|
328
|
+
escreva(tamanho(lista)) // 5
|
|
329
|
+
|
|
330
|
+
var texto = 'Delégua'
|
|
331
|
+
escreva(tamanho(texto)) // 7
|
|
332
|
+
`,
|
|
333
|
+
'todosEmCondicao': `
|
|
334
|
+
# todosEmCondicao(vetor, funcao)
|
|
335
|
+
|
|
336
|
+
Verifica se todos os elementos de um vetor satisfazem uma condição.
|
|
337
|
+
|
|
338
|
+
**Sintaxe:**
|
|
339
|
+
todosEmCondicao(vetor, funcao)
|
|
340
|
+
|
|
341
|
+
**Parâmetros:**
|
|
342
|
+
- vetor: Vetor a ser testado
|
|
343
|
+
- funcao: Função de teste que retorna verdadeiro/falso
|
|
344
|
+
|
|
345
|
+
**Retorno:**
|
|
346
|
+
lógico - verdadeiro se todos satisfazem, falso caso contrário
|
|
347
|
+
|
|
348
|
+
**Exemplos:**
|
|
349
|
+
var numeros = [2, 4, 6, 8]
|
|
350
|
+
var todosPares = todosEmCondicao(numeros, funcao(x) {
|
|
351
|
+
retorna x % 2 == 0
|
|
352
|
+
})
|
|
353
|
+
escreva(todosPares) // verdadeiro
|
|
354
|
+
`,
|
|
355
|
+
'encontrar': `
|
|
356
|
+
# encontrar(vetor, funcao)
|
|
357
|
+
|
|
358
|
+
Encontra o primeiro elemento que satisfaz uma condição.
|
|
359
|
+
|
|
360
|
+
**Sintaxe:**
|
|
361
|
+
encontrar(vetor, funcao)
|
|
362
|
+
|
|
363
|
+
**Parâmetros:**
|
|
364
|
+
- vetor: Vetor onde buscar
|
|
365
|
+
- funcao: Função de teste
|
|
366
|
+
|
|
367
|
+
**Retorno:**
|
|
368
|
+
Elemento encontrado ou nulo se não encontrar
|
|
369
|
+
|
|
370
|
+
**Exemplos:**
|
|
371
|
+
var numeros = [1, 2, 3, 4, 5]
|
|
372
|
+
var maior3 = encontrar(numeros, funcao(x) { retorna x > 3 })
|
|
373
|
+
escreva(maior3) // 4
|
|
374
|
+
`,
|
|
375
|
+
'clonar': `
|
|
376
|
+
# clonar(valor)
|
|
377
|
+
|
|
378
|
+
Cria uma cópia profunda de uma variável.
|
|
379
|
+
|
|
380
|
+
**Sintaxe:**
|
|
381
|
+
clonar(valor)
|
|
382
|
+
|
|
383
|
+
**Parâmetros:**
|
|
384
|
+
- valor: Variável a ser clonada
|
|
385
|
+
|
|
386
|
+
**Retorno:**
|
|
387
|
+
Cópia independente do valor original
|
|
388
|
+
|
|
389
|
+
**Características:**
|
|
390
|
+
- Cria cópias profundas (nested structures)
|
|
391
|
+
- Lida com referências circulares
|
|
392
|
+
- Preserva o original inalterado
|
|
393
|
+
|
|
394
|
+
**Exemplos:**
|
|
395
|
+
var original = [1, [2, 3], 4]
|
|
396
|
+
var copia = clonar(original)
|
|
397
|
+
copia[1][0] = 99
|
|
398
|
+
escreva(original) // [1, [2, 3], 4] - inalterado
|
|
399
|
+
`,
|
|
400
|
+
'tupla': `
|
|
401
|
+
# tupla(vetor)
|
|
402
|
+
|
|
403
|
+
Converte um vetor em uma tupla com campos nomeados.
|
|
404
|
+
|
|
405
|
+
**Sintaxe:**
|
|
406
|
+
tupla(vetor)
|
|
407
|
+
|
|
408
|
+
**Parâmetros:**
|
|
409
|
+
- vetor: Vetor com 2 a 10 elementos
|
|
410
|
+
|
|
411
|
+
**Retorno:**
|
|
412
|
+
tupla - Estrutura imutável com campos nomeados
|
|
413
|
+
|
|
414
|
+
**Exemplos:**
|
|
415
|
+
var dados = tupla([1, 2])
|
|
416
|
+
escreva(dados.primeiro) // 1
|
|
417
|
+
escreva(dados.segundo) // 2
|
|
418
|
+
`,
|
|
419
|
+
// ===== PALAVRAS-CHAVE =====
|
|
420
|
+
'var': `
|
|
421
|
+
# var
|
|
422
|
+
|
|
423
|
+
Declara uma variável mutável.
|
|
424
|
+
|
|
425
|
+
**Sintaxe:**
|
|
426
|
+
var nomeVariavel = valor
|
|
427
|
+
|
|
428
|
+
**Exemplos:**
|
|
429
|
+
var idade = 25
|
|
430
|
+
var nome = 'João'
|
|
431
|
+
idade = 26 // Pode ser alterada
|
|
432
|
+
`,
|
|
433
|
+
'const': `
|
|
434
|
+
# const
|
|
435
|
+
|
|
436
|
+
Declara uma constante (valor imutável).
|
|
437
|
+
|
|
438
|
+
**Sintaxe:**
|
|
439
|
+
const nomeConstante = valor
|
|
440
|
+
|
|
441
|
+
**Exemplos:**
|
|
442
|
+
const PI = 3.14159
|
|
443
|
+
const NOME = 'Maria'
|
|
444
|
+
// PI = 3.14 // ERRO: constantes não podem ser alteradas
|
|
445
|
+
`,
|
|
446
|
+
'se': `
|
|
447
|
+
# se
|
|
448
|
+
|
|
449
|
+
Estrutura condicional (if).
|
|
450
|
+
|
|
451
|
+
**Sintaxe:**
|
|
452
|
+
se (condicao) {
|
|
453
|
+
// código se verdadeiro
|
|
454
|
+
} senao {
|
|
455
|
+
// código se falso
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
**Exemplos:**
|
|
459
|
+
var idade = 18
|
|
460
|
+
se (idade >= 18) {
|
|
461
|
+
escreva('Maior de idade')
|
|
462
|
+
} senao {
|
|
463
|
+
escreva('Menor de idade')
|
|
464
|
+
}
|
|
465
|
+
`,
|
|
466
|
+
'senao': `
|
|
467
|
+
# senao
|
|
468
|
+
|
|
469
|
+
Cláusula else de uma estrutura condicional.
|
|
470
|
+
|
|
471
|
+
**Sintaxe:**
|
|
472
|
+
se (condicao) {
|
|
473
|
+
// ...
|
|
474
|
+
} senao {
|
|
475
|
+
// executa se condição for falsa
|
|
476
|
+
}
|
|
477
|
+
`,
|
|
478
|
+
'para': `
|
|
479
|
+
# para
|
|
480
|
+
|
|
481
|
+
Laço de repetição (for).
|
|
482
|
+
|
|
483
|
+
**Sintaxe:**
|
|
484
|
+
para (inicializacao; condicao; incremento) {
|
|
485
|
+
// código a repetir
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
**Exemplos:**
|
|
489
|
+
para (var i = 0; i < 5; i += 1) {
|
|
490
|
+
escreva(i)
|
|
491
|
+
}
|
|
492
|
+
`,
|
|
493
|
+
'enquanto': `
|
|
494
|
+
# enquanto
|
|
495
|
+
|
|
496
|
+
Laço de repetição (while).
|
|
497
|
+
|
|
498
|
+
**Sintaxe:**
|
|
499
|
+
enquanto (condicao) {
|
|
500
|
+
// código a repetir
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
**Exemplos:**
|
|
504
|
+
var contador = 0
|
|
505
|
+
enquanto (contador < 5) {
|
|
506
|
+
escreva(contador)
|
|
507
|
+
contador += 1
|
|
508
|
+
}
|
|
509
|
+
`,
|
|
510
|
+
'fazer': `
|
|
511
|
+
# fazer
|
|
512
|
+
|
|
513
|
+
Laço de repetição do-while.
|
|
514
|
+
|
|
515
|
+
**Sintaxe:**
|
|
516
|
+
fazer {
|
|
517
|
+
// código a repetir
|
|
518
|
+
} enquanto (condicao)
|
|
519
|
+
|
|
520
|
+
**Exemplos:**
|
|
521
|
+
var x = 0
|
|
522
|
+
fazer {
|
|
523
|
+
escreva(x)
|
|
524
|
+
x += 1
|
|
525
|
+
} enquanto (x < 3)
|
|
526
|
+
`,
|
|
527
|
+
'funcao': `
|
|
528
|
+
# funcao
|
|
529
|
+
|
|
530
|
+
Declara uma função.
|
|
531
|
+
|
|
532
|
+
**Sintaxe:**
|
|
533
|
+
funcao nomeFuncao(parametros) {
|
|
534
|
+
// corpo da função
|
|
535
|
+
retorna valor
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
**Exemplos:**
|
|
539
|
+
funcao somar(a, b) {
|
|
540
|
+
retorna a + b
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
var resultado = somar(5, 3)
|
|
544
|
+
escreva(resultado) // 8
|
|
545
|
+
`,
|
|
546
|
+
'retorna': `
|
|
547
|
+
# retorna
|
|
548
|
+
|
|
549
|
+
Retorna um valor de uma função.
|
|
550
|
+
|
|
551
|
+
**Sintaxe:**
|
|
552
|
+
retorna valor
|
|
553
|
+
|
|
554
|
+
**Exemplos:**
|
|
555
|
+
funcao dobro(x) {
|
|
556
|
+
retorna x * 2
|
|
557
|
+
}
|
|
558
|
+
`,
|
|
559
|
+
'verdadeiro': `
|
|
560
|
+
# verdadeiro
|
|
561
|
+
|
|
562
|
+
Valor booleano verdadeiro.
|
|
563
|
+
|
|
564
|
+
**Tipo:**
|
|
565
|
+
lógico
|
|
566
|
+
|
|
567
|
+
**Exemplos:**
|
|
568
|
+
var ativo = verdadeiro
|
|
569
|
+
se (ativo) {
|
|
570
|
+
escreva('Sistema ativo')
|
|
571
|
+
}
|
|
572
|
+
`,
|
|
573
|
+
'falso': `
|
|
574
|
+
# falso
|
|
575
|
+
|
|
576
|
+
Valor booleano falso.
|
|
577
|
+
|
|
578
|
+
**Tipo:**
|
|
579
|
+
lógico
|
|
580
|
+
|
|
581
|
+
**Exemplos:**
|
|
582
|
+
var desligado = falso
|
|
583
|
+
`,
|
|
584
|
+
'nulo': `
|
|
585
|
+
# nulo
|
|
586
|
+
|
|
587
|
+
Representa a ausência de valor.
|
|
588
|
+
|
|
589
|
+
**Tipo:**
|
|
590
|
+
nulo
|
|
591
|
+
|
|
592
|
+
**Exemplos:**
|
|
593
|
+
var semValor = nulo
|
|
594
|
+
se (semValor == nulo) {
|
|
595
|
+
escreva('Sem valor')
|
|
596
|
+
}
|
|
597
|
+
`,
|
|
598
|
+
// ===== TIPOS PRIMITIVOS E SEUS MÉTODOS =====
|
|
599
|
+
'tipo:número': `
|
|
600
|
+
# número
|
|
601
|
+
|
|
602
|
+
Tipo de dados numérico. Suporta inteiros e decimais.
|
|
603
|
+
|
|
604
|
+
**Métodos disponíveis:**
|
|
605
|
+
|
|
606
|
+
- **absoluto()** - Retorna o valor absoluto do número (remove o sinal)
|
|
607
|
+
Exemplo: var x = -5; x.absoluto() // retorna 5
|
|
608
|
+
|
|
609
|
+
- **arredondarParaBaixo()** - Arredonda um número para baixo (descarta a parte decimal)
|
|
610
|
+
Exemplo: var x = 3.8; x.arredondarParaBaixo() // retorna 3
|
|
611
|
+
|
|
612
|
+
- **arredondarParaCima()** - Arredonda um número para cima (adiciona 1 à parte inteira)
|
|
613
|
+
Exemplo: var x = 3.2; x.arredondarParaCima() // retorna 4
|
|
614
|
+
|
|
615
|
+
- **formatar(configurações)** - Formata com separadores decimais e de milhares
|
|
616
|
+
Parâmetros: minimoCasasDecimais, maximoCasasDecimais
|
|
617
|
+
Exemplo: var x = 1234.56; x.formatar()
|
|
618
|
+
|
|
619
|
+
**Exemplos:**
|
|
620
|
+
var num = -7.8
|
|
621
|
+
escreva(num.absoluto()) // 7.8
|
|
622
|
+
escreva(num.arredondarParaBaixo()) // -8
|
|
623
|
+
escreva(num.arredondarParaCima()) // -7
|
|
624
|
+
`,
|
|
625
|
+
'tipo:texto': `
|
|
626
|
+
# texto
|
|
627
|
+
|
|
628
|
+
Tipo de dados para strings (cadeias de caracteres).
|
|
629
|
+
|
|
630
|
+
**Métodos disponíveis:**
|
|
631
|
+
|
|
632
|
+
- **aparar()** - Remove espaços em branco do início e do final
|
|
633
|
+
Exemplo: " texto ".aparar() // retorna "texto"
|
|
634
|
+
|
|
635
|
+
- **apararFim()** - Remove espaços em branco apenas do final
|
|
636
|
+
Exemplo: "texto ".apararFim() // retorna "texto"
|
|
637
|
+
|
|
638
|
+
- **apararInicio()** - Remove espaços em branco apenas do início
|
|
639
|
+
Exemplo: " texto".apararInicio() // retorna "texto"
|
|
640
|
+
|
|
641
|
+
- **concatenar(outroTexto)** - Junta dois textos
|
|
642
|
+
Exemplo: "Olá".concatenar(" Mundo") // retorna "Olá Mundo"
|
|
643
|
+
|
|
644
|
+
- **dividir(separador)** - Transforma um texto em um vetor de outros textos
|
|
645
|
+
Exemplo: "a,b,c".dividir(",") // retorna ["a", "b", "c"]
|
|
646
|
+
|
|
647
|
+
- **encontrar(subtexto)** - Retorna o índice inicial de um subtexto
|
|
648
|
+
Exemplo: "Delégua".encontrar("é") // retorna 3
|
|
649
|
+
|
|
650
|
+
- **fatiar(início, fim)** - Extrai trechos (fatias) do texto
|
|
651
|
+
Exemplo: "Delégua".fatiar(0, 3) // retorna "Del"
|
|
652
|
+
|
|
653
|
+
- **inclui(subtexto)** - Verifica se o texto contém outro texto
|
|
654
|
+
Exemplo: "Delégua".inclui("gua") // retorna verdadeiro
|
|
655
|
+
|
|
656
|
+
- **maiusculo()** - Devolve um texto com todos os caracteres em maiúsculo
|
|
657
|
+
Exemplo: "delégua".maiusculo() // retorna "DELÉGUA"
|
|
658
|
+
|
|
659
|
+
- **minusculo()** - Devolve um texto com todos os caracteres em minúsculo
|
|
660
|
+
Exemplo: "DELÉGUA".minusculo() // retorna "delégua"
|
|
661
|
+
|
|
662
|
+
- **substituir(busca, substituição)** - Substitui uma porção de um texto
|
|
663
|
+
Exemplo: "banana".substituir("a", "o") // retorna "bonana"
|
|
664
|
+
|
|
665
|
+
- **subtexto(início, tamanho)** - Extrai subtexto (sinônimo de fatiar)
|
|
666
|
+
Exemplo: "Delégua".subtexto(0, 3) // retorna "Del"
|
|
667
|
+
|
|
668
|
+
- **tamanho()** - Devolve o número de caracteres de um texto
|
|
669
|
+
Exemplo: "Delégua".tamanho() // retorna 7
|
|
670
|
+
|
|
671
|
+
- **tudoMaiusculo()** - Devolve verdadeiro se todos os caracteres alfabéticos estão em maiúsculo
|
|
672
|
+
Exemplo: "DELEGUA".tudoMaiusculo() // retorna verdadeiro
|
|
673
|
+
|
|
674
|
+
- **tudoMinusculo()** - Devolve verdadeiro se todos os caracteres alfabéticos estão em minúsculo
|
|
675
|
+
Exemplo: "delegua".tudoMinusculo() // retorna verdadeiro
|
|
676
|
+
|
|
677
|
+
**Exemplos:**
|
|
678
|
+
var nome = " Delégua "
|
|
679
|
+
escreva(nome.aparar()) // "Delégua"
|
|
680
|
+
escreva(nome.aparar().tamanho()) // 7
|
|
681
|
+
escreva(nome.aparar().maiusculo()) // "DELÉGUA"
|
|
682
|
+
`,
|
|
683
|
+
'tipo:lógico': `
|
|
684
|
+
# lógico
|
|
685
|
+
|
|
686
|
+
Tipo de dados booleano. Pode ser verdadeiro ou falso.
|
|
687
|
+
|
|
688
|
+
**Valores:**
|
|
689
|
+
- verdadeiro
|
|
690
|
+
- falso
|
|
691
|
+
|
|
692
|
+
**Métodos disponíveis:**
|
|
693
|
+
Nenhum método específico. Use operadores lógicos e condicionais.
|
|
694
|
+
|
|
695
|
+
**Operadores lógicos:**
|
|
696
|
+
- e (AND)
|
|
697
|
+
- ou (OR)
|
|
698
|
+
- não (NOT)
|
|
699
|
+
|
|
700
|
+
**Exemplos:**
|
|
701
|
+
var ativo = verdadeiro
|
|
702
|
+
var desativado = falso
|
|
703
|
+
|
|
704
|
+
escreva(ativo e desativado) // falso
|
|
705
|
+
escreva(ativo ou desativado) // verdadeiro
|
|
706
|
+
escreva(não ativo) // falso
|
|
707
|
+
`,
|
|
708
|
+
'tipo:vetor': `
|
|
709
|
+
# vetor
|
|
710
|
+
|
|
711
|
+
Tipo de dados para arrays (listas ordenadas).
|
|
712
|
+
|
|
713
|
+
**Criação:**
|
|
714
|
+
var lista = [1, 2, 3]
|
|
715
|
+
var vazia = []
|
|
716
|
+
|
|
717
|
+
**Métodos disponíveis:**
|
|
718
|
+
|
|
719
|
+
- **adicionar(elemento)** - Adiciona um elemento ao final do vetor
|
|
720
|
+
Exemplo: lista.adicionar(4)
|
|
721
|
+
|
|
722
|
+
- **concatenar(outroVetor)** - Combina dois vetores em um novo com todos os elementos
|
|
723
|
+
Exemplo: [1,2].concatenar([3,4]) // retorna [1,2,3,4]
|
|
724
|
+
|
|
725
|
+
- **empilhar(elemento)** - Assim como adicionar(), adiciona um elemento ao final
|
|
726
|
+
Exemplo: lista.empilhar(5)
|
|
727
|
+
|
|
728
|
+
- **encaixar(índice, quantidade, elementos...)** - Insere ou remove elementos em posição específica
|
|
729
|
+
Exemplo: lista.encaixar(1, 0, 'novo') // insere 'novo' na posição 1
|
|
730
|
+
|
|
731
|
+
- **fatiar(início, fim)** - Extrai trechos (fatias) do vetor, devolvendo a parte fatiada
|
|
732
|
+
Exemplo: [1,2,3,4,5].fatiar(1, 3) // retorna [2,3]
|
|
733
|
+
|
|
734
|
+
- **filtrarPor(função)** - Retorna elementos onde a função retorna verdadeiro
|
|
735
|
+
Exemplo: [1,2,3,4].filtrarPor(funcao(x) { retorna x > 2 }) // retorna [3,4]
|
|
736
|
+
|
|
737
|
+
- **inclui(elemento)** - Verifica se o vetor contém um elemento específico
|
|
738
|
+
Exemplo: [1,2,3].inclui(2) // retorna verdadeiro
|
|
739
|
+
|
|
740
|
+
- **inverter()** - Devolve um vetor cujo resultado contém os elementos invertidos
|
|
741
|
+
Exemplo: [1,2,3].inverter() // retorna [3,2,1]
|
|
742
|
+
|
|
743
|
+
- **juntar(separador)** - Junta os elementos de um vetor em um texto
|
|
744
|
+
Exemplo: ["a","b","c"].juntar(",") // retorna "a,b,c"
|
|
745
|
+
|
|
746
|
+
- **mapear(função)** - Executa uma função para cada elemento e retorna os resultados
|
|
747
|
+
Exemplo: [1,2,3].mapear(funcao(x) { retorna x * 2 }) // retorna [2,4,6]
|
|
748
|
+
|
|
749
|
+
- **ordenar()** - Ordena elementos do vetor em ordem crescente por padrão
|
|
750
|
+
Exemplo: [3,1,2].ordenar() // retorna [1,2,3]
|
|
751
|
+
|
|
752
|
+
- **remover(elemento)** - Remove um elemento específico do vetor
|
|
753
|
+
Exemplo: lista.remover(2) // remove o elemento 2
|
|
754
|
+
|
|
755
|
+
- **removerPrimeiro()** - Remove o primeiro elemento de um vetor, se existir
|
|
756
|
+
Exemplo: lista.removerPrimeiro()
|
|
757
|
+
|
|
758
|
+
- **removerUltimo()** - Remove o último elemento de um vetor, se existir
|
|
759
|
+
Exemplo: lista.removerUltimo()
|
|
760
|
+
|
|
761
|
+
- **somar()** - Totaliza elementos numéricos dentro de um vetor
|
|
762
|
+
Exemplo: [1,2,3].somar() // retorna 6
|
|
763
|
+
|
|
764
|
+
- **tamanho()** - Devolve o número de elementos de um vetor
|
|
765
|
+
Exemplo: [1,2,3].tamanho() // retorna 3
|
|
766
|
+
|
|
767
|
+
**Exemplos:**
|
|
768
|
+
var nums = [1, 2, 3]
|
|
769
|
+
escreva(nums.tamanho()) // 3
|
|
770
|
+
nums.adicionar(4) // [1,2,3,4]
|
|
771
|
+
escreva(nums.somar()) // 10
|
|
772
|
+
escreva(nums.mapear(funcao(x) { retorna x * 2 })) // [2,4,6,8]
|
|
773
|
+
`,
|
|
774
|
+
'tipo:dicionário': `
|
|
775
|
+
# dicionário
|
|
776
|
+
|
|
777
|
+
Tipo de dados para objetos (pares chave-valor).
|
|
778
|
+
|
|
779
|
+
**Criação:**
|
|
780
|
+
var pessoa = { nome: "Maria", idade: 25 }
|
|
781
|
+
var vazio = {}
|
|
782
|
+
|
|
783
|
+
**Métodos disponíveis:**
|
|
784
|
+
|
|
785
|
+
- **chaves()** - Retorna uma coleção com todas as chaves
|
|
786
|
+
Exemplo: var dici = {'a': 1, 'b': 2}
|
|
787
|
+
escreva(dici.chaves()) // ['a', 'b']
|
|
788
|
+
|
|
789
|
+
- **contém(chave)** ou **contem(chave)** - Verifica se uma chave existe
|
|
790
|
+
Exemplo: escreva(dici.contém('a')) // verdadeiro
|
|
791
|
+
|
|
792
|
+
- **remover(chave)** - Remove um par chave-valor específico do dicionário
|
|
793
|
+
Exemplo: dici.remover('a')
|
|
794
|
+
|
|
795
|
+
- **valores()** - Retorna uma coleção com todos os valores
|
|
796
|
+
Exemplo: var dici = { 'a': 1, 'b': 2}
|
|
797
|
+
escreva(dici.valores()) // [1, 2]
|
|
798
|
+
|
|
799
|
+
**Acesso a valores:**
|
|
800
|
+
pessoa.nome // "Maria"
|
|
801
|
+
pessoa["idade"] // 25
|
|
802
|
+
|
|
803
|
+
**Exemplos:**
|
|
804
|
+
var config = { tema: "escuro", idioma: "pt" }
|
|
805
|
+
escreva(config.chaves()) // ["tema", "idioma"]
|
|
806
|
+
escreva(config.valores()) // ["escuro", "pt"]
|
|
807
|
+
escreva(config.contém("tema")) // verdadeiro
|
|
808
|
+
config.remover("tema")
|
|
809
|
+
escreva(config.chaves()) // ["idioma"]
|
|
810
|
+
`,
|
|
811
|
+
};
|
|
812
|
+
/**
|
|
813
|
+
* Normaliza um texto removendo acentos para busca.
|
|
814
|
+
*/
|
|
815
|
+
function normalizarParaBusca(texto) {
|
|
816
|
+
return texto
|
|
817
|
+
.toLowerCase()
|
|
818
|
+
.normalize('NFD')
|
|
819
|
+
.replace(/[\u0300-\u036f]/g, '');
|
|
820
|
+
}
|
|
821
|
+
/**
|
|
822
|
+
* Busca conteúdo de ajuda por tópico.
|
|
823
|
+
* Suporta busca com e sem acentos.
|
|
824
|
+
*/
|
|
825
|
+
function buscarConteudoAjuda(topico) {
|
|
826
|
+
// Busca exata primeiro
|
|
827
|
+
if (exports.conteudoAjuda[topico]) {
|
|
828
|
+
return exports.conteudoAjuda[topico];
|
|
829
|
+
}
|
|
830
|
+
// Busca normalizada (sem acentos)
|
|
831
|
+
const topicoNormalizado = normalizarParaBusca(topico);
|
|
832
|
+
for (const [chave, conteudo] of Object.entries(exports.conteudoAjuda)) {
|
|
833
|
+
if (normalizarParaBusca(chave) === topicoNormalizado) {
|
|
834
|
+
return conteudo;
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
return null;
|
|
838
|
+
}
|
|
839
|
+
/**
|
|
840
|
+
* Lista todos os tópicos disponíveis agrupados por categoria.
|
|
841
|
+
*/
|
|
842
|
+
function listarTopicos() {
|
|
843
|
+
return Object.keys(exports.conteudoAjuda).sort();
|
|
844
|
+
}
|
|
845
|
+
//# sourceMappingURL=conteudo-ajuda.js.map
|