lang: ast: structs, funcs: structs: Exprif without a channel
This adds an improved "expr if" which only adds the active branch to the graph and removes the "secret" channel.
This commit is contained in:
@@ -21,25 +21,21 @@ $out2 = $fn2()
|
||||
test "${out1}" {}
|
||||
test "${out2}" {}
|
||||
-- OUTPUT --
|
||||
Edge: FuncValue -> if # a
|
||||
Edge: FuncValue -> if # a
|
||||
Edge: FuncValue -> if # b
|
||||
Edge: FuncValue -> if # b
|
||||
Edge: call -> callSubgraphOutput # dummy
|
||||
Edge: call -> callSubgraphOutput # dummy
|
||||
Edge: const: bool(false) -> if # c
|
||||
Edge: const: bool(true) -> if # c
|
||||
Edge: if -> call # fn
|
||||
Edge: if -> call # fn
|
||||
Vertex: FuncValue
|
||||
Vertex: FuncValue
|
||||
Vertex: FuncValue
|
||||
Vertex: FuncValue
|
||||
Edge: const: bool(false) -> exprif # condition
|
||||
Edge: const: bool(true) -> exprif # condition
|
||||
Edge: exprIfSubgraphOutput -> call # fn
|
||||
Edge: exprIfSubgraphOutput -> call # fn
|
||||
Edge: exprif -> exprIfSubgraphOutput # dummy
|
||||
Edge: exprif -> exprIfSubgraphOutput # dummy
|
||||
Vertex: call
|
||||
Vertex: call
|
||||
Vertex: callSubgraphOutput
|
||||
Vertex: callSubgraphOutput
|
||||
Vertex: const: bool(false)
|
||||
Vertex: const: bool(true)
|
||||
Vertex: if
|
||||
Vertex: if
|
||||
Vertex: exprIfSubgraphOutput
|
||||
Vertex: exprIfSubgraphOutput
|
||||
Vertex: exprif
|
||||
Vertex: exprif
|
||||
|
||||
@@ -16,11 +16,9 @@ class xclass {
|
||||
}
|
||||
}
|
||||
-- OUTPUT --
|
||||
Edge: const: str("bbb") -> if # a
|
||||
Edge: const: str("ccc") -> if # b
|
||||
Edge: os.is_family_debian -> if # c
|
||||
Vertex: const: str("bbb")
|
||||
Vertex: const: str("ccc")
|
||||
Edge: exprif -> exprIfSubgraphOutput # dummy
|
||||
Edge: os.is_family_debian -> exprif # condition
|
||||
Vertex: const: str("hello")
|
||||
Vertex: if
|
||||
Vertex: exprIfSubgraphOutput
|
||||
Vertex: exprif
|
||||
Vertex: os.is_family_debian
|
||||
|
||||
@@ -15,11 +15,9 @@ class xclass {
|
||||
}
|
||||
}
|
||||
-- OUTPUT --
|
||||
Edge: const: str("bbb") -> if # a
|
||||
Edge: const: str("ccc") -> if # b
|
||||
Edge: os.is_family_debian -> if # c
|
||||
Vertex: const: str("bbb")
|
||||
Vertex: const: str("ccc")
|
||||
Edge: exprif -> exprIfSubgraphOutput # dummy
|
||||
Edge: os.is_family_debian -> exprif # condition
|
||||
Vertex: const: str("hello")
|
||||
Vertex: if
|
||||
Vertex: exprIfSubgraphOutput
|
||||
Vertex: exprif
|
||||
Vertex: os.is_family_debian
|
||||
|
||||
@@ -18,17 +18,14 @@ $lambda = if $gt(10, 0) { # must be a const, otherwise this is a dynamic graph
|
||||
|
||||
test [$lambda("hello"),] {}
|
||||
-- OUTPUT --
|
||||
Edge: FuncValue -> if # a
|
||||
Edge: FuncValue -> if # b
|
||||
Edge: _operator -> if # c
|
||||
Edge: _operator -> exprif # condition
|
||||
Edge: call -> callSubgraphOutput # dummy
|
||||
Edge: callSubgraphOutput -> composite: []str # 0
|
||||
Edge: const: int(0) -> _operator # b
|
||||
Edge: const: int(10) -> _operator # a
|
||||
Edge: const: str(">") -> _operator # op
|
||||
Edge: if -> call # fn
|
||||
Vertex: FuncValue
|
||||
Vertex: FuncValue
|
||||
Edge: exprIfSubgraphOutput -> call # fn
|
||||
Edge: exprif -> exprIfSubgraphOutput # dummy
|
||||
Vertex: _operator
|
||||
Vertex: call
|
||||
Vertex: callSubgraphOutput
|
||||
@@ -37,4 +34,5 @@ Vertex: const: int(0)
|
||||
Vertex: const: int(10)
|
||||
Vertex: const: str(">")
|
||||
Vertex: const: str("hello")
|
||||
Vertex: if
|
||||
Vertex: exprIfSubgraphOutput
|
||||
Vertex: exprif
|
||||
|
||||
Reference in New Issue
Block a user