skir 0.0.1 → 0.0.2

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 (115) hide show
  1. package/dist/casing.d.ts +1 -4
  2. package/dist/casing.d.ts.map +1 -1
  3. package/dist/casing.js +0 -29
  4. package/dist/casing.js.map +1 -1
  5. package/dist/casing.test.js +2 -13
  6. package/dist/casing.test.js.map +1 -1
  7. package/dist/command_line_parser.d.ts +3 -3
  8. package/dist/command_line_parser.d.ts.map +1 -1
  9. package/dist/command_line_parser.js +35 -38
  10. package/dist/command_line_parser.js.map +1 -1
  11. package/dist/command_line_parser.test.js +73 -78
  12. package/dist/command_line_parser.test.js.map +1 -1
  13. package/dist/compatibility_checker.d.ts +9 -3
  14. package/dist/compatibility_checker.d.ts.map +1 -1
  15. package/dist/compatibility_checker.js +17 -4
  16. package/dist/compatibility_checker.js.map +1 -1
  17. package/dist/compatibility_checker.test.js +55 -1
  18. package/dist/compatibility_checker.test.js.map +1 -1
  19. package/dist/compiler.js +34 -17
  20. package/dist/compiler.js.map +1 -1
  21. package/dist/config.d.ts +5 -35
  22. package/dist/config.d.ts.map +1 -1
  23. package/dist/definition_finder.d.ts +1 -1
  24. package/dist/definition_finder.d.ts.map +1 -1
  25. package/dist/doc_comment_parser.d.ts +3 -0
  26. package/dist/doc_comment_parser.d.ts.map +1 -0
  27. package/dist/doc_comment_parser.js +219 -0
  28. package/dist/doc_comment_parser.js.map +1 -0
  29. package/dist/doc_comment_parser.test.d.ts +2 -0
  30. package/dist/doc_comment_parser.test.d.ts.map +1 -0
  31. package/dist/doc_comment_parser.test.js +494 -0
  32. package/dist/doc_comment_parser.test.js.map +1 -0
  33. package/dist/error_renderer.d.ts +1 -1
  34. package/dist/error_renderer.d.ts.map +1 -1
  35. package/dist/error_renderer.js +84 -65
  36. package/dist/error_renderer.js.map +1 -1
  37. package/dist/formatter.d.ts +15 -2
  38. package/dist/formatter.d.ts.map +1 -1
  39. package/dist/formatter.js +191 -234
  40. package/dist/formatter.js.map +1 -1
  41. package/dist/formatter.test.js +322 -88
  42. package/dist/formatter.test.js.map +1 -1
  43. package/dist/index.d.ts +1 -5
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +1 -4
  46. package/dist/index.js.map +1 -1
  47. package/dist/language_server.js +1 -1
  48. package/dist/language_server.js.map +1 -1
  49. package/dist/literals.d.ts +1 -2
  50. package/dist/literals.d.ts.map +1 -1
  51. package/dist/literals.js +1 -12
  52. package/dist/literals.js.map +1 -1
  53. package/dist/literals.test.js +1 -4
  54. package/dist/literals.test.js.map +1 -1
  55. package/dist/module_set.d.ts +3 -7
  56. package/dist/module_set.d.ts.map +1 -1
  57. package/dist/module_set.js +205 -51
  58. package/dist/module_set.js.map +1 -1
  59. package/dist/module_set.test.js +595 -28
  60. package/dist/module_set.test.js.map +1 -1
  61. package/dist/parser.d.ts +3 -4
  62. package/dist/parser.d.ts.map +1 -1
  63. package/dist/parser.js +185 -92
  64. package/dist/parser.js.map +1 -1
  65. package/dist/parser.test.js +243 -15
  66. package/dist/parser.test.js.map +1 -1
  67. package/dist/project_initializer.d.ts +2 -0
  68. package/dist/project_initializer.d.ts.map +1 -0
  69. package/dist/project_initializer.js +30 -0
  70. package/dist/project_initializer.js.map +1 -0
  71. package/dist/snapshotter.d.ts +3 -0
  72. package/dist/snapshotter.d.ts.map +1 -1
  73. package/dist/snapshotter.js +43 -6
  74. package/dist/snapshotter.js.map +1 -1
  75. package/dist/tokenizer.d.ts +8 -2
  76. package/dist/tokenizer.d.ts.map +1 -1
  77. package/dist/tokenizer.js +26 -20
  78. package/dist/tokenizer.js.map +1 -1
  79. package/dist/tokenizer.test.js +285 -269
  80. package/dist/tokenizer.test.js.map +1 -1
  81. package/package.json +7 -5
  82. package/src/casing.ts +1 -36
  83. package/src/command_line_parser.ts +42 -48
  84. package/src/compatibility_checker.ts +29 -7
  85. package/src/compiler.ts +35 -18
  86. package/src/definition_finder.ts +1 -1
  87. package/src/doc_comment_parser.ts +246 -0
  88. package/src/error_renderer.ts +90 -66
  89. package/src/formatter.ts +249 -238
  90. package/src/index.ts +0 -6
  91. package/src/language_server.ts +8 -8
  92. package/src/literals.ts +5 -14
  93. package/src/module_set.ts +259 -79
  94. package/src/parser.ts +213 -98
  95. package/src/project_initializer.ts +39 -0
  96. package/src/snapshotter.ts +46 -5
  97. package/src/tokenizer.ts +47 -25
  98. package/dist/encoding.d.ts +0 -2
  99. package/dist/encoding.d.ts.map +0 -1
  100. package/dist/encoding.js +0 -38
  101. package/dist/encoding.js.map +0 -1
  102. package/dist/encoding.test.d.ts +0 -2
  103. package/dist/encoding.test.d.ts.map +0 -1
  104. package/dist/encoding.test.js +0 -23
  105. package/dist/encoding.test.js.map +0 -1
  106. package/dist/index.test.d.ts +0 -2
  107. package/dist/index.test.d.ts.map +0 -1
  108. package/dist/index.test.js +0 -14
  109. package/dist/index.test.js.map +0 -1
  110. package/dist/types.d.ts +0 -375
  111. package/dist/types.d.ts.map +0 -1
  112. package/dist/types.js +0 -2
  113. package/dist/types.js.map +0 -1
  114. package/src/encoding.ts +0 -32
  115. package/src/types.ts +0 -518
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { tokenizeModule } from "./tokenizer.js";
5
5
  function parse(content) {
6
6
  const pathToModule = "path/to/module";
7
7
  const tokenizerResult = tokenizeModule(content, pathToModule);
8
- return parseModule(tokenizerResult.result, pathToModule, content);
8
+ return parseModule(tokenizerResult.result);
9
9
  }
