@@ -10,48 +10,55 @@ namespace Internal.Utilities.Text.Lexing
1010 open System.Collections .Generic
1111
1212 [<Struct>]
13- type internal Position ( posFileIndex : int , posLineNum : int , posOriginalLineNum : int , posStartOfLineOffset : int , posColumnOffset : int ) =
14- member __.FileIndex = posFileIndex
15- member __.Line = posLineNum
16- member __.OriginalLine = posOriginalLineNum
17- member __.AbsoluteOffset = posColumnOffset
18- member __.StartOfLineAbsoluteOffset = posStartOfLineOffset
19- member __.Column = posColumnOffset - posStartOfLineOffset
20-
21- member __.NextLine =
22- Position ( posFileIndex,
23- posLineNum + 1 ,
24- posOriginalLineNum + 1 ,
25- posColumnOffset,
26- posColumnOffset)
27-
28- member __.EndOfToken n =
29- Position ( posFileIndex,
30- posLineNum,
31- posOriginalLineNum,
32- posStartOfLineOffset,
33- posColumnOffset + n)
34-
35- member __.ShiftColumnBy by =
36- Position ( posFileIndex,
37- posLineNum,
38- posOriginalLineNum,
39- posStartOfLineOffset,
40- posColumnOffset + by)
41-
42- member __.ColumnMinusOne =
43- Position ( posFileIndex,
44- posLineNum,
45- posOriginalLineNum,
46- posStartOfLineOffset,
47- posStartOfLineOffset - 1 )
48-
49- member __.ApplyLineDirective ( fileIdx , line ) =
13+ type internal Position =
14+ val FileIndex : int
15+ val Line : int
16+ val OriginalLine : int
17+ val AbsoluteOffset : int
18+ val StartOfLineAbsoluteOffset : int
19+ member x.Column = x.AbsoluteOffset - x.StartOfLineAbsoluteOffset
20+
21+ new ( fileIndex : int , line : int , originalLine : int , startOfLineAbsoluteOffset : int , absoluteOffset : int ) =
22+ { FileIndex = fileIndex
23+ Line = line
24+ OriginalLine = originalLine
25+ AbsoluteOffset = absoluteOffset
26+ StartOfLineAbsoluteOffset = startOfLineAbsoluteOffset }
27+
28+ member x.NextLine =
29+ Position ( x.FileIndex,
30+ x.Line + 1 ,
31+ x.OriginalLine + 1 ,
32+ x.AbsoluteOffset,
33+ x.AbsoluteOffset)
34+
35+ member x.EndOfToken n =
36+ Position ( x.FileIndex,
37+ x.Line,
38+ x.OriginalLine,
39+ x.StartOfLineAbsoluteOffset,
40+ x.AbsoluteOffset + n)
41+
42+ member x.ShiftColumnBy by =
43+ Position ( x.FileIndex,
44+ x.Line,
45+ x.OriginalLine,
46+ x.StartOfLineAbsoluteOffset,
47+ x.AbsoluteOffset + by)
48+
49+ member x.ColumnMinusOne =
50+ Position ( x.FileIndex,
51+ x.Line,
52+ x.OriginalLine,
53+ x.StartOfLineAbsoluteOffset,
54+ x.StartOfLineAbsoluteOffset - 1 )
55+
56+ member x.ApplyLineDirective ( fileIdx , line ) =
5057 Position ( fileIdx,
5158 line,
52- posOriginalLineNum ,
53- posColumnOffset ,
54- posColumnOffset )
59+ x.OriginalLine ,
60+ x.AbsoluteOffset ,
61+ x.AbsoluteOffset )
5562
5663 static member Empty = Position ()
5764
0 commit comments