X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fparsing%2Futils%2FLineLocator.java;fp=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fparsing%2Futils%2FLineLocator.java;h=f44745157a18fae57e9ce11d2af76c1d4eba81cd;hb=91682baa9a8252390f09b80fd724f47e5957b234;hp=0000000000000000000000000000000000000000;hpb=3826e289058a51d09310b7ba1251e959dc0ed3d0;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/utils/LineLocator.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/utils/LineLocator.java new file mode 100644 index 000000000..f44745157 --- /dev/null +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/utils/LineLocator.java @@ -0,0 +1,15 @@ +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]; + } +}