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.
- package/CHANGELOG.md +47 -0
- package/INSTALL.md +264 -0
- package/LICENSE +22 -0
- package/README.md +388 -0
- package/README_PT.md +261 -0
- package/dist/ast.d.ts +140 -0
- package/dist/ast.d.ts.map +1 -0
- package/dist/ast.js +3 -0
- package/dist/ast.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +201 -0
- package/dist/cli.js.map +1 -0
- package/dist/compiler/exe.d.ts +13 -0
- package/dist/compiler/exe.d.ts.map +1 -0
- package/dist/compiler/exe.js +129 -0
- package/dist/compiler/exe.js.map +1 -0
- package/dist/compiler/web.d.ts +43 -0
- package/dist/compiler/web.d.ts.map +1 -0
- package/dist/compiler/web.js +413 -0
- package/dist/compiler/web.js.map +1 -0
- package/dist/compiler.d.ts +3 -0
- package/dist/compiler.d.ts.map +1 -0
- package/dist/compiler.js +195 -0
- package/dist/compiler.js.map +1 -0
- package/dist/errors.d.ts +21 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +56 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/interpreter.d.ts +32 -0
- package/dist/interpreter.d.ts.map +1 -0
- package/dist/interpreter.js +425 -0
- package/dist/interpreter.js.map +1 -0
- package/dist/lexer.d.ts +113 -0
- package/dist/lexer.d.ts.map +1 -0
- package/dist/lexer.js +446 -0
- package/dist/lexer.js.map +1 -0
- package/dist/module.d.ts +19 -0
- package/dist/module.d.ts.map +1 -0
- package/dist/module.js +112 -0
- package/dist/module.js.map +1 -0
- package/dist/parser.d.ts +45 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +599 -0
- package/dist/parser.js.map +1 -0
- package/dist/std/array.trest +85 -0
- package/dist/std/index.trest +13 -0
- package/dist/std/io.trest +17 -0
- package/dist/std/math.trest +66 -0
- package/dist/std/string.trest +61 -0
- package/dist/types.d.ts +29 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +86 -0
- package/dist/types.js.map +1 -0
- package/package.json +101 -0
- package/scripts/postbuild.js +90 -0
- package/scripts/postinstall.js +89 -0
- package/scripts/preinstall.js +92 -0
- package/scripts/version.js +52 -0
- package/src/std/array.trest +85 -0
- package/src/std/index.trest +13 -0
- package/src/std/io.trest +17 -0
- package/src/std/math.trest +66 -0
- package/src/std/string.trest +61 -0
package/README_PT.md
ADDED
|
@@ -0,0 +1,261 @@
|
|
|
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
|
+
|
package/dist/ast.d.ts
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
export type ASTNode = Program | VariableDeclaration | FunctionDeclaration | BlockStatement | IfStatement | WhileStatement | ForStatement | ReturnStatement | ExpressionStatement | PrintStatement | ImportStatement | ExportStatement | BreakStatement | ContinueStatement | TryStatement | ThrowStatement | AssignmentExpression | BinaryExpression | UnaryExpression | CallExpression | Identifier | Literal | ArrayLiteral | IndexExpression | ObjectLiteral | MemberExpression;
|
|
2
|
+
export interface Program {
|
|
3
|
+
type: 'Program';
|
|
4
|
+
body: ASTNode[];
|
|
5
|
+
}
|
|
6
|
+
export interface VariableDeclaration {
|
|
7
|
+
type: 'VariableDeclaration';
|
|
8
|
+
kind: 'var' | 'let' | 'const';
|
|
9
|
+
name: string;
|
|
10
|
+
value?: Expression;
|
|
11
|
+
}
|
|
12
|
+
export interface FunctionDeclaration {
|
|
13
|
+
type: 'FunctionDeclaration';
|
|
14
|
+
name: string;
|
|
15
|
+
params: string[];
|
|
16
|
+
body: BlockStatement;
|
|
17
|
+
}
|
|
18
|
+
export interface BlockStatement {
|
|
19
|
+
type: 'BlockStatement';
|
|
20
|
+
body: ASTNode[];
|
|
21
|
+
}
|
|
22
|
+
export interface IfStatement {
|
|
23
|
+
type: 'IfStatement';
|
|
24
|
+
condition: Expression;
|
|
25
|
+
consequent: BlockStatement;
|
|
26
|
+
alternate?: BlockStatement | IfStatement;
|
|
27
|
+
}
|
|
28
|
+
export interface WhileStatement {
|
|
29
|
+
type: 'WhileStatement';
|
|
30
|
+
condition: Expression;
|
|
31
|
+
body: BlockStatement;
|
|
32
|
+
}
|
|
33
|
+
export interface ForStatement {
|
|
34
|
+
type: 'ForStatement';
|
|
35
|
+
init?: VariableDeclaration | ExpressionStatement;
|
|
36
|
+
condition?: Expression;
|
|
37
|
+
update?: Expression;
|
|
38
|
+
body: BlockStatement;
|
|
39
|
+
}
|
|
40
|
+
export interface ReturnStatement {
|
|
41
|
+
type: 'ReturnStatement';
|
|
42
|
+
argument?: Expression;
|
|
43
|
+
}
|
|
44
|
+
export interface ExpressionStatement {
|
|
45
|
+
type: 'ExpressionStatement';
|
|
46
|
+
expression: Expression;
|
|
47
|
+
}
|
|
48
|
+
export interface PrintStatement {
|
|
49
|
+
type: 'PrintStatement';
|
|
50
|
+
arguments: Expression[];
|
|
51
|
+
}
|
|
52
|
+
export interface ImportStatement {
|
|
53
|
+
type: 'ImportStatement';
|
|
54
|
+
specifiers: ImportSpecifier[];
|
|
55
|
+
source: string;
|
|
56
|
+
}
|
|
57
|
+
export interface ImportSpecifier {
|
|
58
|
+
imported: string;
|
|
59
|
+
local?: string;
|
|
60
|
+
}
|
|
61
|
+
export interface ExportStatement {
|
|
62
|
+
type: 'ExportStatement';
|
|
63
|
+
declaration: FunctionDeclaration | VariableDeclaration;
|
|
64
|
+
}
|
|
65
|
+
export interface BreakStatement {
|
|
66
|
+
type: 'BreakStatement';
|
|
67
|
+
}
|
|
68
|
+
export interface ContinueStatement {
|
|
69
|
+
type: 'ContinueStatement';
|
|
70
|
+
}
|
|
71
|
+
export interface TryStatement {
|
|
72
|
+
type: 'TryStatement';
|
|
73
|
+
block: BlockStatement;
|
|
74
|
+
handler?: CatchClause;
|
|
75
|
+
finalizer?: BlockStatement;
|
|
76
|
+
}
|
|
77
|
+
export interface CatchClause {
|
|
78
|
+
param?: string;
|
|
79
|
+
body: BlockStatement;
|
|
80
|
+
}
|
|
81
|
+
export interface ThrowStatement {
|
|
82
|
+
type: 'ThrowStatement';
|
|
83
|
+
argument: Expression;
|
|
84
|
+
}
|
|
85
|
+
export type Expression = AssignmentExpression | BinaryExpression | UnaryExpression | CallExpression | Identifier | Literal | ArrayLiteral | IndexExpression | ObjectLiteral | MemberExpression;
|
|
86
|
+
export interface AssignmentExpression {
|
|
87
|
+
type: 'AssignmentExpression';
|
|
88
|
+
left: Identifier | IndexExpression;
|
|
89
|
+
operator: '=';
|
|
90
|
+
right: Expression;
|
|
91
|
+
}
|
|
92
|
+
export interface BinaryExpression {
|
|
93
|
+
type: 'BinaryExpression';
|
|
94
|
+
left: Expression;
|
|
95
|
+
operator: string;
|
|
96
|
+
right: Expression;
|
|
97
|
+
}
|
|
98
|
+
export interface UnaryExpression {
|
|
99
|
+
type: 'UnaryExpression';
|
|
100
|
+
operator: string;
|
|
101
|
+
argument: Expression;
|
|
102
|
+
}
|
|
103
|
+
export interface CallExpression {
|
|
104
|
+
type: 'CallExpression';
|
|
105
|
+
callee: Identifier;
|
|
106
|
+
arguments: Expression[];
|
|
107
|
+
}
|
|
108
|
+
export interface Identifier {
|
|
109
|
+
type: 'Identifier';
|
|
110
|
+
name: string;
|
|
111
|
+
}
|
|
112
|
+
export interface Literal {
|
|
113
|
+
type: 'Literal';
|
|
114
|
+
value: string | number | boolean | null;
|
|
115
|
+
}
|
|
116
|
+
export interface ArrayLiteral {
|
|
117
|
+
type: 'ArrayLiteral';
|
|
118
|
+
elements: Expression[];
|
|
119
|
+
}
|
|
120
|
+
export interface IndexExpression {
|
|
121
|
+
type: 'IndexExpression';
|
|
122
|
+
object: Expression;
|
|
123
|
+
index: Expression;
|
|
124
|
+
}
|
|
125
|
+
export interface ObjectLiteral {
|
|
126
|
+
type: 'ObjectLiteral';
|
|
127
|
+
properties: Property[];
|
|
128
|
+
}
|
|
129
|
+
export interface Property {
|
|
130
|
+
key: string;
|
|
131
|
+
value: Expression;
|
|
132
|
+
computed?: boolean;
|
|
133
|
+
}
|
|
134
|
+
export interface MemberExpression {
|
|
135
|
+
type: 'MemberExpression';
|
|
136
|
+
object: Expression;
|
|
137
|
+
property: string | Expression;
|
|
138
|
+
computed: boolean;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=ast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"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"}
|
package/dist/ast.js
ADDED
package/dist/ast.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":""}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
+
};
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const lexer_1 = require("./lexer");
|
|
43
|
+
const parser_1 = require("./parser");
|
|
44
|
+
const interpreter_1 = require("./interpreter");
|
|
45
|
+
const errors_1 = require("./errors");
|
|
46
|
+
const module_1 = require("./module");
|
|
47
|
+
const minimist_1 = __importDefault(require("minimist"));
|
|
48
|
+
const VERSION = '2.0.0';
|
|
49
|
+
function main() {
|
|
50
|
+
const args = (0, minimist_1.default)(process.argv.slice(2));
|
|
51
|
+
// Validação de argumentos
|
|
52
|
+
if (args._.length === 0 && !args.help && !args.h && !args.version && !args.v) {
|
|
53
|
+
showUsage();
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
if (args.help || args.h) {
|
|
57
|
+
showHelp();
|
|
58
|
+
process.exit(0);
|
|
59
|
+
}
|
|
60
|
+
if (args.version || args.v) {
|
|
61
|
+
console.log(`Trest Language v${VERSION}`);
|
|
62
|
+
process.exit(0);
|
|
63
|
+
}
|
|
64
|
+
const filePath = args._[0];
|
|
65
|
+
// Validações de arquivo
|
|
66
|
+
if (!filePath) {
|
|
67
|
+
console.error('❌ Error: No file specified');
|
|
68
|
+
console.error('Usage: trest <файл.trest> [опции]');
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
if (!fs.existsSync(filePath)) {
|
|
72
|
+
console.error(`❌ Error: File not found: ${filePath}`);
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
const fileStats = fs.statSync(filePath);
|
|
76
|
+
if (!fileStats.isFile()) {
|
|
77
|
+
console.error(`❌ Error: ${filePath} is not a file`);
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
// Log verbose
|
|
81
|
+
if (args.verbose || args.debug) {
|
|
82
|
+
console.log(`📄 Executing: ${filePath}`);
|
|
83
|
+
console.log(`📊 File size: ${fileStats.size} bytes`);
|
|
84
|
+
console.log('');
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
const startTime = Date.now();
|
|
88
|
+
// Ler arquivo
|
|
89
|
+
const code = fs.readFileSync(filePath, 'utf-8');
|
|
90
|
+
if (code.length === 0) {
|
|
91
|
+
console.warn('⚠️ Warning: File is empty');
|
|
92
|
+
process.exit(0);
|
|
93
|
+
}
|
|
94
|
+
const basePath = path.dirname(filePath);
|
|
95
|
+
// Lexer
|
|
96
|
+
if (args.debug)
|
|
97
|
+
console.log('🔤 Tokenizing...');
|
|
98
|
+
const lexer = new lexer_1.Lexer(code);
|
|
99
|
+
const tokens = lexer.tokenize();
|
|
100
|
+
if (args.debug)
|
|
101
|
+
console.log(`✅ Generated ${tokens.length} tokens`);
|
|
102
|
+
// Parser
|
|
103
|
+
if (args.debug)
|
|
104
|
+
console.log('🌳 Parsing...');
|
|
105
|
+
const parser = new parser_1.Parser(tokens);
|
|
106
|
+
const program = parser.parse();
|
|
107
|
+
if (args.debug)
|
|
108
|
+
console.log('✅ AST generated successfully');
|
|
109
|
+
const moduleSystem = new module_1.ModuleSystem(basePath);
|
|
110
|
+
// Carregar módulos std se necessário
|
|
111
|
+
if (args.debug)
|
|
112
|
+
console.log('📦 Loading modules...');
|
|
113
|
+
loadStdModules(moduleSystem);
|
|
114
|
+
// Interpreter
|
|
115
|
+
if (args.debug)
|
|
116
|
+
console.log('⚡ Executing...\n');
|
|
117
|
+
const interpreter = new interpreter_1.Interpreter();
|
|
118
|
+
interpreter.interpret(program);
|
|
119
|
+
const duration = Date.now() - startTime;
|
|
120
|
+
if (args.verbose || args.debug) {
|
|
121
|
+
console.log(`\n✅ Execution completed in ${duration}ms`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
handleError(error, args);
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
function handleError(error, args) {
|
|
130
|
+
if (error instanceof errors_1.TrestError) {
|
|
131
|
+
console.error(error.format());
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
console.error('❌ Error:', error.message);
|
|
135
|
+
if (args.strict || args.debug) {
|
|
136
|
+
console.error('\nStack trace:');
|
|
137
|
+
console.error(error.stack);
|
|
138
|
+
}
|
|
139
|
+
if (args.debug) {
|
|
140
|
+
console.error('\nDebug info:');
|
|
141
|
+
console.error('Error type:', error.constructor.name);
|
|
142
|
+
if (error.code) {
|
|
143
|
+
console.error('Error code:', error.code);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function showUsage() {
|
|
149
|
+
console.log(`Trest Language v${VERSION}`);
|
|
150
|
+
console.log('');
|
|
151
|
+
console.log('Usage: trest <файл.trest> [опции]');
|
|
152
|
+
console.log('');
|
|
153
|
+
console.log('Options:');
|
|
154
|
+
console.log(' --help, -h Show help');
|
|
155
|
+
console.log(' --version, -v Show version');
|
|
156
|
+
console.log(' --strict Strict mode');
|
|
157
|
+
console.log(' --verbose, -V Verbose output');
|
|
158
|
+
console.log(' --debug, -d Debug mode');
|
|
159
|
+
console.log('');
|
|
160
|
+
console.log('Examples:');
|
|
161
|
+
console.log(' trest программа.trest');
|
|
162
|
+
console.log(' trest exemplos/hello_cyrillic.trest');
|
|
163
|
+
console.log(' trest script.trest --verbose');
|
|
164
|
+
console.log('');
|
|
165
|
+
console.log('Compilation:');
|
|
166
|
+
console.log(' trestc программа.trest --mode web');
|
|
167
|
+
console.log(' trestc программа.trest --mode exe');
|
|
168
|
+
}
|
|
169
|
+
function showHelp() {
|
|
170
|
+
console.log(`
|
|
171
|
+
Trest Language v${VERSION} - Interpreter
|
|
172
|
+
|
|
173
|
+
Usage:
|
|
174
|
+
trest <файл.trest> [опции]
|
|
175
|
+
|
|
176
|
+
Options:
|
|
177
|
+
--help, -h Show this help message
|
|
178
|
+
--version, -v Show version number
|
|
179
|
+
--strict Strict mode (show stack trace on errors)
|
|
180
|
+
--verbose, -V Verbose output
|
|
181
|
+
--debug, -d Debug mode (detailed execution info)
|
|
182
|
+
|
|
183
|
+
Examples:
|
|
184
|
+
trest программа.trest
|
|
185
|
+
trest exemplos/hello_cyrillic.trest --strict
|
|
186
|
+
trest script.trest --verbose
|
|
187
|
+
trest program.trest --debug
|
|
188
|
+
|
|
189
|
+
Compilation:
|
|
190
|
+
trestc программа.trest --mode web # Compile to JavaScript
|
|
191
|
+
trestc программа.trest --mode exe # Compile to executable
|
|
192
|
+
|
|
193
|
+
For more information visit: https://github.com/trest-language/trest
|
|
194
|
+
`);
|
|
195
|
+
}
|
|
196
|
+
function loadStdModules(moduleSystem) {
|
|
197
|
+
// Загрузка стандартных модулей при необходимости
|
|
198
|
+
// Пока интерпретатор управляет этим внутренне
|
|
199
|
+
}
|
|
200
|
+
main();
|
|
201
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare class ExeCompiler {
|
|
2
|
+
private webCompiler;
|
|
3
|
+
private tempDir;
|
|
4
|
+
constructor(basePath?: string);
|
|
5
|
+
compile(filePath: string, outputPath?: string, options?: {
|
|
6
|
+
minify?: boolean;
|
|
7
|
+
}): Promise<string>;
|
|
8
|
+
private createWrapper;
|
|
9
|
+
private buildExecutable;
|
|
10
|
+
private buildExecutableAlternative;
|
|
11
|
+
compileStandalone(filePath: string, outputPath?: string): Promise<string>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=exe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exe.d.ts","sourceRoot":"","sources":["../../src/compiler/exe.ts"],"names":[],"mappings":"AAQA,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAS;gBAEZ,QAAQ,GAAE,MAAsB;IAK/B,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAkChH,OAAO,CAAC,aAAa;YAWP,eAAe;YAgBf,0BAA0B;IAgB3B,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAuBvF"}
|