treste 2.3.0 → 2.3.2

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/INSTALL.md CHANGED
@@ -24,7 +24,7 @@ Se você não tem o Node.js instalado, baixe em: https://nodejs.org/
24
24
  Instale o Trest globalmente para ter acesso aos comandos `trest` e `trestc` em qualquer lugar:
25
25
 
26
26
  ```bash
27
- npm install -g trest-language
27
+ npm install -g treste
28
28
  ```
29
29
 
30
30
  **Verifique a instalação:**
@@ -44,7 +44,7 @@ trestc arquivo.trest --mode web
44
44
  Para usar o Trest apenas em um projeto específico:
45
45
 
46
46
  ```bash
47
- npm install trest-language
47
+ npm install treste
48
48
  ```
49
49
 
50
50
  **Uso via npx:**
package/README.md CHANGED
@@ -1,103 +1,105 @@
1
- # Trest - Язык программирования с поддержкой кириллицы
1
+ # Trest - Linguagem de Programação com Suporte a Cirílico
2
2
 
3
- Современный язык программирования, профессионально структурированный и компилируемый для **Web** и **Desktop (.exe)** с полной поддержкой кириллицы (русский алфавит).
3
+ Linguagem de programação moderna e profissional, estruturalmente organizada e compilável para **Web** e **Desktop (.exe)** com suporte completo a cirílico (alfabeto russo).
4
4
 
5
- > **📖 Версия на португальском:** Для документации на португальском используйте ключевые слова на португальском (se, enquanto, funcao, и т.д.) или смотрите примеры в папке `exemplos/`.
5
+ > **🎯 Característica Única:** Trest permite programar usando palavras-chave em cirílico ou latino, mantendo a mesma sintaxe e funcionalidades.
6
6
 
7
- ## 🚀 Основные возможности
7
+ ## 🚀 Principais Funcionalidades
8
8
 
9
- - ✅ **Компиляция для Web** - Генерирует оптимизированный JavaScript
10
- - ✅ **Компиляция для Desktop** - Создает нативные исполняемые файлы .exe
11
- - ✅ **Система модулей** - Импорт/Экспорт модулей
12
- - ✅ **Стандартная библиотека** - std с математическими функциями, строками, массивами и I/O
13
- - ✅ **Обработка ошибок** - Расширенный Try/Catch/Throw
14
- - ✅ **Синтаксис на кириллице** - Ключевые слова на русском языке
15
- - ✅ **Динамическая типизация** - Типы выводятся автоматически
16
- - ✅ **Система сборки** - Профессиональные инструменты компиляции
9
+ - ✅ **Compilação para Web** - Gera JavaScript otimizado
10
+ - ✅ **Compilação para Desktop** - Cria executáveis .exe nativos
11
+ - ✅ **Sistema de Módulos** - Import/Export de módulos
12
+ - ✅ **Biblioteca Padrão** - std com funções matemáticas, strings, arrays e I/O
13
+ - ✅ **Tratamento de Erros** - Try/Catch/Throw estendido
14
+ - ✅ **Sintaxe em Cirílico** - Palavras-chave em russo
15
+ - ✅ **Tipagem Dinâmica** - Tipos inferidos automaticamente
16
+ - ✅ **Sistema de Build** - Ferramentas de compilação profissionais
17
17
 
18
- ## 📦 Установка
18
+ ## 📦 Instalação
19
19
 
20
- ### Установка через npm (рекомендуется)
20
+ ### Instalação via npm (recomendado)
21
21
 
22
- **Глобальная установка:**
22
+ **Instalação global:**
23
23
  ```bash
24
- npm install -g trest-language
24
+ npm install -g treste
25
25
  ```
26
26
 
27
- После установки команды `trest` и `trestc` будут доступны глобально:
27
+ Após a instalação, os comandos `trest` e `trestc` estarão disponíveis globalmente:
28
28
  ```bash
29
29
  trest --version
30
30
  trestc --help
31
31
  ```
32
32
 
33
- **Локальная установка в проект:**
33
+ **Instalação local em projeto:**
34
34
  ```bash
35
- npm install trest-language
35
+ npm install treste
36
36
  ```
37
37
 
38
- Используйте через `npx`:
38
+ Use via `npx`:
39
39
  ```bash
40
40
  npx trest programa.trest
41
41
  npx trestc programa.trest --mode web
42
42
  ```
43
43
 
44
- ### Установка из исходников
44
+ ### Instalação a partir do código-fonte
45
45
 
46
- Если вы хотите установить из исходников или внести изменения:
46
+ Se você quiser instalar a partir do código-fonte ou fazer modificações:
47
47
 
48
48
  ```bash
49
- # Клонировать репозиторий
49
+ # Clonar o repositório
50
50
  git clone https://github.com/trest-language/trest.git
51
51
  cd trest
52
52
 
53
- # Установить зависимости
53
+ # Instalar dependências
54
54
  npm install
55
55
 
56
- # Собрать проект
56
+ # Compilar o projeto
57
57
  npm run build
58
58
 
59
- # (Опционально) Создать симлинки для глобального использования
59
+ # (Opcional) Criar links globais para testes
60
60
  npm link
61
61
  ```
62
62
 
63
- ### Требования
63
+ ### Requisitos
64
64
 
65
65
  - **Node.js**: >= 18.0.0
66
66
  - **npm**: >= 9.0.0
