# pragmas

Theme:

- Index

Search:
Group by:
Source Edit

# Imports

condsyms, ast, astalgo, idents, semdata, msgs, renderer, wordrecg, ropes, options, extccomp, magicsys, trees, types, lookups, lineinfos, pathutils, linter, modulepaths, sigmatch, ic/ic

# Consts

    allRoutinePragmas = {wMagic..wThread, wEffectsOf, wConstructor, wDelegator,
                         wImportCpp, wImportObjC..wExportNims, wNodecl,
                         wSideEffect..wNosinks, wDynlib..wUsed, wError,
                         wStackTrace..wLineTrace, wDeprecated..wVarargs,
                         wNimcall..wNoconv, wNonReloadable, wRaises,
                         wTags..wEnsures, wNoDestroy, wCompileTime..wNoInit,
                         wBorrow..wDiscardable, wGensym..wInject, wAsmNoStackFrame,
                         wCodegenDecl, wLocks, wLiftLocals..wSystemRaisesDefect,
                         wQuirky..wExtern, wVirtual, wMember}

  Source Edit

    constPragmas = {wMagic, wIntDefine..wBoolDefine, wImportCpp, wImportObjC,
                    wImportc..wExportNims, wNodecl, wHeader, wCompilerProc..wCore,
                    wUsed, wError, wDefine, wDeprecated, wGensym..wInject, wExtern}

  Source Edit

    converterPragmas = {wMagic..wThread, wEffectsOf, wConstructor, wDelegator,
                        wImportCpp, wImportObjC..wExportNims, wNodecl,
                        wSideEffect..wNosinks, wDynlib..wProcVar, wUsed, wError,
                        wStackTrace..wLineTrace, wDeprecated..wVarargs,
                        wNimcall..wNoconv, wNonReloadable, wRaises, wTags..wEnsures,
                        wNoDestroy, wCompileTime..wNoInit, wBorrow..wDiscardable,
                        wGensym..wInject, wAsmNoStackFrame, wCodegenDecl, wLocks,
                        wLiftLocals..wSystemRaisesDefect, wQuirky..wExtern,
                        wVirtual, wMember}

  Source Edit

    enumFieldPragmas = {wDeprecated}

  Source Edit

    exprPragmas = {wLine, wLocks, wNoRewrite, wGcSafe, wNoSideEffect}

  Source Edit

    fieldPragmas = {wCursor..wNoalias, wImportCpp, wImportObjC,
                    wImportc..wExportCpp, wRequiresInit..wAlign, wUsed, wError,
                    wDeprecated, wNoInit, wGuard, wExtern, wBitsize}

  Source Edit

    FirstCallConv = wNimcall

  Source Edit

    forVarPragmas = {wInject, wGensym}

  Source Edit

    iteratorPragmas = {wMagic, wEffectsOf, wImportCpp, wImportObjC,
                       wImportc..wExportNims, wNodecl, wSideEffect,
                       wNoSideEffect..wGcSafe, wUsed, wError, wDeprecated,
                       wNimcall..wNoconv, wRaises, wTags..wEnsures,
                       wBorrow..wDiscardable, wGensym..wInject, wLocks, wExtern}

  Source Edit

    lambdaPragmas = {wNimcall..wNoconv, wNoSideEffect, wSideEffect, wNoreturn,
                     wNosinks, wDynlib, wHeader, wThread, wAsmNoStackFrame, wRaises,
                     wLocks, wTags, wForbids, wRequires, wEnsures, wEffectsOf,
                     wGcSafe, wCodegenDecl, wNoInit, wCompileTime}

  Source Edit

    LastCallConv = wNoconv

  Source Edit

    letPragmas = {wMagic, wCursor..wNoalias, wImportCpp, wImportObjC,
                  wImportc..wExportNims, wAlign..wNodecl, wHeader, wDynlib..wCore,
                  wUsed, wError, wDeprecated, wCompileTime..wNoInit,
                  wGensym..wInject, wThreadVar, wGlobal..wCodegenDecl, wGuard,
                  wLiftLocals, wExtern..wRegister, wVolatile}

  Source Edit

    macroPragmas = {wMagic, wDelegator, wImportCpp, wImportObjC,
                    wImportc..wExportNims, wNodecl, wNoSideEffect,
                    wCompilerProc..wCore, wUsed, wError, wDeprecated,
                    wNimcall..wNoconv, wNonReloadable, wDiscardable,
                    wGensym..wInject, wExtern}

  Source Edit

    methodPragmas = {wMagic..wThread, wEffectsOf, wConstructor, wDelegator,
                     wImportObjC..wExportNims, wNodecl, wSideEffect..wNosinks,
                     wDynlib..wUsed, wError, wStackTrace..wLineTrace,
                     wDeprecated..wVarargs, wNimcall..wNoconv, wNonReloadable,
                     wRaises, wTags..wEnsures, wNoDestroy, wCompileTime..wNoInit,
                     wBorrow..wDiscardable, wGensym..wInject, wAsmNoStackFrame,
                     wCodegenDecl, wLocks, wLiftLocals..wSystemRaisesDefect,
                     wQuirky..wExtern, wVirtual, wMember}

  Source Edit

    paramPragmas = {wNoalias, wInject, wGensym, wByRef, wByCopy, wCodegenDecl,
                    wExportc, wExportCpp}

  Source Edit

    procPragmas = {wMagic..wThread, wEffectsOf, wConstructor, wDelegator,
                   wImportCpp, wImportObjC..wExportNims, wNodecl,
                   wSideEffect..wNosinks, wDynlib..wProcVar, wUsed, wError,
                   wStackTrace..wLineTrace, wDeprecated..wVarargs,
                   wNimcall..wNoconv, wNonReloadable, wRaises, wTags..wEnsures,
                   wNoDestroy, wCompileTime..wNoInit, wBorrow..wDiscardable,
                   wGensym..wInject, wAsmNoStackFrame, wCodegenDecl, wLocks,
                   wLiftLocals..wSystemRaisesDefect, wQuirky..wExtern, wVirtual,
                   wMember}

  Source Edit

    procTypePragmas = {wNimcall..wNoconv, wVarargs, wNoSideEffect, wThread, wRaises,
                       wEffectsOf, wLocks, wTags, wForbids, wGcSafe, wRequires,
                       wEnsures}

  Source Edit

    stmtPragmas = {wHint, wWarning, wError, wFatal, wDefine, wUndef, wCompile,
                   wLink, wLinksys, wPure, wPush, wPop, wPassl, wPassc, wLocalPassc,
                   wDeadCodeElimUnused, wDeprecated, wPragma, wEmit, wUnroll,
                   wLinearScanEnd, wPatterns, wTrMacros, wEffects, wNoForward,
                   wReorder, wComputedGoto, wExperimental, wDoctype, wThis, wUsed,
                   wInvariant, wAssume, wAssert}

  Source Edit

    stmtPragmasTopLevel = {wChecks, wObjChecks, wFieldChecks, wRangeChecks,
                           wBoundChecks, wOverflowChecks, wNilChecks,
                           wStaticBoundchecks, wStyleChecks, wAssertions, wWarnings,
                           wHints, wLineDir, wStackTrace, wLineTrace, wOptimization,
                           wFloatChecks, wInfChecks, wNanChecks}

  Source Edit

    templatePragmas = {wDeprecated, wError, wGensym, wInject, wDirty, wDelegator,
                       wExportNims, wUsed, wPragma, wRedefine, wCallsite}

  Source Edit

    typePragmas = {wMagic, wFinal, wImportCpp..wImportObjC, wImportc..wRequiresInit,
                   wNodecl..wPure, wHeader, wGcSafe, wCompilerProc..wCore, wUsed,
                   wError, wDeprecated, wSize, wPackage, wNoInit, wBorrow,
                   wAcyclic..wShallow, wGensym..wInject, wInheritable,
                   wCodegenDecl..wUnchecked, wPartial..wExplain, wExtern,
                   wUnion..wPacked, wByCopy..wByRef, wSendable}

  Source Edit

    varPragmas = {wMagic, wCursor..wNoalias, wImportCpp, wImportObjC,
                  wImportc..wExportNims, wAlign..wNodecl, wHeader, wDynlib..wCore,
                  wUsed, wError, wDeprecated, wCompileTime..wNoInit,
                  wGensym..wInject, wThreadVar, wGlobal..wCodegenDecl, wGuard,
                  wLiftLocals, wExtern..wRegister, wVolatile}

  Source Edit

