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.
- package/dist/casing.d.ts +1 -4
- package/dist/casing.d.ts.map +1 -1
- package/dist/casing.js +0 -29
- package/dist/casing.js.map +1 -1
- package/dist/casing.test.js +2 -13
- package/dist/casing.test.js.map +1 -1
- package/dist/command_line_parser.d.ts +3 -3
- package/dist/command_line_parser.d.ts.map +1 -1
- package/dist/command_line_parser.js +35 -38
- package/dist/command_line_parser.js.map +1 -1
- package/dist/command_line_parser.test.js +73 -78
- package/dist/command_line_parser.test.js.map +1 -1
- package/dist/compatibility_checker.d.ts +9 -3
- package/dist/compatibility_checker.d.ts.map +1 -1
- package/dist/compatibility_checker.js +17 -4
- package/dist/compatibility_checker.js.map +1 -1
- package/dist/compatibility_checker.test.js +55 -1
- package/dist/compatibility_checker.test.js.map +1 -1
- package/dist/compiler.js +34 -17
- package/dist/compiler.js.map +1 -1
- package/dist/config.d.ts +5 -35
- package/dist/config.d.ts.map +1 -1
- package/dist/definition_finder.d.ts +1 -1
- package/dist/definition_finder.d.ts.map +1 -1
- package/dist/doc_comment_parser.d.ts +3 -0
- package/dist/doc_comment_parser.d.ts.map +1 -0
- package/dist/doc_comment_parser.js +219 -0
- package/dist/doc_comment_parser.js.map +1 -0
- package/dist/doc_comment_parser.test.d.ts +2 -0
- package/dist/doc_comment_parser.test.d.ts.map +1 -0
- package/dist/doc_comment_parser.test.js +494 -0
- package/dist/doc_comment_parser.test.js.map +1 -0
- package/dist/error_renderer.d.ts +1 -1
- package/dist/error_renderer.d.ts.map +1 -1
- package/dist/error_renderer.js +84 -65
- package/dist/error_renderer.js.map +1 -1
- package/dist/formatter.d.ts +15 -2
- package/dist/formatter.d.ts.map +1 -1
- package/dist/formatter.js +191 -234
- package/dist/formatter.js.map +1 -1
- package/dist/formatter.test.js +322 -88
- package/dist/formatter.test.js.map +1 -1
- package/dist/index.d.ts +1 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -4
- package/dist/index.js.map +1 -1
- package/dist/language_server.js +1 -1
- package/dist/language_server.js.map +1 -1
- package/dist/literals.d.ts +1 -2
- package/dist/literals.d.ts.map +1 -1
- package/dist/literals.js +1 -12
- package/dist/literals.js.map +1 -1
- package/dist/literals.test.js +1 -4
- package/dist/literals.test.js.map +1 -1
- package/dist/module_set.d.ts +3 -7
- package/dist/module_set.d.ts.map +1 -1
- package/dist/module_set.js +205 -51
- package/dist/module_set.js.map +1 -1
- package/dist/module_set.test.js +595 -28
- package/dist/module_set.test.js.map +1 -1
- package/dist/parser.d.ts +3 -4
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +185 -92
- package/dist/parser.js.map +1 -1
- package/dist/parser.test.js +243 -15
- package/dist/parser.test.js.map +1 -1
- package/dist/project_initializer.d.ts +2 -0
- package/dist/project_initializer.d.ts.map +1 -0
- package/dist/project_initializer.js +30 -0
- package/dist/project_initializer.js.map +1 -0
- package/dist/snapshotter.d.ts +3 -0
- package/dist/snapshotter.d.ts.map +1 -1
- package/dist/snapshotter.js +43 -6
- package/dist/snapshotter.js.map +1 -1
- package/dist/tokenizer.d.ts +8 -2
- package/dist/tokenizer.d.ts.map +1 -1
- package/dist/tokenizer.js +26 -20
- package/dist/tokenizer.js.map +1 -1
- package/dist/tokenizer.test.js +285 -269
- package/dist/tokenizer.test.js.map +1 -1
- package/package.json +7 -5
- package/src/casing.ts +1 -36
- package/src/command_line_parser.ts +42 -48
- package/src/compatibility_checker.ts +29 -7
- package/src/compiler.ts +35 -18
- package/src/definition_finder.ts +1 -1
- package/src/doc_comment_parser.ts +246 -0
- package/src/error_renderer.ts +90 -66
- package/src/formatter.ts +249 -238
- package/src/index.ts +0 -6
- package/src/language_server.ts +8 -8
- package/src/literals.ts +5 -14
- package/src/module_set.ts +259 -79
- package/src/parser.ts +213 -98
- package/src/project_initializer.ts +39 -0
- package/src/snapshotter.ts +46 -5
- package/src/tokenizer.ts +47 -25
- package/dist/encoding.d.ts +0 -2
- package/dist/encoding.d.ts.map +0 -1
- package/dist/encoding.js +0 -38
- package/dist/encoding.js.map +0 -1
- package/dist/encoding.test.d.ts +0 -2
- package/dist/encoding.test.d.ts.map +0 -1
- package/dist/encoding.test.js +0 -23
- package/dist/encoding.test.js.map +0 -1
- package/dist/index.test.d.ts +0 -2
- package/dist/index.test.d.ts.map +0 -1
- package/dist/index.test.js +0 -14
- package/dist/index.test.js.map +0 -1
- package/dist/types.d.ts +0 -375
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/src/encoding.ts +0 -32
- package/src/types.ts +0 -518
package/dist/parser.js.map
CHANGED
|
@@ -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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"}
|
package/dist/parser.test.js
CHANGED
|
@@ -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
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
1474
|
+
expected: "one of: 'struct', 'enum', 'import', 'method', 'const'",
|
|
1247
1475
|
},
|
|
1248
1476
|
{
|
|
1249
|
-
expected:
|
|
1477
|
+
expected: "one of: 'struct', 'enum', 'import', 'method', 'const'",
|
|
1250
1478
|
},
|
|
1251
1479
|
{
|
|
1252
|
-
expected:
|
|
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:
|
|
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:
|
|
1553
|
+
expected: "one of: 'struct', 'enum', 'import', 'method', 'const'",
|
|
1326
1554
|
},
|
|
1327
1555
|
],
|
|
1328
1556
|
});
|