67
- - **TypeScript**: 5.0+ (для разработки)
67
+ - **TypeScript**: 5.0+ (para desenvolvimento)
68
68
 
69
- Проверьте вашу версию:
69
+ Verifique sua versão:
70
70
  ```bash
71
- node --version # должно быть >= v18
72
- npm --version # должно быть >= 9
71
+ node --version # deve ser >= v18
72
+ npm --version # deve ser >= 9
73
73
  ```
74
74
 
75
- ## 🎯 Быстрый старт
75
+ ## 🎯 Guia Rápido
76
76
 
77
- ### Запуск напрямую (интерпретатор)
77
+ ### Executar diretamente (interpretador)
78
78
  ```bash
79
79
  npm start exemplos/hello_cyrillic.trest
80
- # или
80
+ # ou
81
81
  trest exemplos/hello_cyrillic.trest
82
82
  ```
83
83
 
84
- ### Компиляция для Web (JavaScript)
84
+ ### Compilar para Web (JavaScript)
85
85
  ```bash
86
86
  npm run compile:web -- exemplos/hello_cyrillic.trest
87
- # или
87
+ # ou
88
88
  trestc exemplos/hello_cyrillic.trest --mode web --output app.js
89
89
  ```
90
90
 
91
- ### Компиляция для исполняемого файла (.exe)
91
+ ### Compilar para executável (.exe)
92
92
  ```bash
93
93
  npm run compile:exe -- exemplos/hello_cyrillic.trest
94
- # или
94
+ # ou
95
95
  trestc exemplos/hello_cyrillic.trest --mode exe --output app.exe
96
96
  ```
97
97
 
98
- ## 📚 Синтаксис языка
98
+ ## 📚 Sintaxe da Linguagem
99
99
 
100
- ### Переменные
100
+ Todos os exemplos abaixo usam a sintaxe em **cirílico** (palavras-chave em russo), que é a forma nativa do Trest:
101
+
102
+ ### Variáveis
101
103
 
102
104
  ```trest
103
105
  перем имя = "Trest"
@@ -105,7 +107,7 @@ trestc exemplos/hello_cyrillic.trest --mode exe --output app.exe
105
107
  конст pi = 3.14159
106
108
  ```
107
109
 
108
- ### Функции
110
+ ### Funções
109
111
 
110
112
  ```trest
111
113
  функция сложить(a, b) {
@@ -116,7 +118,7 @@ trestc exemplos/hello_cyrillic.trest --mode exe --output app.exe
116
118
  печать(результат)
117
119
  ```
118
120
 
119
- ### Условия
121
+ ### Condicionais
120
122
 
121
123
  ```trest
122
124
  если (возраст >= 18) {
@@ -126,9 +128,9 @@ trestc exemplos/hello_cyrillic.trest --mode exe --output app.exe
126
128
  }
127
129
  ```
128
130
 
129
- ### Циклы
131
+ ### Loops
130
132
 
131
- **Пока:**
133
+ **While (Enquanto):**
132
134
  ```trest
133
135
  пусть i = 0
134
136
  пока (i < 10) {
@@ -137,14 +139,14 @@ trestc exemplos/hello_cyrillic.trest --mode exe --output app.exe
137
139
  }
138
140
  ```
139
141
 
140
- **Для:**
142
+ **For (Para):**
141
143
  ```trest
142
144
  для (пусть i = 0; i < 10; i = i + 1) {
143
145
  печать(i)
144
146
  }
145
147
  ```
146
148
 
147
- ### Обработка ошибок
149
+ ### Tratamento de Erros
148
150
 
149
151
  ```trest
150
152
  попытаться {
@@ -156,15 +158,15 @@ trestc exemplos/hello_cyrillic.trest --mode exe --output app.exe
156
158
  }
157
159
  ```
158
160
 
159
- ### Модули
161
+ ### Módulos
160
162
 
161
- **Импорт:**
163
+ **Import (Importar):**
162
164
  ```trest
163
- импорт { max, min } из "std/math"
164
- импорт * как Math из "std/math"
165
+ импорт { max, min } измодуля "std/math"
166
+ импорт * как Math измодуля "std/math"
165
167
  ```
166
168
 
167
- **Экспорт:**
169
+ **Export (Exportar):**
168
170
  ```trest
169
171
  экспорт функция мояФункция() {
170
172
  вернуть "Привет"
@@ -173,7 +175,7 @@ trestc exemplos/hello_cyrillic.trest --mode exe --output app.exe
173
175
  экспорт конст константа = 42
174
176
  ```
175
177
 
176
- ### Объекты
178
+ ### Objetos
177
179
 
178
180
  ```trest
179
181
  пусть человек = {
@@ -185,7 +187,7 @@ trestc exemplos/hello_cyrillic.trest --mode exe --output app.exe
185
187
  печать(человек.имя) # "Иван"
186
188
  ```
187
189
 
188
- ### Массивы
190
+ ### Arrays
189
191
 
190
192
  ```trest
191
193
  пусть числа = [1, 2, 3, 4, 5]
@@ -195,12 +197,14 @@ trestc exemplos/hello_cyrillic.trest --mode exe --output app.exe
195
197
  печать(числа) # [10, 2, 3, 4, 5]
196
198
  ```
197
199
 
198
- ## 📖 Стандартная библиотека (std)
200
+ ## 📖 Biblioteca Padrão (std)
201
+
202
+ Trest inclui uma biblioteca padrão rica com 11 módulos:
199
203
 
