def pth1_dec

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

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

2111def pth1_dec(+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.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.dec(B.append(B.append(L, Nil{}), R)) : Result<&2, &2, E.AcpiError, N.AmlNameL>}:
2112  match L:
2113    case Nil{}:
2114      Empty.absurd({Done{N.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.dec(B.append(B.append(Nil{}, Nil{}), R)) : Result<&2, &2, E.AcpiError, N.AmlNameL>}, ft_absurd(ok))
2115    case Con{c0, L1}:
2116      match L1:
2117        case Nil{}:
2118          Empty.absurd({Done{N.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.dec(B.append(B.append(Con{c0, Nil{}}, Nil{}), R)) : Result<&2, &2, E.AcpiError, N.AmlNameL>}, ft_absurd(ok))
2119        case Con{c1, L2}:
2120          match L2:
2121            case Nil{}:
2122              Empty.absurd({Done{N.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.dec(B.append(B.append(Con{c0, Con{c1, Nil{}}}, Nil{}), R)) : Result<&2, &2, E.AcpiError, N.AmlNameL>}, ft_absurd(ok))
2123            case Con{c2, L3}:
2124              match L3:
2125                case Nil{}:
2126                  Empty.absurd({Done{N.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.dec(B.append(B.append(Con{c0, Con{c1, Con{c2, Nil{}}}}, Nil{}), R)) : Result<&2, &2, E.AcpiError, N.AmlNameL>}, ft_absurd(ok))
2127                case Con{c3, L4}:
2128                  match L4:
2129                    case Con{c4, L5}:
2130                      Empty.absurd({Done{N.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.dec(B.append(B.append(Con{c0, Con{c1, Con{c2, Con{c3, Con{c4, L5}}}}}, Nil{}), R)) : Result<&2, &2, E.AcpiError, N.AmlNameL>}, ft_absurd(ok))
2131                    case Nil{}:
2132                      %seg_kind(c0, c1, c2, c3, ok) : {Done{N.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.dec.k(_, c0, Con{c1, Con{c2, Con{c3, R}}}) : Result<&2, &2, E.AcpiError, N.AmlNameL>}
2133                      %seg_l(s, Con{c0, Con{c1, Con{c2, Con{c3, Nil{}}}}}, R, e, ok) : {Done{N.AmlNameL{N.AmlName{False{}, 0n, [s]}, R}} == N.nm.named(False{}, 0n, N.nm.segs.go(0n, _)) : Result<&2, &2, E.AcpiError, N.AmlNameL>}
2134                      {==}

Uses (19)

Used by (1)