@cirru/parser.ts 0.0.3 → 0.0.6
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/lib/index.d.ts +3 -2
- package/lib/index.js +16 -9
- package/lib/index.js.map +1 -1
- package/lib/tree.js +10 -10
- package/lib/tree.js.map +1 -1
- package/package.json +16 -42
- package/src/index.ts +12 -2
- package/src/parser.test.ts +10 -0
- package/.github/workflows/npm-publish.yaml +0 -21
- package/.github/workflows/upload.yaml +0 -49
- package/jest.config.js +0 -13
- package/tsconfig-node.json +0 -21
package/lib/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare
|
|
1
|
+
import * as types from "./types";
|
|
2
|
+
export declare type ICirruNode = types.ICirruNode;
|
|
3
|
+
export declare let parse: (code: string) => types.ICirruNode[];
|
package/lib/index.js
CHANGED
|
@@ -26,7 +26,7 @@ let graspeExprs = (pullToken) => {
|
|
|
26
26
|
case types_1.ELexControl.close:
|
|
27
27
|
throw new Error("Unexpected close token");
|
|
28
28
|
default:
|
|
29
|
-
if (tree_1.isString(cursor)) {
|
|
29
|
+
if ((0, tree_1.isString)(cursor)) {
|
|
30
30
|
pointer.push(cursor);
|
|
31
31
|
break;
|
|
32
32
|
}
|
|
@@ -59,7 +59,7 @@ let buildExprs = (pullToken) => {
|
|
|
59
59
|
};
|
|
60
60
|
let parseIndentation = (buffer) => {
|
|
61
61
|
let size = buffer.length;
|
|
62
|
-
if (tree_1.isOdd(size)) {
|
|
62
|
+
if ((0, tree_1.isOdd)(size)) {
|
|
63
63
|
throw new Error(`Invalid indentation size ${size}`);
|
|
64
64
|
}
|
|
65
65
|
return size / 2;
|
|
@@ -180,11 +180,18 @@ let lex = (initialCode) => {
|
|
|
180
180
|
case "n":
|
|
181
181
|
[acc, state, buffer] = [acc, types_1.ELexState.string, `${buffer}\n`];
|
|
182
182
|
break;
|
|
183
|
+
case "r":
|
|
184
|
+
[acc, state, buffer] = [acc, types_1.ELexState.string, `${buffer}\r`];
|
|
185
|
+
break;
|
|
183
186
|
case "\\":
|
|
184
187
|
[acc, state, buffer] = [acc, types_1.ELexState.string, `${buffer}\\`];
|
|
185
188
|
break;
|
|
189
|
+
case "u":
|
|
190
|
+
console.warn(`unicode escaping not supported yet, ${code.slice(pointer - 1, pointer + 10)}...`);
|
|
191
|
+
[acc, state, buffer] = [acc, types_1.ELexState.string, `${buffer}\\u`];
|
|
192
|
+
break;
|
|
186
193
|
default:
|
|
187
|
-
throw new Error(`Unknown
|
|
194
|
+
throw new Error(`Unknown \\${c} in escape`);
|
|
188
195
|
}
|
|
189
196
|
break;
|
|
190
197
|
case types_1.ELexState.indent:
|
|
@@ -231,12 +238,12 @@ let resolveIndentations = (initialTokens) => {
|
|
|
231
238
|
let pointer = 0;
|
|
232
239
|
while (true) {
|
|
233
240
|
if (pointer >= tokens.length) {
|
|
234
|
-
if (tree_1.isEmpty(acc)) {
|
|
241
|
+
if ((0, tree_1.isEmpty)(acc)) {
|
|
235
242
|
return [];
|
|
236
243
|
}
|
|
237
244
|
else {
|
|
238
245
|
acc.unshift(types_1.ELexControl.open);
|
|
239
|
-
tree_1.pushToList(acc, repeat(level, types_1.ELexControl.close), [types_1.ELexControl.close]);
|
|
246
|
+
(0, tree_1.pushToList)(acc, repeat(level, types_1.ELexControl.close), [types_1.ELexControl.close]);
|
|
240
247
|
return acc;
|
|
241
248
|
}
|
|
242
249
|
}
|
|
@@ -255,18 +262,18 @@ let resolveIndentations = (initialTokens) => {
|
|
|
255
262
|
else if (typeof cursor === "number") {
|
|
256
263
|
if (cursor > level) {
|
|
257
264
|
let delta = cursor - level;
|
|
258
|
-
tree_1.pushToList(acc, repeat(delta, types_1.ELexControl.open));
|
|
265
|
+
(0, tree_1.pushToList)(acc, repeat(delta, types_1.ELexControl.open));
|
|
259
266
|
pointer += 1;
|
|
260
267
|
[level] = [cursor];
|
|
261
268
|
}
|
|
262
269
|
else if (cursor < level) {
|
|
263
270
|
let delta = level - cursor;
|
|
264
|
-
tree_1.pushToList(acc, repeat(delta, types_1.ELexControl.close), [types_1.ELexControl.close, types_1.ELexControl.open]);
|
|
271
|
+
(0, tree_1.pushToList)(acc, repeat(delta, types_1.ELexControl.close), [types_1.ELexControl.close, types_1.ELexControl.open]);
|
|
265
272
|
pointer += 1;
|
|
266
273
|
[level] = [cursor];
|
|
267
274
|
}
|
|
268
275
|
else {
|
|
269
|
-
if (tree_1.isEmpty(acc)) {
|
|
276
|
+
if ((0, tree_1.isEmpty)(acc)) {
|
|
270
277
|
acc = [];
|
|
271
278
|
}
|
|
272
279
|
else {
|
|
@@ -291,7 +298,7 @@ let parse = (code) => {
|
|
|
291
298
|
pointer += 1;
|
|
292
299
|
return c;
|
|
293
300
|
};
|
|
294
|
-
return tree_1.resolveComma(tree_1.resolveDollar(buildExprs(pullToken)));
|
|
301
|
+
return (0, tree_1.resolveComma)((0, tree_1.resolveDollar)(buildExprs(pullToken)));
|
|
295
302
|
};
|
|
296
303
|
exports.parse = parse;
|
|
297
304
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAuE;AAEvE,iCAA8G;AAM9G,IAAI,WAAW,GAAG,CAAC,SAAuB,EAAE,EAAE;IAC5C,IAAI,GAAG,GAAiB,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,GAAG,CAAC;IAClB,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,OAAO,IAAI,EAAE;QACX,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;QACzB,8CAA8C;QAC9C,QAAQ,MAAM,EAAE;YACd,KAAK,mBAAW,CAAC,KAAK;gBACpB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC7B,OAAO,OAAO,CAAC;iBAChB;gBACD,IAAI,SAAS,GAAG,OAAO,CAAC;gBACxB,OAAO,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,mBAAW,CAAC,IAAI;gBACnB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3B,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM;YACR,KAAK,mBAAW,CAAC,KAAK;gBACpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C;gBACE,IAAI,IAAA,eAAQ,EAAC,MAAM,CAAC,EAAE;oBACpB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACrB,MAAM;iBACP;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;oBACpC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;iBACnC;SACJ;KACF;AACH,CAAC,CAAC;AAEF,IAAI,UAAU,GAAG,CAAC,SAAuB,EAAE,EAAE;IAC3C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,OAAO,IAAI,EAAE;QACX,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;QACxB,IAAI,KAAK,KAAK,mBAAW,CAAC,IAAI,EAAE;YAC9B,IAAI,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,SAAS;SACV;aAAM,IAAI,KAAK,IAAI,IAAI,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;aAAM,IAAI,KAAK,KAAK,mBAAW,CAAC,KAAK,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACnC;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAC9D;KACF;AACH,CAAC,CAAC;AAEF,IAAI,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;IACxC,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,IAAI,IAAA,YAAK,EAAC,IAAI,CAAC,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;KACrD;IACD,OAAO,IAAI,GAAG,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,IAAI,GAAG,GAAG,CAAC,WAAmB,EAAE,EAAE;IAChC,IAAI,GAAG,GAAY,EAAE,CAAC;IACtB,IAAI,KAAK,GAAG,iBAAS,CAAC,MAAmB,CAAC;IAC1C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,IAAI,GAAG,WAAW,CAAC;IACvB,iBAAiB;IAEjB,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,OAAO,IAAI,EAAE;QACX,cAAc;QACd,sBAAsB;QACtB,WAAW;QACX,IAAI;QACJ,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE;YAC1B,QAAQ,KAAK,EAAE;gBACb,KAAK,iBAAS,CAAC,KAAK;oBAClB,OAAO,GAAG,CAAC;gBACb,KAAK,iBAAS,CAAC,KAAK;oBAClB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACjB,OAAO,GAAG,CAAC;oBACX,MAAM;gBACR,KAAK,iBAAS,CAAC,MAAM;oBACnB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBAC1C,KAAK,iBAAS,CAAC,MAAM;oBACnB,OAAO,GAAG,CAAC;gBACb,KAAK,iBAAS,CAAC,MAAM;oBACnB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBAC1C;oBACE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;aACnC;SACF;aAAM;YACL,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC,CAAC;YACb,QAAQ,KAAK,EAAE;gBACb,KAAK,iBAAS,CAAC,KAAK;oBAClB,QAAQ,CAAC,EAAE;wBACT,KAAK,GAAG;4BACN,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BAClD,MAAM;wBACR,KAAK,IAAI;4BACP,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;4BACnD,MAAM;wBACR,KAAK,GAAG;4BACN,GAAG,CAAC,IAAI,CAAC,mBAAW,CAAC,IAAI,CAAC,CAAC;4BAC3B,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACxC,MAAM;wBACR,KAAK,GAAG;4BACN,GAAG,CAAC,IAAI,CAAC,mBAAW,CAAC,KAAK,CAAC,CAAC;4BAC5B,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACxC,MAAM;wBACR,KAAK,GAAG;4BACN,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;4BACnD,MAAM;wBACR;4BACE,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;4BACjD,MAAM;qBACT;oBACD,MAAM;gBACR,KAAK,iBAAS,CAAC,KAAK;oBAClB,QAAQ,CAAC,EAAE;wBACT,KAAK,GAAG;4BACN,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACjB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACxC,MAAM;wBACR,KAAK,GAAG;4BACN,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACjB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;4BACzC,MAAM;wBACR,KAAK,IAAI;4BACP,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACjB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;4BACzC,MAAM;wBACR,KAAK,GAAG;4BACN,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAW,CAAC,IAAI,CAAC,CAAC;4BACnC,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACxC,MAAM;wBACR,KAAK,GAAG;4BACN,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAW,CAAC,KAAK,CAAC,CAAC;4BACpC,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACxC,MAAM;wBACR;4BACE,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;4BAC/D,MAAM;qBACT;oBACD,MAAM;gBACR,KAAK,iBAAS,CAAC,MAAM;oBACnB,QAAQ,CAAC,EAAE;wBACT,KAAK,GAAG;4BACN,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACjB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACxC,MAAM;wBACR,KAAK,IAAI;4BACP,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;4BACvD,MAAM;wBACR,KAAK,IAAI;4BACP,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;wBAChD;4BACE,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;4BAChE,MAAM;qBACT;oBACD,MAAM;gBACR,KAAK,iBAAS,CAAC,MAAM;oBACnB,QAAQ,CAAC,EAAE;wBACT,KAAK,GAAG;4BACN,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC;4BAC7D,MAAM;wBACR,KAAK,GAAG;4BACN,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC;4BAC7D,MAAM;wBACR,KAAK,GAAG;4BACN,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;4BAC9D,MAAM;wBACR,KAAK,GAAG;4BACN,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;4BAC9D,MAAM;wBACR,KAAK,GAAG;4BACN,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;4BAC9D,MAAM;wBACR,KAAK,IAAI;4BACP,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;4BAC9D,MAAM;wBACR,KAAK,GAAG;4BACN,OAAO,CAAC,IAAI,CAAC,uCAAuC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;4BAChG,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC;4BAC/D,MAAM;wBACR;4BACE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;qBAC/C;oBACD,MAAM;gBACR,KAAK,iBAAS,CAAC,MAAM;oBACnB,QAAQ,CAAC,EAAE;wBACT,KAAK,GAAG;4BACN,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;4BAChE,MAAM;wBACR,KAAK,IAAI;4BACP,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;4BACnD,MAAM;wBACR,KAAK,GAAG;4BACN,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;4BACnC,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;4BACzC,MAAM;wBACR,KAAK,GAAG;4BACN,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,mBAAW,CAAC,IAAI,CAAC,CAAC;4BACrD,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACxC,MAAM;wBACR;4BACE,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;4BACnC,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;4BACvC,MAAM;qBACT;oBACD,MAAM;gBACR;oBACE,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;oBACjC,OAAO,GAAG,CAAC;aACd;SACF;KACF;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,IAAI,MAAM,GAAG,CAAI,KAAa,EAAE,CAAI,EAAE,EAAE;IACtC,IAAI,EAAE,GAAQ,EAAE,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACZ;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,IAAI,mBAAmB,GAAG,CAAC,aAAsB,EAAE,EAAE;IACnD,IAAI,GAAG,GAAY,EAAE,CAAC;IACtB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAY,aAAa,CAAC;IACpC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,IAAI,EAAE;QACX,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE;YAC5B,IAAI,IAAA,cAAO,EAAC,GAAG,CAAC,EAAE;gBAChB,OAAO,EAAE,CAAC;aACX;iBAAM;gBACL,GAAG,CAAC,OAAO,CAAC,mBAAW,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAA,iBAAU,EAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,mBAAW,CAAC,KAAK,CAAC,EAAE,CAAC,mBAAW,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvE,OAAO,GAAG,CAAC;aACZ;SACF;aAAM;YACL,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBAC9B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjB,OAAO,IAAI,CAAC,CAAC;gBACb,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACnB;iBAAM,IAAI,MAAM,KAAK,mBAAW,CAAC,IAAI,IAAI,MAAM,KAAK,mBAAW,CAAC,KAAK,EAAE;gBACtE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjB,OAAO,IAAI,CAAC,CAAC;gBACb,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACnB;iBAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBACrC,IAAI,MAAM,GAAG,KAAK,EAAE;oBAClB,IAAI,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;oBAC3B,IAAA,iBAAU,EAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,mBAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBACjD,OAAO,IAAI,CAAC,CAAC;oBACb,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;iBACpB;qBAAM,IAAI,MAAM,GAAG,KAAK,EAAE;oBACzB,IAAI,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;oBAC3B,IAAA,iBAAU,EAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,mBAAW,CAAC,KAAK,CAAC,EAAE,CAAC,mBAAW,CAAC,KAAK,EAAE,mBAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzF,OAAO,IAAI,CAAC,CAAC;oBACb,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;iBACpB;qBAAM;oBACL,IAAI,IAAA,cAAO,EAAC,GAAG,CAAC,EAAE;wBAChB,GAAG,GAAG,EAAE,CAAC;qBACV;yBAAM;wBACL,GAAG,CAAC,IAAI,CAAC,mBAAW,CAAC,KAAK,EAAE,mBAAW,CAAC,IAAI,CAAC,CAAC;qBAC/C;oBACD,OAAO,IAAI,CAAC,CAAC;oBACb,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;iBACnB;aACF;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;aAClC;SACF;KACF;AACH,CAAC,CAAC;AAEK,IAAI,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE;IAClC,IAAI,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,SAAS,GAAG,GAAG,EAAE;QACnB,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,CAAC;QACb,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,OAAO,IAAA,mBAAY,EAAC,IAAA,oBAAa,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AATS,QAAA,KAAK,SASd"}
|
package/lib/tree.js
CHANGED
|
@@ -31,7 +31,7 @@ exports.isNumber = isNumber;
|
|
|
31
31
|
let isOdd = (x) => x % 2 === 1;
|
|
32
32
|
exports.isOdd = isOdd;
|
|
33
33
|
let resolveComma = (xs) => {
|
|
34
|
-
if (exports.isEmpty(xs)) {
|
|
34
|
+
if ((0, exports.isEmpty)(xs)) {
|
|
35
35
|
return [];
|
|
36
36
|
}
|
|
37
37
|
else {
|
|
@@ -48,18 +48,18 @@ let commaHelper = (intialAfter) => {
|
|
|
48
48
|
return before;
|
|
49
49
|
}
|
|
50
50
|
let cursor = after[pointer];
|
|
51
|
-
if (exports.isArray(cursor) && exports.notEmpty(cursor)) {
|
|
51
|
+
if ((0, exports.isArray)(cursor) && (0, exports.notEmpty)(cursor)) {
|
|
52
52
|
let head = cursor[0];
|
|
53
|
-
if (exports.isArray(head)) {
|
|
54
|
-
before.push(exports.resolveComma(cursor));
|
|
53
|
+
if ((0, exports.isArray)(head)) {
|
|
54
|
+
before.push((0, exports.resolveComma)(cursor));
|
|
55
55
|
pointer += 1;
|
|
56
56
|
}
|
|
57
57
|
else if (head === ",") {
|
|
58
|
-
exports.pushToList(before, exports.resolveComma(cursor.slice(1)));
|
|
58
|
+
(0, exports.pushToList)(before, (0, exports.resolveComma)(cursor.slice(1)));
|
|
59
59
|
pointer += 1;
|
|
60
60
|
}
|
|
61
61
|
else {
|
|
62
|
-
before.push(exports.resolveComma(cursor));
|
|
62
|
+
before.push((0, exports.resolveComma)(cursor));
|
|
63
63
|
pointer += 1;
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -70,7 +70,7 @@ let commaHelper = (intialAfter) => {
|
|
|
70
70
|
}
|
|
71
71
|
};
|
|
72
72
|
let resolveDollar = (xs) => {
|
|
73
|
-
if (exports.isEmpty(xs)) {
|
|
73
|
+
if ((0, exports.isEmpty)(xs)) {
|
|
74
74
|
return [];
|
|
75
75
|
}
|
|
76
76
|
else {
|
|
@@ -88,12 +88,12 @@ let dollarHelper = (initialAfter) => {
|
|
|
88
88
|
}
|
|
89
89
|
else {
|
|
90
90
|
let cursor = after[pointer];
|
|
91
|
-
if (exports.isArray(cursor)) {
|
|
92
|
-
before.push(exports.resolveDollar(cursor));
|
|
91
|
+
if ((0, exports.isArray)(cursor)) {
|
|
92
|
+
before.push((0, exports.resolveDollar)(cursor));
|
|
93
93
|
pointer += 1;
|
|
94
94
|
}
|
|
95
95
|
else if (cursor === "$") {
|
|
96
|
-
before.push(exports.resolveDollar(after.slice(pointer + 1))); // pick items after pointer for $
|
|
96
|
+
before.push((0, exports.resolveDollar)(after.slice(pointer + 1))); // pick items after pointer for $
|
|
97
97
|
pointer = after.length; // trying to exit
|
|
98
98
|
}
|
|
99
99
|
else {
|
package/lib/tree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":";;;AAEO,IAAI,UAAU,GAAG,CAAI,GAAQ,EAAE,EAAO,EAAE,EAAQ,EAAE,EAAQ,EAAE,EAAE;IACnE,IAAI,MAAM,GAAG,GAAG,CAAC;IACjB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,IAAI,EAAE,IAAI,IAAI,EAAE;QACd,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;KACJ;IACD,IAAI,EAAE,IAAI,IAAI,EAAE;QACd,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;KACJ;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAhBS,QAAA,UAAU,cAgBnB;AAES,QAAA,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC5B,IAAI,OAAO,GAAG,CAAC,EAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;AAAlD,QAAA,OAAO,WAA2C;AACtD,IAAI,QAAQ,GAAG,CAAC,EAAS,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAAxC,QAAA,QAAQ,YAAgC;AAC5C,IAAI,QAAQ,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;AAA7C,QAAA,QAAQ,YAAqC;AACjD,IAAI,QAAQ,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;AAA7C,QAAA,QAAQ,YAAqC;AACjD,IAAI,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAAnC,QAAA,KAAK,SAA8B;AAEvC,IAAI,YAAY,GAAG,CAAC,EAAgB,EAAE,EAAE;IAC7C,IAAI,eAAO,
|
|
1
|
+
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,62 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cirru/parser.ts",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"description": "Cirru Parser in TypeScript",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"
|
|
8
|
-
"watch": "webpack serve --hot --config webpack/dev.js",
|
|
9
|
-
"release": "rm -rfv dist/* && time webpack --config webpack/release.js",
|
|
7
|
+
"release": "rm -rfv dist/* && time vite build --base=./",
|
|
10
8
|
"build": "yarn release",
|
|
11
9
|
"serve": "http-server dist/ -s",
|
|
12
10
|
"test": "yarn jest",
|
|
13
11
|
"compile": "rm -rfv lib/* && tsc -d --project tsconfig-compile.json --outDir lib/",
|
|
14
12
|
"prepare": "yarn test && yarn compile",
|
|
15
13
|
"upload": "rsync -avr --progress dist/ cirru.org:~/repo/Cirru/parser.ts",
|
|
16
|
-
"gen-router": "ts-node -P tsconfig-node.json -r tsconfig-paths/register example/gen-router.ts",
|
|
17
14
|
"postinstall": "rm -rfv node_modules/@types/*/node_modules/@types/react"
|
|
18
15
|
},
|
|
19
16
|
"keywords": [],
|
|
20
17
|
"author": "",
|
|
21
18
|
"license": "MIT",
|
|
22
19
|
"devDependencies": {
|
|
23
|
-
"@emotion/css": "^11.
|
|
24
|
-
"@
|
|
25
|
-
"@types/
|
|
26
|
-
"@types/
|
|
27
|
-
"@types/
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"html-webpack-plugin": "^5.0.0",
|
|
38
|
-
"html-webpack-tags-plugin": "^3.0.0",
|
|
39
|
-
"immer": "^8.0.1",
|
|
40
|
-
"jest": "^26.6.3",
|
|
41
|
-
"mini-css-extract-plugin": "^1.3.5",
|
|
42
|
-
"prettier": "^2.2.1",
|
|
43
|
-
"query-string": "^6.13.8",
|
|
44
|
-
"react": "^17.0.1",
|
|
45
|
-
"react-dom": "^17.0.1",
|
|
46
|
-
"style-loader": "^2.0.0",
|
|
47
|
-
"thread-loader": "^3.0.1",
|
|
48
|
-
"ts-jest": "^26.5.0",
|
|
49
|
-
"ts-loader": "^8.0.14",
|
|
50
|
-
"tsconfig-paths": "^3.9.0",
|
|
51
|
-
"tsconfig-paths-webpack-plugin": "^3.3.0",
|
|
52
|
-
"typescript": "^4.1.3",
|
|
53
|
-
"typescript-styled-plugin": "^0.15.0",
|
|
54
|
-
"url-loader": "^4.1.1",
|
|
55
|
-
"webpack": "^5.20.1",
|
|
56
|
-
"webpack-bundle-analyzer": "^4.4.0",
|
|
57
|
-
"webpack-cli": "^4.5.0",
|
|
58
|
-
"webpack-dev-server": "^3.11.2",
|
|
59
|
-
"webpack-hud": "^0.1.2"
|
|
20
|
+
"@emotion/css": "^11.10.0",
|
|
21
|
+
"@types/jest": "^28.1.7",
|
|
22
|
+
"@types/node": "^18.7.11",
|
|
23
|
+
"@types/react": "^18.0.17",
|
|
24
|
+
"@types/react-dom": "^18.0.6",
|
|
25
|
+
"dayjs": "^1.11.5",
|
|
26
|
+
"jest": "^28.1.3",
|
|
27
|
+
"prettier": "^2.7.1",
|
|
28
|
+
"react": "^18.2.0",
|
|
29
|
+
"react-dom": "^18.2.0",
|
|
30
|
+
"ts-jest": "^28.0.8",
|
|
31
|
+
"typescript": "^4.7.4",
|
|
32
|
+
"typescript-styled-plugin": "^0.18.2",
|
|
33
|
+
"vite": "^3.0.9"
|
|
60
34
|
},
|
|
61
35
|
"dependencies": {}
|
|
62
36
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ELexState, ELexControl, LexList, LexListItem } from "./types";
|
|
2
|
+
import * as types from "./types";
|
|
2
3
|
import { pushToList, resolveComma, resolveDollar, isEmpty, isString, isNumber, isOdd, isArray } from "./tree";
|
|
3
4
|
|
|
5
|
+
export type ICirruNode = types.ICirruNode;
|
|
6
|
+
|
|
4
7
|
type FuncTokenGet = () => string | ELexControl;
|
|
5
8
|
|
|
6
9
|
let graspeExprs = (pullToken: FuncTokenGet) => {
|
|
@@ -180,11 +183,18 @@ let lex = (initialCode: string) => {
|
|
|
180
183
|
case "n":
|
|
181
184
|
[acc, state, buffer] = [acc, ELexState.string, `${buffer}\n`];
|
|
182
185
|
break;
|
|
186
|
+
case "r":
|
|
187
|
+
[acc, state, buffer] = [acc, ELexState.string, `${buffer}\r`];
|
|
188
|
+
break;
|
|
183
189
|
case "\\":
|
|
184
190
|
[acc, state, buffer] = [acc, ELexState.string, `${buffer}\\`];
|
|
185
191
|
break;
|
|
192
|
+
case "u":
|
|
193
|
+
console.warn(`unicode escaping not supported yet, ${code.slice(pointer - 1, pointer + 10)}...`);
|
|
194
|
+
[acc, state, buffer] = [acc, ELexState.string, `${buffer}\\u`];
|
|
195
|
+
break;
|
|
186
196
|
default:
|
|
187
|
-
throw new Error(`Unknown
|
|
197
|
+
throw new Error(`Unknown \\${c} in escape`);
|
|
188
198
|
}
|
|
189
199
|
break;
|
|
190
200
|
case ELexState.indent:
|
package/src/parser.test.ts
CHANGED
|
@@ -75,3 +75,13 @@ test("unfolding", () => {
|
|
|
75
75
|
let data = require(path.join(__dirname, "../test/ast/unfolding.json"));
|
|
76
76
|
expect(parse(code)).toEqual(data);
|
|
77
77
|
});
|
|
78
|
+
|
|
79
|
+
test("with escaping", () => {
|
|
80
|
+
let code = `"\'a"`;
|
|
81
|
+
let data = [["'a"]];
|
|
82
|
+
expect(parse(code)).toEqual(data);
|
|
83
|
+
|
|
84
|
+
code = `"\\u{3455}"`;
|
|
85
|
+
data = [["\\u{3455}"]];
|
|
86
|
+
expect(parse(code)).toEqual(data);
|
|
87
|
+
});
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
name: npm publish
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
release:
|
|
5
|
-
types: [created]
|
|
6
|
-
|
|
7
|
-
jobs:
|
|
8
|
-
publish-npm:
|
|
9
|
-
runs-on: ubuntu-latest
|
|
10
|
-
steps:
|
|
11
|
-
- uses: actions/checkout@v2
|
|
12
|
-
- uses: actions/setup-node@v1
|
|
13
|
-
with:
|
|
14
|
-
node-version: 12
|
|
15
|
-
registry-url: https://registry.npmjs.org/
|
|
16
|
-
|
|
17
|
-
- run: yarn && yarn compile
|
|
18
|
-
|
|
19
|
-
- run: npm publish
|
|
20
|
-
env:
|
|
21
|
-
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
name: Upload Assets
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
pull_request: {}
|
|
5
|
-
push:
|
|
6
|
-
branches:
|
|
7
|
-
- master
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
upload-assets:
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
steps:
|
|
13
|
-
- uses: actions/checkout@v2
|
|
14
|
-
|
|
15
|
-
- name: Use Node.js
|
|
16
|
-
uses: actions/setup-node@v1
|
|
17
|
-
|
|
18
|
-
- name: Get yarn cache
|
|
19
|
-
id: yarn-cache
|
|
20
|
-
run: echo "::set-output name=dir::$(yarn cache dir)"
|
|
21
|
-
|
|
22
|
-
- uses: actions/cache@v1
|
|
23
|
-
with:
|
|
24
|
-
path: ${{ steps.yarn-cache.outputs.dir }}
|
|
25
|
-
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
|
26
|
-
restore-keys: |
|
|
27
|
-
${{ runner.os }}-yarn-
|
|
28
|
-
|
|
29
|
-
- run: yarn
|
|
30
|
-
- run: yarn test
|
|
31
|
-
- run: yarn tsc -d --project tsconfig-compile.json --outDir lib/
|
|
32
|
-
|
|
33
|
-
- run: yarn release
|
|
34
|
-
name: Build web assets
|
|
35
|
-
|
|
36
|
-
- name: Deploy to server
|
|
37
|
-
id: deploy
|
|
38
|
-
uses: Pendect/action-rsyncer@v1.1.0
|
|
39
|
-
env:
|
|
40
|
-
DEPLOY_KEY: ${{secrets.rsync_private_key}}
|
|
41
|
-
with:
|
|
42
|
-
flags: "-avzr --progress"
|
|
43
|
-
options: ""
|
|
44
|
-
ssh_options: ""
|
|
45
|
-
src: "dist/*"
|
|
46
|
-
dest: "rsync-user@cirru.org:/web-assets/repo/${{ github.repository }}"
|
|
47
|
-
|
|
48
|
-
- name: Display status from deploy
|
|
49
|
-
run: echo "${{ steps.deploy.outputs.status }}"
|
package/jest.config.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
preset: "ts-jest",
|
|
3
|
-
testEnvironment: "node",
|
|
4
|
-
roots: ["<rootDir>/src"],
|
|
5
|
-
transform: {
|
|
6
|
-
"^.+\\.tsx?$": "ts-jest",
|
|
7
|
-
},
|
|
8
|
-
moduleNameMapper: {
|
|
9
|
-
"^lodash-es$": "lodash",
|
|
10
|
-
},
|
|
11
|
-
silent: false,
|
|
12
|
-
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
|
|
13
|
-
};
|
package/tsconfig-node.json
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"allowSyntheticDefaultImports": true,
|
|
4
|
-
"experimentalDecorators": true,
|
|
5
|
-
"sourceMap": true,
|
|
6
|
-
"noImplicitAny": false,
|
|
7
|
-
"noImplicitThis": true,
|
|
8
|
-
"strictNullChecks": false,
|
|
9
|
-
"moduleResolution": "node",
|
|
10
|
-
"module": "commonjs",
|
|
11
|
-
"target": "es2016",
|
|
12
|
-
"jsx": "react",
|
|
13
|
-
"lib": ["es2016"],
|
|
14
|
-
"types": ["node"],
|
|
15
|
-
"baseUrl": "./example/",
|
|
16
|
-
"paths": {
|
|
17
|
-
"models": ["./example/models"]
|
|
18
|
-
},
|
|
19
|
-
"plugins": []
|
|
20
|
-
}
|
|
21
|
-
}
|