aboutsummaryrefslogtreecommitdiff
path: root/interfaces/src/dotty/tools/dotc/interfaces/SourcePosition.java
blob: d8afbf5f607ad725176d721b8639a27c9b0ce989 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package dotty.tools.dotc.interfaces;

/** A position in a source file.
 *
 *  A position is a range between a start offset and an end offset, as well as a
 *  point inside this range.
 *
 *  As a convenience, we also provide methods that return the line and the column
 *  corresponding to each offset.
 *
 *  User code should not implement this interface, but it may have to
 *  manipulate objects of this type.
 */
public interface SourcePosition {
  /** @return Content of the line which contains the point */
  String lineContent();

  /** @return Offset to the point */
  int point();
  /** @return Line number of the point, starting at 0 */
  int line();
  /** @return Column number of the point, starting at 0 */
  int column();

  /** @return Offset to the range start */
  int start();
  /** @return Line number of the range start, starting at 0 */
  int startLine();
  /** @return Column number of the range start, starting at 0 */
  int startColumn();

  /** @return Offset to the range end */
  int end();
  /** @return Line number of the range end, starting at 0 */
  int endLine();
  /** @return Column number of the range end, starting at 0 */
  int endColumn();

  /** The source file corresponding to this position.
   *  The values returned by `point()`, `start()` and `end()`
   *  are indices in the array returned by `source().content()`.
   *  @return source file for this position
   */
  SourceFile source();
}