@scinorandex/sparse 0.0.2 → 0.0.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.
Files changed (62) hide show
  1. package/README.md +2 -2
  2. package/dist/cli.js +2 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/generator.d.ts +4 -1
  5. package/dist/generator.js +47 -32
  6. package/dist/generator.js.map +1 -1
  7. package/dist/index.d.ts +3 -2
  8. package/dist/index.js +5 -5
  9. package/dist/index.js.map +1 -1
  10. package/dist/meta/common.d.ts +57 -0
  11. package/dist/meta/common.js +62 -0
  12. package/dist/meta/common.js.map +1 -0
  13. package/dist/meta/handwritten.d.ts +12 -0
  14. package/dist/{grammarParser.js → meta/handwritten.js} +24 -24
  15. package/dist/meta/handwritten.js.map +1 -0
  16. package/dist/meta/selfhosted.d.ts +23 -0
  17. package/dist/meta/selfhosted.js +206 -0
  18. package/dist/meta/selfhosted.js.map +1 -0
  19. package/dist/meta/states.d.ts +1580 -0
  20. package/dist/meta/states.js +1493 -0
  21. package/dist/meta/states.js.map +1 -0
  22. package/dist/parser.d.ts +16 -5
  23. package/dist/parser.js +25 -7
  24. package/dist/parser.js.map +1 -1
  25. package/dist/{tableParser.d.ts → table/handwritten.d.ts} +1 -1
  26. package/dist/{tableParser.js → table/handwritten.js} +2 -2
  27. package/dist/table/handwritten.js.map +1 -0
  28. package/dist/table/selfhosted.d.ts +2 -0
  29. package/dist/table/selfhosted.js +65 -0
  30. package/dist/table/selfhosted.js.map +1 -0
  31. package/dist/table/states.d.ts +592 -0
  32. package/dist/table/states.js +593 -0
  33. package/dist/table/states.js.map +1 -0
  34. package/dist/utils/Result.d.ts +1 -1
  35. package/dist/utils/errorWindowBuilder.d.ts +1 -1
  36. package/example/LoLang/example.ts +14 -7
  37. package/example/complicated/grammar.txt +37 -0
  38. package/example/math/example.ts +1 -1
  39. package/example/selfhosted/01-meta-grammar.txt +10 -0
  40. package/example/selfhosted/02-table-grammar.txt +6 -0
  41. package/example/selfhosted/codegen-meta.ts +1489 -0
  42. package/example/selfhosted/codegen-table.ts +589 -0
  43. package/example/selfhosted/example.ts +39 -0
  44. package/package.json +3 -3
  45. package/src/cli.ts +1 -1
  46. package/src/generator.ts +52 -34
  47. package/src/index.ts +3 -2
  48. package/src/meta/common.ts +74 -0
  49. package/src/{grammarParser.ts → meta/handwritten.ts} +17 -21
  50. package/src/meta/selfhosted.ts +272 -0
  51. package/src/meta/states.ts +1489 -0
  52. package/src/parser.ts +53 -19
  53. package/src/{tableParser.ts → table/handwritten.ts} +5 -5
  54. package/src/table/selfhosted.ts +67 -0
  55. package/src/table/states.ts +589 -0
  56. package/src/utils/Result.ts +1 -1
  57. package/src/utils/errorWindowBuilder.ts +1 -1
  58. package/tsconfig.build.json +30 -0
  59. package/tsconfig.json +6 -6
  60. package/dist/grammarParser.d.ts +0 -27
  61. package/dist/grammarParser.js.map +0 -1
  62. package/dist/tableParser.js.map +0 -1
