def in.unwind.cont

bend-osdev-acpi@0.1.1.0 · aml_interp.bend:1698

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

1698# Continue: frames dropped to the While, whose predicate is read again
1699def in.unwind.cont(-H: Data, fs: List<&2, AmlFrame>, w: AmlWorld<H>) -> AmlMachine<H>:
1700  match fs:
1701    case Nil{}:
1702      AmlMachine{AmlMFail{E.AcpiAmlBadControl{}}, in.no.cur(), Nil{}, w}
1703    case Con{AmlFWhile{+s, after, b}, rest}:
1704      AmlMachine{AmlMEval{AmlKTerm{}}, s, Con{AmlFWhile{s, after, False{}}, rest}, w}
1705    case Con{AmlFCall{saved, back}, rest}:
1706      AmlMachine{AmlMFail{E.AcpiAmlBadControl{}}, back, rest, w}
1707    case Con{AmlFTop{}, rest}:
1708      AmlMachine{AmlMFail{E.AcpiAmlBadControl{}}, in.no.cur(), rest, w}
1709    case Con{f, rest}:
1710      in.unwind.cont(H, rest, w)

Uses (9)

Used by (1)