src/Pure/ML/ml_print_depth.ML
author wenzelm
Fri, 31 Aug 2018 22:25:58 +0200
changeset 68865 dd44e31ca2c6
parent 64556 851ae0e7b09c
child 69575 f77cc54f6d47
permissions -rw-r--r--
support multiple inheritance of ML environments, with canonical merge order as in Context.begin_theory;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
62978
c04eead96cca tuned headers;
wenzelm
parents: 62900
diff changeset
     1
(*  Title:      Pure/ML/ml_print_depth.ML
62878
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
     2
    Author:     Makarius
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
     3
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
     4
Print depth for ML toplevel pp: context option with global default.
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
     5
*)
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
     6
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
     7
signature ML_PRINT_DEPTH =
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
     8
sig
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
     9
  val set_print_depth: int -> unit
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    10
  val print_depth_raw: Config.raw
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    11
  val print_depth: int Config.T
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    12
  val get_print_depth: unit -> int
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    13
end;
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    14
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    15
structure ML_Print_Depth: ML_PRINT_DEPTH =
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    16
struct
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    17
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    18
val set_print_depth = ML_Print_Depth.set_print_depth;
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    19
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    20
val print_depth_raw =
64556
851ae0e7b09c more symbols;
wenzelm
parents: 62978
diff changeset
    21
  Config.declare ("ML_print_depth", \<^here>)
62878
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    22
    (fn _ => Config.Int (ML_Print_Depth.get_print_depth ()));
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    23
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    24
val print_depth = Config.int print_depth_raw;
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    25
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    26
fun get_print_depth () =
62889
99c7f31615c2 clarified modules;
wenzelm
parents: 62878
diff changeset
    27
  (case Context.get_generic_context () of
62878
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    28
    NONE => ML_Print_Depth.get_print_depth ()
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    29
  | SOME context => Config.get_generic context print_depth);
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    30
1cec457e0a03 clarified modules -- simplified bootstrap;
wenzelm
parents:
diff changeset
    31
end;