200
- ### Math
204
+ ### Math (Matemática)
201
205
 
202
206
  ```trest
203
- импорт * как Math из "std/math"
207
+ импорт * как Math измодуля "std/math"
204
208
 
205
209
  пусть x = Math.abs(-5) # 5
206
210
  пусть y = Math.max(10, 20) # 20
@@ -208,20 +212,20 @@ trestc exemplos/hello_cyrillic.trest --mode exe --output app.exe
208
212
  пусть pi = Math.PI # 3.14159...
209
213
  ```
210
214
 
211
- ### String
215
+ ### String (Cadeias de Texto)
212
216
 
213
217
  ```trest
214
- импорт * как String из "std/string"
218
+ импорт * как String измодуля "std/string"
215
219
 
216
220
  пусть текст = "Привет Мир"
217
221
  пусть размер = String.размер(текст) # 11
218
222
  пусть верхний = String.верхний(текст) # "ПРИВЕТ МИР"
219
223
  ```
220
224
 
221
- ### Array
225
+ ### Array (Arrays)
222
226
 
223
227
  ```trest
224
- импорт * как Array из "std/array"
228
+ импорт * как Array измодуля "std/array"
225
229
 
226
230
  пусть arr = [1, 2, 3]
227
231
  Array.добавить(arr, 4) # [1, 2, 3, 4]
@@ -229,58 +233,143 @@ Array.добавить(arr, 4) # [1, 2, 3, 4]
229
233
  пусть отсортированный = Array.отсортировать([3, 1, 2]) # [1, 2, 3]
230
234
  ```
231
235
 
232
- ### IO
236
+ ### HTTP (Client e Server)
237
+
238
+ ```trest
239
+ импорт * как HTTP измодуля "std/http"
240
+
241
+ пусть resposta = HTTP.GET("https://api.example.com")
242
+ HTTP.POST("https://api.example.com", данные)
243
+ HTTP.создатьСервер(3000, обработчик)
244
+ ```
245
+
246
+ ### Crypto (Criptografia)
247
+
248
+ ```trest
249
+ импорт * как Crypto измодуля "std/crypto"
250
+
251
+ пусть hash = Crypto.md5("текст")
252
+ пусть sha = Crypto.sha256("данные")
253
+ пусть encrypted = Crypto.зашифровать("секрет", "ключ")
254
+ ```
255
+
256
+ ### FileSystem (Sistema de Arquivos)
257
+
258
+ ```trest
259
+ импорт * как FS измодуля "std/filesystem"
260
+
261
+ пусть содержимое = FS.читатьФайл("файл.txt")
262
+ FS.писатьФайл("выход.txt", "Содержимое")
263
+ пусть существует = FS.существуетФайл("файл.txt")
264
+ ```
265
+
266
+ ### JSON (Manipulação de JSON)
267
+
268
+ ```trest
269
+ импорт * как JSON измодуля "std/json"
270
+
271
+ пусть obj = JSON.парсить('{"имя": "Иван"}')
272
+ пусть str = JSON.строка({имя: "Иван"})
273
+ ```
274
+
275
+ ### Date (Datas)
276
+
277
+ ```trest
278
+ импорт * как Date измодуля "std/date"
279
+
280
+ пусть agora = Date.сейчас()
281
+ пусть formatado = Date.форматировать(agora, "YYYY-MM-DD")
282
+ ```
283
+
284
+ ### Database (Base de Dados)
285
+
286
+ ```trest
287
+ импорт * как DB измодуля "std/database"
288
+
289
+ DB.подключить("sqlite", "dados.db")
290
+ DB.выполнить("SELECT * FROM usuarios")
291
+ ```
292
+
293
+ ### RegEx (Expressões Regulares)
294
+
295
+ ```trest
296
+ импорт * как RegEx измодуля "std/regex"
297
+
298
+ пусть matches = RegEx.найти("olá mundo", /olá/)
299
+ пусть replaced = RegEx.заменить("olá", /olá/, "привет")
300
+ ```
301
+
302
+ ### Path (Caminhos de Arquivo)
303
+
304
+ ```trest
305
+ импорт * как Path измодуля "std/path"
306
+
307
+ пусть dir = Path.директория("/caminho/arquivo.txt") # "/caminho"
308
+ пусть name = Path.имя("arquivo.txt") # "arquivo.txt"
309
+ ```
310
+
311
+ ### Process (Variáveis de Ambiente)
233
312
 
234
313
  ```trest
235
- импорт * как IO из "std/io"
314
+ импорт * как Process измодуля "std/process"
236
315
 
237
- пусть содержимое = IO.читатьФайл("файл.txt")
238
- IO.писатьФайл("выход.txt", "Содержимое")
239
- пусть существует = IO.существуетФайл("файл.txt")
316
+ пусть user = Process.получитьEnv("USER")
317
+ пусть envs = Process.получитьEnvVars()
240
318
  ```
241
319
 
242
- ## 🏗️ Структура проекта
320
+ ## 🏗️ Estrutura do Projeto
243
321
 
