graphviz_main.anubis 1021 Bytes
/*
 * Created by PyramIDE.
 * User: フランスのトトロ aka (David RENÉ) 
 * Date: 05/04/2017
 * Time: 20:33
 * © Calexium 
 */

read tools/basis.anubis
read tools/streams.anubis
read densaku_lib/types/densaku.anubis
read generation/graphviz/graphviz_header.anubis
read generation/graphviz/graphviz_type.anubis

public define Maybe(One)
  make_graphviz_types
  (
    List(DS_Type) types,
    String        destination_dir
  )=
  with file_name = destination_dir+"types/generated/graphviz.gv",

  if file(file_name, new) is
  {
    failure     then  println("can't create file "+file_name);failure,
    success(fd) then 
      with strm = make_stream(fd),
      
      if generate_graphviz_header(strm)                     is { failure then failure, success(_) then
      if generate_graphviz_types(strm, types)               is { failure then failure, success(_) then
      if generate_graphviz_footer(strm)                     is { failure then failure, success(_) then
        success(unique)
      }}}
  }
.