X-Git-Url: http://nitlanguage.org diff --git a/src/location.nit b/src/location.nit index 8ed4428..83ed72f 100644 --- a/src/location.nit +++ b/src/location.nit @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# This module is used to model Nit source-file and locations in source-file +# Nit source-file and locations in source-file module location # A raw text Nit source file @@ -26,7 +26,7 @@ class SourceFile var string: String is noinit # The original stream used to initialize `string` - var stream: IStream + var stream: Reader init do @@ -51,10 +51,25 @@ class Location super Comparable redef type OTHER: Location + # The associated source-file var file: nullable SourceFile + + # The starting line number (starting from 1) var line_start: Int + + # The stopping line number (starting from 1) var line_end: Int + + # Start of this location on `line_start` + # + # A `column_start` of 1 means the first column or character. + # + # If `column_start == 0` this location concerns the whole line. + # + # Require: `column_start >= 0` var column_start: Int + + # End of this location on `line_end` var column_end: Int # The index in the start character in the source @@ -78,8 +93,6 @@ class Location private var text_cache: nullable String = null - init with_file(f: SourceFile) do init(f,0,0,0,0) - redef fun ==(other: nullable Object): Bool do if other == null then return false if not other isa Location then return false