trees

Imports

ast, wordrecg, idents

Procs

proc cyclicTree(n: PNode): bool {...}{.raises: [], tags: [].}
Source Edit
proc exprStructuralEquivalent(a, b: PNode; strictSymEquality = false): bool {...}{.
    raises: [], tags: [].}
Source Edit
proc sameTree(a, b: PNode): bool {...}{.raises: [], tags: [].}
Source Edit
proc getMagic(op: PNode): TMagic {...}{.raises: [], tags: [].}
Source Edit
proc isConstExpr(n: PNode): bool {...}{.raises: [], tags: [].}
Source Edit
proc isCaseObj(n: PNode): bool {...}{.raises: [], tags: [].}
Source Edit
proc isDeepConstExpr(n: PNode; preventInheritance = false): bool {...}{.raises: [],
    tags: [].}
Source Edit
proc isRange(n: PNode): bool {...}{.inline, raises: [], tags: [].}
Source Edit
proc whichPragma(n: PNode): TSpecialWord {...}{.raises: [], tags: [].}
Source Edit
proc isNoSideEffectPragma(n: PNode): bool {...}{.raises: [], tags: [].}
Source Edit
proc findPragma(n: PNode; which: TSpecialWord): PNode {...}{.raises: [], tags: [].}
Source Edit
proc effectSpec(n: PNode; effectType: TSpecialWord): PNode {...}{.raises: [],
    tags: [].}
Source Edit
proc propSpec(n: PNode; effectType: TSpecialWord): PNode {...}{.raises: [], tags: [].}
Source Edit
proc flattenStmts(n: PNode): PNode {...}{.raises: [], tags: [].}
Source Edit
proc extractRange(k: TNodeKind; n: PNode; a, b: int): PNode {...}{.raises: [],
    tags: [].}
Source Edit
proc isTrue(n: PNode): bool {...}{.raises: [], tags: [].}
Source Edit
proc getRoot(n: PNode): PSym {...}{.raises: [], tags: [].}
getRoot takes a path n. A path is an lvalue expression like obj.x[i].y. The root of a path is the symbol that can be determined as the owner; obj in the example. Source Edit
proc stupidStmtListExpr(n: PNode): bool {...}{.raises: [], tags: [].}
Source Edit
proc dontInlineConstant(orig, cnst: PNode): bool {...}{.inline, raises: [], tags: [].}
Source Edit

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