parser-combinators 1.2.0 → 1.2.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.
@@ -0,0 +1,4 @@
1
+ "use strict";(()=>{var a=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var l=a(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});p.ParseError=void 0;p.isFailure=be;p.success=k;p.failure=ee;p.result=ve;p.fail=Pe;function be(e){return!e.success}function k(e,n){return{success:!0,value:n,ctx:e}}function ee(e,n,t){return{success:!1,expected:n,ctx:e,history:t}}function ve(e){return n=>k(n,e)}function Pe(e){return n=>ee(n,e,[e])}var B=class extends Error{constructor(n,t,r,s){super(n),this.index=r,this.history=s,[this.line,this.column,this.row]=this.getInputData(t,r)}getInputData(n,t){let r=n.split(`
2
+ `),s=0;for(;t>0;){if(r[s].length>t)return[r[s],t+1,s+1];t-=r[s].length+1,s+=1}return[r[s],t+1,s+1]}getPrettyErrorMessage(){return`${this.message} (line ${this.row}, col ${this.column}):
3
+ ${this.line}
4
+ ${(this.column>0?"-".repeat(this.column-1):"")+"^"}`}};p.ParseError=B});var te=a(z=>{"use strict";Object.defineProperty(z,"__esModule",{value:!0});z.anyString=Oe;var re=l();function Oe(e){let n=`'${e[e.length-1][0]}'`,t;return Object.assign(r=>{t??=we(e);let s=Me(t,r.text,r.index);return s?(0,re.success)({...r,index:s.end},e[s.matchIndex][0]):(0,re.failure)(r,n,["any",n])},{parserType:"anyString",matches:e})}function we(e){let n=new Map;return e.forEach((t,r)=>w(n,t,r)),n}function w(e,n,t,r=0){if(r>=n[0].length)e.matchIndex!=null?e.matchIndex=Math.min(e.matchIndex,t):e.matchIndex=t;else{let s=n[0][r],u=s.toLowerCase(),i=s.toUpperCase(),g=new Map;if(n[1]&&u!==i){let q=e.get(u)??g,_=e.get(i)??g;e.set(u,q),e.set(i,_),w(q,n,t,r+1),q!==_&&w(_,n,t,r+1)}else{let q=e.get(s)??g;e.set(s,q);let _=e.get(u);if(_===e.get(i)){let Z=new Map(_.entries());Z.matchIndex=_.matchIndex,e.set(i,Z)}w(q,n,t,r+1)}}}function Me(e,n,t){let r,s,u=e;for(let i=t;i<n.length;i++){let g=n[i];if(u.matchIndex!=null&&(s==null||u.matchIndex<=s)&&(r=i,s=u.matchIndex),u=u.get(g),!u)break}return u&&u.matchIndex!=null&&(s==null||u.matchIndex<=s)&&(r=n.length,s=u.matchIndex),r==null?void 0:{end:r,matchIndex:s}}});var M=a(f=>{"use strict";Object.defineProperty(f,"__esModule",{value:!0});f.toggleFusions=f.shouldPerformFusions=void 0;f.ref=Fe;f.expect=se;f.expectErase=Se;f.surely=$e;f.token=Te;f.lookaround=Ie;var h=l(),je=()=>ne;f.shouldPerformFusions=je;var ne=!0,me=e=>{ne=e};f.toggleFusions=me;function Fe(e,n,t){return r=>{let s=e(r);return!(0,h.isFailure)(s)&&!n(s.value)?(0,h.failure)(s.ctx,t??"check",[`ref: ${t??"check"}`]):s}}function se(e,n){return t=>{let r=e(t);return(0,h.isFailure)(r)?(0,h.failure)(r.ctx,n,[n,...r.history]):r}}function Se(e,n){return t=>{let r=e(t);return(0,h.isFailure)(r)?(0,h.failure)(r.ctx,n,[n]):r}}function $e(e){return se(e,"surely")}function Te(e){return n=>{let t=e(n);return t.success?{...t,value:{value:t.value,start:n.index,end:t.ctx.index}}:t}}function Ie(e){return n=>{let t=e(n);return t.success?(0,h.success)(n,void 0):(0,h.failure)(n,t.expected,["lookaround",...t.history])}}});var ue=a(R=>{"use strict";Object.defineProperty(R,"__esModule",{value:!0});R.any=ze;var D=l(),Ee=te(),Ce=M(),Be=["str","stri","anyString"];function ze(...e){let n={};if((0,Ce.shouldPerformFusions)()&&e.every(t=>"parserType"in t&&typeof t.parserType=="string"&&Be.includes(t.parserType))){let r=e.flatMap(s=>{switch(s.parserType){case"anyString":return s.matches;case"str":return[[s.match,!1]];case"stri":return[[s.match,!0]]}});if(r.length>10)return(0,Ee.anyString)(r);n={parserType:"anyString",matches:r}}return Object.assign(t=>{let r=[];for(let u of e){let i=u(t);if((0,D.isFailure)(i)){if(i.history.includes("surely"))return(0,D.failure)(i.ctx,i.expected,i.history.filter(g=>g!=="surely"));r.push(i)}else return i}let s=r.reduce((u,i)=>u.history.length>i.history.length?u:i);return(0,D.failure)(s.ctx,s.expected,["any",...s.history])},n)}});var v=a(Q=>{"use strict";Object.defineProperty(Q,"__esModule",{value:!0});Q.seq=De;var N=l();function De(...e){return n=>{let t=[];for(let r of e){let s=r(n);if(n=s.ctx,(0,N.isFailure)(s))return(0,N.failure)(s.ctx,s.expected,["seq",...s.history]);t.push(s.value)}return(0,N.success)(n,t)}}});var oe=a(A=>{"use strict";Object.defineProperty(A,"__esModule",{value:!0});A.between=Ne;var ie=l(),Re=v();function Ne(e,n,t){let r=(0,Re.seq)(e,n,t);return s=>{let u=r(s);if((0,ie.isFailure)(u)){let i=[...u.history];return i.splice(0,1),(0,ie.failure)(u.ctx,u.expected,["between",...i])}return{...u,value:u.value[1]}}}});var ce=a(H=>{"use strict";Object.defineProperty(H,"__esModule",{value:!0});H.exhaust=Qe;var P=l();function Qe(e,n=null){return t=>{let r=[];for(;;){let s=e(t);if((0,P.isFailure)(s))return n===null||(0,P.isFailure)(n(t))?(0,P.failure)(s.ctx,s.expected,["exhaust",...s.history]):(0,P.success)(t,r);if(t=s.ctx,r.push(s.value),s.ctx.index===s.ctx.text.length)return(0,P.success)(s.ctx,r)}}}});var m=a(L=>{"use strict";Object.defineProperty(L,"__esModule",{value:!0});L.map=Ae;var j=l();function Ae(e,n){return t=>{let r=e(t);if((0,j.isFailure)(r))return(0,j.failure)(r.ctx,r.expected,["map",...r.history]);try{let s=n(r.value);return(0,j.success)(r.ctx,s)}catch{return(0,j.failure)(r.ctx,"Error while mapping",["map"])}}}});var F=a(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.opt=He;var ae=l();function He(e){return n=>{let t=e(n);return(0,ae.isFailure)(t)?(0,ae.success)(n,null):t}}});var fe=a(b=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});b.many=V;b.zeroOrMany=Ue;b.oneOrMany=le;b.oneOrManyRed=Ve;var S=l(),x=m(),Le=F(),$=v();function V(e){return n=>{let t=[];for(;;){let r=e(n);if((0,S.isFailure)(r))return(0,S.success)(n,t);n=r.ctx,t.push(r.value)}}}function Ue(e,n){return(0,x.map)((0,Le.opt)(le(e,n)),t=>t??[])}function le(e,n=void 0){let t=(0,x.map)((0,$.seq)(e,V(n?(0,x.map)((0,$.seq)(n,e),([,r])=>r):e)),([r,s])=>[r,...s]);return r=>{let s=t(r);if((0,S.isFailure)(s)){let u=[...s.history];return u.splice(0,2),(0,S.failure)(s.ctx,s.expected,["oneOrMany",...u])}return s}}function Ve(e,n,t){return(0,x.map)((0,x.map)((0,$.seq)((0,x.map)(e,r=>[null,r]),V((0,$.seq)(n,e))),([r,s])=>[r,...s]),r=>{let s=r[0][1];for(let u=1;u<r.length;u++)s=t(s,r[u][1],r[u][0]);return s})}});var G=a(W=>{"use strict";Object.defineProperty(W,"__esModule",{value:!0});W.regex=We;var de=l();function We(e,n){let t=new RegExp(e,typeof e=="string"?"y":e.flags+"y");return r=>{t.lastIndex=r.index;let s=t.exec(r.text);return s!==null&&s.index===r.index?(0,de.success)({...r,index:r.index+s[0].length},s[0]):(0,de.failure)(r,n,[n])}}});var J=a(I=>{"use strict";Object.defineProperty(I,"__esModule",{value:!0});I.str=Ge;I.stri=Ke;var T=l();function Ge(e){let n=`'${e}'`;return Object.assign(t=>t.text.startsWith(e,t.index)?(0,T.success)({...t,index:t.index+e.length},e):(0,T.failure)(t,n,[n]),{parserType:"str",match:e})}var Je=new Intl.Collator("en",{sensitivity:"accent"});function Ke(e){let n=e.toLowerCase(),t=`'${n}'`;return Object.assign(r=>{let s=r.text.slice(r.index,r.index+e.length);return Je.compare(e,s)==0?(0,T.success)({...r,index:r.index+e.length},n):(0,T.failure)(r,t,[t])},{parserType:"stri",match:n})}});var ye=a(E=>{"use strict";Object.defineProperty(E,"__esModule",{value:!0});E.recoverBySkippingChars=Xe;E.recoverByAddingChars=Ye;var pe=l();function Xe(e,n){return t=>{let r=null;for(let s=0;s<=n;s++){let u=e({index:t.index+s,path:t.path,text:t.text});if((0,pe.isFailure)(u))r??=u;else return u}return r}}function Ye(e,n){return t=>{let r=null;for(let s=0;s<=n.length;s++){let u=n.slice(0,s),i=e({index:t.index,path:t.path,text:`${t.text.slice(0,t.index)}${u}${t.text.slice(t.index)}`});if((0,pe.isFailure)(i))r??=i;else return i}return r}}});var ge=a(o=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0});o.eof=o.realP=o.real=o.intP=o.int=o.boolP=o.bool=o.wspaces=o.spacesPlus=o.spaces=void 0;var he=l(),C=m(),Ze=F(),O=G(),ke=v(),er=J(),rr=M();o.spaces=(0,O.regex)(/ */,"spaces");o.spacesPlus=(0,O.regex)(/ +/,"spaces");o.wspaces=(0,Ze.opt)((0,O.regex)(/(?:\s|\t|\n|\r)+/,"whitespace characters"));o.bool=(0,O.regex)(/true|false/,"boolean");o.boolP=(0,C.map)(o.bool,e=>e==="true");o.int=(0,O.regex)(/\d+/,"integer");o.intP=(0,C.map)(o.int,e=>parseInt(e,10));o.real=(0,rr.expect)((0,C.map)((0,ke.seq)(o.int,(0,er.str)("."),o.int),([e,,n])=>`${e}.${n}`),"real");o.realP=(0,C.map)(o.real,e=>parseFloat(e));var tr=e=>e.index===e.text.length?(0,he.success)(e,void 0):(0,he.failure)(e,"End Of File",["EOF"]);o.eof=tr});var qe=a(c=>{"use strict";var nr=c&&c.__createBinding||(Object.create?(function(e,n,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(n,t);(!s||("get"in s?!n.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return n[t]}}),Object.defineProperty(e,r,s)}):(function(e,n,t,r){r===void 0&&(r=t),e[r]=n[t]})),d=c&&c.__exportStar||function(e,n){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(n,t)&&nr(n,e,t)};Object.defineProperty(c,"__esModule",{value:!0});c.stri=c.str=void 0;d(ue(),c);d(oe(),c);d(ce(),c);d(fe(),c);d(m(),c);d(F(),c);d(G(),c);d(v(),c);var _e=J();Object.defineProperty(c,"str",{enumerable:!0,get:function(){return _e.str}});Object.defineProperty(c,"stri",{enumerable:!0,get:function(){return _e.stri}});d(ye(),c);d(M(),c);d(ge(),c)});var xe=a(X=>{"use strict";Object.defineProperty(X,"__esModule",{value:!0});X.ParseText=sr;var K=l();function sr(e,n,t=""){let r=n({text:e,path:t,index:0});if((0,K.isFailure)(r))throw new K.ParseError(`Parse error, expected ${[...r.history].pop()} at char ${r.ctx.index}`,e,r.ctx.index,r.history);if(r.ctx.index!==e.length)throw new K.ParseError(`Parse error, expected end of text at char ${r.ctx.index}`,e,r.ctx.index,[]);return r.value}});var ir=a(y=>{var ur=y&&y.__createBinding||(Object.create?(function(e,n,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(n,t);(!s||("get"in s?!n.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return n[t]}}),Object.defineProperty(e,r,s)}):(function(e,n,t,r){r===void 0&&(r=t),e[r]=n[t]})),Y=y&&y.__exportStar||function(e,n){for(var t in e)t!=="default"&&!Object.prototype.hasOwnProperty.call(n,t)&&ur(n,e,t)};Object.defineProperty(y,"__esModule",{value:!0});Y(l(),y);Y(qe(),y);Y(xe(),y)});ir();})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "parser-combinators",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "license": "ISC",
5
5
  "maintainers": [
6
6
  "Micha_i"
@@ -15,9 +15,11 @@
15
15
  "homepage": "https://github.com/michalusio/Parser#readme",
16
16
  "description": "A library of parser combinators, with which you can create your own parsers. The library will be continuously improved in time.",
17
17
  "scripts": {
18
- "build": "tsc",
19
18
  "start": "tsc && node .",
20
- "lint": "eslint . --ext .ts",
19
+ "lint": "eslint src --ext .ts",
20
+ "build": "tsc",
21
+ "minify": "esbuild dist/index.js --minify=true --bundle --outfile=dist/index.min.js",
22
+ "bundle": "npm run lint && npm run build && npm run minify",
21
23
  "test:mutate": "stryker run",
22
24
  "test:unit": "mocha",
23
25
  "test": "nyc -e '.ts' --r html -r lcov -r text npm run test:unit"
@@ -33,14 +35,15 @@
33
35
  "@stryker-mutator/mocha-runner": "^9.4.0",
34
36
  "@stryker-mutator/typescript-checker": "^9.4.0",
35
37
  "@types/mocha": "10.0.10",
36
- "@types/node": "25.0.6",
38
+ "@types/node": "25.0.9",
37
39
  "cross-env": "10.1.0",
40
+ "esbuild": "0.27.2",
38
41
  "eslint": "9.39.2",
39
42
  "mocha": "11.7.5",
40
43
  "nyc": "17.1.0",
41
44
  "ts-node": "10.9.2",
42
45
  "typescript": "5.9.3",
43
- "typescript-eslint": "8.52.0"
46
+ "typescript-eslint": "8.53.0"
44
47
  },
45
48
  "keywords": [
46
49
  "parser",