@@ -0,0 +1,592 @@
1
+ export declare const states: ({
2
+ "[L_BRACKET]": {
3
+ type: string;
4
+ value: number;
5
+ };
6
+ "[L_ANGLE]": {
7
+ type: string;
8
+ value: number;
9
+ };
10
+ "<PROGRAM>": {
11
+ type: string;
12
+ value: number;
13
+ };
14
+ "<STATES>": {
15
+ type: string;
16
+ value: number;
17
+ };
18
+ "<ITEMS>": {
19
+ type: string;
20
+ value: number;
21
+ };
22
+ "<ITEM>": {
23
+ type: string;
24
+ value: number;
25
+ };
26
+ "[EOF]"?: undefined;
27
+ "[COMMA]"?: undefined;
28
+ "[IDENTIFIER]"?: undefined;
29
+ "[R_BRACKET]"?: undefined;
30
+ "[R_ANGLE]"?: undefined;
31
+ "[EQUALS]"?: undefined;
32
+ "[NUMBER]"?: undefined;
33
+ } | {
34
+ "[EOF]": {
35
+ type: string;
36
+ value: number;
37
+ };
38
+ "[L_BRACKET]"?: undefined;
39
+ "[L_ANGLE]"?: undefined;
40
+ "<PROGRAM>"?: undefined;
41
+ "<STATES>"?: undefined;
42
+ "<ITEMS>"?: undefined;
43
+ "<ITEM>"?: undefined;
44
+ "[COMMA]"?: undefined;
45
+ "[IDENTIFIER]"?: undefined;
46
+ "[R_BRACKET]"?: undefined;
47
+ "[R_ANGLE]"?: undefined;
48
+ "[EQUALS]"?: undefined;
49
+ "[NUMBER]"?: undefined;
50
+ } | {
51
+ "[EOF]": {
52
+ type: string;
53
+ value: number;
54
+ };
55
+ "[L_BRACKET]": {
56
+ type: string;
57
+ value: number;
58
+ };
59
+ "[L_ANGLE]": {
60
+ type: string;
61
+ value: number;
62
+ };
63
+ "<STATES>": {
64
+ type: string;
65
+ value: number;
66
+ };
67
+ "<ITEMS>": {
68
+ type: string;
69
+ value: number;
70
+ };
71
+ "<ITEM>": {
72
+ type: string;
73
+ value: number;
74
+ };
75
+ "<PROGRAM>"?: undefined;
76
+ "[COMMA]"?: undefined;
77
+ "[IDENTIFIER]"?: undefined;
78
+ "[R_BRACKET]"?: undefined;
79
+ "[R_ANGLE]"?: undefined;
80
+ "[EQUALS]"?: undefined;
81
+ "[NUMBER]"?: undefined;
82
+ } | {
83
+ "[EOF]": {
84
+ type: string;
85
+ value: number;
86
+ };
87
+ "[L_BRACKET]": {
88
+ type: string;
89
+ value: number;
90
+ };
91
+ "[L_ANGLE]": {
92
+ type: string;
93
+ value: number;
94
+ };
95
+ "[COMMA]": {
96
+ type: string;
97
+ value: number;
98
+ };
99
+ "<PROGRAM>"?: undefined;
100
+ "<STATES>"?: undefined;
101
+ "<ITEMS>"?: undefined;
102
+ "<ITEM>"?: undefined;
103
+ "[IDENTIFIER]"?: undefined;
104
+ "[R_BRACKET]"?: undefined;
105
+ "[R_ANGLE]"?: undefined;
106
+ "[EQUALS]"?: undefined;
107
+ "[NUMBER]"?: undefined;
108
+ } | {
109
+ "[IDENTIFIER]": {
110
+ type: string;
111
+ value: number;
112
+ };
113
+ "[L_BRACKET]"?: undefined;
114
+ "[L_ANGLE]"?: undefined;
115
+ "<PROGRAM>"?: undefined;
116
+ "<STATES>"?: undefined;
117
+ "<ITEMS>"?: undefined;
118
+ "<ITEM>"?: undefined;
119
+ "[EOF]"?: undefined;
120
+ "[COMMA]"?: undefined;
121
+ "[R_BRACKET]"?: undefined;
122
+ "[R_ANGLE]"?: undefined;
123
+ "[EQUALS]"?: undefined;
124
+ "[NUMBER]"?: undefined;
125
+ } | {
126
+ "[L_BRACKET]": {
127
+ type: string;
128
+ value: number;
129
+ };
130
+ "[L_ANGLE]": {
131
+ type: string;
132
+ value: number;
133
+ };
134
+ "<ITEMS>": {
135
+ type: string;
136
+ value: number;
137
+ };
138
+ "<ITEM>": {
139
+ type: string;
140
+ value: number;
141
+ };
142
+ "<PROGRAM>"?: undefined;
143
+ "<STATES>"?: undefined;
144
+ "[EOF]"?: undefined;
145
+ "[COMMA]"?: undefined;
146
+ "[IDENTIFIER]"?: undefined;
147
+ "[R_BRACKET]"?: undefined;
148
+ "[R_ANGLE]"?: undefined;
149
+ "[EQUALS]"?: undefined;
150
+ "[NUMBER]"?: undefined;
151
+ } | {
152
+ "[R_BRACKET]": {
153
+ type: string;
154
+ value: number;
155
+ };
156
+ "[L_BRACKET]"?: undefined;
157
+ "[L_ANGLE]"?: undefined;
158
+ "<PROGRAM>"?: undefined;
159
+ "<STATES>"?: undefined;
160
+ "<ITEMS>"?: undefined;
161
+ "<ITEM>"?: undefined;
162
+ "[EOF]"?: undefined;
163
+ "[COMMA]"?: undefined;
164
+ "[IDENTIFIER]"?: undefined;
165
+ "[R_ANGLE]"?: undefined;
166
+ "[EQUALS]"?: undefined;
167
+ "[NUMBER]"?: undefined;
168
+ } | {
169
+ "[R_ANGLE]": {
170
+ type: string;
171
+ value: number;
172
+ };
173
+ "[L_BRACKET]"?: undefined;
174
+ "[L_ANGLE]"?: undefined;
175
+ "<PROGRAM>"?: undefined;
176
+ "<STATES>"?: undefined;
177
+ "<ITEMS>"?: undefined;
178
+ "<ITEM>"?: undefined;
179
+ "[EOF]"?: undefined;
180
+ "[COMMA]"?: undefined;
181
+ "[IDENTIFIER]"?: undefined;
182
+ "[R_BRACKET]"?: undefined;
183
+ "[EQUALS]"?: undefined;
184
+ "[NUMBER]"?: undefined;
185
+ } | {
186
+ "[EOF]": {
187
+ type: string;
188
+ value: number;
189
+ };
190
+ "[L_BRACKET]": {
191
+ type: string;
192
+ value: number;
193
+ };
194
+ "[L_ANGLE]": {
195
+ type: string;
196
+ value: number;
197
+ };
198
+ "<PROGRAM>"?: undefined;
199
+ "<STATES>"?: undefined;
200
+ "<ITEMS>"?: undefined;
201
+ "<ITEM>"?: undefined;
202
+ "[COMMA]"?: undefined;
203
+ "[IDENTIFIER]"?: undefined;
204
+ "[R_BRACKET]"?: undefined;
205
+ "[R_ANGLE]"?: undefined;
206
+ "[EQUALS]"?: undefined;
207
+ "[NUMBER]"?: undefined;
208
+ } | {
209
+ "[EQUALS]": {
210
+ type: string;
211
+ value: number;
212
+ };
213
+ "[L_BRACKET]"?: undefined;
214
+ "[L_ANGLE]"?: undefined;
215
+ "<PROGRAM>"?: undefined;
216
+ "<STATES>"?: undefined;
217
+ "<ITEMS>"?: undefined;
218
+ "<ITEM>"?: undefined;
219
+ "[EOF]"?: undefined;
220
+ "[COMMA]"?: undefined;
221
+ "[IDENTIFIER]"?: undefined;
222
+ "[R_BRACKET]"?: undefined;
223
+ "[R_ANGLE]"?: undefined;
224
+ "[NUMBER]"?: undefined;
225
+ } | {
226
+ "[NUMBER]": {
227
+ type: string;
228
+ value: number;
229
+ };
230
+ "[L_BRACKET]"?: undefined;
231
+ "[L_ANGLE]"?: undefined;
232
+ "<PROGRAM>"?: undefined;
233
+ "<STATES>"?: undefined;
234
+ "<ITEMS>"?: undefined;
235
+ "<ITEM>"?: undefined;
236
+ "[EOF]"?: undefined;
237
+ "[COMMA]"?: undefined;
238
+ "[IDENTIFIER]"?: undefined;
239
+ "[R_BRACKET]"?: undefined;
240
+ "[R_ANGLE]"?: undefined;
241
+ "[EQUALS]"?: undefined;
242
+ })[];
243
+ export declare const productions: ({
244
+ lhs: {
245
+ column: number;
246
+ lexeme: string;
247
+ line: number;
248
+ type: number;
249
+ };
250
+ identifier: string;
251
+ name: null;
252
+ originalProductionIndex: number;
253
+ rhs: {
254
+ type: string;
255
+ token: {
256
+ column: number;
257
+ lexeme: string;
258
+ line: number;
259
+ type: number;
260
+ };
261
+ identifier: string;
262
+ name: null;
263
+ }[];
264
+ } | {
265
+ lhs: {
266
+ column: number;
267
+ lexeme: string;
268
+ line: number;
269
+ type: number;
270
+ };
271
+ identifier: string;
272
+ name: string;
273
+ originalProductionIndex: number;
274
+ rhs: ({
275
+ type: string;
276
+ token: {
277
+ column: number;
278
+ lexeme: string;
279
+ line: number;
280
+ type: number;
281
+ };
282
+ identifier: string;
283
+ name: string;
284
+ } | {
285
+ type: string;
286
+ token: {
287
+ column: number;
288
+ lexeme: string;
289
+ line: number;
290
+ type: number;
291
+ };
292
+ identifier: string;
293
+ name: null;
294
+ })[];
295
+ })[];
296
+ export declare const selfhosted: {
297
+ states: ({
298
+ "[L_BRACKET]": {
299
+ type: string;
300
+ value: number;
301
+ };
302
+ "[L_ANGLE]": {
303
+ type: string;
304
+ value: number;
305
+ };
306
+ "<PROGRAM>": {
307
+ type: string;
308
+ value: number;
309
+ };
310
+ "<STATES>": {
311
+ type: string;
312
+ value: number;
313
+ };
314
+ "<ITEMS>": {
315
+ type: string;
316
+ value: number;
317
+ };
318
+ "<ITEM>": {
319
+ type: string;
320
+ value: number;
321
+ };
322
+ "[EOF]"?: undefined;
323
+ "[COMMA]"?: undefined;
324
+ "[IDENTIFIER]"?: undefined;
325
+ "[R_BRACKET]"?: undefined;
326
+ "[R_ANGLE]"?: undefined;
327
+ "[EQUALS]"?: undefined;
328
+ "[NUMBER]"?: undefined;
329
+ } | {
330
+ "[EOF]": {
331
+ type: string;
332
+ value: number;
333
+ };
334
+ "[L_BRACKET]"?: undefined;
335
+ "[L_ANGLE]"?: undefined;
336
+ "<PROGRAM>"?: undefined;
337
+ "<STATES>"?: undefined;
338
+ "<ITEMS>"?: undefined;
339
+ "<ITEM>"?: undefined;
340
+ "[COMMA]"?: undefined;
341
+ "[IDENTIFIER]"?: undefined;
342
+ "[R_BRACKET]"?: undefined;
343
+ "[R_ANGLE]"?: undefined;
344
+ "[EQUALS]"?: undefined;
345
+ "[NUMBER]"?: undefined;
346
+ } | {
347
+ "[EOF]": {
348
+ type: string;
349
+ value: number;
350
+ };
351
+ "[L_BRACKET]": {
352
+ type: string;
353
+ value: number;
354
+ };
355
+ "[L_ANGLE]": {
356
+ type: string;
357
+ value: number;
358
+ };
359
+ "<STATES>": {
360
+ type: string;
361
+ value: number;
362
+ };
363
+ "<ITEMS>": {
364
+ type: string;
365
+ value: number;
366
+ };
367
+ "<ITEM>": {
368
+ type: string;
369
+ value: number;
370
+ };
371
+ "<PROGRAM>"?: undefined;
372
+ "[COMMA]"?: undefined;
373
+ "[IDENTIFIER]"?: undefined;
374
+ "[R_BRACKET]"?: undefined;
375
+ "[R_ANGLE]"?: undefined;
376
+ "[EQUALS]"?: undefined;
377
+ "[NUMBER]"?: undefined;
378
+ } | {
379
+ "[EOF]": {
380
+ type: string;
381
+ value: number;
382
+ };
383
+ "[L_BRACKET]": {
384
+ type: string;
385
+ value: number;
386
+ };
387
+ "[L_ANGLE]": {
388
+ type: string;
389
+ value: number;
390
+ };
391
+ "[COMMA]": {
392
+ type: string;
393
+ value: number;
394
+ };
395
+ "<PROGRAM>"?: undefined;
396
+ "<STATES>"?: undefined;
397
+ "<ITEMS>"?: undefined;
398
+ "<ITEM>"?: undefined;
399
+ "[IDENTIFIER]"?: undefined;
400
+ "[R_BRACKET]"?: undefined;
401
+ "[R_ANGLE]"?: undefined;
402
+ "[EQUALS]"?: undefined;
403
+ "[NUMBER]"?: undefined;
404
+ } | {
405
+ "[IDENTIFIER]": {
406
+ type: string;
407
+ value: number;
408
+ };
409
+ "[L_BRACKET]"?: undefined;
410
+ "[L_ANGLE]"?: undefined;
411
+ "<PROGRAM>"?: undefined;
412
+ "<STATES>"?: undefined;
413
+ "<ITEMS>"?: undefined;
414
+ "<ITEM>"?: undefined;
415
+ "[EOF]"?: undefined;
416
+ "[COMMA]"?: undefined;
417
+ "[R_BRACKET]"?: undefined;
418
+ "[R_ANGLE]"?: undefined;
419
+ "[EQUALS]"?: undefined;
420
+ "[NUMBER]"?: undefined;
421
+ } | {
422
+ "[L_BRACKET]": {
423
+ type: string;
424
+ value: number;
425
+ };
426
+ "[L_ANGLE]": {
427
+ type: string;
428
+ value: number;
429
+ };
430
+ "<ITEMS>": {
431
+ type: string;
432
+ value: number;
433
+ };
434
+ "<ITEM>": {
435
+ type: string;
436
+ value: number;
437
+ };
438
+ "<PROGRAM>"?: undefined;
439
+ "<STATES>"?: undefined;
440
+ "[EOF]"?: undefined;
441
+ "[COMMA]"?: undefined;
442
+ "[IDENTIFIER]"?: undefined;
443
+ "[R_BRACKET]"?: undefined;
444
+ "[R_ANGLE]"?: undefined;
445
+ "[EQUALS]"?: undefined;
446
+ "[NUMBER]"?: undefined;
447
+ } | {
448
+ "[R_BRACKET]": {
449
+ type: string;
450
+ value: number;
451
+ };
452
+ "[L_BRACKET]"?: undefined;
453
+ "[L_ANGLE]"?: undefined;
454
+ "<PROGRAM>"?: undefined;
455
+ "<STATES>"?: undefined;
456
+ "<ITEMS>"?: undefined;
457
+ "<ITEM>"?: undefined;
458
+ "[EOF]"?: undefined;
459
+ "[COMMA]"?: undefined;
460
+ "[IDENTIFIER]"?: undefined;
461
+ "[R_ANGLE]"?: undefined;
462
+ "[EQUALS]"?: undefined;
463
+ "[NUMBER]"?: undefined;
464
+ } | {
465
+ "[R_ANGLE]": {
466
+ type: string;
467
+ value: number;
468
+ };
469
+ "[L_BRACKET]"?: undefined;
470
+ "[L_ANGLE]"?: undefined;
471
+ "<PROGRAM>"?: undefined;
472
+ "<STATES>"?: undefined;
473
+ "<ITEMS>"?: undefined;
474
+ "<ITEM>"?: undefined;
475
+ "[EOF]"?: undefined;
476
+ "[COMMA]"?: undefined;
477
+ "[IDENTIFIER]"?: undefined;
478
+ "[R_BRACKET]"?: undefined;
479
+ "[EQUALS]"?: undefined;
480
+ "[NUMBER]"?: undefined;
481
+ } | {
482
+ "[EOF]": {
483
+ type: string;
484
+ value: number;
485
+ };
486
+ "[L_BRACKET]": {
487
+ type: string;
488
+ value: number;
489
+ };
490
+ "[L_ANGLE]": {
491
+ type: string;
492
+ value: number;
493
+ };
494
+ "<PROGRAM>"?: undefined;
495
+ "<STATES>"?: undefined;
496
+ "<ITEMS>"?: undefined;
497
+ "<ITEM>"?: undefined;
498
+ "[COMMA]"?: undefined;
499
+ "[IDENTIFIER]"?: undefined;
500
+ "[R_BRACKET]"?: undefined;
501
+ "[R_ANGLE]"?: undefined;
502
+ "[EQUALS]"?: undefined;
503
+ "[NUMBER]"?: undefined;
504
+ } | {
505
+ "[EQUALS]": {
506
+ type: string;
507
+ value: number;
508
+ };
509
+ "[L_BRACKET]"?: undefined;
510
+ "[L_ANGLE]"?: undefined;
511
+ "<PROGRAM>"?: undefined;
512
+ "<STATES>"?: undefined;
513
+ "<ITEMS>"?: undefined;
514
+ "<ITEM>"?: undefined;
515
+ "[EOF]"?: undefined;
516
+ "[COMMA]"?: undefined;
517
+ "[IDENTIFIER]"?: undefined;
518
+ "[R_BRACKET]"?: undefined;
519
+ "[R_ANGLE]"?: undefined;
520
+ "[NUMBER]"?: undefined;
521
+ } | {
522
+ "[NUMBER]": {
523
+ type: string;
524
+ value: number;
525
+ };
526
+ "[L_BRACKET]"?: undefined;
527
+ "[L_ANGLE]"?: undefined;
528
+ "<PROGRAM>"?: undefined;
529
+ "<STATES>"?: undefined;
530
+ "<ITEMS>"?: undefined;
531
+ "<ITEM>"?: undefined;
532
+ "[EOF]"?: undefined;
533
+ "[COMMA]"?: undefined;
534
+ "[IDENTIFIER]"?: undefined;
535
+ "[R_BRACKET]"?: undefined;
536
+ "[R_ANGLE]"?: undefined;
537
+ "[EQUALS]"?: undefined;
538
+ })[];
539
+ productions: ({
540
+ lhs: {
541
+ column: number;
542
+ lexeme: string;
543
+ line: number;
544
+ type: number;
545
+ };
546
+ identifier: string;
547
+ name: null;
548
+ originalProductionIndex: number;
549
+ rhs: {
550
+ type: string;
551
+ token: {
552
+ column: number;
553
+ lexeme: string;
554
+ line: number;
555
+ type: number;
556
+ };
557
+ identifier: string;
558
+ name: null;
559
+ }[];
560
+ } | {
561
+ lhs: {
562
+ column: number;
563
+ lexeme: string;
564
+ line: number;
565
+ type: number;
566
+ };
567
+ identifier: string;
568
+ name: string;
569
+ originalProductionIndex: number;
570
+ rhs: ({
571
+ type: string;
572
+ token: {
573
+ column: number;
574
+ lexeme: string;
575
+ line: number;
576
+ type: number;
577
+ };
578
+ identifier: string;
579
+ name: string;
580
+ } | {
581
+ type: string;
582
+ token: {
583
+ column: number;
584
+ lexeme: string;
585
+ line: number;
586
+ type: number;
587
+ };
588
+ identifier: string;
589
+ name: null;
590
+ })[];
591
+ })[];
592
+ };