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 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