src/Tools/Code/code_scala.ML
changeset 38971 5d49165a192e
parent 38970 53d1ee3d98b8
parent 38968 e55deaa22fff
child 39022 ac7774a35bcf
equal deleted inserted replaced
38970:53d1ee3d98b8 38971:5d49165a192e
   386           snd (Graph.get_node nodes name)))
   386           snd (Graph.get_node nodes name)))
   387             ((rev o flat o Graph.strong_conn) nodes);
   387             ((rev o flat o Graph.strong_conn) nodes);
   388       in if null ps then NONE else SOME (Pretty.chunks2 ps) end;
   388       in if null ps then NONE else SOME (Pretty.chunks2 ps) end;
   389 
   389 
   390     (* serialization *)
   390     (* serialization *)
   391     val p_includes = if null presentation_names
   391     val p_includes = if null presentation_names then map snd includes else [];
   392       then map (fn (base, p) => print_module base [] p) includes else [];
       
   393     val p = Pretty.chunks2 (p_includes @ the_list (print_nodes [] sca_program));
   392     val p = Pretty.chunks2 (p_includes @ the_list (print_nodes [] sca_program));
   394     fun write width NONE = writeln_pretty width
   393     fun write width NONE = writeln_pretty width
   395       | write width (SOME p) = File.write p o string_of_pretty width;
   394       | write width (SOME p) = File.write p o string_of_pretty width;
   396   in
   395   in
   397     Code_Target.serialization write (rpair [] oo string_of_pretty) p
   396     Code_Target.serialization write (rpair [] oo string_of_pretty) p
   413       else quote (string_of_int k)
   412       else quote (string_of_int k)
   414 in Literals {
   413 in Literals {
   415   literal_char = Library.enclose "'" "'" o char_scala,
   414   literal_char = Library.enclose "'" "'" o char_scala,
   416   literal_string = quote o translate_string char_scala,
   415   literal_string = quote o translate_string char_scala,
   417   literal_numeral = fn k => "BigInt(" ^ numeral_scala k ^ ")",
   416   literal_numeral = fn k => "BigInt(" ^ numeral_scala k ^ ")",
   418   literal_positive_numeral = fn k => "Nat.Nat(" ^ numeral_scala k ^ ")",
   417   literal_positive_numeral = fn k => "Nat(" ^ numeral_scala k ^ ")",
   419   literal_alternative_numeral = fn k => "Natural.Nat(" ^ numeral_scala k ^ ")",
   418   literal_alternative_numeral = fn k => "Natural(" ^ numeral_scala k ^ ")",
   420   literal_naive_numeral = fn k => "BigInt(" ^ numeral_scala k ^ ")",
   419   literal_naive_numeral = fn k => "BigInt(" ^ numeral_scala k ^ ")",
   421   literal_list = fn [] => str "Nil" | ps => Pretty.block [str "List", enum "," "(" ")" ps],
   420   literal_list = fn [] => str "Nil" | ps => Pretty.block [str "List", enum "," "(" ")" ps],
   422   infix_cons = (6, "::")
   421   infix_cons = (6, "::")
   423 } end;
   422 } end;
   424 
   423