vladx 1.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 (42) hide show
  1. package/README.md +256 -0
  2. package/bin/cli.js +486 -0
  3. package/bin/vlad.js +539 -0
  4. package/bin/vladpm.js +710 -0
  5. package/bin/vladx.js +491 -0
  6. package/package.json +57 -0
  7. package/src/engine/jit-compiler.js +285 -0
  8. package/src/engine/vladx-engine.js +941 -0
  9. package/src/index.js +44 -0
  10. package/src/interpreter/interpreter.js +2114 -0
  11. package/src/lexer/lexer.js +658 -0
  12. package/src/lexer/optimized-lexer.js +106 -0
  13. package/src/lexer/regex-cache.js +83 -0
  14. package/src/parser/ast-nodes.js +472 -0
  15. package/src/parser/parser.js +1408 -0
  16. package/src/runtime/advanced-type-system.js +209 -0
  17. package/src/runtime/async-manager.js +252 -0
  18. package/src/runtime/builtins.js +143 -0
  19. package/src/runtime/bundler.js +422 -0
  20. package/src/runtime/cache-manager.js +126 -0
  21. package/src/runtime/data-structures.js +612 -0
  22. package/src/runtime/debugger.js +260 -0
  23. package/src/runtime/enhanced-module-system.js +196 -0
  24. package/src/runtime/environment-enhanced.js +272 -0
  25. package/src/runtime/environment.js +140 -0
  26. package/src/runtime/event-emitter.js +232 -0
  27. package/src/runtime/formatter.js +280 -0
  28. package/src/runtime/functional.js +359 -0
  29. package/src/runtime/io-operations.js +390 -0
  30. package/src/runtime/linter.js +374 -0
  31. package/src/runtime/logging.js +314 -0
  32. package/src/runtime/minifier.js +242 -0
  33. package/src/runtime/module-system.js +377 -0
  34. package/src/runtime/network-operations.js +373 -0
  35. package/src/runtime/profiler.js +295 -0
  36. package/src/runtime/repl.js +336 -0
  37. package/src/runtime/security-manager.js +244 -0
  38. package/src/runtime/source-map-generator.js +208 -0
  39. package/src/runtime/test-runner.js +394 -0
  40. package/src/runtime/transformer.js +277 -0
  41. package/src/runtime/type-system.js +244 -0
  42. package/src/runtime/vladx-object.js +250 -0
