parampatterns

This module implements the pattern matching features for term rewriting macro support.

Imports

ast, types, msgs, idents, renderer, wordrecg, trees, options

Types

TAliasRequest = enum
  aqNone = 1, aqShouldAlias, aqNoAlias
Source Edit
TSideEffectAnalysis = enum
  seUnknown, seSideEffect, seNoSideEffect
Source Edit
TAssignableResult = enum
  arNone, arLValue, arLocalLValue, arDiscriminant, arLentValue, arStrange
Source Edit

Consts

MaxStackSize = 64
max required stack size by the VM Source Edit

Procs

proc whichAlias(p: PSym): TAliasRequest {...}{.raises: [], tags: [].}
Source Edit
proc semNodeKindConstraints(n: PNode; conf: ConfigRef; start: Natural): PNode {...}{.
    raises: [Exception, ValueError, IOError, ERecoverableError],
    tags: [RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect].}
does semantic checking for a node kind pattern and compiles it into an efficient internal format. Source Edit
proc checkForSideEffects(n: PNode): TSideEffectAnalysis {...}{.raises: [], tags: [].}
Source Edit
proc exprRoot(n: PNode): PSym {...}{.raises: [], tags: [].}
Source Edit
proc isAssignable(owner: PSym; n: PNode; isUnsafeAddr = false): TAssignableResult {...}{.
    raises: [Exception, ERecoverableError], tags: [RootEffect].}
'owner' can be nil! Source Edit
proc isLValue(n: PNode): bool {...}{.raises: [Exception, ERecoverableError],
                                tags: [RootEffect].}
Source Edit
proc matchNodeKinds(p, n: PNode): bool {...}{.raises: [Exception, ERecoverableError],
    tags: [RootEffect].}
Source Edit

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