skir-internal 0.0.1

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 (132) hide show
  1. package/README.md +2 -0
  2. package/dist/casing.d.ts +8 -0
  3. package/dist/casing.d.ts.map +1 -0
  4. package/dist/casing.js +43 -0
  5. package/dist/casing.js.map +1 -0
  6. package/dist/casing.test.d.ts.map +1 -0
  7. package/dist/casing.test.js +136 -0
  8. package/dist/casing.test.js.map +1 -0
  9. package/dist/command_line_parser.d.ts +33 -0
  10. package/dist/command_line_parser.d.ts.map +1 -0
  11. package/dist/command_line_parser.js +168 -0
  12. package/dist/command_line_parser.js.map +1 -0
  13. package/dist/command_line_parser.test.d.ts +2 -0
  14. package/dist/command_line_parser.test.d.ts.map +1 -0
  15. package/dist/command_line_parser.test.js +297 -0
  16. package/dist/command_line_parser.test.js.map +1 -0
  17. package/dist/compatibility_checker.d.ts +74 -0
  18. package/dist/compatibility_checker.d.ts.map +1 -0
  19. package/dist/compatibility_checker.js +341 -0
  20. package/dist/compatibility_checker.js.map +1 -0
  21. package/dist/compatibility_checker.test.d.ts +2 -0
  22. package/dist/compatibility_checker.test.d.ts.map +1 -0
  23. package/dist/compatibility_checker.test.js +582 -0
  24. package/dist/compatibility_checker.test.js.map +1 -0
  25. package/dist/compiler.d.ts.map +1 -0
  26. package/dist/compiler.js +375 -0
  27. package/dist/compiler.js.map +1 -0
  28. package/dist/config.d.ts +47 -0
  29. package/dist/config.d.ts.map +1 -0
  30. package/dist/config.js +23 -0
  31. package/dist/config.js.map +1 -0
  32. package/dist/definition_finder.d.ts +12 -0
  33. package/dist/definition_finder.d.ts.map +1 -0
  34. package/dist/definition_finder.js +180 -0
  35. package/dist/definition_finder.js.map +1 -0
  36. package/dist/definition_finder.test.d.ts +2 -0
  37. package/dist/definition_finder.test.d.ts.map +1 -0
  38. package/dist/definition_finder.test.js +164 -0
  39. package/dist/definition_finder.test.js.map +1 -0
  40. package/dist/doc_comment_parser.d.ts +3 -0
  41. package/dist/doc_comment_parser.d.ts.map +1 -0
  42. package/dist/doc_comment_parser.js +219 -0
  43. package/dist/doc_comment_parser.js.map +1 -0
  44. package/dist/doc_comment_parser.test.d.ts +2 -0
  45. package/dist/doc_comment_parser.test.d.ts.map +1 -0
  46. package/dist/doc_comment_parser.test.js +494 -0
  47. package/dist/doc_comment_parser.test.js.map +1 -0
  48. package/dist/encoding.d.ts +2 -0
  49. package/dist/encoding.d.ts.map +1 -0
  50. package/dist/encoding.js +38 -0
  51. package/dist/encoding.js.map +1 -0
  52. package/dist/encoding.test.d.ts +2 -0
  53. package/dist/encoding.test.d.ts.map +1 -0
  54. package/dist/encoding.test.js +23 -0
  55. package/dist/encoding.test.js.map +1 -0
  56. package/dist/error_renderer.d.ts +10 -0
  57. package/dist/error_renderer.d.ts.map +1 -0
  58. package/dist/error_renderer.js +266 -0
  59. package/dist/error_renderer.js.map +1 -0
  60. package/dist/formatter.d.ts +16 -0
  61. package/dist/formatter.d.ts.map +1 -0
  62. package/dist/formatter.js +220 -0
  63. package/dist/formatter.js.map +1 -0
  64. package/dist/formatter.test.d.ts +2 -0
  65. package/dist/formatter.test.d.ts.map +1 -0
  66. package/dist/formatter.test.js +390 -0
  67. package/dist/formatter.test.js.map +1 -0
  68. package/dist/formatter2.d.ts +3 -0
  69. package/dist/formatter2.d.ts.map +1 -0
  70. package/dist/formatter2.js +67 -0
  71. package/dist/formatter2.js.map +1 -0
  72. package/dist/index.d.ts +6 -0
  73. package/dist/index.d.ts.map +1 -0
  74. package/dist/index.js +5 -0
  75. package/dist/index.js.map +1 -0
  76. package/dist/index.test.d.ts.map +1 -0
  77. package/dist/index.test.js +14 -0
  78. package/dist/index.test.js.map +1 -0
  79. package/dist/io.d.ts.map +1 -0
  80. package/dist/io.js +22 -0
  81. package/dist/io.js.map +1 -0
  82. package/dist/language_server.d.ts +15 -0
  83. package/dist/language_server.d.ts.map +1 -0
  84. package/dist/language_server.js +248 -0
  85. package/dist/language_server.js.map +1 -0
  86. package/dist/literals.d.ts +13 -0
  87. package/dist/literals.d.ts.map +1 -0
  88. package/dist/literals.js +100 -0
  89. package/dist/literals.js.map +1 -0
  90. package/dist/literals.test.d.ts.map +1 -0
  91. package/dist/literals.test.js +149 -0
  92. package/dist/literals.test.js.map +1 -0
  93. package/dist/module_collector.d.ts +3 -0
  94. package/dist/module_collector.d.ts.map +1 -0
  95. package/dist/module_collector.js +22 -0
  96. package/dist/module_collector.js.map +1 -0
  97. package/dist/module_set.d.ts +40 -0
  98. package/dist/module_set.d.ts.map +1 -0
  99. package/dist/module_set.js +1178 -0
  100. package/dist/module_set.js.map +1 -0
  101. package/dist/module_set.test.d.ts.map +1 -0
  102. package/dist/module_set.test.js +1897 -0
  103. package/dist/module_set.test.js.map +1 -0
  104. package/dist/parser.d.ts +7 -0
  105. package/dist/parser.d.ts.map +1 -0
  106. package/dist/parser.js +1075 -0
  107. package/dist/parser.js.map +1 -0
  108. package/dist/parser.test.d.ts.map +1 -0
  109. package/dist/parser.test.js +1594 -0
  110. package/dist/parser.test.js.map +1 -0
  111. package/dist/project_initializer.d.ts +2 -0
  112. package/dist/project_initializer.d.ts.map +1 -0
  113. package/dist/project_initializer.js +30 -0
  114. package/dist/project_initializer.js.map +1 -0
  115. package/dist/snapshotter.d.ts +9 -0
  116. package/dist/snapshotter.d.ts.map +1 -0
  117. package/dist/snapshotter.js +144 -0
  118. package/dist/snapshotter.js.map +1 -0
  119. package/dist/tokenizer.d.ts +10 -0
  120. package/dist/tokenizer.d.ts.map +1 -0
  121. package/dist/tokenizer.js +198 -0
  122. package/dist/tokenizer.js.map +1 -0
  123. package/dist/tokenizer.test.d.ts.map +1 -0
  124. package/dist/tokenizer.test.js +441 -0
  125. package/dist/tokenizer.test.js.map +1 -0
  126. package/dist/types.d.ts +439 -0
  127. package/dist/types.d.ts.map +1 -0
  128. package/dist/types.js +2 -0
  129. package/dist/types.js.map +1 -0
  130. package/package.json +58 -0
  131. package/src/casing.ts +53 -0
  132. package/src/types.ts +585 -0
