code: function MatchResult(
      matcher,
      input,
      startExpr,
      cst,
      cstOffset,
      rightmostFailurePosition,
      optRecordedFailures) {
  
    this.matcher = matcher;
    this.input = input;
    this.startExpr = startExpr;
    this._cst = cst;
    this._cstOffset = cstOffset;
    this._rightmostFailurePosition = rightmostFailurePosition;
    this._rightmostFailures = optRecordedFailures;
  
    if (this.failed()) {
      common.defineLazyProperty(this, 'message', function() {
        var detail = 'Expected ' + this.getExpectedText();
        return util.getLineAndColumnMessage(this.input, this.getRightmostFailurePosition()) + detail;
      });
      common.defineLazyProperty(this, 'shortMessage', function() {
        var detail = 'expected ' + this.getExpectedText();
        var errorInfo = util.getLineAndColumn(this.input, this.getRightmostFailurePosition());
        return 'Line ' + errorInfo.lineNum + ', col ' + errorInfo.colNum + ': ' + detail;
      });
    }
  }
docs: -------------------------------------------------------------------- Private stuff --------------------------------------------------------------------