Math.NET Numerics
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

71 lines
2.8 KiB

// (c) Microsoft Corporation. All rights reserved
#light
module Microsoft.FSharp.Compiler.Layout
open System.Text
open System.IO
open Internal.Utilities.StructuredFormat
type layout = Internal.Utilities.StructuredFormat.Layout
val emptyL : Layout
val isEmptyL : Layout -> bool
val wordL : string -> Layout
val sepL : string -> Layout
val rightL : string -> Layout
val leftL : string -> Layout
val ( $$ ) : Layout -> Layout -> Layout (* never break "glue" *)
val ( ++ ) : Layout -> Layout -> Layout (* if break, indent=0 *)
val ( -- ) : Layout -> Layout -> Layout (* if break, indent=1 *)
val ( --- ) : Layout -> Layout -> Layout (* if break, indent=2 *)
val ( ---- ) : Layout -> Layout -> Layout (* if break, indent=2 *)
val ( ----- ) : Layout -> Layout -> Layout (* if break, indent=2 *)
val ( @@ ) : Layout -> Layout -> Layout (* broken ident=0 *)
val ( @@- ) : Layout -> Layout -> Layout (* broken ident=1 *)
val ( @@-- ) : Layout -> Layout -> Layout (* broken ident=2 *)
val commaListL : Layout list -> Layout
val spaceListL : Layout list -> Layout
val semiListL : Layout list -> Layout
val sepListL : Layout -> Layout list -> Layout
val bracketL : Layout -> Layout
val tupleL : Layout list -> Layout
val aboveL : Layout -> Layout -> Layout
val aboveListL : Layout list -> Layout
val optionL : ('a -> Layout) -> 'a option -> Layout
val listL : ('a -> Layout) -> 'a list -> Layout
val linkL : string -> Layout -> Layout
val squashTo : int -> Layout -> Layout
val showL : Layout -> string
val outL : TextWriter -> Layout -> unit
val bufferL : StringBuilder -> Layout -> unit
(* render a Layout yielding an 'a using a 'b (hidden state) type *)
type ('a,'b) render =
abstract Start : unit -> 'b;
abstract AddText : 'b -> string -> 'b;
abstract AddBreak : 'b -> int -> 'b;
abstract AddTag : 'b -> string * (string * string) list * bool -> 'b;
abstract Finish : 'b -> 'a
(* Run a render on a Layout *)
val renderL : ('b,'a) render -> Layout -> 'b
(* Primitive renders *)
val stringR : (string,string list) render
type NoState = NoState
type NoResult = NoResult
val channelR : TextWriter -> (NoResult,NoState) render
val bufferR : StringBuilder -> (NoResult,NoState) render
(* Combinator renders *)
val htmlR : ('a,'b) render -> ('a,'b) render (* assumes in <pre> context *)
val indentR : int -> ('a,'b) render -> ('a,'b) render