10
10
  describe("module parser", () => {
11
11
  it("simple struct", () => {
@@ -65,7 +65,6 @@ describe("module parser", () => {
65
65
  },
66
66
  ],
67
67
  nestedRecords: [],
68
- numbering: "implicit",
69
68
  removedNumbers: [2],
70
69
  numSlots: 2,
71
70
  numSlotsInclRemovedNumbers: 3,
@@ -93,18 +92,131 @@ describe("module parser", () => {
93
92
  number: 0,
94
93
  },
95
94
  },
96
- numbering: "explicit",
97
95
  },
98
96
  },
99
97
  },
100
98
  errors: [],
101
99
  });
102
100
  });
101
+ it("struct with inline records", () => {
102
+ const actualModule = parse(`
103
+ struct Foo {
104
+ bar: struct {
105
+ x: float32;
106
+ y: float32;
107
+ };
108
+ }`);
109
+ expect(actualModule).toMatch({
110
+ result: {
111
+ nameToDeclaration: {
112
+ Foo: {
113
+ nameToDeclaration: {
114
+ bar: {
115
+ number: 0,
116
+ unresolvedType: {
117
+ nameParts: [
118
+ {
119
+ text: "Bar",
120
+ },
121
+ ],
122
+ },
123
+ },
124
+ Bar: {
125
+ name: {
126
+ text: "Bar",
127
+ },
128
+ nameToDeclaration: {
129
+ x: {
130
+ number: 0,
131
+ },
132
+ y: {
133
+ number: 1,
134
+ },
135
+ },
136
+ },
137
+ },
138
+ },
139
+ },
140
+ },
141
+ errors: [],
142
+ });
143
+ });
144
+ it("struct with doc comments", () => {
145
+ const actualModule = parse(`
146
+ /// Doc comment
147
+ /// for Foo
148
+ struct Foo {
149
+ /// Doc comment for x
150
+ x: int32;
151
+ /// Doc comment for y
152
+ y: int32;
153
+ }`);
154
+ expect(actualModule).toMatch({
155
+ result: {
156
+ nameToDeclaration: {
157
+ Foo: {
158
+ doc: {},
159
+ nameToDeclaration: {
160
+ x: {
161
+ doc: {},
162
+ },
163
+ y: {
164
+ doc: {},
165
+ },
166
+ },
167
+ },
168
+ },
169
+ },
170
+ errors: [],
171
+ });
172
+ });
173
+ it("struct inline record conflicts with nested record", () => {
174
+ const actualModule = parse(`
175
+ struct Foo {
176
+ bar: struct {
177
+ x: float32;
178
+ y: float32;
179
+ };
180
+ struct Bar {}
181
+ }`);
182
+ expect(actualModule).toMatch({
183
+ result: {
184
+ nameToDeclaration: {
185
+ Foo: {
186
+ nameToDeclaration: {
187
+ bar: {
188
+ number: 0,
189
+ },
190
+ Bar: {
191
+ nameToDeclaration: {
192
+ x: {
193
+ number: 0,
194
+ },
195
+ y: {
196
+ number: 1,
197
+ },
198
+ },
199
+ },
200
+ },
201
+ },
202
+ },
203
+ },
204
+ errors: [
205
+ {
206
+ token: {
207
+ text: "Bar",
208
+ },
209
+ message: "Duplicate identifier 'Bar'",
210
+ },
211
+ ],
212
+ });
213
+ });
103
214
  it("simple enum", () => {
104
215
  const actualModule = parse(`
105
216
  enum Enum {
106
217
  CONSTANT;
107
218
  removed;
219
+ /// Doc comment
108
220
  value_field: bool;
109
221
  }`);
110
222
  expect(actualModule).toMatch({
@@ -130,6 +242,7 @@ describe("module parser", () => {
130
242
  text: "value_field",
131
243
  },
132
244
  number: 3,
245
+ doc: {},
133
246
  unresolvedType: {
134
247
  kind: "primitive",
135
248
  },
@@ -426,7 +539,7 @@ describe("module parser", () => {
426
539
  lineNumber: 2,
427
540
  },
428
541
  },
429
- message: 'Duplicate identifier "A"',
542
+ message: "Duplicate identifier 'A'",
430
543
  },
431
544
  ],
432
545
  });
@@ -487,7 +600,7 @@ describe("module parser", () => {
487
600
  lineNumber: 3,
488
601
  },
489
602
  },
490
- message: 'Duplicate identifier "a"',
603
+ message: "Duplicate identifier 'a'",
491
604
  },
