lambdalifting

Imports

options, ast, astalgo, msgs, idents, renderer, types, magicsys, lowerings, modulegraphs, lineinfos, transf, liftdestructors

Consts

upName = ":up"
Source Edit
paramName = ":envP"
Source Edit
envName = ":env"
Source Edit

Procs

proc createClosureIterStateType(g: ModuleGraph; iter: PSym): PType {...}{.raises: [],
    tags: [].}
Source Edit
proc getClosureIterResult(g: ModuleGraph; iter: PSym): PSym {...}{.raises: [],
    tags: [].}
Source Edit
proc getEnvParam(routine: PSym): PSym {...}{.raises: [], tags: [].}
Source Edit
proc makeClosure(g: ModuleGraph; prc: PSym; env: PNode; info: TLineInfo): PNode {...}{.
    raises: [Exception, ValueError, IOError, ERecoverableError],
    tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
Source Edit
proc liftIterSym(g: ModuleGraph; n: PNode; owner: PSym): PNode {...}{.
    raises: [Exception, ValueError, IOError, ERecoverableError],
    tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
Source Edit
proc freshVarForClosureIter(g: ModuleGraph; s, owner: PSym): PNode {...}{.
    raises: [Exception, ValueError, IOError, ERecoverableError],
    tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
Source Edit
proc getStateField(g: ModuleGraph; owner: PSym): PSym {...}{.
    raises: [Exception, ValueError, IOError, ERecoverableError],
    tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
Source Edit
proc semCaptureSym(s, owner: PSym) {...}{.raises: [], tags: [].}
Source Edit
proc liftIterToProc(g: ModuleGraph; fn: PSym; body: PNode; ptrType: PType): PNode {...}{.
    raises: [Exception, ValueError, IOError, ERecoverableError, KeyError],
    tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
Source Edit
proc liftLambdas(g: ModuleGraph; fn: PSym; body: PNode; tooEarly: var bool): PNode {...}{.
    raises: [Exception, ValueError, IOError, ERecoverableError, KeyError],
    tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
Source Edit
proc liftLambdasForTopLevel(module: PSym; body: PNode): PNode {...}{.raises: [],
    tags: [].}
Source Edit
proc liftForLoop(g: ModuleGraph; body: PNode; owner: PSym): PNode {...}{.
    raises: [Exception, ValueError, IOError, ERecoverableError],
    tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
Source Edit

Templates

template isIterator(owner: PSym): bool
Source Edit

© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/compiler/lambdalifting.html