244
322
  ```
245
323
  treste/
246
324
  ├── src/
247
- │ ├── lexer.ts # Лексический анализатор
248
- │ ├── parser.ts # Синтаксический анализатор
249
- │ ├── ast.ts # Определения AST
250
- │ ├── interpreter.ts # Интерпретатор
251
- │ ├── compiler.ts # CLI компилятора
325
+ │ ├── lexer.ts # Analisador léxico
326
+ │ ├── parser.ts # Analisador sintático
327
+ │ ├── ast.ts # Definições AST
328
+ │ ├── interpreter.ts # Interpretador
329
+ │ ├── compiler.ts # CLI do compilador
252
330
  │ ├── compiler/
253
- │ │ ├── web.ts # Компилятор для Web
254
- │ │ └── exe.ts # Компилятор для исполняемого файла
255
- │ ├── std/ # Стандартная библиотека
331
+ │ │ ├── web.ts # Compilador para Web
332
+ │ │ └── exe.ts # Compilador para executável
333
+ │ ├── std/ # Biblioteca padrão
256
334
  │ │ ├── math.trest
257
335
  │ │ ├── string.trest
258
336
  │ │ ├── array.trest
337
+ │ │ ├── http.trest
338
+ │ │ ├── crypto.trest
339
+ │ │ ├── filesystem.trest
340
+ │ │ ├── json.trest
341
+ │ │ ├── date.trest
342
+ │ │ ├── database.trest
343
+ │ │ ├── regex.trest
344
+ │ │ ├── path.trest
345
+ │ │ ├── process.trest
259
346
  │ │ └── io.trest
260
- │ ├── types.ts # Система типов
261
- │ ├── errors.ts # Обработка ошибок
262
- │ └── module.ts # Система модулей
263
- ├── exemplos/ # Примеры программ
264
- ├── dist/ # Скомпилированный код
347
+ │ ├── types.ts # Sistema de tipos
348
+ │ ├── errors.ts # Tratamento de erros
349
+ │ └── module.ts # Sistema de módulos
350
+ ├── exemplos/ # Exemplos de programas
351
+ ├── docs/ # Documentação completa
352
+ ├── dist/ # Código compilado
265
353
  └── package.json
266
354
  ```
267
355
 
268
- ## 🔧 Доступные скрипты
356
+ ## 🔧 Scripts Disponíveis
269
357
 
270
358
  ```bash
271
- npm run build # Компилировать TypeScript
272
- npm run build:watch # Компилировать в режиме наблюдения
273
- npm start <файл> # Запустить файл Trest
274
- npm run compile:web # Компилировать в JavaScript
275
- npm run compile:exe # Компилировать в исполняемый файл
276
- npm run bundle # Создать исполняемый bundle
359
+ npm run build # Compilar TypeScript
360
+ npm run build:watch # Compilar em modo watch
361
+ npm start <arquivo> # Executar arquivo Trest
362
+ npm run compile:web # Compilar para JavaScript
363
+ npm run compile:exe # Compilar para executável
364
+ npm run bundle # Criar bundle executável
277
365
  ```
278
366
 
279
- ## 📝 Ключевые слова
367
+ ## 📝 Palavras-Chave
368
+
369
+ ### Cirílico (Russo) - Sintaxe Principal
280
370
 
281
- ### Кириллица (Русский) - Основной синтаксис
282
- | Trest | Эквивалент |
283
- |-------|------------|
371
+ | Trest | Equivalente |
372
+ |-------|-------------|
284
373
  | `если` | if |
285
374
  | `иначе` | else |
286
375
  | `пока` | while |
@@ -291,7 +380,7 @@ npm run bundle # Создать исполняемый bundle
291
380
  | `печать` | print/console.log |
292
381
  | `импорт` | import |
293
382
  | `экспорт` | export |
294
- | `из` | from |
383
+ | `измодуля` | from |
295
384
  | `попытаться` | try |
296
385
  | `перехватить` | catch |
297
386
  | `бросить` | throw |
@@ -301,88 +390,73 @@ npm run bundle # Создать исполняемый bundle
301
390
  | `истина` | true |
302
391
  | `ложь` | false |
303
392
 
304
- ### Português (Latino) - Alternativa
305
- | Trest | Equivalente |
306
- |-------|-------------|
307
- | `se` | if |
308
- | `senao` | else |
309
- | `enquanto` | while |
310
- | `para` | for |
311
- | `funcao` | function |
312
- | `retorne` | return |
313
- | `var`, `let`, `const` | var, let, const |
314
- | `imprima` | print/console.log |
315
- | `importe` | import |
316
- | `exporte` | export |
317
- | `de` | from |
318
- | `tente` | try |
319
- | `capture` | catch |
320
- | `lance` | throw |
321
- | `finalmente` | finally |
322
- | `quebre` | break |
323
- | `continue` | continue |
324
- | `verdadeiro` | true |
325
- | `falso` | false |
326
-
327
- ## 🌐 Компиляция для Web
328
-
329
- Компилятор для web генерирует современный JavaScript, который может использоваться в:
330
- - Браузерах (через `<script>` или bundler)
393
+ > **Nota:** Embora Trest suporte palavras-chave em latino, o uso de cirílico é a forma recomendada e nativa da linguagem.
394
+
395
+ ## 🌐 Compilação para Web
396
+
397
+ O compilador para web gera JavaScript moderno que pode ser usado em:
398
+ - Navegadores (via `<script>` ou bundler)
331
399
  - Node.js
332
400
  - React/Vue/Angular
333
- - Любой JavaScript-среде
401
+ - Qualquer ambiente JavaScript
334
402
 
335
- **Пример:**
403
+ **Exemplo:**
336
404
  ```bash
337
405
  trestc программа.trest --mode web --output app.js
338
406
  ```
339
407
 
340
- ## 💻 Компиляция для исполняемого файла
408
+ ## 💻 Compilação para Executável
341
409
 
