Skip to content

Commit 43dc1ef

Browse files
Vasily KirichenkoVasily Kirichenko
authored andcommitted
replace properties with fields in Position struct
1 parent 040b160 commit 43dc1ef

File tree

2 files changed

+52
-45
lines changed

2 files changed

+52
-45
lines changed

src/utils/prim-lexing.fs

Lines changed: 47 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -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

src/utils/prim-lexing.fsi

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,17 @@ open Microsoft.FSharp.Control
1313
[<Struct>]
1414
type internal Position =
1515
/// The file index for the file associated with the input stream, use fileOfFileIndex in range.fs to decode
16-
member FileIndex : int
16+
val FileIndex : int
1717
/// The line number in the input stream, assuming fresh positions have been updated
1818
/// for the new line by modifying the EndPos property of the LexBuffer.
19-
member Line : int
19+
val Line : int
2020
/// The line number for the position in the input stream, assuming fresh positions have been updated
2121
/// using for the new line
22-
member OriginalLine : int
22+
val OriginalLine : int
2323
/// The character number in the input stream
24-
member AbsoluteOffset : int
24+
val AbsoluteOffset : int
2525
/// Return absolute offset of the start of the line marked by the position
26-
member StartOfLineAbsoluteOffset : int
26+
val StartOfLineAbsoluteOffset : int
2727
/// Return the column number marked by the position, i.e. the difference between the AbsoluteOffset and the StartOfLineAbsoluteOffset
2828
member Column : int
2929
// Given a position just beyond the end of a line, return a position at the start of the next line

0 commit comments

Comments
 (0)