signature COMMAND_SPAN = sig val extensions: stringlist -> Path.T -> Path.T list datatype kind = Command_Span ofstring * Position.T | Ignored_Span | Malformed_Span datatype span = Span of kind * Token.T list val kind: span -> kind val is_ignored: span -> bool val content: span -> Token.T list val range: span -> Position.range val symbol_length: span -> int option val eof: span val is_eof: span -> bool val stopper: span Scan.stopper val adjust_offsets_kind: (int -> int option) -> kind -> kind val adjust_offsets: (int -> int option) -> span -> span val command_ranges: span list -> Position.range list end;
fun kind (Span (k, _)) = k; fun is_ignored span = kind span = Ignored_Span; fun content (Span (_, toks)) = toks; val range = Token.range_of o content; val symbol_length = Position.distance_of o range;
(* stopper *)
val eof = Span (Command_Span ("", Position.none), []);
(* command ranges, including trailing non-commands (whitespace etc.) *)
fun command_ranges spans = let fun ranges NONE [] result = rev result
| ranges (SOME pos) [] result = letval end_pos = #2 (range (List.last spans)) in rev (Position.range (pos, end_pos) :: result) end
| ranges start_pos (span :: rest) result =
(case (start_pos, kind span) of
(NONE, Command_Span _) => ranges (SOME (#1 (range span))) rest result
| (SOME pos, Command_Span _) => let val pos' = #1 (range span); val result' = Position.range (pos, pos') :: result; in ranges (SOME pos') rest result'end
| _ => ranges start_pos rest result); in ranges NONE spans [] end;
end;
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.0Bemerkung:
(vorverarbeitet am 2026-06-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.