| 2455 | } |
| 2456 | |
| 2457 | function peg$computeLocation(startPos, endPos, offset) { |
| 2458 | const startPosDetails = peg$computePosDetails(startPos); |
| 2459 | const endPosDetails = peg$computePosDetails(endPos); |
| 2460 | |
| 2461 | const res = { |
| 2462 | source: peg$source, |
| 2463 | start: { |
| 2464 | offset: startPos, |
| 2465 | line: startPosDetails.line, |
| 2466 | column: startPosDetails.column, |
| 2467 | }, |
| 2468 | end: { |
| 2469 | offset: endPos, |
| 2470 | line: endPosDetails.line, |
| 2471 | column: endPosDetails.column, |
| 2472 | }, |
| 2473 | }; |
| 2474 | if (offset && peg$source && (typeof peg$source.offset === "function")) { |
| 2475 | res.start = peg$source.offset(res.start); |
| 2476 | res.end = peg$source.offset(res.end); |
| 2477 | } |
| 2478 | return res; |
| 2479 | } |
| 2480 | |
| 2481 | function peg$fail(expected) { |
| 2482 | if (peg$currPos < peg$maxFailPos) { return; } |