aplbrain/dotmotif

Aliased edges and inter-edge comparisons

j6k4m8 opened this issue · 1 comments

# Alias is of the form `as <name>`
A -> B as AB_edge
# other constraints go before alias:
C -> B [foo=bar] as CB_otheredge

# Comparison constraints:
AB_edge.length > CB_otheredge.length

# You can also use constraints on non-comparisons:
AB_edge != 12

my_edge(a, b) {
    a -> b as ab
    b -> a as ba

    # comparison constraints in macros:
    ab.length > ba.length
}
foo_node -> bar_node [length > 5] as my_new_edge

Macro support is still outstanding.