1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
(*
* This maps character position in the input stream to
* the source file location(s).
*)
signature SOURCE_MAPPING =
sig
type charpos = int
type region = charpos * charpos
datatype location = LOC of {srcFile : UniqueSymbol.symbol,
beginLine : int,
beginCol : int,
endLine : int,
endCol : int
}
type sourcemap
type state
val dummyLoc : location
val newmap : {srcFile : string} -> sourcemap
val newline : sourcemap -> charpos -> unit
val resynch : sourcemap -> {pos:charpos, srcFile:string, line:int} -> unit
val state : sourcemap -> state
val reset : sourcemap -> state -> unit
val parseDirective : sourcemap -> charpos * string -> unit
val location : sourcemap -> region -> location
val currPos : sourcemap -> charpos
val toString : location -> string
val directive : location -> string
end
|