package/README.md ADDED
@@ -0,0 +1,256 @@
1
+ # VladX
2
+
3
+ Мощный интерпретируемый язык программирования с русским синтаксисом.
4
+
5
+ ## Особенности
6
+
7
+ - 🚀 Высокая производительность с JIT компиляцией
8
+ - 🔒 Безопасность с изоляцией песочницы
9
+ - 🏗️ Расширенная система типов
10
+ - ⚡ Мощная асинхронность
11
+ - 🧩 Современная модульная система
12
+ - 🧪 Встроенная поддержка тестирования
13
+ - 🔬 Отладчик и профилировщик
14
+ - 📦 Управление пакетами через vladpm
15
+
16
+ ## Установка
17
+
18
+ ```bash
19
+ npm install -g vladx
20
+ ```
21
+
22
+ ## Использование
23
+
24
+ ### Базовый пример
25
+
26
+ ```vlad
27
+ пусть x = 10 + 5;
28
+ печать("Результат:", x);
29
+ ```
30
+
31
+ ### Функции
32
+
33
+ ```vlad
34
+ функция добавить(a, b) {
35
+ вернуть a + b;
36
+ }
37
+
38
+ печать("5 + 3 =", добавить(5, 3));
39
+ ```
40
+
41
+ ### Условия
42
+
43
+ ```vlad
44
+ пусть возраст = 18;
45
+
46
+ если (возраст >= 18) {
47
+ печать("Совершеннолетний");
48
+ } иначе {
49
+ печать("Несовершеннолетний");
50
+ }
51
+ ```
52
+
53
+ ### Циклы
54
+
55
+ ```vlad
56
+ пока (возраст < 21) {
57
+ печать("Возраст:", возраст);
58
+ возраст = возраст + 1;
59
+ }
60
+
61
+ для (пусть i = 0; i < 5; i = i + 1) {
62
+ печать("Итерация:", i);
63
+ }
64
+ ```
65
+
66
+ ### Асинхронность
67
+
68
+ ```vlad
69
+ асинхронная функция fetchData() {
70
+ позволить ждать(1000);
71
+ вернуть "данные";
72
+ }
73
+
74
+ пусть данные = ждать fetchData();
75
+ печать("Данные:", данные);
76
+ ```
77
+
78
+ ### Функциональное программирование
79
+
80
+ ```vlad
81
+ пусть удвоить = (x) => x * 2;
82
+ пусть утроить = (x) => x * 3;
83
+
84
+ пусть составить = композиция(удвоить, утроить);
85
+ печать("Составить(5) =", составить(5));
86
+ ```
87
+
88
+ ### Структуры данных
89
+
90
+ ```vlad
91
+ пусть стек = Стек();
92
+ стек.пуш(1);
93
+ стек.пуш(2);
94
+ печать("Pop:", стек.pop());
95
+
96
+ пусть очередь = Очередь();
97
+ очередь.enqueue(1);
98
+ печать("Dequeue:", очередь.dequeue());
99
+ ```
100
+
101
+ ## Встроенные функции
102
+
103
+ ### Математика
104
+
105
+ - `максимум(...)` - максимум
106
+ - `минимум(...)` - минимум
107
+ - `случайный()` - случайное число [0, 1]
108
+ - `случайноеЦелое(min, max)` - случайное целое
109
+ - `abs(n)` - модуль
110
+ - `округлить(n)` - округление
111
+ - `корень(n)` - квадратный корень
112
+ - `пи()` - число π
113
+
114
+ ### Строки
115
+
116
+ - `длина(str)` - длина строки
117
+ - `нижнийРегистр(str)` - нижний регистр
118
+ - `верхнийРегистр(str)` - верхний регистр
119
+ - `обрезка(str)` - обрезать пробелы
120
+ - `заменить(str, old, new)` - замена
121
+ - `разделить(str, delimiter)` - разделение
122
+
123
+ ### Массивы
124
+
125
+ - `создатьМассив(...)` - создать массив
126
+ - `объединить(...arrays)` - объединение
127
+ - `фильтр(arr, callback)` - фильтрация
128
+ - `отобразить(arr, callback)` - map
129
+ - `уменьшить(arr, callback, initial)` - reduce
130
+
131
+ ### Объекты
132
+
133
+ - `объект(obj)` - создать объект
134
+ - `ключи(obj)` - ключи
135
+ - `значения(obj)` - значения
136
+ - `пары(obj)` - пары
137
+ - `слить(...objects)` - слияние
138
+
139
+ ### Система
140
+
141
+ - `печать(...)` - вывод с новой строкой
142
+ - `вывод(...)` - вывод без новой строки
143
+ - `время()` - текущее время
144
+ - `дата()` - текущая дата
145
+
146
+ ### Файлы
147
+
148
+ - `файлЧитать(path)` - прочитать файл
149
+ - `файлЗаписать(path, content)` - записать файл
150
+ - `файлСуществует(path)` - проверка существования
151
+
152
+ ### Кэш
153
+
154
+ - `кэшУстановить(key, value)` - установить в кэш
155
+ - `кэшПолучить(key)` - получить из кэша
156
+ - `кэшУдалить(key)` - удалить из кэша
157
+ - `кэшОчистить()` - очистить кэш
158
+ - `кэшСтатистика()` - статистика кэша
159
+
160
+ ### Функциональное программирование
161
+
162
+ - `каррировать(fn)` - каррирование
163
+ - `композиция(...fns)` - композиция
164
+ - `труба(...fns)` - pipe
165
+ - `мемоизировать(fn)` - мемоизация
166
+ - `частично(fn, ...args)` - частичное применение
167
+
168
+ ### Структуры данных
169
+
170
+ - `Стек()` - создать стек
171
+ - `Очередь()` - создать очередь
172
+ - `СвязныйСписок()` - создать связный список
173
+ - `ПриоритетнаяОчередь(comparator)` - приоритетная очередь
174
+ - `Множество()` - создать множество
175
+ - `Карта()` - создать карту
176
+ - `Дерево()` - создать trie
177
+ - `БинарноеДерево(compareFn)` - бинарное дерево поиска
178
+
179
+ ### Асинхронность
180
+
181
+ - `параллельно(tasks)` - параллельное выполнение
182
+ - `последовательно(tasks)` - последовательное выполнение
183
+ - `гонка(tasks)` - race
184
+ - `всеSettled(tasks)` - allSettled
185
+ - `любой(tasks)` - any
186
+
187
+ ## CLI
188
+
189
+ ```bash
190
+ # Выполнить файл
191
+ vladx run main.vx
192
+
193
+ # REPL режим
194
+ vladx repl
195
+
196
+ # Компилировать в JavaScript
197
+ vladx compile main.vx --output main.js
198
+
199
+ # Линтинг
200
+ vladx lint src/
201
+ vladx lint main.vx --fix
202
+
203
+ # Форматирование
204
+ vladx format src/
205
+ vladx format main.vx --indent 2
206
+
207
+ # Тесты
208
+ vladx test
209
+ vladx test tests/
210
+
211
+ # Сборка модулей
212
+ vladx bundle main.vx --format iife --minify
213
+
214
+ # Watch режим
215
+ vladx watch main.vx
216
+
217
+ # Отладка
218
+ vladx debug main.vx
219
+ ```
220
+
221
+ ## Менеджер пакетов (vladpm)
222
+
223
+ ```bash
224
+ # Инициализация проекта
225
+ vladpm init
226
+
227
+ # Установка пакета
228
+ vladpm установить пакет
229
+ vladpm установить пакет@1.0.0
230
+
231
+ # Глобальная установка
232
+ vladpm установить -g пакет
233
+
234
+ # Удаление пакета
235
+ vladpm удалить пакет
236
+
237
+ # Обновление пакетов
238
+ vladpm обновить
239
+
240
+ # Поиск пакетов
241
+ vladpm поиск пакет
242
+
243
+ # Информация о пакете
244
+ vladpm информация пакет
245
+
246
+ # Список пакетов
247
+ vladpm список
248
+
249
+ # Публикация
250
+ vladpm опубликовать
251
+ ```
252
+
253
+ ## Лицензия
254
+
255
+ MIT
256
+