gnablib
Version:
A lean, zero dependency library to provide a useful base for your project.
2 lines • 792 B
JavaScript
/*! Copyright 2023-2024 the gnablib contributors MPL-1.1 */
import{StringBuilder as t}from"./StringBuilder.js";const i=Symbol.for("nodejs.util.inspect.custom");export class MatchSuccess{constructor(t,i){this.remain=t,this.result=i,this.fail=!1}formatDetail(t,i,o){const e=i.value.toString();if((void 0!==i.name||e.length>0)&&(t.append(o),void 0!==i.name&&(t.append(i.name),t.append("=")),t.appendLine(e)),void 0!==i.components)for(const e of i.components)this.formatDetail(t,e,o+" ")}[Symbol.toPrimitive](){const i=new t;return i.append("remain="),i.append(this.remain.toString()),i.appendLine(),this.formatDetail(i,this.result,""),i.toString()}[i](){return this[Symbol.toPrimitive]()}}export class MatchFail{constructor(t,i=void 0){this.pos=t,this.result=i,this.remain=void 0,this.fail=!0}}