treste 2.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 (68) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/INSTALL.md +264 -0
  3. package/LICENSE +22 -0
  4. package/README.md +388 -0
  5. package/README_PT.md +261 -0
  6. package/dist/ast.d.ts +140 -0
  7. package/dist/ast.d.ts.map +1 -0
  8. package/dist/ast.js +3 -0
  9. package/dist/ast.js.map +1 -0
  10. package/dist/cli.d.ts +3 -0
  11. package/dist/cli.d.ts.map +1 -0
  12. package/dist/cli.js +201 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/compiler/exe.d.ts +13 -0
  15. package/dist/compiler/exe.d.ts.map +1 -0
  16. package/dist/compiler/exe.js +129 -0
  17. package/dist/compiler/exe.js.map +1 -0
  18. package/dist/compiler/web.d.ts +43 -0
  19. package/dist/compiler/web.d.ts.map +1 -0
  20. package/dist/compiler/web.js +413 -0
  21. package/dist/compiler/web.js.map +1 -0
  22. package/dist/compiler.d.ts +3 -0
  23. package/dist/compiler.d.ts.map +1 -0
  24. package/dist/compiler.js +195 -0
  25. package/dist/compiler.js.map +1 -0
  26. package/dist/errors.d.ts +21 -0
  27. package/dist/errors.d.ts.map +1 -0
  28. package/dist/errors.js +56 -0
  29. package/dist/errors.js.map +1 -0
  30. package/dist/index.d.ts +5 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +26 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/interpreter.d.ts +32 -0
  35. package/dist/interpreter.d.ts.map +1 -0
  36. package/dist/interpreter.js +425 -0
  37. package/dist/interpreter.js.map +1 -0
  38. package/dist/lexer.d.ts +113 -0
  39. package/dist/lexer.d.ts.map +1 -0
  40. package/dist/lexer.js +446 -0
  41. package/dist/lexer.js.map +1 -0
  42. package/dist/module.d.ts +19 -0
  43. package/dist/module.d.ts.map +1 -0
  44. package/dist/module.js +112 -0
  45. package/dist/module.js.map +1 -0
  46. package/dist/parser.d.ts +45 -0
  47. package/dist/parser.d.ts.map +1 -0
  48. package/dist/parser.js +599 -0
  49. package/dist/parser.js.map +1 -0
  50. package/dist/std/array.trest +85 -0
  51. package/dist/std/index.trest +13 -0
  52. package/dist/std/io.trest +17 -0
  53. package/dist/std/math.trest +66 -0
  54. package/dist/std/string.trest +61 -0
  55. package/dist/types.d.ts +29 -0
  56. package/dist/types.d.ts.map +1 -0
  57. package/dist/types.js +86 -0
  58. package/dist/types.js.map +1 -0
  59. package/package.json +101 -0
  60. package/scripts/postbuild.js +90 -0
  61. package/scripts/postinstall.js +89 -0
  62. package/scripts/preinstall.js +92 -0
  63. package/scripts/version.js +52 -0
  64. package/src/std/array.trest +85 -0
  65. package/src/std/index.trest +13 -0
  66. package/src/std/io.trest +17 -0
  67. package/src/std/math.trest +66 -0
  68. package/src/std/string.trest +61 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,47 @@
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.0.0] - 2024-11-01
9
+
10
+ **Desenvolvido por:** PoktWeb
11
+ **Documentação:** https://trest-site.vercel.app
12
+
13
+ ### Added
14
+ - ✨ Enhanced npm package configuration with proper installation scripts
15
+ - 🛠️ Pre-install and post-install validation scripts
16
+ - 📝 Improved CLI with verbose and debug modes
17
+ - 🔍 Better error handling and logging
18
+ - 📦 Proper .npmignore configuration
19
+ - 📄 LICENSE file (MIT)
20
+ - 🎯 Engine requirements validation (Node >= 18, npm >= 9)
21
+ - 🌍 Multi-platform support (Windows, Linux, macOS)
22
+ - 🏷️ Version management scripts
23
+
24
+ ### Changed
25
+ - 📚 Updated README with comprehensive installation instructions
26
+ - 🔧 Improved CLI error messages with emoji indicators
27
+ - 📊 Enhanced compiler output with detailed statistics
28
+ - 🎨 Better user experience with colored output
29
+
30
+ ### Fixed
31
+ - 🐛 Fixed bin paths in package.json
32
+ - 🔧 Corrected post-build script paths
33
+ - ✅ Improved TypeScript compilation
34
+
35
+ ## [1.0.0] - Initial Release
36
+
37
+ ### Added
38
+ - 🎉 Initial release of Trest Language
39
+ - 🔤 Cyrillic support for keywords
40
+ - 🌐 Web compilation (JavaScript output)
41
+ - 💻 Executable compilation (.exe output)
42
+ - 📚 Standard library (Math, String, Array, IO)
43
+ - 📦 Module system (import/export)
44
+ - 🔄 Error handling (try/catch/throw)
45
+ - 🎯 Variables, functions, loops, conditions
46
+ - 📖 Complete documentation
47
+
package/INSTALL.md ADDED
@@ -0,0 +1,264 @@
1
+ # 📦 Guia de Instalação - Trest Language
2
+
3
+ Este guia fornece instruções detalhadas para instalar e usar o Trest Language em diferentes cenários.
4
+
5
+ ## 📋 Pré-requisitos
6
+
7
+ Antes de instalar o Trest, certifique-se de ter:
8
+
9
+ - **Node.js** >= 18.0.0
10
+ - **npm** >= 9.0.0
11
+
12
+ Verifique suas versões:
13
+ ```bash
14
+ node --version
15
+ npm --version
16
+ ```
17
+
18
+ Se você não tem o Node.js instalado, baixe em: https://nodejs.org/
19
+
20
+ ## 🚀 Instalação
21
+
22
+ ### Opção 1: Instalação Global (Recomendado)
23
+
24
+ Instale o Trest globalmente para ter acesso aos comandos `trest` e `trestc` em qualquer lugar:
25
+
26
+ ```bash
27
+ npm install -g trest-language
28
+ ```
29
+
30
+ **Verifique a instalação:**
31
+ ```bash
32
+ trest --version
33
+ trestc --version
34
+ ```
35
+
36
+ **Uso:**
37
+ ```bash
38
+ trest arquivo.trest
39
+ trestc arquivo.trest --mode web
40
+ ```
41
+
42
+ ### Opção 2: Instalação Local em Projeto
43
+
44
+ Para usar o Trest apenas em um projeto específico:
45
+
46
+ ```bash
47
+ npm install trest-language
48
+ ```
49
+
50
+ **Uso via npx:**
51
+ ```bash
52
+ npx trest arquivo.trest
53
+ npx trestc arquivo.trest --mode web
54
+ ```
55
+
56
+ ### Opção 3: Instalação a partir do Código Fonte
57
+
58
+ Se você quer contribuir ou customizar o Trest:
59
+
60
+ ```bash
61
+ # Clone o repositório
62
+ git clone https://github.com/trest-language/trest.git
63
+ cd trest
64
+
65
+ # Instale as dependências
66
+ npm install
67
+
68
+ # Compile o projeto
69
+ npm run build
70
+
71
+ # (Opcional) Linke globalmente para testes
72
+ npm link
73
+ ```
74
+
75
+ ## 🎯 Verificação da Instalação
76
+
77
+ Após instalar, teste com um arquivo de exemplo:
78
+
79
+ ```bash
80
+ # Verificar versão
81
+ trest --version
82
+
83
+ # Ver ajuda
84
+ trest --help
85
+
86
+ # Executar exemplo
87
+ trest exemplos/hello_cyrillic.trest
88
+ ```
89
+
90
+ ## 🔧 Configuração
91
+
92
+ ### Arquivo de Configuração
93
+
94
+ O Trest cria automaticamente um arquivo `.trestrc` na primeira execução:
95
+
96
+ ```json
97
+ {
98
+ "version": "2.0.0",
99
+ "compiler": {
100
+ "web": {
101
+ "minify": false,
102
+ "bundle": true
103
+ },
104
+ "exe": {
105
+ "minify": false,
106
+ "standalone": true
107
+ }
108
+ },
109
+ "runtime": {
110
+ "strictMode": false,
111
+ "debugMode": false
112
+ }
113
+ }
114
+ ```
115
+
116
+ ### Variáveis de Ambiente (Opcional)
117
+
118
+ Você pode configurar variáveis de ambiente:
119
+
120
+ ```bash
121
+ # Modo debug global
122
+ export TREST_DEBUG=true
123
+
124
+ # Caminho para módulos std customizados
125
+ export TREST_STD_PATH=/caminho/para/std
126
+ ```
127
+
128
+ ## 🐛 Resolução de Problemas
129
+
130
+ ### Erro: "command not found: trest"
131
+
132
+ **Causa:** Instalação global não funcionou ou PATH não está configurado.
133
+
134
+ **Solução:**
135
+ ```bash
136
+ # Reinstalar globalmente
137
+ npm install -g trest-language
138
+
139
+ # Verificar local de instalação global
140
+ npm config get prefix
141
+
142
+ # Adicionar ao PATH (Linux/Mac)
143
+ export PATH=$PATH:$(npm config get prefix)/bin
144
+ ```
145
+
146
+ ### Erro: "Node version too old"
147
+
148
+ **Causa:** Versão do Node.js é menor que 18.
149
+
150
+ **Solução:** Atualize o Node.js:
151
+ ```bash
152
+ # Usando nvm (recomendado)
153
+ nvm install 18
154
+ nvm use 18
155
+
156
+ # Ou baixe do site oficial
157
+ # https://nodejs.org/
158
+ ```
159
+
160
+ ### Erro: "Permission denied"
161
+
162
+ **Causa:** Sem permissões para instalar globalmente.
163
+
164
+ **Soluções:**
165
+
166
+ **Linux/Mac:**
167
+ ```bash
168
+ # Usar sudo (não recomendado)
169
+ sudo npm install -g trest-language
170
+
171
+ # Ou configurar npm para não usar sudo
172
+ mkdir ~/.npm-global
173
+ npm config set prefix '~/.npm-global'
174
+ export PATH=~/.npm-global/bin:$PATH
175
+ ```
176
+
177
+ **Windows:** Execute o PowerShell como Administrador
178
+
179
+ ### Binários não encontrados após build
180
+
181
+ **Solução:**
182
+ ```bash
183
+ # Limpar e reconstruir
184
+ npm run clean
185
+ npm run build
186
+
187
+ # Verificar se os arquivos existem
188
+ ls dist/cli.js dist/compiler.js
189
+ ```
190
+
191
+ ## 🔄 Atualização
192
+
193
+ Para atualizar para a versão mais recente:
194
+
195
+ ```bash
196
+ # Global
197
+ npm update -g trest-language
198
+
199
+ # Local
200
+ npm update trest-language
201
+
202
+ # Verificar versão
203
+ trest --version
204
+ ```
205
+
206
+ ## 🗑️ Desinstalação
207
+
208
+ Para remover o Trest:
209
+
210
+ ```bash
211
+ # Desinstalar globalmente
212
+ npm uninstall -g trest-language
213
+
214
+ # Desinstalar localmente
215
+ npm uninstall trest-language
216
+ ```
217
+
218
+ ## 📚 Próximos Passos
219
+
220
+ Depois de instalar, consulte:
221
+
222
+ - [README.md](README.md) - Visão geral do projeto
223
+ - [docs/README.md](docs/README.md) - Documentação completa
224
+ - [docs/guide.md](docs/guide.md) - Guia de início rápido
225
+ - [docs/examples.md](docs/examples.md) - Exemplos de código
226
+
227
+ ## 💡 Dicas
228
+
229
+ 1. **Use `--verbose`** para ver detalhes da execução:
230
+ ```bash
231
+ trest arquivo.trest --verbose
232
+ ```
233
+
234
+ 2. **Use `--debug`** para debugging detalhado:
235
+ ```bash
236
+ trest arquivo.trest --debug
237
+ ```
238
+
239
+ 3. **Use `--strict`** para erros mais informativos:
240
+ ```bash
241
+ trest arquivo.trest --strict
242
+ ```
243
+
244
+ 4. **Para compilação de produção:**
245
+ ```bash
246
+ trestc app.trest --mode web --minify
247
+ ```
248
+
249
+ ## 🤝 Contribuindo
250
+
251
+ Veja [CONTRIBUTING.md](CONTRIBUTING.md) para informações sobre como contribuir.
252
+
253
+ ## 📞 Suporte
254
+
255
+ Se você encontrar problemas:
256
+
257
+ 1. Verifique a seção de resolução de problemas acima
258
+ 2. Consulte as [issues no GitHub](https://github.com/trest-language/trest/issues)
259
+ 3. Abra uma nova issue se necessário
260
+
261
+ ## 📄 Licença
262
+
263
+ MIT - veja [LICENSE](LICENSE) para mais detalhes.
264
+
package/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Trest Language Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
package/README.md ADDED
@@ -0,0 +1,388 @@
1
+ # Trest - Язык программирования с поддержкой кириллицы
2
+
3
+ Современный язык программирования, профессионально структурированный и компилируемый для **Web** и **Desktop (.exe)** с полной поддержкой кириллицы (русский алфавит).
4
+
5
+ > **📖 Версия на португальском:** Для документации на португальском используйте ключевые слова на португальском (se, enquanto, funcao, и т.д.) или смотрите примеры в папке `exemplos/`.
6
+
7
+ ## 🚀 Основные возможности
8
+
9
+ - ✅ **Компиляция для Web** - Генерирует оптимизированный JavaScript
10
+ - ✅ **Компиляция для Desktop** - Создает нативные исполняемые файлы .exe
11
+ - ✅ **Система модулей** - Импорт/Экспорт модулей
12
+ - ✅ **Стандартная библиотека** - std с математическими функциями, строками, массивами и I/O
13
+ - ✅ **Обработка ошибок** - Расширенный Try/Catch/Throw
14
+ - ✅ **Синтаксис на кириллице** - Ключевые слова на русском языке
15
+ - ✅ **Динамическая типизация** - Типы выводятся автоматически
16
+ - ✅ **Система сборки** - Профессиональные инструменты компиляции
17
+
18
+ ## 📦 Установка
19
+
20
+ ### Установка через npm (рекомендуется)
21
+
22
+ **Глобальная установка:**
23
+ ```bash
24
+ npm install -g trest-language
25
+ ```
26
+
27
+ После установки команды `trest` и `trestc` будут доступны глобально:
28
+ ```bash
29
+ trest --version
30
+ trestc --help
31
+ ```
32
+
33
+ **Локальная установка в проект:**
34
+ ```bash
35
+ npm install trest-language
36
+ ```
37
+
38
+ Используйте через `npx`:
39
+ ```bash
40
+ npx trest programa.trest
41
+ npx trestc programa.trest --mode web
42
+ ```
43
+
44
+ ### Установка из исходников
45
+
46
+ Если вы хотите установить из исходников или внести изменения:
47
+
48
+ ```bash
49
+ # Клонировать репозиторий
50
+ git clone https://github.com/trest-language/trest.git
51
+ cd trest
52
+
53
+ # Установить зависимости
54
+ npm install
55
+
56
+ # Собрать проект
57
+ npm run build
58
+
59
+ # (Опционально) Создать симлинки для глобального использования
60
+ npm link
61
+ ```
62
+
63
+ ### Требования
64
+
65
+ - **Node.js**: >= 18.0.0
66
+ - **npm**: >= 9.0.0
67
+ - **TypeScript**: 5.0+ (для разработки)
68
+
69
+ Проверьте вашу версию:
70
+ ```bash
71
+ node --version # должно быть >= v18
72
+ npm --version # должно быть >= 9
73
+ ```
74
+
75
+ ## 🎯 Быстрый старт
76
+
77
+ ### Запуск напрямую (интерпретатор)
78
+ ```bash
79
+ npm start exemplos/hello_cyrillic.trest
80
+ # или
81
+ trest exemplos/hello_cyrillic.trest
82
+ ```
83
+
84
+ ### Компиляция для Web (JavaScript)
85
+ ```bash
86
+ npm run compile:web -- exemplos/hello_cyrillic.trest
87
+ # или
88
+ trestc exemplos/hello_cyrillic.trest --mode web --output app.js
89
+ ```
90
+
91
+ ### Компиляция для исполняемого файла (.exe)
92
+ ```bash
93
+ npm run compile:exe -- exemplos/hello_cyrillic.trest
94
+ # или
95
+ trestc exemplos/hello_cyrillic.trest --mode exe --output app.exe
96
+ ```
97
+
98
+ ## 📚 Синтаксис языка
99
+
100
+ ### Переменные
101
+
102
+ ```trest
103
+ перем имя = "Trest"
104
+ пусть возраст = 25
105
+ конст pi = 3.14159
106
+ ```
107
+
108
+ ### Функции
109
+
110
+ ```trest
111
+ функция сложить(a, b) {
112
+ вернуть a + b
113
+ }
114
+
115
+ пусть результат = сложить(5, 3)
116
+ печать(результат)
117
+ ```
118
+
119
+ ### Условия
120
+
121
+ ```trest
122
+ если (возраст >= 18) {
123
+ печать("Совершеннолетний")
124
+ } иначе {
125
+ печать("Несовершеннолетний")
126
+ }
127
+ ```
128
+
129
+ ### Циклы
130
+
131
+ **Пока:**
132
+ ```trest
133
+ пусть i = 0
134
+ пока (i < 10) {
135
+ печать(i)
136
+ i = i + 1
137
+ }
138
+ ```
139
+
140
+ **Для:**
141
+ ```trest
142
+ для (пусть i = 0; i < 10; i = i + 1) {
143
+ печать(i)
144
+ }
145
+ ```
146
+
147
+ ### Обработка ошибок
148
+
149
+ ```trest
150
+ попытаться {
151
+ пусть результат = разделить(10, 0)
152
+ } перехватить (ошибка) {
153
+ печать("Ошибка:", ошибка)
154
+ } наконец {
155
+ печать("Операция завершена")
156
+ }
157
+ ```
158
+
159
+ ### Модули
160
+
161
+ **Импорт:**
162
+ ```trest
163
+ импорт { max, min } из "std/math"
164
+ импорт * как Math из "std/math"
165
+ ```
166
+
167
+ **Экспорт:**
168
+ ```trest
169
+ экспорт функция мояФункция() {
170
+ вернуть "Привет"
171
+ }
172
+
173
+ экспорт конст константа = 42
174
+ ```
175
+
176
+ ### Объекты
177
+
178
+ ```trest
179
+ пусть человек = {
180
+ имя: "Иван",
181
+ возраст: 30,
182
+ город: "Москва"
183
+ }
184
+
185
+ печать(человек.имя) # "Иван"
186
+ ```
187
+
188
+ ### Массивы
189
+
190
+ ```trest
191
+ пусть числа = [1, 2, 3, 4, 5]
192
+ печать(числа[0]) # 1
193
+
194
+ числа[0] = 10
195
+ печать(числа) # [10, 2, 3, 4, 5]
196
+ ```
197
+
198
+ ## 📖 Стандартная библиотека (std)
199
+
200
+ ### Math
201
+
202
+ ```trest
203
+ импорт * как Math из "std/math"
204
+
205
+ пусть x = Math.abs(-5) # 5
206
+ пусть y = Math.max(10, 20) # 20
207
+ пусть z = Math.sqrt(16) # 4
208
+ пусть pi = Math.PI # 3.14159...
209
+ ```
210
+
211
+ ### String
212
+
213
+ ```trest
214
+ импорт * как String из "std/string"
215
+
216
+ пусть текст = "Привет Мир"
217
+ пусть размер = String.размер(текст) # 11
218
+ пусть верхний = String.верхний(текст) # "ПРИВЕТ МИР"
219
+ ```
220
+
221
+ ### Array
222
+
223
+ ```trest
224
+ импорт * как Array из "std/array"
225
+
226
+ пусть arr = [1, 2, 3]
227
+ Array.добавить(arr, 4) # [1, 2, 3, 4]
228
+ пусть обратный = Array.обратить(arr) # [4, 3, 2, 1]
229
+ пусть отсортированный = Array.отсортировать([3, 1, 2]) # [1, 2, 3]
230
+ ```
231
+
232
+ ### IO
233
+
234
+ ```trest
235
+ импорт * как IO из "std/io"
236
+
237
+ пусть содержимое = IO.читатьФайл("файл.txt")
238
+ IO.писатьФайл("выход.txt", "Содержимое")
239
+ пусть существует = IO.существуетФайл("файл.txt")
240
+ ```
241
+
242
+ ## 🏗️ Структура проекта
243
+
244
+ ```
245
+ treste/
246
+ ├── src/
247
+ │ ├── lexer.ts # Лексический анализатор
248
+ │ ├── parser.ts # Синтаксический анализатор
249
+ │ ├── ast.ts # Определения AST
250
+ │ ├── interpreter.ts # Интерпретатор
251
+ │ ├── compiler.ts # CLI компилятора
252
+ │ ├── compiler/
253
+ │ │ ├── web.ts # Компилятор для Web
254
+ │ │ └── exe.ts # Компилятор для исполняемого файла
255
+ │ ├── std/ # Стандартная библиотека
256
+ │ │ ├── math.trest
257
+ │ │ ├── string.trest
258
+ │ │ ├── array.trest
259
+ │ │ └── io.trest
260
+ │ ├── types.ts # Система типов
261
+ │ ├── errors.ts # Обработка ошибок
262
+ │ └── module.ts # Система модулей
263
+ ├── exemplos/ # Примеры программ
264
+ ├── dist/ # Скомпилированный код
265
+ └── package.json
266
+ ```
267
+
268
+ ## 🔧 Доступные скрипты
269
+
270
+ ```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
277
+ ```
278
+
279
+ ## 📝 Ключевые слова
280
+
281
+ ### Кириллица (Русский) - Основной синтаксис
282
+ | Trest | Эквивалент |
283
+ |-------|------------|
284
+ | `если` | if |
285
+ | `иначе` | else |
286
+ | `пока` | while |
287
+ | `для` | for |
288
+ | `функция` | function |
289
+ | `вернуть` | return |
290
+ | `перем`, `пусть`, `конст` | var, let, const |
291
+ | `печать` | print/console.log |
292
+ | `импорт` | import |
293
+ | `экспорт` | export |
294
+ | `из` | from |
295
+ | `попытаться` | try |
296
+ | `перехватить` | catch |
297
+ | `бросить` | throw |
298
+ | `наконец` | finally |
299
+ | `прервать` | break |
300
+ | `продолжить` | continue |
301
+ | `истина` | true |
302
+ | `ложь` | false |
303
+
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)
331
+ - Node.js
332
+ - React/Vue/Angular
333
+ - Любой JavaScript-среде
334
+
335
+ **Пример:**
336
+ ```bash
337
+ trestc программа.trest --mode web --output app.js
338
+ ```
339
+
340
+ ## 💻 Компиляция для исполняемого файла
341
+
342
+ Компилятор для исполняемого файла создает `.exe` файл, который:
343
+ - Не требует установленного Node.js
344
+ - Автономен (включает все зависимости)
345
+ - Запускается напрямую в Windows
346
+
347
+ **Пример:**
348
+ ```bash
349
+ trestc программа.trest --mode exe --output app.exe
350
+ ```
351
+
352
+ ## 🎓 Примеры
353
+
354
+ Смотрите папку `exemplos/` для полных программ, демонстрирующих:
355
+ - Базовые операции
356
+ - Функции и замыкания
357
+ - Структуры управления
358
+ - Массивы и объекты
359
+ - Модули и импорты
360
+ - Обработку ошибок
361
+
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` - Полный пример
369
+
370
+ **Примеры на португальском:**
371
+ - `exemplos/hello.trest` - Olá Mundo
372
+ - `exemplos/variaveis.trest` - Variáveis
373
+ - И другие...
374
+
375
+ ## 📄 Лицензия
376
+
377
+ MIT
378
+
379
+ ## 👤 Автор
380
+
381
+ **PoktWeb**
382
+
383
+ - Сайт документации: [https://trest-site.vercel.app](https://trest-site.vercel.app)
384
+ - GitHub: [@poktweb](https://github.com/poktweb)
385
+
386
+ ## 🤝 Вклад
387
+
388
+ Вклады приветствуются! Не стесняйтесь открывать issues и pull requests.