Files
mgmt/lang/interpret_test/TestAstFunc1/doubleclass.txtar
2023-06-01 16:56:44 -04:00

87 lines
5.1 KiB
Plaintext

-- main.mcl --
import "fmt"
# this value should only be built once
$some_value1 = 42 # or something more complex like the output of a slow function...
class foo($num) {
# we should have a different `$inside` value for each use of this class
$inside = $some_value1 + $some_value2 + 4
test fmt.printf("test-%d-%d", $num, $inside) {} # some resource
}
$some_value2 = 13 # check that non-ordering works too!
# We *don't* unnecessarily copy `4` on each include, because it's static!
include foo(1)
include foo(2)
include foo(3)
-- OUTPUT --
Edge: call:_operator(str("+"), call:_operator(str("+"), var(some_value1), var(some_value2)), int(4)) -> var(inside) # var:inside
Edge: call:_operator(str("+"), call:_operator(str("+"), var(some_value1), var(some_value2)), int(4)) -> var(inside) # var:inside
Edge: call:_operator(str("+"), call:_operator(str("+"), var(some_value1), var(some_value2)), int(4)) -> var(inside) # var:inside
Edge: call:_operator(str("+"), var(some_value1), var(some_value2)) -> call:_operator(str("+"), call:_operator(str("+"), var(some_value1), var(some_value2)), int(4)) # a
Edge: call:_operator(str("+"), var(some_value1), var(some_value2)) -> call:_operator(str("+"), call:_operator(str("+"), var(some_value1), var(some_value2)), int(4)) # a
Edge: call:_operator(str("+"), var(some_value1), var(some_value2)) -> call:_operator(str("+"), call:_operator(str("+"), var(some_value1), var(some_value2)), int(4)) # a
Edge: int(1) -> var(num) # var:num
Edge: int(13) -> var(some_value2) # var:some_value2
Edge: int(13) -> var(some_value2) # var:some_value2
Edge: int(13) -> var(some_value2) # var:some_value2
Edge: int(2) -> var(num) # var:num
Edge: int(3) -> var(num) # var:num
Edge: int(4) -> call:_operator(str("+"), call:_operator(str("+"), var(some_value1), var(some_value2)), int(4)) # b
Edge: int(4) -> call:_operator(str("+"), call:_operator(str("+"), var(some_value1), var(some_value2)), int(4)) # b
Edge: int(4) -> call:_operator(str("+"), call:_operator(str("+"), var(some_value1), var(some_value2)), int(4)) # b
Edge: int(42) -> var(some_value1) # var:some_value1
Edge: int(42) -> var(some_value1) # var:some_value1
Edge: int(42) -> var(some_value1) # var:some_value1
Edge: str("+") -> call:_operator(str("+"), call:_operator(str("+"), var(some_value1), var(some_value2)), int(4)) # op
Edge: str("+") -> call:_operator(str("+"), call:_operator(str("+"), var(some_value1), var(some_value2)), int(4)) # op
Edge: str("+") -> call:_operator(str("+"), call:_operator(str("+"), var(some_value1), var(some_value2)), int(4)) # op
Edge: str("+") -> call:_operator(str("+"), var(some_value1), var(some_value2)) # op
Edge: str("+") -> call:_operator(str("+"), var(some_value1), var(some_value2)) # op
Edge: str("+") -> call:_operator(str("+"), var(some_value1), var(some_value2)) # op
Edge: str("test-%d-%d") -> call:fmt.printf(str("test-%d-%d"), var(num), var(inside)) # format
Edge: str("test-%d-%d") -> call:fmt.printf(str("test-%d-%d"), var(num), var(inside)) # format
Edge: str("test-%d-%d") -> call:fmt.printf(str("test-%d-%d"), var(num), var(inside)) # format
Edge: var(inside) -> call:fmt.printf(str("test-%d-%d"), var(num), var(inside)) # b
Edge: var(inside) -> call:fmt.printf(str("test-%d-%d"), var(num), var(inside)) # b
Edge: var(inside) -> call:fmt.printf(str("test-%d-%d"), var(num), var(inside)) # b
Edge: var(num) -> call:fmt.printf(str("test-%d-%d"), var(num), var(inside)) # a
Edge: var(num) -> call:fmt.printf(str("test-%d-%d"), var(num), var(inside)) # a
Edge: var(num) -> call:fmt.printf(str("test-%d-%d"), var(num), var(inside)) # a
Edge: var(some_value1) -> call:_operator(str("+"), var(some_value1), var(some_value2)) # a
Edge: var(some_value1) -> call:_operator(str("+"), var(some_value1), var(some_value2)) # a
Edge: var(some_value1) -> call:_operator(str("+"), var(some_value1), var(some_value2)) # a
Edge: var(some_value2) -> call:_operator(str("+"), var(some_value1), var(some_value2)) # b
Edge: var(some_value2) -> call:_operator(str("+"), var(some_value1), var(some_value2)) # b
Edge: var(some_value2) -> call:_operator(str("+"), var(some_value1), var(some_value2)) # b
Vertex: call:_operator(str("+"), call:_operator(str("+"), var(some_value1), var(some_value2)), int(4))
Vertex: call:_operator(str("+"), call:_operator(str("+"), var(some_value1), var(some_value2)), int(4))
Vertex: call:_operator(str("+"), call:_operator(str("+"), var(some_value1), var(some_value2)), int(4))
Vertex: call:_operator(str("+"), var(some_value1), var(some_value2))
Vertex: call:_operator(str("+"), var(some_value1), var(some_value2))
Vertex: call:_operator(str("+"), var(some_value1), var(some_value2))
Vertex: call:fmt.printf(str("test-%d-%d"), var(num), var(inside))
Vertex: call:fmt.printf(str("test-%d-%d"), var(num), var(inside))
Vertex: call:fmt.printf(str("test-%d-%d"), var(num), var(inside))
Vertex: int(1)
Vertex: int(13)
Vertex: int(2)
Vertex: int(3)
Vertex: int(4)
Vertex: int(42)
Vertex: str("+")
Vertex: str("+")
Vertex: str("test-%d-%d")
Vertex: var(inside)
Vertex: var(inside)
Vertex: var(inside)
Vertex: var(num)
Vertex: var(num)
Vertex: var(num)
Vertex: var(some_value1)
Vertex: var(some_value1)
Vertex: var(some_value1)
Vertex: var(some_value2)
Vertex: var(some_value2)
Vertex: var(some_value2)