@designliquido/delegua-node 1.13.4 → 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.
Files changed (46) hide show
  1. package/avaliador-sintatico/avaliador-sintatico-com-importacao.d.ts +6 -1
  2. package/avaliador-sintatico/avaliador-sintatico-com-importacao.d.ts.map +1 -1
  3. package/avaliador-sintatico/avaliador-sintatico-com-importacao.js +39 -1
  4. package/avaliador-sintatico/avaliador-sintatico-com-importacao.js.map +1 -1
  5. package/avaliador-sintatico/micro-avaliador-ajuda.d.ts +38 -0
  6. package/avaliador-sintatico/micro-avaliador-ajuda.d.ts.map +1 -0
  7. package/avaliador-sintatico/micro-avaliador-ajuda.js +100 -0
  8. package/avaliador-sintatico/micro-avaliador-ajuda.js.map +1 -0
  9. package/bin/package.json +7 -6
  10. package/interpretador/comum.d.ts +19 -1
  11. package/interpretador/comum.d.ts.map +1 -1
  12. package/interpretador/comum.js +226 -1
  13. package/interpretador/comum.js.map +1 -1
  14. package/interpretador/conteudo-ajuda.d.ts +21 -0
  15. package/interpretador/conteudo-ajuda.d.ts.map +1 -0
  16. package/interpretador/conteudo-ajuda.js +845 -0
  17. package/interpretador/conteudo-ajuda.js.map +1 -0
  18. package/interpretador/interpretador-com-depuracao-importacao.d.ts.map +1 -1
  19. package/interpretador/interpretador-com-depuracao-importacao.js.map +1 -1
  20. package/interpretador/interpretador-com-importacao.d.ts +7 -1
  21. package/interpretador/interpretador-com-importacao.d.ts.map +1 -1
  22. package/interpretador/interpretador-com-importacao.js +11 -1
  23. package/interpretador/interpretador-com-importacao.js.map +1 -1
  24. package/interpretador/realcador-sintaxe-ajuda.d.ts +6 -0
  25. package/interpretador/realcador-sintaxe-ajuda.d.ts.map +1 -0
  26. package/interpretador/realcador-sintaxe-ajuda.js +210 -0
  27. package/interpretador/realcador-sintaxe-ajuda.js.map +1 -0
  28. package/maquinas-estados-lair/index.d.ts +1 -0
  29. package/maquinas-estados-lair/index.d.ts.map +1 -1
  30. package/maquinas-estados-lair/index.js +1 -0
  31. package/maquinas-estados-lair/index.js.map +1 -1
  32. package/maquinas-estados-lair/maquina-estados-ajuda.d.ts +43 -0
  33. package/maquinas-estados-lair/maquina-estados-ajuda.d.ts.map +1 -0
  34. package/maquinas-estados-lair/maquina-estados-ajuda.js +155 -0
  35. package/maquinas-estados-lair/maquina-estados-ajuda.js.map +1 -0
  36. package/maquinas-estados-lair/maquina-estados-lair-delegua.d.ts +10 -1
  37. package/maquinas-estados-lair/maquina-estados-lair-delegua.d.ts.map +1 -1
  38. package/maquinas-estados-lair/maquina-estados-lair-delegua.js +50 -1
  39. package/maquinas-estados-lair/maquina-estados-lair-delegua.js.map +1 -1
  40. package/mecanismo-importacao-bibliotecas/index.d.ts.map +1 -1
  41. package/mecanismo-importacao-bibliotecas/index.js +1 -0
  42. package/mecanismo-importacao-bibliotecas/index.js.map +1 -1
  43. package/nucleo-execucao.d.ts.map +1 -1
  44. package/nucleo-execucao.js +1 -1
  45. package/nucleo-execucao.js.map +1 -1
  46. package/package.json +7 -6
@@ -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