This adds an improved "expr if" which only adds the active branch to the graph and removes the "secret" channel.
42 lines
867 B
Plaintext
42 lines
867 B
Plaintext
-- main.mcl --
|
|
# this can return changing functions, and could be optimized, too
|
|
func funcgen($b) {
|
|
if $b {
|
|
func() {
|
|
"hello"
|
|
}
|
|
} else {
|
|
func() {
|
|
"world"
|
|
}
|
|
}
|
|
}
|
|
|
|
$fn1 = funcgen(true)
|
|
$fn2 = funcgen(false)
|
|
|
|
$out1 = $fn1()
|
|
$out2 = $fn2()
|
|
|
|
test "${out1}" {}
|
|
test "${out2}" {}
|
|
-- OUTPUT --
|
|
Edge: call -> callSubgraphOutput # dummy
|
|
Edge: call -> callSubgraphOutput # dummy
|
|
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: exprIfSubgraphOutput
|
|
Vertex: exprIfSubgraphOutput
|
|
Vertex: exprif
|
|
Vertex: exprif
|