| "use strict"; |
| |
| Object.defineProperty(exports, "__esModule", { |
| value: true |
| }); |
| exports.getLocation = getLocation; |
| |
| /** |
| * Represents a location in a Source. |
| */ |
| |
| /** |
| * Takes a Source and a UTF-8 character offset, and returns the corresponding |
| * line and column as a SourceLocation. |
| */ |
| function getLocation(source, position) { |
| var lineRegexp = /\r\n|[\n\r]/g; |
| var line = 1; |
| var column = position + 1; |
| var match; |
| |
| while ((match = lineRegexp.exec(source.body)) && match.index < position) { |
| line += 1; |
| column = position + 1 - (match.index + match[0].length); |
| } |
| |
| return { |
| line: line, |
| column: column |
| }; |
| } |