nir/nir

Source   Edit  

Nim Intermediate Representation, designed to capture all of Nim's semantics without losing too much precious information. Can easily be translated into C. And to JavaScript, hopefully.

Types

NirPassContext = ref object of TPassContext
Source   Edit  
PCtx = ref object of TPassContext
Source   Edit  

Procs

proc closeNirBackend(c: PPassContext; finalNode: PNode) {....raises: [Exception,
    ValueError, KeyError, IOError, ERecoverableError, OSError,
    IllegalTypeRecursionError, Exception, ValueError, KeyError, IOError,
    ERecoverableError], tags: [RootEffect, ReadDirEffect, WriteIOEffect,
                               ReadIOEffect, ReadEnvEffect, TimeEffect,
                               WriteDirEffect], forbids: [].}
Source   Edit  
proc newCtx(module: PSym; g: ModuleGraph; idgen: IdGenerator): PCtx {.
    ...raises: [OSError], tags: [], forbids: [].}
Source   Edit  
proc nirBackend(c: PPassContext; n: PNode): PNode {....raises: [Exception,
    ValueError, KeyError, IOError, ERecoverableError, OSError,
    IllegalTypeRecursionError], tags: [RootEffect, ReadDirEffect, WriteIOEffect,
                                       ReadIOEffect, ReadEnvEffect, TimeEffect],
    forbids: [].}
Source   Edit  
proc openNirBackend(g: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext {.
    ...raises: [OSError], tags: [], forbids: [].}
Source   Edit  
proc refresh(c: PCtx; module: PSym; idgen: IdGenerator) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc runCode(c: PPassContext; n: PNode): PNode {....raises: [Exception, ValueError,
    KeyError, IOError, ERecoverableError, OSError, IllegalTypeRecursionError], tags: [
    RootEffect, ReadDirEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect,
    TimeEffect], forbids: [].}
Source   Edit  
proc setupGlobalCtx(module: PSym; graph: ModuleGraph; idgen: IdGenerator) {.
    ...raises: [OSError], tags: [], forbids: [].}
Source   Edit  
proc setupNirReplGen(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext {.
    ...raises: [OSError], tags: [], forbids: [].}
Source   Edit