treste 2.4.8 → 2.4.9

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/dist/parser.js CHANGED
@@ -93,7 +93,7 @@ class Parser {
93
93
  return this.parseExpressionStatement();
94
94
  }
95
95
  }
96
- parseVariableDeclaration() {
96
+ parseVariableDeclaration(skipNewlines = true) {
97
97
  const kind = this.currentToken().value;
98
98
  this.advance();
99
99
  const name = this.expect(lexer_1.TokenType.IDENTIFIER).value;
@@ -102,7 +102,9 @@ class Parser {
102
102
  this.advance();
103
103
  value = this.parseExpression();
104
104
  }
105
- this.skipNewlines();
105
+ if (skipNewlines) {
106
+ this.skipNewlines();
107
+ }
106
108
  return {
107
109
  type: 'VariableDeclaration',
108
110
  kind,
@@ -233,18 +235,40 @@ class Parser {
233
235
  this.expect(lexer_1.TokenType.FOR);
234
236
  this.expect(lexer_1.TokenType.LPAREN);
235
237
  // Verificar se é for...of ou for...in
236
- const isForOfOrIn = (this.currentToken().type === lexer_1.TokenType.VAR ||
238
+ // Precisamos verificar 2 tokens à frente: após LET/VAR/CONST + IDENTIFIER deve vir OF/IN
239
+ const currentIsVarLetConst = this.currentToken().type === lexer_1.TokenType.VAR ||
237
240
  this.currentToken().type === lexer_1.TokenType.LET ||
238
- this.currentToken().type === lexer_1.TokenType.CONST ||
239
- this.currentToken().type === lexer_1.TokenType.IDENTIFIER) &&
240
- this.peekToken().type === lexer_1.TokenType.OF || this.peekToken().type === lexer_1.TokenType.IN;
241
+ this.currentToken().type === lexer_1.TokenType.CONST;
242
+ let isForOfOrIn = false;
243
+ if (currentIsVarLetConst) {
244
+ // Se temos LET/VAR/CONST, verificar se o token após o IDENTIFIER é OF/IN
245
+ const peek1 = this.peekToken(); // Deveria ser IDENTIFIER
246
+ if (peek1 && peek1.type === lexer_1.TokenType.IDENTIFIER) {
247
+ // Verificar token após o IDENTIFIER (posição + 2)
248
+ const positionAfterId = this.position + 2;
249
+ if (positionAfterId < this.tokens.length) {
250
+ const tokenAfterId = this.tokens[positionAfterId];
251
+ isForOfOrIn = tokenAfterId.type === lexer_1.TokenType.OF || tokenAfterId.type === lexer_1.TokenType.IN;
252
+ }
253
+ }
254
+ }
255
+ else if (this.currentToken().type === lexer_1.TokenType.IDENTIFIER) {
256
+ // Se já temos IDENTIFIER, verificar se o próximo é OF/IN
257
+ isForOfOrIn = this.peekToken().type === lexer_1.TokenType.OF || this.peekToken().type === lexer_1.TokenType.IN;
258
+ }
241
259
  if (isForOfOrIn) {
242
260
  // Parse for...of ou for...in
243
261
  let left;
244
- if (this.currentToken().type === lexer_1.TokenType.VAR ||
245
- this.currentToken().type === lexer_1.TokenType.LET ||
246
- this.currentToken().type === lexer_1.TokenType.CONST) {
247
- left = this.parseVariableDeclaration();
262
+ if (currentIsVarLetConst) {
263
+ // Para for...of/for...in, não deve haver atribuição na declaração
264
+ const kind = this.currentToken().value;
265
+ this.advance(); // Consumir VAR/LET/CONST
266
+ const name = this.expect(lexer_1.TokenType.IDENTIFIER).value;
267
+ left = {
268
+ type: 'VariableDeclaration',
269
+ kind,
270
+ name,
271
+ };
248
272
  }
249
273
  else {
250
274
  left = {
@@ -252,7 +276,12 @@ class Parser {
252
276
  name: this.expect(lexer_1.TokenType.IDENTIFIER).value,
253
277
  };
254
278
  }
279
+ // Pular newlines antes de verificar OF/IN
280
+ this.skipNewlines();
255
281
  const isOf = this.currentToken().type === lexer_1.TokenType.OF;
282
+ if (!isOf && this.currentToken().type !== lexer_1.TokenType.IN) {
283
+ throw new Error(`Esperado 'из' ou 'в', mas encontrado: ${this.currentToken().type} na linha ${this.currentToken().line}`);
284
+ }
256
285
  this.advance(); // Consumir OF ou IN
257
286
  const right = this.parseExpression();
258
287
  this.expect(lexer_1.TokenType.RPAREN);
@@ -392,7 +421,7 @@ class Parser {
392
421
  }
393
422
  this.advance();
394
423
  const right = this.parseAssignment();
395
- if (expr.type === 'Identifier' || expr.type === 'IndexExpression') {
424
+ if (expr.type === 'Identifier' || expr.type === 'IndexExpression' || expr.type === 'MemberExpression') {
396
425
  // Para operadores compostos, transformar em expressão binária + atribuição
397
426
  if (operator !== '=') {
398
427
  const binaryOp = operator.slice(0, -1);
@@ -415,7 +444,7 @@ class Parser {
415
444
  right,
416
445
  };
417
446
  }
418
- throw new Error('Lado esquerdo da atribuição deve ser um identificador');
447
+ throw new Error('Lado esquerdo da atribuição deve ser um identificador, índice de array ou membro de objeto');
419
448
  }
420
449
  return expr;
421
450
  }
@@ -637,7 +666,8 @@ class Parser {
637
666
  value: token.type === lexer_1.TokenType.NULL ? null : undefined,
638
667
  };
639
668
  case lexer_1.TokenType.IDENTIFIER:
640
- const name = token.value;
669
+ case lexer_1.TokenType.THIS:
670
+ const name = token.type === lexer_1.TokenType.THIS ? 'это' : token.value;
641
671
  this.advance();
642
672
  return { type: 'Identifier', name };
643
673
  case lexer_1.TokenType.LPAREN:
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,408 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * create-trest-app / create-treste-app
4
+ * Script para criar um novo projeto Trest localmente
5
+ * Similar ao create-next-app do Next.js
6
+ */
7
+
8
+ const fs = require('fs');
9
+ const path = require('path');
10
+ const { execSync, spawn } = require('child_process');
11
+ const readline = require('readline');
12
+
13
+ // Cores para terminal
14
+ const colors = {
15
+ reset: '\x1b[0m',
16
+ bright: '\x1b[1m',
17
+ green: '\x1b[32m',
18
+ yellow: '\x1b[33m',
19
+ blue: '\x1b[34m',
20
+ cyan: '\x1b[36m',
21
+ red: '\x1b[31m',
22
+ };
23
+
24
+ function log(message, color = 'reset') {
25
+ console.log(`${colors[color]}${message}${colors.reset}`);
26
+ }
27
+
28
+ function getProjectName() {
29
+ const projectName = process.argv[2];
30
+ if (projectName) {
31
+ return projectName;
32
+ }
33
+ return null;
34
+ }
35
+
36
+ function validateProjectName(name) {
37
+ if (!name || name.trim().length === 0) {
38
+ return { valid: false, error: 'Nome do projeto não pode estar vazio' };
39
+ }
40
+
41
+ // Validar caracteres permitidos
42
+ const validNameRegex = /^[a-zA-Z0-9-_]+$/;
43
+ if (!validNameRegex.test(name)) {
44
+ return {
45
+ valid: false,
46
+ error: 'Nome do projeto pode conter apenas letras, números, hífens e underscores'
47
+ };
48
+ }
49
+
50
+ // Não pode começar com número
51
+ if (/^[0-9]/.test(name)) {
52
+ return {
53
+ valid: false,
54
+ error: 'Nome do projeto não pode começar com número'
55
+ };
56
+ }
57
+
58
+ return { valid: true };
59
+ }
60
+
61
+ function askQuestion(question) {
62
+ const rl = readline.createInterface({
63
+ input: process.stdin,
64
+ output: process.stdout,
65
+ });
66
+
67
+ return new Promise((resolve) => {
68
+ rl.question(question, (answer) => {
69
+ rl.close();
70
+ resolve(answer.trim());
71
+ });
72
+ });
73
+ }
74
+
75
+ function showHelp() {
76
+ log('\n🚀 Create Trest App', 'bright');
77
+ log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n', 'cyan');
78
+ log('Cria um novo projeto Trest localmente', 'cyan');
79
+ log('\nUso:', 'bright');
80
+ log(' npx create-trest-app <nome-projeto>', 'cyan');
81
+ log(' npx create-treste-app <nome-projeto>', 'cyan');
82
+ log('\nExemplos:', 'bright');
83
+ log(' npx create-trest-app meu-projeto', 'cyan');
84
+ log(' npx create-trest-app calculadora-app', 'cyan');
85
+ log('\nSe o nome do projeto não for fornecido, será solicitado interativamente.', 'yellow');
86
+ log('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n', 'cyan');
87
+ process.exit(0);
88
+ }
89
+
90
+ async function main() {
91
+ // Verificar argumentos de ajuda
92
+ const args = process.argv.slice(2);
93
+ if (args.includes('--help') || args.includes('-h') || args.includes('help')) {
94
+ showHelp();
95
+ }
96
+
97
+ log('\n🚀 Create Trest App', 'bright');
98
+ log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n', 'cyan');
99
+
100
+ let projectName = getProjectName();
101
+
102
+ // Se não fornecido, perguntar
103
+ if (!projectName) {
104
+ projectName = await askQuestion('📁 Nome do projeto: ');
105
+ }
106
+
107
+ // Validar novamente após perguntar
108
+ if (!projectName || projectName.trim().length === 0) {
109
+ log('\n❌ Erro: Nome do projeto não pode estar vazio', 'red');
110
+ process.exit(1);
111
+ }
112
+
113
+ projectName = projectName.trim();
114
+
115
+ // Validar nome
116
+ const validation = validateProjectName(projectName);
117
+ if (!validation.valid) {
118
+ log(`\n❌ Erro: ${validation.error}`, 'red');
119
+ process.exit(1);
120
+ }
121
+
122
+ // Obter diretório atual de forma mais confiável
123
+ let currentDir = process.cwd();
124
+
125
+ // Verificar se estamos no diretório correto (pode haver problemas com npx)
126
+ if (!currentDir || currentDir === '/' || currentDir === '\\') {
127
+ // Fallback: usar diretório do usuário
128
+ currentDir = process.env.USERPROFILE || process.env.HOME || process.cwd();
129
+ log(`⚠️ Usando diretório: ${currentDir}`, 'yellow');
130
+ }
131
+
132
+ const projectPath = path.resolve(currentDir, projectName);
133
+
134
+ // Verificar se a pasta já existe
135
+ if (fs.existsSync(projectPath)) {
136
+ log(`\n❌ Erro: A pasta "${projectName}" já existe!`, 'red');
137
+ process.exit(1);
138
+ }
139
+
140
+ log(`\n📦 Criando projeto: ${projectName}`, 'cyan');
141
+ log(`📂 Caminho: ${projectPath}\n`, 'cyan');
142
+
143
+ try {
144
+ // Criar pasta do projeto
145
+ fs.mkdirSync(projectPath, { recursive: true });
146
+ log('✅ Pasta do projeto criada', 'green');
147
+
148
+ // Criar estrutura de pastas
149
+ fs.mkdirSync(path.join(projectPath, 'src'), { recursive: true });
150
+ fs.mkdirSync(path.join(projectPath, 'exemplos'), { recursive: true });
151
+ log('✅ Estrutura de pastas criada', 'green');
152
+
153
+ // Criar package.json
154
+ const packageJson = {
155
+ name: projectName,
156
+ version: '1.0.0',
157
+ description: `Projeto Trest: ${projectName}`,
158
+ main: 'src/main.trest',
159
+ scripts: {
160
+ start: 'trest src/main.trest',
161
+ dev: 'trest src/main.trest --verbose',
162
+ build: 'trestc src/main.trest --mode web --output dist/app.js',
163
+ 'build:exe': 'trestc src/main.trest --mode exe --output dist/app.exe',
164
+ },
165
+ keywords: ['trest', 'trest-language'],
166
+ author: '',
167
+ license: 'MIT',
168
+ };
169
+
170
+ fs.writeFileSync(
171
+ path.join(projectPath, 'package.json'),
172
+ JSON.stringify(packageJson, null, 2)
173
+ );
174
+ log('✅ package.json criado', 'green');
175
+
176
+ // Criar arquivo main.trest
177
+ const mainTrestContent = `# Aplicação Trest
178
+ # Arquivo principal do projeto
179
+
180
+ печать("Olá, Mundo!")
181
+ печать("Bem-vindo ao projeto ${projectName}!")
182
+
183
+ # Exemplo básico
184
+ пусть mensagem = "Trest Language"
185
+ пусть versão = "2.4.9"
186
+
187
+ печать("Usando " + mensagem + " v" + versão)
188
+ печать("")
189
+ печать("Para executar: npm start")
190
+ печать("Para desenvolvimento: npm run dev")
191
+ печать("Para compilar: npm run build")
192
+ `;
193
+
194
+ fs.writeFileSync(
195
+ path.join(projectPath, 'src', 'main.trest'),
196
+ mainTrestContent
197
+ );
198
+ log('✅ src/main.trest criado', 'green');
199
+
200
+ // Criar exemplo.trest
201
+ const exemploContent = `# Exemplo de código Trest
202
+ # Este arquivo demonstra algumas funcionalidades básicas
203
+
204
+ # Variáveis
205
+ пусть nome = "Trest"
206
+ пусть numero = 42
207
+ пусть ativo = истина
208
+
209
+ # Arrays
210
+ пусть lista = [1, 2, 3, 4, 5]
211
+
212
+ # Objetos
213
+ пусть pessoa = {
214
+ nome = "João",
215
+ idade = 30,
216
+ cidade = "São Paulo"
217
+ }
218
+
219
+ # Funções
220
+ функция somar(a, b) {
221
+ вернуть a + b
222
+ }
223
+
224
+ # Estruturas condicionais
225
+ если (numero > 10) {
226
+ печать("Número é maior que 10")
227
+ } иначе {
228
+ печать("Número é menor ou igual a 10")
229
+ }
230
+
231
+ # Loops
232
+ для (пусть i = 0; i < 5; i = i + 1) {
233
+ печать("Iteração: " + i)
234
+ }
235
+
236
+ печать("")
237
+ печать("Resultado da soma: " + somar(10, 20))
238
+ `;
239
+
240
+ fs.writeFileSync(
241
+ path.join(projectPath, 'exemplos', 'exemplo.trest'),
242
+ exemploContent
243
+ );
244
+ log('✅ exemplos/exemplo.trest criado', 'green');
245
+
246
+ // Criar README.md
247
+ const readmeContent = `# ${projectName}
248
+
249
+ Projeto criado com [Trest Language](https://trest-site.vercel.app)
250
+
251
+ ## 🚀 Como Usar
252
+
253
+ ### Instalar Trest (se ainda não tiver instalado globalmente)
254
+
255
+ \`\`\`bash
256
+ npm install -g treste@latest
257
+ \`\`\`
258
+
259
+ ### Executar o projeto
260
+
261
+ \`\`\`bash
262
+ npm start
263
+ \`\`\`
264
+
265
+ ### Modo desenvolvimento (verbose)
266
+
267
+ \`\`\`bash
268
+ npm run dev
269
+ \`\`\`
270
+
271
+ ### Compilar para JavaScript
272
+
273
+ \`\`\`bash
274
+ npm run build
275
+ \`\`\`
276
+
277
+ ### Compilar para executável
278
+
279
+ \`\`\`bash
280
+ npm run build:exe
281
+ \`\`\`
282
+
283
+ ## 📁 Estrutura do Projeto
284
+
285
+ \`\`\`
286
+ ${projectName}/
287
+ ├── src/
288
+ │ └── main.trest # Arquivo principal
289
+ ├── exemplos/
290
+ │ └── exemplo.trest # Exemplos de código
291
+ ├── package.json # Configuração do projeto
292
+ └── README.md # Este arquivo
293
+ \`\`\`
294
+
295
+ ## 📚 Documentação
296
+
297
+ Para mais informações sobre a linguagem Trest:
298
+ - [Documentação Completa](https://trest-site.vercel.app)
299
+ - [GitHub](https://github.com/poktweb/treste)
300
+
301
+ ## 📝 Notas
302
+
303
+ - Todos os arquivos Trest devem ter extensão \`.trest\`
304
+ - O arquivo principal está em \`src/main.trest\`
305
+ - Exemplos estão na pasta \`exemplos/\`
306
+
307
+ ---
308
+
309
+ Criado com ❤️ usando Trest Language v2.4.9
310
+ `;
311
+
312
+ fs.writeFileSync(
313
+ path.join(projectPath, 'README.md'),
314
+ readmeContent
315
+ );
316
+ log('✅ README.md criado', 'green');
317
+
318
+ // Criar .gitignore
319
+ const gitignoreContent = `# Dependências
320
+ node_modules/
321
+ package-lock.json
322
+
323
+ # Build
324
+ dist/
325
+ *.exe
326
+ *.js.map
327
+
328
+ # Logs
329
+ *.log
330
+ npm-debug.log*
331
+
332
+ # Sistema operacional
333
+ .DS_Store
334
+ Thumbs.db
335
+
336
+ # IDE
337
+ .vscode/
338
+ .idea/
339
+ *.swp
340
+ *.swo
341
+ *~
342
+
343
+ # Trest
344
+ *.trest.js
345
+ *.trest.map
346
+ `;
347
+
348
+ fs.writeFileSync(
349
+ path.join(projectPath, '.gitignore'),
350
+ gitignoreContent
351
+ );
352
+ log('✅ .gitignore criado', 'green');
353
+
354
+ // Instalar treste localmente
355
+ log('\n📦 Instalando Trest Language localmente...', 'cyan');
356
+ log(' (Isso pode levar alguns segundos)\n', 'yellow');
357
+
358
+ try {
359
+ execSync(`npm install treste@latest`, {
360
+ stdio: 'inherit',
361
+ cwd: projectPath,
362
+ shell: process.platform === 'win32'
363
+ });
364
+ log('\n✅ Trest Language instalado localmente!', 'green');
365
+ } catch (error) {
366
+ log('\n⚠️ Aviso: Não foi possível instalar treste automaticamente.', 'yellow');
367
+ log(` Erro: ${error.message}`, 'yellow');
368
+ log(' Execute manualmente: npm install treste@latest', 'yellow');
369
+ }
370
+
371
+ // Mensagem final
372
+ log('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━', 'cyan');
373
+ log('\n✅ Projeto criado com sucesso!', 'green');
374
+ log(`\n📂 Localização: ${projectPath}`, 'cyan');
375
+ log('\n🚀 Próximos passos:', 'bright');
376
+ log(`\n cd ${projectName}`, 'cyan');
377
+ log(' npm start', 'cyan');
378
+ log('\n💡 Dica: Use "npm run dev" para modo desenvolvimento', 'yellow');
379
+ log('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n', 'cyan');
380
+
381
+ } catch (error) {
382
+ log(`\n❌ Erro ao criar projeto: ${error.message}`, 'red');
383
+ if (error.stack) {
384
+ console.error(error.stack);
385
+ }
386
+
387
+ // Limpar pasta se houver erro
388
+ if (fs.existsSync(projectPath)) {
389
+ try {
390
+ fs.rmSync(projectPath, { recursive: true, force: true });
391
+ log('🗑️ Pasta do projeto removida devido ao erro', 'yellow');
392
+ } catch (cleanupError) {
393
+ // Ignorar erros de limpeza
394
+ }
395
+ }
396
+
397
+ process.exit(1);
398
+ }
399
+ }
400
+
401
+ // Executar
402
+ main().catch((error) => {
403
+ log(`\n❌ Erro fatal: ${error.message}`, 'red');
404
+ if (error.stack) {
405
+ console.error(error.stack);
406
+ }
407
+ process.exit(1);
408
+ });
@@ -67,3 +67,8 @@
67
67
  }
68
68
  }
69
69
 
70
+ # Manter aplicação rodando (requer implementação nativa)
71
+ экспорт функция manterRodando() {
72
+ # Esta função requer implementação nativa
73
+ вернуть нуль
74
+ }