492
605
  ],
493
606
  });
@@ -747,7 +860,6 @@ describe("module parser", () => {
747
860
  text: "Point",
748
861
  },
749
862
  recordType: "struct",
750
- numbering: "",
751
863
  },
752
864
  },
753
865
  },
@@ -826,6 +938,7 @@ describe("module parser", () => {
826
938
  });
827
939
  it("method", () => {
828
940
  const actualModule = parse(`
941
+ /// Doc comment for Search
829
942
  method Search(req):resp;`);
830
943
  expect(actualModule).toMatch({
831
944
  result: {
@@ -837,6 +950,7 @@ describe("module parser", () => {
837
950
  name: {
838
951
  text: "Search",
839
952
  },
953
+ doc: {},
840
954
  unresolvedRequestType: {
841
955
  kind: "record",
842
956
  nameParts: [
@@ -871,6 +985,101 @@ describe("module parser", () => {
871
985
  errors: [],
872
986
  });
873
987
  });
988
+ it("method with inline records", () => {
989
+ const actualModule = parse(`
990
+ method Search(
991
+ struct {
992
+ x: int32;
993
+ }
994
+ ): struct {
995
+ y: int32;
996
+ };`);
997
+ expect(actualModule).toMatch({
998
+ result: {
999
+ kind: "module",
1000
+ path: "path/to/module",
1001
+ nameToDeclaration: {
1002
+ Search: {
1003
+ kind: "method",
1004
+ name: {
1005
+ text: "Search",
1006
+ },
1007
+ unresolvedRequestType: {
1008
+ kind: "record",
1009
+ nameParts: [
1010
+ {
1011
+ text: "SearchRequest",
1012
+ },
1013
+ ],
1014
+ },
1015
+ unresolvedResponseType: {
1016
+ kind: "record",
1017
+ nameParts: [
1018
+ {
1019
+ text: "SearchResponse",
1020
+ },
1021
+ ],
1022
+ },
1023
+ number: 2446226092,
1024
+ hasExplicitNumber: false,
1025
+ },
1026
+ SearchRequest: {
1027
+ name: {
1028
+ text: "SearchRequest",
1029
+ originalText: "Search",
1030
+ },
1031
+ nameToDeclaration: {
1032
+ x: {},
1033
+ },
1034
+ },
1035
+ SearchResponse: {
1036
+ name: {
1037
+ text: "SearchResponse",
1038
+ },
1039
+ nameToDeclaration: {
1040
+ y: {},
1041
+ },
1042
+ },
1043
+ },
1044
+ methods: [
1045
+ {
1046
+ kind: "method",
1047
+ name: {
1048
+ text: "Search",
1049
+ },
1050
+ },
1051
+ ],
1052
+ },
1053
+ errors: [],
1054
+ });
1055
+ });
1056
+ it("method inline record conflicts with top-level declaration", () => {
1057
+ const actualModule = parse(`
1058
+ method Search(
1059
+ struct {
1060
+ x: int32;
1061
+ }
1062
+ ): string;
1063
+
1064
+ struct SearchRequest {}`);
1065
+ expect(actualModule).toMatch({
1066
+ result: {
1067
+ kind: "module",
1068
+ path: "path/to/module",
1069
+ nameToDeclaration: {
1070
+ Search: {
1071
+ kind: "method",
1072
+ },
1073
+ SearchRequest: {},
1074
+ },
1075
+ },
1076
+ errors: [
1077
+ {
1078
+ message: "Duplicate identifier 'SearchRequest'",
1079
+ },
1080
+ ],
1081
+ });
1082
+ });
874
1083
  it("method with explicit number", () => {
875
1084
  const actualModule = parse(`
876
1085
  method Search(req):resp = 200;`);
@@ -919,6 +1128,7 @@ describe("module parser", () => {
919
1128
  });
920
1129
  it("string constant", () => {
921
1130
  const actualModule = parse(`
1131
+ /// Doc comment for FOO
922
1132
  const FOO: string = "Foo";`);
923
1133
  expect(actualModule).toMatch({
924
1134
  result: {
@@ -930,6 +1140,7 @@ describe("module parser", () => {
930
1140
  name: {
931
1141
  text: "FOO",
932
1142
  },
1143
+ doc: {},
933
1144
  unresolvedType: {
934
1145
  kind: "primitive",
935
1146
  primitive: "string",
@@ -968,6 +1179,23 @@ describe("module parser", () => {
968
1179
  ],
969
1180
  });
970
1181
  });
1182
+ it("doc comment not on declaration", () => {
1183
+ const actualModule = parse(`
1184
+ const FOO: [string] = [
1185
+ /// Doc comment
1186
+ "bar",
1187
+ ];`);
1188
+ expect(actualModule).toMatch({
1189
+ errors: [
1190
+ {
1191
+ token: {
1192
+ text: "/// Doc comment",
1193
+ },
1194
+ message: "Doc comments can only precede declarations",
1195
+ },
1196
+ ],
1197
+ });
1198
+ });
971
1199
  it("complex constant", () => {
972
1200
  const actualModule = parse(`
973
1201
  const FOO: [Foo] = {
@@ -1202,7 +1430,7 @@ describe("module parser", () => {
1202
1430
  token: {
1203
1431
  text: "a",
1204
1432
  },
1205
- expected: 'one of: "struct", "enum", "import", "method", "const"',
1433
+ expected: "one of: 'struct', 'enum', 'import', 'method', 'const'",
1206
1434
  },
1207
1435
  ],
1208
1436
  });
@@ -1224,7 +1452,7 @@ describe("module parser", () => {
1224
1452
  token: {
1225
1453
  text: "a",
1226
1454
  },
1227
- expected: 'one of: "struct", "enum", "import", "method", "const"',
1455
+ expected: "one of: 'struct', 'enum', 'import', 'method', 'const'",
1228
1456
  },
1229
1457
  ],
1230
1458
  });
@@ -1243,13 +1471,13 @@ describe("module parser", () => {
1243
1471
  },
1244
1472
  errors: [
1245
1473
  {
1246
- expected: 'one of: "struct", "enum", "import", "method", "const"',
1474
+ expected: "one of: 'struct', 'enum', 'import', 'method', 'const'",
1247
1475
  },
1248
1476
  {
1249
- expected: 'one of: "struct", "enum", "import", "method", "const"',
1477
+ expected: "one of: 'struct', 'enum', 'import', 'method', 'const'",
1250
1478
  },
1251
1479
  {
1252
- expected: 'one of: "struct", "enum", "import", "method", "const"',
1480
+ expected: "one of: 'struct', 'enum', 'import', 'method', 'const'",
1253
1481
  },
1254
1482
  ],
1255
1483
  });
@@ -1265,7 +1493,7 @@ describe("module parser", () => {
1265
1493
  },
1266
1494
  errors: [
1267
1495
  {
1268
- expected: 'one of: "struct", "enum", "import", "method", "const"',
1496
+ expected: "one of: 'struct', 'enum', 'import', 'method', 'const'",
1269
1497
  },
1270
1498
  ],
1271
1499
  });
@@ -1285,7 +1513,7 @@ describe("module parser", () => {
1285
1513
  },
1286
1514
  errors: [
1287
1515
  {
1288
- expected: '"}"',
1516
+ expected: "'}'",
1289
1517
  },
1290
1518
  ],
1291
1519
  });
@@ -1305,7 +1533,7 @@ describe("module parser", () => {
1305
1533
  },
1306
1534
  errors: [
1307
1535
  {
1308
- expected: '":"',
1536
+ expected: "':'",
1309
1537
  },
1310
1538
  ],
1311
1539
  });
@@ -1322,7 +1550,7 @@ describe("module parser", () => {
1322
1550
  },
1323
1551
  errors: [
1324
1552
  {
1325
- expected: 'one of: "struct", "enum", "import", "method", "const"',
1553
+ expected: "one of: 'struct', 'enum', 'import', 'method', 'const'",
1326
1554
  },
1327
1555
  ],
1328
1556
  });