Init
This commit is contained in:
commit
044e3fb127
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/target
|
||||
graphviz/*.svg
|
8
Cargo.toml
Normal file
8
Cargo.toml
Normal file
|
@ -0,0 +1,8 @@
|
|||
[package]
|
||||
name = "walpurgis"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
58
graphviz/functions.dot
Normal file
58
graphviz/functions.dot
Normal file
|
@ -0,0 +1,58 @@
|
|||
digraph functions {
|
||||
rankdir=TB;
|
||||
graph [fontname = "cc wild words"];
|
||||
node [fontname = "cc wild words"];
|
||||
edge [fontname = "cc wild words"];
|
||||
rank=TB;
|
||||
|
||||
subgraph cluster_fn_args_1 {
|
||||
label="fn_args(GazType)";
|
||||
fontname=lovebeat;
|
||||
rankdir=TB;
|
||||
newrank=true;
|
||||
|
||||
A1 [label="gen_type(GazType)" shape=diamond style=filled fillcolor=lightcoral];
|
||||
B1 [label="pack into var"];
|
||||
C1 [label="return" style=filled fillcolor=lightskyblue1];
|
||||
A1 -> B1 -> A1;
|
||||
B1 -> C1;
|
||||
}
|
||||
|
||||
subgraph cluster_fn_gen_type_2 {
|
||||
label="fn_gen_type(GazType)";
|
||||
fontname=lovebeat;
|
||||
rankdir=TB;
|
||||
newrank=true;
|
||||
|
||||
A2 [label="expr for type"];
|
||||
B2 [label="literal"];
|
||||
C2 [label="variable"];
|
||||
D2 [label="subroutine"];
|
||||
F2 [label="return" style=filled fillcolor=lightskyblue1];
|
||||
|
||||
A2 -> A2 [dir=back];
|
||||
A2 -> B2 -> A2;
|
||||
A2 -> C2 -> A2;
|
||||
A2 -> D2 -> A2;
|
||||
A2 -> F2;
|
||||
}
|
||||
|
||||
subgraph cluster_fn_gen_global_type_3 {
|
||||
label="fn_gen_global_type(GazType)";
|
||||
fontname=lovebeat;
|
||||
rankdir=TB;
|
||||
newrank=true;
|
||||
|
||||
A3 [label="expr for type"];
|
||||
B3 [label="literal"];
|
||||
C3 [label="global"];
|
||||
D3 [label="function"];
|
||||
F3 [label="return" style=filled fillcolor=lightskyblue1];
|
||||
|
||||
A3 -> A3 [dir=back];
|
||||
A3 -> B3 -> A3;
|
||||
A3 -> C3 -> A3;
|
||||
A3 -> D3 -> A3;
|
||||
A3 -> F3;
|
||||
}
|
||||
}
|
27
graphviz/global_flow.dot
Normal file
27
graphviz/global_flow.dot
Normal file
|
@ -0,0 +1,27 @@
|
|||
digraph flow {
|
||||
// Global settings
|
||||
graph [fontname = "cc wild words"];
|
||||
node [fontname = "cc wild words"];
|
||||
edge [fontname = "cc wild words"];
|
||||
rank=TB;
|
||||
|
||||
A0 [label="Global" style=filled fillcolor=gold];
|
||||
B0 [label="declare global"];
|
||||
C0 [label="end generation"];
|
||||
D0 [label="for each undefined subroutine"];
|
||||
F0 [label="return" style=filled fillcolor=lightskyblue1];
|
||||
|
||||
node [shape=diamond style=filled fillcolor=lightsalmon];
|
||||
FA0 [label="fn_gen_global_type(GazType)"];
|
||||
FB0 [label="fn_gen_main()"];
|
||||
FC0 [label="fn_define_subroutine(SubRoutine)"];
|
||||
FD0 [label="fn_declare_subroutine()"];
|
||||
FE0 [label="fn_gen_typedef()"];
|
||||
|
||||
A0 -> B0 -> FA0 -> A0;
|
||||
A0 -> C0 -> FB0 -> D0;
|
||||
A0 -> FD0 -> A0;
|
||||
A0 -> FE0 -> A0;
|
||||
D0 -> FC0 -> D0;
|
||||
D0 -> F0;
|
||||
}
|
24
scripts/build_graphs.sh
Executable file
24
scripts/build_graphs.sh
Executable file
|
@ -0,0 +1,24 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
declare path=""
|
||||
declare -ra fnames=( 'functions' 'global_flow' )
|
||||
|
||||
if [[ "$1" == -h || "$1" == --help ]]; then
|
||||
cat <<HELP
|
||||
Builds the digraphs for this project. Must be run from top level git directory
|
||||
HELP
|
||||
exit 0
|
||||
elif [[ -d .git ]]; then
|
||||
path="./graphviz"
|
||||
elif [[ -d ../.git ]]; then
|
||||
path="../graphviz"
|
||||
else
|
||||
cat <<HELP
|
||||
Builds the digraphs for this project. Must be run from top level git directory
|
||||
HELP
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for name in "${fnames[@]}"; do
|
||||
dot -Tsvg -o "${path}/${name}.svg" "${path}/${name}.dot"
|
||||
done
|
3
src/main.rs
Normal file
3
src/main.rs
Normal file
|
@ -0,0 +1,3 @@
|
|||
fn main() {
|
||||
println!("Hello, world!");
|
||||
}
|
Loading…
Reference in a new issue