cps/transform

Source   Edit  

Procs

proc performUntypedPass(tipe: NimNode; n: NimNode): NimNode {.
    ...raises: [Exception], tags: [RootEffect], forbids: [].}
Perform any rewrites needed prior to a .cps: T. transformation. Source   Edit  
proc rewriteCalls(n: NimNode): NimNode {....raises: [Exception],
    tags: [RootEffect], forbids: [].}
rewriting callback(x) into recover(callback, call(callback, x)) for use inside of an untyped pass; this should be applied only to Callback symbols... Source   Edit  
proc unwind(c: sink Continuation; e: ref Exception): Continuation {.used,
    ...raises: [Exception], tags: [], forbids: [].}
Reimplement this symbol to customize stack unwind. Source   Edit  
proc unwind(e: ref Exception) {.used, cpsMustJump, cpsMagicCall, ...raises: [],
                                tags: [], forbids: [].}
Source   Edit  

Macros

macro cpsTransform(tipe, n: typed): untyped
This is the macro performing the main cps transformation Source   Edit