def pth1_dpath

bend-osdev-acpi@0.1.1.0 · PROOF.bend:2086

import bend-osdev-acpi@0.1.1.0/PROOF.bend as PROOF
import Base
import bend-osdev-bytes@0.1.1.0/bytes.bend as B
import bend-osdev-acpi@0.1.1.0/error.bend as E
import bend-osdev-acpi@0.1.1.0/aml_name.bend as N

2086def pth1_dpath(+s: B.Octets, +L: List<&2, U32>, +R: List<&2, U32>, +e: {B.Octets.to_list(s) == L : List<&2, U32>}, +ok: {N.nm.seg_ok.list(L) == True{} : Bool}) -> {Done{N.AmlSegsL{[s], R}} == N.nm.dpath(B.append(B.append(L, Nil{}), R)) : Result<&2, &2, E.AcpiError, N.AmlSegsL>}:
2087  match L:
2088    case Nil{}:
2089      Empty.absurd({Done{N.AmlSegsL{[s], R}} == N.nm.dpath(B.append(B.append(Nil{}, Nil{}), R)) : Result<&2, &2, E.AcpiError, N.AmlSegsL>}, ft_absurd(ok))
2090    case Con{c0, L1}:
2091      match L1:
2092        case Nil{}:
2093          Empty.absurd({Done{N.AmlSegsL{[s], R}} == N.nm.dpath(B.append(B.append(Con{c0, Nil{}}, Nil{}), R)) : Result<&2, &2, E.AcpiError, N.AmlSegsL>}, ft_absurd(ok))
2094        case Con{c1, L2}:
2095          match L2:
2096            case Nil{}:
2097              Empty.absurd({Done{N.AmlSegsL{[s], R}} == N.nm.dpath(B.append(B.append(Con{c0, Con{c1, Nil{}}}, Nil{}), R)) : Result<&2, &2, E.AcpiError, N.AmlSegsL>}, ft_absurd(ok))
2098            case Con{c2, L3}:
2099              match L3:
2100                case Nil{}:
2101                  Empty.absurd({Done{N.AmlSegsL{[s], R}} == N.nm.dpath(B.append(B.append(Con{c0, Con{c1, Con{c2, Nil{}}}}, Nil{}), R)) : Result<&2, &2, E.AcpiError, N.AmlSegsL>}, ft_absurd(ok))
2102                case Con{c3, L4}:
2103                  match L4:
2104                    case Con{c4, L5}:
2105                      Empty.absurd({Done{N.AmlSegsL{[s], R}} == N.nm.dpath(B.append(B.append(Con{c0, Con{c1, Con{c2, Con{c3, Con{c4, L5}}}}}, Nil{}), R)) : Result<&2, &2, E.AcpiError, N.AmlSegsL>}, ft_absurd(ok))
2106                    case Nil{}:
2107                      %seg_kind(c0, c1, c2, c3, ok) : {Done{N.AmlSegsL{[s], R}} == N.nm.path.k(_, c0, Con{c1, Con{c2, Con{c3, R}}}) : Result<&2, &2, E.AcpiError, N.AmlSegsL>}
2108                      %seg_l(s, Con{c0, Con{c1, Con{c2, Con{c3, Nil{}}}}}, R, e, ok) : {Done{N.AmlSegsL{[s], R}} == N.nm.segs.go(0n, _) : Result<&2, &2, E.AcpiError, N.AmlSegsL>}
2109                      {==}

Uses (17)

Used by (1)