# Procs

    proc getPragmaVal(procAst: PNode; name: TSpecialWord): PNode {....raises: [],
        tags: [], forbids: [].}

  Source Edit

    proc hasPragma(n: PNode; pragma: TSpecialWord): bool {....raises: [], tags: [],
        forbids: [].}

  Source Edit

    proc illegalCustomPragma(c: PContext; n: PNode; s: PSym) {....raises: [Exception,
        ValueError, OSError, KeyError, IOError, ERecoverableError], tags: [
        RootEffect, ReadDirEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect],
        forbids: [].}

  Source Edit

    proc implicitPragmas(c: PContext; sym: PSym; info: TLineInfo;
                         validPragmas: TSpecialWords) {....raises: [Exception,
        ValueError, OSError, KeyError, IOError, ERecoverableError, EOFError], tags: [
        RootEffect, ReadDirEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect,
        WriteDirEffect], forbids: [].}

  Source Edit

    proc invalidPragma(c: PContext; n: PNode) {....raises: [Exception, ValueError,
        OSError, KeyError, IOError, ERecoverableError], tags: [RootEffect,
        ReadDirEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect], forbids: [].}

  Source Edit

    proc pragma(c: PContext; sym: PSym; n: PNode; validPragmas: TSpecialWords;
                isStatement: bool = false; comesFromPush = false) {....raises: [
        Exception, ValueError, OSError, KeyError, IOError, ERecoverableError,
        EOFError], tags: [RootEffect, ReadDirEffect, WriteIOEffect, ReadIOEffect,
                          ReadEnvEffect, WriteDirEffect], forbids: [].}

  Source Edit

    proc pragmaAsm(c: PContext; n: PNode): char {....raises: [Exception, ValueError,
        OSError, KeyError, IOError, ERecoverableError], tags: [RootEffect,
        ReadDirEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect], forbids: [].}

  Checks asm pragmas and get's the asm subschar (default: '`'). Source Edit

    proc pragmaCallable(c: PContext; sym: PSym; n: PNode;
                        validPragmas: TSpecialWords; isStatement: bool = false) {....raises: [
        Exception, ValueError, OSError, KeyError, IOError, ERecoverableError,
        EOFError], tags: [RootEffect, ReadDirEffect, WriteIOEffect, ReadIOEffect,
                          ReadEnvEffect, WriteDirEffect], forbids: [].}

  Source Edit

    proc pragmaNoForward(c: PContext; n: PNode; flag = sfNoForward) {....raises: [
        Exception, ValueError, OSError, KeyError, IOError, ERecoverableError], tags: [
        RootEffect, ReadDirEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect],
        forbids: [].}

  Source Edit

    proc pragmaToOptions(w: TSpecialWord): TOptions {.inline, ...raises: [], tags: [],
        forbids: [].}

  Source Edit

    proc semAsmOrEmit(con: PContext; n: PNode; marker: char): PNode {....raises: [
        Exception, ValueError, OSError, KeyError, IOError, ERecoverableError], tags: [
        RootEffect, ReadDirEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect],
        forbids: [].}

  Source Edit