UNPKG

parjs

Version:

A parser-combinator library for JavaScript.

85 lines (84 loc) 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * @module parjs */ /** */ const errors_1 = require("../errors"); const trace_visualizer_1 = require("./trace-visualizer"); /** * Indicates a success reply and contains the value and other information. */ class ParjsSuccess { constructor(value) { this.value = value; /** * The kind of the result: OK, Soft, Hard, Fatal. */ this.kind = ResultKind.Ok; } toString() { return `Success: ${this.value}`; } /** * Whether this result is an OK. */ get isOk() { return true; } } exports.ParjsSuccess = ParjsSuccess; /** * A failure result from a Parjs parser. */ class ParjsFailure { constructor(trace) { this.trace = trace; } get value() { throw new errors_1.ParjsParsingFailure(this); } get kind() { return this.trace.kind; } get reason() { return this.trace.reason; } toString() { return trace_visualizer_1.visualizeTrace(this.trace); } /** * Whether this result is an OK. */ get isOk() { return false; } } exports.ParjsFailure = ParjsFailure; /** * Namespace that contains the different reply kinds/error levels. */ var ResultKind; (function (ResultKind) { /** * An Unknown reply. */ ResultKind.Unknown = "Unknown"; /** * An OK reply. */ ResultKind.Ok = "OK"; /** * A soft failure reply. */ ResultKind.SoftFail = "Soft"; /** * A hard failure reply. */ ResultKind.HardFail = "Hard"; /** * A fatal failure reply. */ ResultKind.FatalFail = "Fatal"; })(ResultKind = exports.ResultKind || (exports.ResultKind = {})); //# sourceMappingURL=result.js.map