function entry(location, indent, message = "") {
      let str = "";
      const src = srcLines.find(({ source }) => source === location.source);
      const s = location.start;
      if (src) {
        const e = location.end;
        const line = src.text[s.line - 1];
        const last = s.line === e.line ? e.column : line.length + 1;
        const hatLen = (last - s.column) || 1;
        if (message) {
          str += `\nnote: ${message}`;
        }
        str += `
 --> ${location.source}:${s.line}:${s.column}
${"".padEnd(indent)} |
${s.line.toString().padStart(indent)} | ${line}
${"".padEnd(indent)} | ${"".padEnd(s.column - 1)}${"".padEnd(hatLen, "^")}`;
      } else {
        str += `\n at ${location.source}:${s.line}:${s.column}`;
        if (message) {
          str += `: ${message}`;
        }
      }

      return str;
    }
/**
     * Returns a highlighted piece of source to which the `location` points
     *
     * @param {import("./peg").LocationRange} location
     * @param {number} indent How much width in symbols line number strip should have
     * @param {string} message Additional message that will be shown after location
     * @returns {string}
     */
Returns a highlighted piece of source to which the `location` points
@param {import("./peg").LocationRange} location
@param {number} indent How much width in symbols line number strip should have
@param {string} message Additional message that will be shown after location
@returns {string}
Returns a highlighted piece of source to which the ` location ` points @param { import ( " . / peg " ) . LocationRange } location @param { number } indent How much width in symbols line number strip should have @param { string } message Additional message that will be shown after location @returns { string }
function entry(location, indent, message = "") {
      let str = "";
      const src = srcLines.find(({ source }) => source === location.source);
      const s = location.start;
      if (src) {
        const e = location.end;
        const line = src.text[s.line - 1];
        const last = s.line === e.line ? e.column : line.length + 1;
        const hatLen = (last - s.column) || 1;
        if (message) {
          str += `\nnote: ${message}`;
        }
        str += `
 --> ${location.source}:${s.line}:${s.column}
${"".padEnd(indent)} |
${s.line.toString().padStart(indent)} | ${line}
${"".padEnd(indent)} | ${"".padEnd(s.column - 1)}${"".padEnd(hatLen, "^")}`;
      } else {
        str += `\n at ${location.source}:${s.line}:${s.column}`;
        if (message) {
          str += `: ${message}`;
        }
      }
      return str;
    }
function entry ( location , indent , message = "" ) { let str = "" ; const src = srcLines . find ( ( { source } ) => source === location . source ) ; const s = location . start ; if ( src ) { const e = location . end ; const line = src . text [ s . line - 1 ] ; const last = s . line === e . line ? e . column : line . length + 1 ; const hatLen = ( last - s . column ) || 1 ; if ( message ) { str += ` \n ${ message } ` ; } str += ` ${ location . source } ${ s . line } ${ s . column } ${ "" . padEnd ( indent ) } ${ s . line . toString ( ) . padStart ( indent ) } ${ line } ${ "" . padEnd ( indent ) } ${ "" . padEnd ( s . column - 1 ) } ${ "" . padEnd ( hatLen , "^" ) } ` ; } else { str += ` \n ${ location . source } ${ s . line } ${ s . column } ` ; if ( message ) { str += ` ${ message } ` ; } } return str ; }
Returns a highlighted piece of source to which the `location` points
 @param {import("./peg").LocationRange} location
 @param {number} indent How much width in symbols line number strip should have
 @param {string} message Additional message that will be shown after location
 @returns {string}
Returns a highlighted piece of source to which the ` location ` points @param { import ( " . / peg " ) . LocationRange } location @param { number } indent How much width in symbols line number strip should have @param { string } message Additional message that will be shown after location @returns { string }