From: Jean Privat Date: Sun, 24 Jun 2012 18:22:09 +0000 (-0400) Subject: parser: add Location::text X-Git-Tag: v0.6~347^2~1 X-Git-Url: http://nitlanguage.org parser: add Location::text --- diff --git a/src/location.nit b/src/location.nit index a643c7e..3da516f 100644 --- a/src/location.nit +++ b/src/location.nit @@ -56,6 +56,21 @@ class Location _column_end = column_e end + # The verbatim associated text in the source-file + fun text: String + do + var res = self.text_cache + if res != null then return res + var l = self + var pstart = l.file.line_starts[l.line_start-1] + l.column_start-1 + var pend = l.file.line_starts[l.line_end-1] + l.column_end-1 + res = l.file.string.substring(pstart, pend-pstart+1) + self.text_cache = res + return res + end + + private var text_cache: nullable String + init with_file(f: SourceFile) do init(f,0,0,0,0) redef fun ==(other: nullable Object): Bool do