aboutsummaryrefslogblamecommitdiff
path: root/interfaces/src/dotty/tools/dotc/interfaces/SourcePosition.java
blob: d8afbf5f607ad725176d721b8639a27c9b0ce989 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14













                                                                                 
                                                             

                       
                                    
              
                                                        
             
                                                          

               
                                          
              
                                                              
                  
                                                                

                    
                                        
            
                                                            
                
                                                              




                                                                
                                           


                      
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();
}