treste 2.3.1 → 2.3.3
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/README.md +8 -3
- package/dist/cli.js +39 -7
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,6 +6,7 @@ Linguagem de programação moderna e profissional, estruturalmente organizada e
|
|
|
6
6
|
|
|
7
7
|
## 🚀 Principais Funcionalidades
|
|
8
8
|
|
|
9
|
+
- ✅ **Execução Inline** - Execute código direto na linha de comando com `-e`
|
|
9
10
|
- ✅ **Compilação para Web** - Gera JavaScript otimizado
|
|
10
11
|
- ✅ **Compilação para Desktop** - Cria executáveis .exe nativos
|
|
11
12
|
- ✅ **Sistema de Módulos** - Import/Export de módulos
|
|
@@ -74,10 +75,14 @@ npm --version # deve ser >= 9
|
|
|
74
75
|
|
|
75
76
|
## 🎯 Guia Rápido
|
|
76
77
|
|
|
77
|
-
### Executar
|
|
78
|
+
### Executar código inline (sem arquivo)
|
|
79
|
+
```bash
|
|
80
|
+
trest -e "печать('Olá, Mundo!')"
|
|
81
|
+
trest -e "пусть x = 10; печать(x)"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Executar arquivo (interpretador)
|
|
78
85
|
```bash
|
|
79
|
-
npm start exemplos/hello_cyrillic.trest
|
|
80
|
-
# ou
|
|
81
86
|
trest exemplos/hello_cyrillic.trest
|
|
82
87
|
```
|
|
83
88
|
|
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.
|
|
49
|
+
const VERSION = '2.3.3';
|
|
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
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAyC;AACzC,mCAAgC;AAChC,qCAAkC;AAClC,+CAA4C;AAC5C,qCAAsC;AACtC,qCAAwC;AACxC,wDAAgC;AAEhC,MAAM,OAAO,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAyC;AACzC,mCAAgC;AAChC,qCAAkC;AAClC,+CAA4C;AAC5C,qCAAsC;AACtC,qCAAwC;AACxC,wDAAgC;AAEhC,MAAM,OAAO,GAAG,OAAO,CAAC;AAiBxB,SAAS,IAAI;IACX,MAAM,IAAI,GAAe,IAAA,kBAAQ,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAe,CAAC;IAEvE,0BAA0B;IAC1B,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpI,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;QAC1B,oBAAoB;QACpB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAClE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,IAAA,wBAAQ,EAAC,SAAS,YAAY,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,gDAAgD;IAChD,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3B,wBAAwB;IACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,YAAY,QAAQ,gBAAgB,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,cAAc;IACd,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,CAAC,IAAI,QAAQ,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,IAAgB;IACrD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,cAAc;QACd,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAExC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,8BAA8B,QAAQ,IAAI,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,QAAgB,EAAE,IAAgB;IACnE,IAAI,CAAC;QACH,cAAc;QACd,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,QAAQ;QACR,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;QAEnE,SAAS;QACT,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAE5D,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC,QAAQ,CAAC,CAAC;QAEhD,qCAAqC;QACrC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrD,cAAc,CAAC,YAAY,CAAC,CAAC;QAE7B,cAAc;QACd,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,yBAAW,EAAE,CAAC;QACtC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAU,EAAE,IAAgB;IAC/C,IAAI,KAAK,YAAY,mBAAU,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;kBACI,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BxB,CAAC,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,YAA0B;IAChD,iDAAiD;IACjD,8CAA8C;AAChD,CAAC;AAED,IAAI,EAAE,CAAC"}
|
package/package.json
CHANGED