Module Ps_machine

type value =
  1. | Int of int
  2. | Real of float
  3. | Bool of bool
  4. | Name of string
  5. | Literal of string
  6. | String of string
  7. | Array of array_
  8. | Dict of (string, value) Stdlib.Hashtbl.t
  9. | Operator of string
  10. | Font of float
  11. | Mark
  12. | Null
and array_ = {
  1. items : value array;
  2. spans : (int * int) array;
  3. exec : bool;
}
type paint = {
  1. lines : ((float * float) list * bool) list;
  2. rgb : float * float * float;
  3. how : how;
}
and how =
  1. | Fill
  2. | Stroke of float
type host = {
  1. glyph : char -> (float * float) list list * float;
}
type status =
  1. | Running
  2. | Done
  3. | Failed of string
type t
val start : ?host:host -> string -> t
val step : t -> t
val run : ?budget:int -> t -> t
val status : t -> status
val page : t -> paint list
val pages : t -> paint list list
val stack : t -> string list
val output : t -> string list
val span : t -> (int * int) option
val steps : t -> int
val show : value -> string