342
- Компилятор для исполняемого файла создает `.exe` файл, который:
343
- - Не требует установленного Node.js
344
- - Автономен (включает все зависимости)
345
- - Запускается напрямую в Windows
410
+ O compilador para executável cria arquivo `.exe` que:
411
+ - Não requer Node.js instalado
412
+ - É autossuficiente (inclui todas as dependências)
413
+ - Executa diretamente no Windows
346
414
 
347
- **Пример:**
415
+ **Exemplo:**
348
416
  ```bash
349
417
  trestc программа.trest --mode exe --output app.exe
350
418
  ```
351
419
 
352
- ## 🎓 Примеры
420
+ ## 🎓 Exemplos
421
+
422
+ Veja a pasta `exemplos/` para programas completos demonstrando:
423
+ - Operações básicas
424
+ - Funções e closures
425
+ - Estruturas de controle
426
+ - Arrays e objetos
427
+ - Módulos e imports
428
+ - Tratamento de erros
429
+
430
+ **Exemplos em cirílico:**
431
+ - `exemplos/crypto_demo.trest` - Demonstração de criptografia
432
+ - `exemplos/http_demo.trest` - Cliente HTTP e servidor
433
+ - `exemplos/database_demo.trest` - Operações de banco de dados
434
+ - `exemplos/filesystem_demo.trest` - Operações de arquivo
435
+ - `exemplos/todas_funcionalidades.trest` - Exemplo completo
436
+
437
+ ## 📚 Documentação Completa
353
438
 
354
- Смотрите папку `exemplos/` для полных программ, демонстрирующих:
355
- - Базовые операции
356
- - Функции и замыкания
357
- - Структуры управления
358
- - Массивы и объекты
359
- - Модули и импорты
360
- - Обработку ошибок
439
+ Para mais informações, consulte a documentação completa em `docs/`:
361
440
 
362
- **Примеры на кириллице:**
363
- - `exemplos/hello_cyrillic.trest` - Привет Мир
364
- - `exemplos/variaveis_cyrillic.trest` - Переменные
365
- - `exemplos/condicional_cyrillic.trest` - Условные операторы
366
- - `exemplos/loop_cyrillic.trest` - Циклы
367
- - `exemplos/funcao_cyrillic.trest` - Функции
368
- - `exemplos/completo_cyrillic.trest` - Полный пример
441
+ - **[README.md](docs/README.md)** - Guia completo
442
+ - **[FEATURES.md](docs/FEATURES.md)** - Todas as funcionalidades
443
+ - **[API.md](docs/api.md)** - Referência da API
444
+ - **[ARCHITECTURE.md](docs/ARCHITECTURE.md)** - Arquitetura técnica
445
+ - **[WHY_TREST.md](docs/WHY_TREST.md)** - Por que usar Trest
369
446
 
