@spakhm/ts-parsec 0.4.1 → 0.4.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/base.d.ts CHANGED
@@ -22,7 +22,7 @@ export declare function toParser<T extends string>(p: T): parser<T>;
22
22
  export declare function toParser<T>(p: parserlike<T>): parser<T>;
23
23
  export declare const str: <T extends string>(match: T) => parser<T>;
24
24
  export declare const lex: <T>(p: parserlike<T>) => parser<T>;
25
- export declare const lexMode: (wsMode: ws_mode) => <T>(p: parserlike<T>) => parser<T>;
25
+ export declare const lexMode: <T>(wsMode: ws_mode, p: parserlike<T>) => parser<T>;
26
26
  export declare const ws: (wsMode: "drop_all" | "keep_newlines") => parser<{}>;
27
27
  export declare const fwd: <T>(thunk: (() => parserlike<T>)) => parser<T>;
28
28
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAKhD,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC;CAAE,CAAC;AAC9E,MAAM,MAAM,YAAY,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;CAAE,CAAC;AAEtE,eAAO,MAAM,EAAE,GAAI,CAAC,EAAE,KAAK,CAAC,KAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAA2B,CAAC;AAC1E,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAAM,CAAC,KAAK,EAAE,YAAY,CAC3C,CAAC;AAK5C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AACtE,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG;IACpC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;CAC9C,CAAC;AACF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAK7D,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5D,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AA6BzD,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,MAAM,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,CAAC,CAQpD,CAAC;AAEN,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,cAUrC,CAAC;AAEH,eAAO,MAAM,OAAO,GAAI,QAAQ,OAAO,MACpC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,cAOhB,CAAC;AAEP,eAAO,MAAM,EAAE,GAAI,QAAQ,UAAU,GAAG,eAAe,eAqBnD,CAAC;AAKL,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CACL,CAAC"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAKhD,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC;CAAE,CAAC;AAC9E,MAAM,MAAM,YAAY,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;CAAE,CAAC;AAEtE,eAAO,MAAM,EAAE,GAAI,CAAC,EAAE,KAAK,CAAC,KAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAA2B,CAAC;AAC1E,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAAM,CAAC,KAAK,EAAE,YAAY,CAC3C,CAAC;AAK5C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AACtE,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG;IACpC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;CAC9C,CAAC;AACF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAK7D,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5D,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AA6BzD,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,MAAM,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,CAAC,CAQpD,CAAC;AAEN,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,cAWrC,CAAC;AAEH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,cAOxD,CAAC;AAEL,eAAO,MAAM,EAAE,GAAI,QAAQ,UAAU,GAAG,eAAe,eAqBnD,CAAC;AAKL,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CACL,CAAC"}
package/dist/index.js CHANGED
@@ -33,13 +33,14 @@ var lex = (p) => toParser((source) => {
33
33
  if (source.ws_mode === "keep_all") {
34
34
  return toParser(p)(source);
35
35
  } else {
36
- return lexMode("keep_all")((source2) => {
37
- ws("drop_all")(source2);
36
+ const wsMode = source.ws_mode;
37
+ return lexMode("keep_all", (source2) => {
38
+ ws(wsMode)(source2);
38
39
  return toParser(p)(source2);
39
40
  })(source);
40
41
  }
41
42
  });
42
- var lexMode = (wsMode) => (p) => toParser((source) => {
43
+ var lexMode = (wsMode, p) => toParser((source) => {
43
44
  const prev_ws_mode = source.ws_mode;
44
45
  source.ws_mode = wsMode;
45
46
  const res = toParser(p)(source);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spakhm/ts-parsec",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "license": "MIT",
5
5
  "author": "Slava Akhmechet",
6
6
  "type": "module",
package/src/base.ts CHANGED
@@ -67,22 +67,22 @@ export const lex = <T>(p: parserlike<T>) => toParser((source: stream) => {
67
67
  // nested lex call, don't drop more whitespace
68
68
  return toParser(p)(source);
69
69
  } else {
70
- return lexMode('keep_all')((source: stream) => {
71
- ws('drop_all')(source); // lex always drops all ws including newlines
70
+ const wsMode = source.ws_mode;
71
+ return lexMode('keep_all', (source: stream) => {
72
+ ws(wsMode)(source); // respect the current ws_mode
72
73
  return toParser(p)(source);
73
74
  })(source);
74
75
  }
75
76
  });
76
77
 
77
- export const lexMode = (wsMode: ws_mode) =>
78
- <T>(p: parserlike<T>) =>
79
- toParser((source: stream) => {
80
- const prev_ws_mode = source.ws_mode;
81
- source.ws_mode = wsMode;
82
- const res = toParser(p)(source);
83
- source.ws_mode = prev_ws_mode;
84
- return res;
85
- });
78
+ export const lexMode = <T>(wsMode: ws_mode, p: parserlike<T>) =>
79
+ toParser((source: stream) => {
80
+ const prev_ws_mode = source.ws_mode;
81
+ source.ws_mode = wsMode;
82
+ const res = toParser(p)(source);
83
+ source.ws_mode = prev_ws_mode;
84
+ return res;
85
+ });
86
86
 
87
87
  export const ws = (wsMode: 'drop_all' | 'keep_newlines') =>
88
88
  toParser((source: stream) => {