def in.term.rest.pick
bend-osdev-acpi@0.1.1.0 · aml_interp.bend:2657
import bend-osdev-acpi@0.1.1.0/aml_interp.bend as AmlInterp
import Base
import bend-osdev-acpi@0.1.1.0/error.bend as E
import bend-osdev-acpi@0.1.1.0/aml_value.bend as V
import bend-osdev-acpi@0.1.1.0/aml_host.bend as Hs
2657def in.term.rest.pick(~H: Data, ~io: H -> Hs.AmlHostOp -> Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>, local: Bool, arg: Bool, name: Bool, k: AmlArgK, +n: Nat, +b: U32, +exec: Bool, c: AmlCur, fs: List<&2, AmlFrame>, +w: AmlWorld<H>) -> AmlMachine<H>:
2658 match local:
2659 case True{}:
2660 +i = Nat.sub(n, 96n)
2661 in.lvar(H, k, V.AmlLLocal{i}, in.ctx.local(H, w, i), c, fs, w)
2662 case False{}:
2663 match arg:
2664 case True{}:
2665 +i = Nat.sub(n, 104n)
2666 in.lvar(H, k, V.AmlLArg{i}, in.ctx.arg(H, w, i), c, fs, w)
2667 case False{}:
2668 match name:
2669 case True{}:
2670 in.name.go(~H, ~io, cur.name(in.unread(b, c)), k, fs, w)
2671 case False{}:
2672 in.expr(~H, ~io, n, b, in.kinds(n), exec, c, fs, w)