treste 2.2.0 → 2.3.1
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 +2 -2
- package/README.md +224 -150
- package/dist/cli.js +1 -1
- package/dist/interpreter.d.ts +8 -0
- package/dist/interpreter.d.ts.map +1 -1
- package/dist/interpreter.js +176 -6
- package/dist/interpreter.js.map +1 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +10 -2
- package/dist/parser.js.map +1 -1
- package/dist/std-native.d.ts +122 -0
- package/dist/std-native.d.ts.map +1 -1
- package/dist/std-native.js +190 -1
- package/dist/std-native.js.map +1 -1
- package/package.json +1 -3
- package/CHANGELOG.md +0 -89
- package/README_PT.md +0 -261
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
|
|
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
|
|
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
|
-
|
|
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
|
-
>
|
|
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
|
-
- ✅
|
|
10
|
-
- ✅
|
|
11
|
-
- ✅
|
|
12
|
-
- ✅
|
|
13
|
-
- ✅
|
|
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
|
-
###
|
|
20
|
+
### Instalação via npm (recomendado)
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
**Instalação global:**
|
|
23
23
|
```bash
|
|
24
|
-
npm install -g
|
|
24
|
+
npm install -g treste
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
|
|
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
|
|
35
|
+
npm install treste
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
|
|
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 #
|
|
72
|
-
npm --version #
|
|
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
|
-
###
|
|
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
|
-
###
|
|
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 }
|
|
164
|
-
импорт * как 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
|
-
## 📖
|
|
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
|
|
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
|
|
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
|
|
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
|
-
###
|
|
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
|
-
импорт * как
|
|
314
|
+
импорт * как Process измодуля "std/process"
|
|
236
315
|
|
|
237
|
-
пусть
|
|
238
|
-
|
|
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 #
|
|
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 #
|
|
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
|
-
├──
|
|
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 #
|
|
272
|
-
npm run build:watch #
|
|
273
|
-
npm start
|
|
274
|
-
npm run compile:web #
|
|
275
|
-
npm run compile:exe #
|
|
276
|
-
npm run 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
|
-
|
|
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
|
-
|
|
|
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
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
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
|
-
-
|
|
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
|
-
|
|
343
|
-
-
|
|
344
|
-
-
|
|
345
|
-
-
|
|
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
|
-
|
|
355
|
-
- Базовые операции
|
|
356
|
-
- Функции и замыкания
|
|
357
|
-
- Структуры управления
|
|
358
|
-
- Массивы и объекты
|
|
359
|
-
- Модули и импорты
|
|
360
|
-
- Обработку ошибок
|
|
439
|
+
Para mais informações, consulte a documentação completa em `docs/`:
|
|
361
440
|
|
|
362
|
-
|
|
363
|
-
-
|
|
364
|
-
-
|
|
365
|
-
-
|
|
366
|
-
-
|
|
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
|
-
-
|
|
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
|
-
|
|
462
|
+
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests.
|
package/dist/cli.js
CHANGED
|
@@ -46,7 +46,7 @@ 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.
|
|
49
|
+
const VERSION = '2.3.1';
|
|
50
50
|
function main() {
|
|
51
51
|
const args = (0, minimist_1.default)(process.argv.slice(2));
|
|
52
52
|
// Validação de argumentos
|
package/dist/interpreter.d.ts
CHANGED
|
@@ -36,5 +36,13 @@ export declare class Interpreter {
|
|
|
36
36
|
* Avalia import statement
|
|
37
37
|
*/
|
|
38
38
|
private evaluateImportStatement;
|
|
39
|
+
/**
|
|
40
|
+
* Resolve path for std modules
|
|
41
|
+
*/
|
|
42
|
+
private resolveStdPath;
|
|
43
|
+
/**
|
|
44
|
+
* Load a .trest module file
|
|
45
|
+
*/
|
|
46
|
+
private loadTrestModule;
|
|
39
47
|
}
|
|
40
48
|
//# sourceMappingURL=interpreter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../src/interpreter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAmBR,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../src/interpreter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAmBR,MAAM,OAAO,CAAC;AA+Bf,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAc;;IAY/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2GtB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMxC,OAAO,CAAC,iBAAiB;IAuDzB,OAAO,CAAC,2BAA2B;IAmBnC,OAAO,CAAC,2BAA2B;IAgBnC,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,kBAAkB;IAyC1B,OAAO,CAAC,wBAAwB;IA0ChC,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,sBAAsB;IAkD9B,OAAO,CAAC,kBAAkB;IAuB1B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,sBAAsB;IAqB9B,OAAO,CAAC,oBAAoB;IA2C5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA6H/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAqBtB;;OAEG;IACH,OAAO,CAAC,eAAe;CA6BxB"}
|