private static Location get_tree_position(TokenStream tokenStream, BaseTree tree) { int startIndex; int stopIndex; CommonToken stopToken; int stopColumn; ParsePosition end_position = null; startIndex = tree.getTokenStartIndex(); ParsePosition start_position = null; try { start_position = get_token_start_position(tokenStream, startIndex); } catch (RuntimeException e) { return null; } stopIndex = tree.getTokenStopIndex(); stopToken = (CommonToken) tokenStream.get(stopIndex); stopColumn = stopToken.getCharPositionInLine(); if (stopColumn == -1) { int end_line = tree.getLine(); int end_column = tree.getCharPositionInLine(); end_position = adjust_position(new ParsePosition(end_line, end_column), tree.getText().toCharArray()); } else { end_position = get_token_end_position(tokenStream, stopIndex); } return new Location(start_position, end_position); }