@@ -0,0 +1,441 @@
1
+ import { expect } from "buckwheat";
2
+ import { describe, it } from "mocha";
3
+ import { tokenizeModule } from "./tokenizer.js";
4
+ describe("tokenizer", () => {
5
+ it("tokenizes module with simple struct", () => {
6
+ const code = [
7
+ "import foo from './path/😊/foo';",
8
+ 'import * as bar from "path/to/bar";',
9
+ "",
10
+ "// Single-line comment",
11
+ "struct Point2d { /* Multi-line",
12
+ " comment */",
13
+ " x: float32 = 1;",
14
+ " y: float32 = 2;",
15
+ " foos: [foo.Foo]? = 4;",
16
+ " bars: [Bar|key] = 8;",
17
+ " removed 3, 5..7;",
18
+ "}",
19
+ "",
20
+ "const MINUS_ONE: int32 = -1;",
21
+ "const MINUS_ONE_AND_A_HALF: float32 = -1.5;",
22
+ "/// Doc comment for STRUCT",
23
+ "const STRUCT: Point2d = {| |};",
24
+ ].join("\n");
25
+ const actual = tokenizeModule(code, "path/to/module");
26
+ expect(actual).toMatch({
27
+ errors: [],
28
+ result: {
29
+ tokens: [
30
+ {
31
+ text: "import",
32
+ position: 0,
33
+ line: {
34
+ lineNumber: 0,
35
+ line: "import foo from './path/😊/foo';",
36
+ position: 0,
37
+ modulePath: "path/to/module",
38
+ },
39
+ colNumber: 0,
40
+ },
41
+ {
42
+ text: "foo",
43
+ position: 7,
44
+ colNumber: 7,
45
+ },
46
+ {
47
+ text: "from",
48
+ position: 11,
49
+ colNumber: 11,
50
+ },
51
+ {
52
+ text: "'./path/😊/foo'",
53
+ position: 16,
54
+ colNumber: 16,
55
+ },
56
+ {
57
+ text: ";",
58
+ position: 31,
59
+ colNumber: 31,
60
+ },
61
+ {
62
+ text: "import",
63
+ position: 33,
64
+ colNumber: 0,
65
+ },
66
+ {
67
+ text: "*",
68
+ position: 40,
69
+ line: {
70
+ lineNumber: 1,
71
+ line: 'import * as bar from "path/to/bar";',
72
+ position: 33,
73
+ modulePath: "path/to/module",
74
+ },
75
+ colNumber: 7,
76
+ },
77
+ {
78
+ text: "as",
79
+ position: 42,
80
+ colNumber: 9,
81
+ },
82
+ {
83
+ text: "bar",
84
+ position: 45,
85
+ colNumber: 12,
86
+ },
87
+ {
88
+ text: "from",
89
+ position: 49,
90
+ colNumber: 16,
91
+ },
92
+ {
93
+ text: '"path/to/bar"',
94
+ position: 54,
95
+ colNumber: 21,
96
+ },
97
+ {
98
+ text: ";",
99
+ },
100
+ {
101
+ text: "struct",
102
+ },
103
+ {
104
+ text: "Point2d",
105
+ },
106
+ {
107
+ text: "{",
108
+ },
109
+ {
110
+ text: "x",
111
+ },
112
+ {
113
+ text: ":",
114
+ },
115
+ {
116
+ text: "float32",
117
+ },
118
+ {
119
+ text: "=",
120
+ },
121
+ {
122
+ text: "1",
123
+ },
124
+ {
125
+ text: ";",
126
+ },
127
+ {
128
+ text: "y",
129
+ },
130
+ {
131
+ text: ":",
132
+ },
133
+ {
134
+ text: "float32",
135
+ },
136
+ {
137
+ text: "=",
138
+ },
139
+ {
140
+ text: "2",
141
+ },
142
+ {
143
+ text: ";",
144
+ },
145
+ {
146
+ text: "foos",
147
+ },
148
+ {
149
+ text: ":",
150
+ },
151
+ {
152
+ text: "[",
153
+ },
154
+ {
155
+ text: "foo",
156
+ },
157
+ {
158
+ text: ".",
159
+ },
160
+ {
161
+ text: "Foo",
162
+ },
163
+ {
164
+ text: "]",
165
+ },
166
+ {
167
+ text: "?",
168
+ },
169
+ {
170
+ text: "=",
171
+ },
172
+ {
173
+ text: "4",
174
+ },
175
+ {
176
+ text: ";",
177
+ },
178
+ {
179
+ text: "bars",
180
+ },
181
+ {
182
+ text: ":",
183
+ },
184
+ {
185
+ text: "[",
186
+ },
187
+ {
188
+ text: "Bar",
189
+ },
190
+ {
191
+ text: "|",
192
+ },
193
+ {
194
+ text: "key",
195
+ },
196
+ {
197
+ text: "]",
198
+ },
199
+ {
200
+ text: "=",
201
+ },
202
+ {
203
+ text: "8",
204
+ },
205
+ {
206
+ text: ";",
207
+ },
208
+ {
209
+ text: "removed",
210
+ },
211
+ {
212
+ text: "3",
213
+ },
214
+ {
215
+ text: ",",
216
+ },
217
+ {
218
+ text: "5",
219
+ },
220
+ {
221
+ text: "..",
222
+ },
223
+ {
224
+ text: "7",
225
+ },
226
+ {
227
+ text: ";",
228
+ },
229
+ {
230
+ text: "}",
231
+ },
232
+ {
233
+ text: "const",
234
+ },
235
+ {
236
+ text: "MINUS_ONE",
237
+ },
238
+ {
239
+ text: ":",
240
+ },
241
+ {
242
+ text: "int32",
243
+ },
244
+ {
245
+ text: "=",
246
+ },
247
+ {
248
+ text: "-1",
249
+ },
250
+ {
251
+ text: ";",
252
+ },
253
+ {
254
+ text: "const",
255
+ },
256
+ {
257
+ text: "MINUS_ONE_AND_A_HALF",
258
+ },
259
+ {
260
+ text: ":",
261
+ },
262
+ {
263
+ text: "float32",
264
+ },
265
+ {
266
+ text: "=",
267
+ },
268
+ {
269
+ text: "-1.5",
270
+ },
271
+ {
272
+ text: ";",
273
+ },
274
+ {
275
+ text: "/// Doc comment for STRUCT",
276
+ },
277
+ {
278
+ text: "const",
279
+ },
280
+ {
281
+ text: "STRUCT",
282
+ },
283
+ {
284
+ text: ":",
285
+ },
286
+ {
287
+ text: "Point2d",
288
+ },
289
+ {
290
+ text: "=",
291
+ },
292
+ {
293
+ text: "{|",
294
+ },
295
+ {
296
+ text: "|}",
297
+ },
298
+ {
299
+ text: ";",
300
+ },
301
+ {
302
+ text: "",
303
+ },
304
+ ],
305
+ },
306
+ });
307
+ expect(actual.result.tokensWithComments.filter((t) => t.text.startsWith("/*") ||
308
+ (t.text.startsWith("//") && !t.text.startsWith("///")))).toMatch([
309
+ {
310
+ text: "// Single-line comment",
311
+ originalText: "// Single-line comment",
312
+ },
313
+ {
314
+ text: ["/* Multi-line", " comment */"].join("\n"),
315
+ },
316
+ ]);
317
+ });
318
+ it("tokenizes module with single-quoted string", () => {
319
+ const code = ['const FOO: string = \'"\\\\\\""\''].join("\n");
320
+ const actual = tokenizeModule(code, "path/to/module");
321
+ expect(actual).toMatch({
322
+ errors: [],
323
+ });
324
+ });
325
+ it("tokenizes module with unterminated multi-line comment", () => {
326
+ const code = " /*";
327
+ const actual = tokenizeModule(code, "path/to/module");
328
+ expect(actual).toMatch({
329
+ errors: [
330
+ {
331
+ token: {
332
+ text: "/*",
333
+ position: 2,
334
+ },
335
+ message: "Unterminated multi-line comment",
336
+ },
337
+ ],
338
+ });
339
+ });
340
+ it("tokenizes module with unterminated string literal", () => {
341
+ const code = "import 'foo";
342
+ const actual = tokenizeModule(code, "path/to/module");
343
+ expect(actual).toMatch({
344
+ errors: [
345
+ {
346
+ token: {
347
+ text: "'foo",
348
+ position: 7,
349
+ },
350
+ message: "Unterminated string literal",
351
+ },
352
+ ],
353
+ });
354
+ });
355
+ it("tokenizes module with invalid char sequence", () => {
356
+ const code = " ##";
357
+ const actual = tokenizeModule(code, "path/to/module");
358
+ expect(actual).toMatch({
359
+ errors: [
360
+ {
361
+ token: {
362
+ text: "##",
363
+ position: 2,
364
+ },
365
+ message: "Invalid sequence of characters",
366
+ },
367
+ ],
368
+ });
369
+ });
370
+ it("tokenizes module with invalid escape sequence in string literal", () => {
371
+ const code = "import 'foo\\u0ffg';";
372
+ const actual = tokenizeModule(code, "path/to/module");
373
+ expect(actual).toMatch({
374
+ errors: [
375
+ {
376
+ token: {
377
+ text: "'foo\\u0ffg'",
378
+ position: 7,
379
+ },
380
+ message: "String literal contains invalid escape sequence",
381
+ },
382
+ ],
383
+ });
384
+ });
385
+ it("tokenizes module with lone surrogate in string literal", () => {
386
+ const code = "'\uD800a'";
387
+ const actual = tokenizeModule(code, "path/to/module");
388
+ expect(actual).toMatch({
389
+ errors: [
390
+ {
391
+ token: {
392
+ text: "'\ud800a'",
393
+ position: 0,
394
+ },
395
+ message: "String literal contains lone surrogates",
396
+ },
397
+ ],
398
+ });
399
+ });
400
+ it("tokenizes module with invalid word", () => {
401
+ const code = "00 1_ 2a";
402
+ const actual = tokenizeModule(code, "path/to/module");
403
+ expect(actual).toMatch({
404
+ errors: [
405
+ {
406
+ token: { text: "00" },
407
+ message: "Invalid number",
408
+ },
409
+ {
410
+ token: { text: "1_" },
411
+ message: "Invalid number",
412
+ },
413
+ {
414
+ token: { text: "2a" },
415
+ message: "Invalid number",
416
+ },
417
+ ],
418
+ });
419
+ });
420
+ it("tokenizes module with invalid identifiers", () => {
421
+ const code = "_a a_ a__a a_0";
422
+ const actual = tokenizeModule(code, "path/to/module");
423
+ expect(actual).toMatch({
424
+ errors: [
425
+ {
426
+ message: "Identifier cannot start with _",
427
+ },
428
+ {
429
+ message: "Identifier cannot end with _",
430
+ },
431
+ {
432
+ message: "Identifier cannot contain __ sequence",
433
+ },
434
+ {
435
+ message: "Digit cannot follow _",
436
+ },
437
+ ],
438
+ });
439
+ });
440
+ });
441
+ //# sourceMappingURL=tokenizer.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.test.js","sourceRoot":"","sources":["../src/tokenizer.test.ts"],"names":[],"mappings":"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"}