package net.iplantevin.ql.ast; import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.tree.TerminalNode; /** * @author Ivan */ public class LineInfo { private final int line; private final int charOffsetInLine; public LineInfo(int line, int offset) { this.line = line; charOffsetInLine = offset + 1; } public LineInfo(ParserRuleContext ctx) { line = ctx.getStart().getLine(); charOffsetInLine = ctx.getStart().getCharPositionInLine() + 1; } public LineInfo(TerminalNode node) { line = node.getSymbol().getLine(); charOffsetInLine = node.getSymbol().getCharPositionInLine() + 1; } public int getLine() { return line; } public int getCharOffsetInLine() { return charOffsetInLine; } @Override public String toString() { return String.format("[%d:%d]", line, charOffsetInLine); } }