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