Commit 5e09126b681ee4d90d95639df14bf88e0a3ad26f
1 parent
c480c7a8
add graphviz output for each ds_type_file with file_name as attribute
Showing
5 changed files
with
44 additions
and
17 deletions
Show diff stats
calexium_lib @ b3734f8f0b4
densaku_lib @ fedd3d94917
src/generation/files.anubis
| ... | ... | @@ -35,7 +35,7 @@ public define Maybe(One) |
| 35 | 35 | println("Destination dir: "+destination_dir); |
| 36 | 36 | with ini = loadIniFile(destination_dir+"/densaku.ini"), |
| 37 | 37 | |
| 38 | - with types_SHA1 = "::", //readString(ini, "TYPES", "SHA1", "N/A"), | |
| 38 | + with types_SHA1 = readString(ini, "TYPES", "SHA1", "N/A"), | |
| 39 | 39 | with messages_SHA1 = readString(ini, "MESSAGES", "SHA1", "N/A"), |
| 40 | 40 | |
| 41 | 41 | println("Saved Types SHA1 = "+types_SHA1); |
| ... | ... | @@ -55,25 +55,26 @@ public define Maybe(One) |
| 55 | 55 | { |
| 56 | 56 | failure then failure, |
| 57 | 57 | success(_) then |
| 58 | - | |
| 59 | 58 | println("Generating types and message files"); |
| 60 | 59 | make_all_types(output_dir, file_name, types, destination_dir); |
| 61 | - | |
| 60 | + | |
| 62 | 61 | println("Generating messages collection"); |
| 63 | 62 | make_all_messages(messages, destination_dir); |
| 64 | - | |
| 63 | + | |
| 65 | 64 | println("Generating graphviz"); |
| 66 | - forget(make_graphviz_types(types, destination_dir)); | |
| 67 | - | |
| 68 | - writeString(ini, "TYPES", "SHA1", current_types_SHA1); | |
| 69 | - writeString(ini, "MESSAGES", "SHA1", current_messages_SHA1); | |
| 70 | - writeIniInfo(ini); | |
| 65 | + forget(make_graphviz_types(output_dir, file_name, types, destination_dir)); | |
| 66 | + | |
| 71 | 67 | success(unique) |
| 72 | 68 | }, |
| 73 | 69 | type_files) is |
| 74 | 70 | { |
| 75 | 71 | failure then failure, |
| 76 | - success(_) then success(unique) | |
| 72 | + success(_) then | |
| 73 | + forget(make_graphviz_types(relative_path(""), auto, get_all_types(type_files), destination_dir)); | |
| 74 | + writeString(ini, "TYPES", "SHA1", current_types_SHA1); | |
| 75 | + writeString(ini, "MESSAGES", "SHA1", current_messages_SHA1); | |
| 76 | + writeIniInfo(ini); | |
| 77 | + success(unique) | |
| 77 | 78 | } |
| 78 | 79 | . |
| 79 | 80 | ... | ... |
src/generation/graphviz/graphviz_main.anubis
| ... | ... | @@ -8,6 +8,7 @@ |
| 8 | 8 | |
| 9 | 9 | read tools/basis.anubis |
| 10 | 10 | read tools/streams.anubis |
| 11 | +read system/string.anubis | |
| 11 | 12 | read densaku_lib/types/densaku.anubis |
| 12 | 13 | read generation/graphviz/graphviz_header.anubis |
| 13 | 14 | read generation/graphviz/graphviz_type.anubis |
| ... | ... | @@ -15,11 +16,25 @@ read generation/graphviz/graphviz_type.anubis |
| 15 | 16 | public define Maybe(One) |
| 16 | 17 | make_graphviz_types |
| 17 | 18 | ( |
| 18 | - List(DS_Type) types, | |
| 19 | - String destination_dir | |
| 19 | + DS_Type_File_Output_Dir out_dir, | |
| 20 | + DS_Type_File_Output_Name output_file_name, | |
| 21 | + List(DS_Type) types, | |
| 22 | + String destination_dir | |
| 20 | 23 | )= |
| 21 | - with file_name = destination_dir+"types/generated/graphviz.gv", | |
| 24 | + with final_destination_dir = | |
| 25 | + if out_dir is | |
| 26 | + { | |
| 27 | + auto then destination_dir + "types/generated/", | |
| 28 | + relative_path(path) then destination_dir + path + "/", | |
| 29 | + absolute_path(path) then path | |
| 30 | + }, | |
| 22 | 31 | |
| 32 | + with file_name = if output_file_name is | |
| 33 | + { | |
| 34 | + auto then final_destination_dir+"graphviz.gv", | |
| 35 | + name(_file_name) then final_destination_dir+to_lower(_file_name)+".gv", | |
| 36 | + }, | |
| 37 | + | |
| 23 | 38 | if file(file_name, new) is |
| 24 | 39 | { |
| 25 | 40 | failure then println("can't create file "+file_name);failure, | ... | ... |
src/generation/types.anubis
| ... | ... | @@ -82,7 +82,18 @@ define String |
| 82 | 82 | join("\n", |
| 83 | 83 | map((String intermediate) |
| 84 | 84 | |-> |
| 85 | - "public type "+intermediate+":..." | |
| 85 | + "public type "+intermediate+":...\n\n"+ | |
| 86 | + "public define Maybe("+intermediate+")\n"+ | |
| 87 | +" from_Message\n"+ | |
| 88 | +" (\n"+ | |
| 89 | +" Message _"+to_lower(intermediate)+"_message\n"+ | |
| 90 | +" )\n"+ | |
| 91 | +".\n\n"+ | |
| 92 | +"public define Message\n"+ | |
| 93 | +" to_Message\n"+ | |
| 94 | +" (\n"+ | |
| 95 | +" "+intermediate+" _"+to_lower(intermediate)+"\n"+ | |
| 96 | +" ).\n" | |
| 86 | 97 | , |
| 87 | 98 | final_list |
| 88 | 99 | ) |
| ... | ... | @@ -206,7 +217,7 @@ public define One |
| 206 | 217 | types) |
| 207 | 218 | |
| 208 | 219 | name(_file_name) then |
| 209 | - with file_name = final_destination_dir+_file_name+".anubis", | |
| 220 | + with file_name = final_destination_dir+to_lower(_file_name)+".anubis", | |
| 210 | 221 | |
| 211 | 222 | with header = generate_header, |
| 212 | 223 | with file_parts = | ... | ... |