UniTO/tesi/traces/example6.lambda
Francesco Mecca dea5a6fbe4 traces
2020-06-30 19:31:56 +02:00

70 lines
3.4 KiB
Text

(setglobal Example6!
(let
(mm/81 =
(function x/89
(catch
(if x/89
(let (*match*/92 =a (field 0 x/89))
(if *match*/92
(let
(x/83 =a (field 0 *match*/92)
x/86 =a (field 0 x/83)
*match*/93 =a (field 0 x/86))
(catch
(if (!= *match*/93 1) (exit 2)
(let (*match*/94 =a (field 1 x/86))
(if (!= *match*/94 2) (exit 2)
(let (x/82 =a (field 1 x/83))
(catch
(if (!= x/82 2) (exit 3)
(let (*match*/95 =a (field 1 *match*/92))
(if *match*/95 (exit 1)
(let (*match*/96 =a (field 1 x/89))
(catch
(if *match*/96 (exit 4)
(observe
[0: [0: [0: [0: 1 2] 2] 0a] 0a]))
with (4)
(observe [0: [0: [0: 1 2] 2] 0a]))))))
with (3)
(let (*match*/97 =a (field 1 *match*/92))
(if *match*/97 (exit 1)
(let (*match*/98 =a (field 1 x/89))
(observe
(makeblock 0
(makeblock 0 (*,int) [0: 1 2] x/82)
0a))))))))))
with (2)
(let (*match*/100 =a (field 1 *match*/92))
(if *match*/100 (exit 1)
(let
(z/88 =a (field 1 x/89)
y/87 =a (field 1 x/83)
*match*/99 =a (field 1 x/86))
(catch
(if z/88
(let (*match*/101 =a (field 0 z/88))
(if *match*/101
(let
(*match*/102 =a (field 1 *match*/101))
(if *match*/102 (exit 5)
(let (*match*/103 =a (field 1 z/88))
(if *match*/103 (exit 5)
(let
(x/84 =a x/83
y/85 =a (field 0 *match*/101))
(observe
(makeblock 0
(makeblock 0 x/84 y/85) 0a)))))))
(exit 5)))
(observe (makeblock 0 x/83 0a)))
with (5)
(observe
(makeblock 0
(makeblock 0 (makeblock 0 (*,int) x/86 y/87)
z/88)
0a))))))))
(exit 1)))
(exit 1))
with (1) (observe x/89))))
(makeblock 0 mm/81)))