370
- **Примеры на португальском:**
371
- - `exemplos/hello.trest` - Olá Mundo
372
- - `exemplos/variaveis.trest` - Variáveis
373
- - И другие...
447
+ Ou visite o site oficial: [https://trest-site.vercel.app](https://trest-site.vercel.app)
374
448
 
375
- ## 📄 Лицензия
449
+ ## 📄 Licença
376
450
 
377
451
  MIT
378
452
 
379
- ## 👤 Автор
453
+ ## 👤 Autor
380
454
 
381
455
  **PoktWeb**
382
456
 
383
- - Сайт документации: [https://trest-site.vercel.app](https://trest-site.vercel.app)
457
+ - Site de documentação: [https://trest-site.vercel.app](https://trest-site.vercel.app)
384
458
  - GitHub: [@poktweb](https://github.com/poktweb)
385
459
 
386
- ## 🤝 Вклад
460
+ ## 🤝 Contribuições
387
461
 
388
- Вклады приветствуются! Не стесняйтесь открывать issues и pull requests.
462
+ Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests.
package/dist/cli.js CHANGED
@@ -46,11 +46,11 @@ const interpreter_1 = require("./interpreter");
46
46
  const errors_1 = require("./errors");
47
47
  const module_1 = require("./module");
48
48
  const minimist_1 = __importDefault(require("minimist"));
49
- const VERSION = '2.3.0';
49
+ const VERSION = '2.3.2';
50
50
  function main() {
51
51
  const args = (0, minimist_1.default)(process.argv.slice(2));
52
52
  // Validação de argumentos
53
- if (args._.length === 0 && !args.help && !args.h && !args.version && !args.v && !args.update && !args.u) {
53
+ if (args._.length === 0 && !args.help && !args.h && !args.version && !args.v && !args.update && !args.u && !args.e && !args.execute) {
54
54
  showUsage();
55
55
  process.exit(1);
56
56
  }
@@ -75,6 +75,16 @@ function main() {
75
75
  }
76
76
  process.exit(0);
77
77
  }
78
+ // Modo execute inline: trest -e "печать('Olá')"
79
+ if (args.e || args.execute) {
80
+ const code = args.e || args.execute;
81
+ if (!code) {
82
+ console.error('❌ Error: No code provided for -e flag');
83
+ process.exit(1);
84
+ }
85
+ executeCode(code, process.cwd(), args);
86
+ process.exit(0);
87
+ }
78
88
  const filePath = args._[0];
79
89
  // Validações de arquivo
80
90
  if (!filePath) {
@@ -97,6 +107,9 @@ function main() {
97
107
  console.log(`📊 File size: ${fileStats.size} bytes`);
98
108
  console.log('');
99
109
  }
110
+ executeFile(filePath, args);
111
+ }
112
+ function executeFile(filePath, args) {
100
113
  try {
101
114
  const startTime = Date.now();
102
115
  // Ler arquivo
@@ -106,6 +119,24 @@ function main() {
106
119
  process.exit(0);
107
120
  }
108
121
  const basePath = path.dirname(filePath);
122
+ executeCode(code, basePath, args);
123
+ const duration = Date.now() - startTime;
124
+ if (args.verbose || args.debug) {
125
+ console.log(`\n✅ Execution completed in ${duration}ms`);
126
+ }
127
+ }
128
+ catch (error) {
129
+ handleError(error, args);
130
+ process.exit(1);
131
+ }
132
+ }
133
+ function executeCode(code, basePath, args) {
134
+ try {
135
+ // Log verbose
136
+ if (args.verbose || args.debug) {
137
+ console.log(`📄 Executing code...`);
138
+ console.log('');
139
+ }
109
140
  // Lexer
110
141
  if (args.debug)
111
142
  console.log('🔤 Tokenizing...');
@@ -130,10 +161,6 @@ function main() {
130
161
  console.log('⚡ Executing...\n');
131
162
  const interpreter = new interpreter_1.Interpreter();
132
163
  interpreter.interpret(program);
133
- const duration = Date.now() - startTime;
134
- if (args.verbose || args.debug) {
135
- console.log(`\n✅ Execution completed in ${duration}ms`);
136
- }
137
164
  }
138
165
  catch (error) {
139
166
  handleError(error, args);
@@ -168,6 +195,7 @@ function showUsage() {
168
195
  console.log(' --help, -h Show help');
169
196
  console.log(' --version, -v Show version');
170
197
  console.log(' --update, -u Update to latest version');
198
+ console.log(' -e, --execute Execute code inline');
171
199
  console.log(' --strict Strict mode');
172
200
  console.log(' --verbose, -V Verbose output');
173
201
  console.log(' --debug, -d Debug mode');
@@ -176,7 +204,8 @@ function showUsage() {
176
204
  console.log(' trest программа.trest');
177
205
  console.log(' trest exemplos/hello_cyrillic.trest');
178
206
  console.log(' trest script.trest --verbose');
179
- console.log(' trest --update # Update to latest');
207
+ console.log(' trest -e "печать(\'Olá\')" # Execute inline');
208
+ console.log(' trest --update # Update to latest');
180
209
  console.log('');
181
210
  console.log('Compilation:');
182
211
  console.log(' trestc программа.trest --mode web');
@@ -193,6 +222,7 @@ Options:
193
222
  --help, -h Show this help message
194
223
  --version, -v Show version number
195
224
  --update, -u Check and update to latest version from NPM
225
+ -e, --execute Execute code inline (без файла)
196
226
  --strict Strict mode (show stack trace on errors)
197
227
  --verbose, -V Verbose output
198
228
  --debug, -d Debug mode (detailed execution info)
@@ -202,6 +232,8 @@ Examples:
202
232
  trest exemplos/hello_cyrillic.trest --strict
203
233
  trest script.trest --verbose
204
234
  trest program.trest --debug
235
+ trest -e "печать('Olá, Mundo')"
236
+ trest -e "пусть x = 10; печать(x)"
205
237
  trest --update
206
238
 
207
239
  Compilation:
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "treste",
3
- "version": "2.3.0",
3
+ "version": "2.3.2",
4
4
  "description": "Trest - Linguagem de programação moderna e profissional para Web e Desktop com suporte a Cirílico",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -59,9 +59,7 @@
59
59
  "src/std/",
60
60
  "scripts/",
61
61
  "README.md",
62
- "README_PT.md",
63
62
  "LICENSE",
64
- "CHANGELOG.md",
65
63
  "INSTALL.md"
66
64
  ],
67
65
  "repository": {
package/CHANGELOG.md DELETED
@@ -1,89 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to Trest Language will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [2.2.0] - 2024-11-01
9
-
10
- **Desenvolvido por:** PoktWeb
11
- **Documentação:** https://trest-site.vercel.app
12
-
13
- ### Added
14
- - 🔄 **Comando de Atualização Automática** - `trest --update` / `trest -u`
15
- - 📡 Integração com NPM Registry para verificação de versões
16
- - ✅ Comparação semântica de versões
17
- - 🔍 Script Node.js para verificação e atualização automática
18
- - 📊 Feedback visual amigável durante atualização
19
- - 🛠️ Suporte para atualização global automática
20
-
21
- ### Changed
22
- - 📝 CLI atualizado com novo comando `--update`
23
- - 🎨 Help messages expandidos
24
- - 🔧 Validação de argumentos melhorada
25
-
26
- ## [2.1.0] - 2024-11-01
27
-
28
- **Desenvolvido por:** PoktWeb
29
- **Documentação:** https://trest-site.vercel.app
30
-
31
- ### Added
32
- - 🌐 **HTTP Module** - Cliente e Servidor HTTP completo com routing
33
- - 🔐 **Crypto Module** - MD5, SHA256, SHA512, AES encryption/decryption
34
- - 📁 **FileSystem Module** - Operações completas de I/O
35
- - 📄 **JSON Module** - Parse e Stringify
36
- - 📅 **Date Module** - Formatação de datas e timezone
37
- - 🗄️ **Database Module** - ORM e Query Builder
38
- - 🖥️ **GUI Module** - Interface gráfica e componentes
39
- - ⚡ **Async Module** - Promises, delays, timers
40
- - 🔧 Parser com suporte a `import * as X from "module"`
41
- - 🎯 Interpreter com acesso a propriedades de classes estáticas
42
- - 📚 Bibliotecas nativas em TypeScript (std-native.ts)
43
- - 🧪 Exemplos funcionais para todos os módulos
44
-
45
- ### Changed
46
- - 📦 Arquitetura modular expandida
47
- - 🎨 Melhor integração entre módulos Trest e TypeScript
48
- - 🚀 Performance otimizada para chamadas nativas
49
-
50
- ## [2.0.0] - 2024-11-01
51
-
52
- **Desenvolvido por:** PoktWeb
53
- **Documentação:** https://trest-site.vercel.app
54
-
55
- ### Added
56
- - ✨ Enhanced npm package configuration with proper installation scripts
57
- - 🛠️ Pre-install and post-install validation scripts
58
- - 📝 Improved CLI with verbose and debug modes
59
- - 🔍 Better error handling and logging
60
- - 📦 Proper .npmignore configuration
61
- - 📄 LICENSE file (MIT)
62
- - 🎯 Engine requirements validation (Node >= 18, npm >= 9)
63
- - 🌍 Multi-platform support (Windows, Linux, macOS)
64
- - 🏷️ Version management scripts
65
-
66
- ### Changed
67
- - 📚 Updated README with comprehensive installation instructions
68
- - 🔧 Improved CLI error messages with emoji indicators
69
- - 📊 Enhanced compiler output with detailed statistics
70
- - 🎨 Better user experience with colored output
71
-
72
- ### Fixed
73
- - 🐛 Fixed bin paths in package.json
74
- - 🔧 Corrected post-build script paths
75
- - ✅ Improved TypeScript compilation
76
-
77
- ## [1.0.0] - Initial Release
78
-
79
- ### Added
80
- - 🎉 Initial release of Trest Language
81
- - 🔤 Cyrillic support for keywords
82
- - 🌐 Web compilation (JavaScript output)
83
- - 💻 Executable compilation (.exe output)
84
- - 📚 Standard library (Math, String, Array, IO)
85
- - 📦 Module system (import/export)
86
- - 🔄 Error handling (try/catch/throw)
87
- - 🎯 Variables, functions, loops, conditions
88
- - 📖 Complete documentation
89
-
package/README_PT.md DELETED
@@ -1,261 +0,0 @@
1
- # Trest Language - Linguagem de Programação Moderna
2
-
3
- Uma linguagem de programação moderna e profissional, compilável para **Web** e **Desktop (.exe)** com suporte completo a caracteres especiais (Cirílico e português).
4
-
5
- ## 🚀 Características Principais
6
-
7
- - ✅ **Compilação para Web** - Gera JavaScript otimizado
8
- - ✅ **Compilação para Desktop** - Cria executáveis nativos .exe
9
- - ✅ **Sistema de Módulos** - Import/Export de módulos
10
- - ✅ **Biblioteca Padrão** - std com funções matemáticas, strings, arrays e I/O
11
- - ✅ **Tratamento de Erros** - Try/Catch/Throw completo
12
- - ✅ **Sintaxe Flexível** - Suporta Cirílico e Português
13
- - ✅ **Tipagem Dinâmica** - Tipos inferidos automaticamente
14
- - ✅ **Sistema de Build Profissional**
15
-
16
- ## 📦 Instalação
17
-
18
- ### Instalação Global (Recomendado)
19
-
20
- ```bash
21
- npm install -g trest-language
22
- ```
23
-
24
- Após instalação, os comandos `trest` e `trestc` estarão disponíveis globalmente:
25
- ```bash
26
- trest --version
27
- trestc --help
28
- ```
29
-
30
- ### Instalação Local em Projeto
31
-
32
- ```bash
33
- npm install trest-language
34
- ```
35
-
36
- Use via `npx`:
37
- ```bash
38
- npx trest programa.trest
39
- npx trestc programa.trest --mode web
40
- ```
41
-
42
- ### Instalação a partir do Código
43
-
44
- ```bash
45
- git clone https://github.com/trest-language/trest.git
46
- cd trest
47
- npm install
48
- npm run build
49
- npm link # Para uso global
50
- ```
51
-
52
- ## 🎯 Início Rápido
53
-
54
- ### Executar arquivo diretamente
55
- ```bash
56
- trest programa.trest
57
- ```
58
-
59
- ### Compilar para Web (JavaScript)
60
- ```bash
61
- trestc programa.trest --mode web -o app.js
62
- ```
63
-
64
- ### Compilar para Executável
65
- ```bash
66
- trestc programa.trest --mode exe -o app.exe
67
- ```
68
-
69
- ## 📚 Sintaxe da Linguagem
70
-
71
- ### Variáveis
72
-
73
- ```trest
74
- перем nome = "Trest" // Cirílico
75
- var idade = 25 // Português
76
- конст pi = 3.14159 // Cirílico
77
- ```
78
-
79
- ### Funções
80
-
81
- ```trest
82
- // Cirílico
83
- функция somar(a, b) {
84
- вернуть a + b
85
- }
86
-
87
- // Português
88
- funcao somar(a, b) {
89
- retorne a + b
90
- }
91
- ```
92
-
93
- ### Condicionais
94
-
95
- ```trest
96
- // Cirílico
97
- если (idade >= 18) {
98
- печать("Maior de idade")
99
- } иначе {
100
- печать("Menor de idade")
101
- }
102
-
103
- // Português
104
- se (idade >= 18) {
105
- imprima("Maior de idade")
106
- } senao {
107
- imprima("Menor de idade")
108
- }
109
- ```
110
-
111
- ### Loops
112
-
113
- ```trest
114
- // While
115
- пока (i < 10) {
116
- печать(i)
117
- i = i + 1
118
- }
119
-
120
- // For
121
- для (пусть i = 0; i < 10; i = i + 1) {
122
- печать(i)
123
- }
124
- ```
125
-
126
- ### Biblioteca Padrão
127
-
128
- ```trest
129
- импорт * как Math из "std/math"
130
- импорт * como Math de "std/math"
131
-
132
- пусть resultado = Math.abs(-5)
133
- Math.sqrt(16)
134
- Math.PI
135
- ```
136
-
137
- ## 📖 Documentação
138
-
139
- - [README Principal](README.md) - Visão geral completa
140
- - [Guia de Instalação](INSTALL.md) - Instruções detalhadas
141
- - [Documentação Completa](docs/README.md) - Referência completa
142
- - [Guia de Início](docs/guide.md) - Tutorial passo a passo
143
- - [Exemplos](docs/examples.md) - Códigos de exemplo
144
- - [API Reference](docs/api.md) - Referência de API
145
-
146
- ## 🛠️ Requisitos
147
-
148
- - **Node.js**: >= 18.0.0
149
- - **npm**: >= 9.0.0
150
-
151
- Verifique suas versões:
152
- ```bash
153
- node --version
154
- npm --version
155
- ```
156
-
157
- ## 🔧 Scripts Disponíveis
158
-
159
- ```bash
160
- npm run build # Compilar TypeScript
161
- npm run build:watch # Compilar em modo watch
162
- npm run clean # Limpar arquivos compilados
163
- npm start <arquivo> # Executar arquivo Trest
164
- ```
165
-
166
- ## 📝 Palavras-Chave
167
-
168
- ### Cirílico (Principal)
169
- | Trest | Equivalente |
170
- |-------|-------------|
171
- | `если` | if |
172
- | `иначе` | else |
173
- | `пока` | while |
174
- | `для` | for |
175
- | `функция` | function |
176
- | `вернуть` | return |
177
- | `печать` | print |
178
-
179
- ### Português (Alternativo)
180
- | Trest | Equivalente |
181
- |-------|-------------|
182
- | `se` | if |
183
- | `senao` | else |
184
- | `enquanto` | while |
185
- | `para` | for |
186
- | `funcao` | function |
187
- | `retorne` | return |
188
- | `imprima` | print |
189
-
190
- ## 🌐 Compilação
191
-
192
- ### Para Web
193
-
194
- O compilador web gera JavaScript moderno compatível com:
195
- - Navegadores (via `<script>` ou bundler)
196
- - Node.js
197
- - React/Vue/Angular
198
- - Qualquer ambiente JavaScript
199
-
200
- ```bash
201
- trestc programa.trest --mode web
202
- ```
203
-
204
- ### Para Executável
205
-
206
- O compilador de executável cria arquivos `.exe` que:
207
- - Não requerem Node.js instalado
208
- - São autônomos (incluem todas as dependências)
209
- - Executam diretamente no Windows
210
-
211
- ```bash
212
- trestc programa.trest --mode exe
213
- ```
214
-
215
- ## 🏗️ Estrutura do Projeto
216
-
217
- ```
218
- treste/
219
- ├── src/
220
- │ ├── lexer.ts # Analisador léxico
221
- │ ├── parser.ts # Analisador sintático
222
- │ ├── ast.ts # Definições AST
223
- │ ├── interpreter.ts # Interpretador
224
- │ ├── compiler.ts # CLI do compilador
225
- │ ├── compiler/
226
- │ │ ├── web.ts # Compilador Web
227
- │ │ └── exe.ts # Compilador EXE
228
- │ ├── std/ # Biblioteca padrão
229
- │ └── ...
230
- ├── dist/ # Código compilado
231
- ├── exemplos/ # Programas exemplo
232
- ├── docs/ # Documentação
233
- └── package.json
234
- ```
235
-
236
- ## 🤝 Contribuindo
237
-
238
- Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests.
239
-
240
- ## 📄 Licença
241
-
242
- MIT - veja [LICENSE](LICENSE) para mais detalhes.
243
-
244
- ## 👤 Autor
245
-
246
- **PoktWeb**
247
-
248
- - 📖 Site da Documentação: [https://trest-site.vercel.app](https://trest-site.vercel.app)
249
- - 💻 GitHub: [@poktweb](https://github.com/poktweb)
250
-
251
- ## 🔗 Links
252
-
253
- - 📦 Site da Documentação: [https://trest-site.vercel.app](https://trest-site.vercel.app)
254
- - 🔧 GitHub Repository: [https://github.com/trest-language/trest](https://github.com/trest-language/trest)
255
- - 🐛 Issues: [https://github.com/trest-language/trest/issues](https://github.com/trest-language/trest/issues)
256
- - 📚 Documentação Completa: [docs/README.md](docs/README.md)
257
-
258
- ## 🙏 Agradecimentos
259
-
260
- Obrigado por usar o Trest Language!
261
-