--- /dev/null
+package org.simantics.scl.compiler.internal.parsing.utils;
+
+public abstract class LineLocator {
+ final protected int[] rowStarts;
+
+ public LineLocator(int[] rowStarts) {
+ this.rowStarts = rowStarts;
+ }
+
+ public abstract int lineNumberFromPosition(int position);
+
+ public int columnNumber(int line, int position) {
+ return position - rowStarts[line];
+ }
+}