phino-0.0.154: test-resources/evaluate-packs/leaves-a-terminator-an-evaluate-line-meets-unfired.yaml
# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# A branch that raises through a terminator of the entry is not fired by an
# 'evaluate' line, since no entry answers 'L_throw': the line leaves it as it
# is, and the join takes it as the branch that raises (#1874).
symbolic: |
- Ξ»: L_fork
dataize:
πΏ1: $.Ο
morph:
π1: $.a
π2: $.b
evaluate:
π3: π1
π4: π2
join:
π5: [π3, π4]
terminators: [L_throw]
π: π5
location: 'Q.y'
input: 'β¦ y β¦ β¦ Ο β¦ β¦ Ξ β€ 01- β§, a β¦ β¦ Ο β¦ β¦ Ξ» β€ π1 β§ β§, b β¦ β¦ Ξ» β€ L_throw β§, Ξ» β€ L_fork β§.Ο β§'
result: 'π1:Ξ»'
protocol: |
π(Ξ¦.y):
πΌ(L_fork):
π»(Ξ¦.aπ΅0):
πΏΒ·1Β·1 := 01-
πΏ1Β·1 := πΏΒ·1Β·1 # π»(ΞΎ.Ο)
π1Β·1 := π1:Ξ»:Ο # π(ΞΎ.a)
π2Β·1 := L_throw:Ξ» # π(ΞΎ.b)
π3Β·1 := π1Β·1 # πΌ(π1)
π4Β·1 := L_throw:Ξ» # πΌ(π2)
terminate(01-, right) # π4
π5Β·1 := π3Β·1 # [π3, π4]
πΒ·1Β·1 := π5Β·1 # π
πΒ·1Β·2 := π5Β·1 # π(πΒ·1Β·1)