// startColumns.get(i) is the first non-empty column of lines.get(i)
private final List<Integer> startColumns = new ArrayList<Integer>();
private ExpressionInfoRenderer(ExpressionInfo expr) {
TextPosition start = expr.getRegion().getStart();
if (start.getLine() != 1 || start.getColumn() != 1)
throw new IllegalArgumentException("can only print expressions starting at 1,1");
if (expr.getRegion().getEnd().getLine() != 1)
throw new IllegalArgumentException("can only print expressions ending on line 1");
this.expr = expr;
}