Files
Nim/compiler/ic/packed_ast.html
github-actions[bot] c7440eccf2 Deploy to GitHub pages
2025-09-27 04:02:34 +00:00

1329 lines
110 KiB
HTML

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- This file is generated by Nim. -->
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-theme="auto">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ic/packed_ast</title>
<!-- Google fonts -->
<link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
<link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
<!-- Favicon -->
<link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
<link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QQQEwksSS9ZWwAAAk1JREFUWMPtll2ITVEUx39nn/O7Y5qR8f05wtCUUr6ZIS++8pEnkZInPImneaCQ5METNdOkeFBKUhMPRIkHKfEuUZSUlGlKPN2TrgfncpvmnntnmlEyq1Z7t89/rf9a6+y99oZxGZf/XeIq61EdtgKXgdXA0xrYAvBjOIF1AI9zvjcC74BSpndrJPkBWDScTF8Aa4E3wDlgHbASaANmVqlcCnwHvgDvgVfAJ+AikAAvgfVZwLnSVZHZaOuKoQi3ZOMi4NkYkpe1p4J7A8BpYAD49hfIy/oqG0+hLomiKP2L5L+1ubn5115S+3OAn4EnwBlgMzCjyt6ZAnQCJ4A7wOs88iRJHvw50HoujuPBoCKwHWiosy8MdfZnAdcHk8dxXFJ3VQbQlCTJvRBCGdRbD4M6uc5glpY3eAihpN5S5w12diSEcCCEcKUO4ljdr15T76ur1FDDLIQQ3qv71EdDOe3Kxj3leRXyk+pxdWnFWod6Wt2bY3de3aSuUHcPBVimHs7mK9WrmeOF6lR1o9qnzskh2ar2qm1qizpfXaPeVGdlmGN5pb09qMxz1Xb1kLqgzn1RyH7JUXW52lr5e/Kqi9qpto7V1atuUzfnARrV7jEib1T76gG2qxdGmXyiekkt1GswPTtek0aBfJp6YySGBfWg2tPQ0FAYgf1stUfdmdcjarbYJEniKIq6gY/Aw+zWHAC+p2labGpqiorFYgGYCEzN7oQdQClN07O1/EfDyGgC0ALMBdYAi4FyK+4H3gLPsxfR1zRNi+NP7nH5J+QntnXe5B5mpfQAAAAASUVORK5CYII=">
<!-- CSS -->
<link rel="stylesheet" type="text/css" href="../nimdoc.out.css?v=2.3.1">
<!-- JS -->
<script type="text/javascript" src="../dochack.js?v=2.3.1"></script>
</head>
<body>
<div class="document" id="documentId">
<div class="container">
<h1 class="title">ic/packed_ast</h1>
<div class="row">
<div class="three columns">
<div class="theme-select-wrapper">
<label for="theme-select">Theme:&nbsp;</label>
<select id="theme-select" onchange="setTheme(this.value)">
<option value="auto">🌗 Match OS</option>
<option value="dark">🌑 Dark</option>
<option value="light">🌕 Light</option>
</select>
</div>
<div id="global-links">
<ul class="simple">
<li><a id="indexLink" href="../theindex.html">Index</a></li>
</ul>
</div>
<div id="searchInputDiv">
Search: <input type="search" id="searchInput" oninput="search()"/>
</div>
<div>
Group by:
<select onchange="groupBy(this.value)">
<option value="section">Section</option>
<option value="type">Type</option>
</select>
</div>
<ul class="simple simple-toc" id="toc-list">
<li>
<a class="reference reference-toplevel" href="#6" id="56">Imports</a>
</li>
<li>
<details open>
<summary><a class="reference reference-toplevel" href="#7" id="57">Types</a></summary>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#ModuleId" title="ModuleId = distinct int32">ModuleId</a></li>
<li><a class="reference" href="#NodeId" title="NodeId = distinct int32">NodeId</a></li>
<li><a class="reference" href="#NodePos" title="NodePos = distinct int">NodePos</a></li>
<li><a class="reference" href="#PackedInstantiation" title="PackedInstantiation = object
key*, sym*: PackedItemId
concreteTypes*: seq[PackedItemId]">PackedInstantiation</a></li>
<li><a class="reference" href="#PackedItemId" title="PackedItemId = object
module*: LitId
item*: int32">PackedItemId</a></li>
<li><a class="reference" href="#PackedLib" title="PackedLib = object
kind*: TLibKind
generated*: bool
isOverridden*: bool
name*: LitId
path*: NodeId">PackedLib</a></li>
<li><a class="reference" href="#PackedNode" title="PackedNode = object
info*: PackedLineInfo">PackedNode</a></li>
<li><a class="reference" href="#PackedSym" title="PackedSym = object
id*: int32
kind*: TSymKind
name*: LitId
typ*: PackedItemId
flags*: TSymFlags
magic*: TMagic
info*: PackedLineInfo
ast*: NodeId
owner*: PackedItemId
guard*: PackedItemId
bitsize*: int
alignment*: int
options*: TOptions
position*: int
offset*: int32
disamb*: int32
externalName*: LitId
locFlags*: TLocFlags
annex*: PackedLib
when hasFFI:
cname*: LitId
constraint*: NodeId
instantiatedFrom*: PackedItemId">PackedSym</a></li>
<li><a class="reference" href="#PackedTree" title="PackedTree = object">PackedTree</a></li>
<li><a class="reference" href="#PackedType" title="PackedType = object
id*: int32
kind*: TTypeKind
callConv*: TCallingConvention
flags*: TTypeFlags
types*: seq[PackedItemId]
n*: NodeId
sym*: PackedItemId
owner*: PackedItemId
size*: BiggestInt
align*: int16
paddingAtEnd*: int16
typeInst*: PackedItemId
nonUniqueId*: int32">PackedType</a></li>
<li><a class="reference" href="#SymId" title="SymId = distinct int32">SymId</a></li>
</ul>
</details>
</li>
<li>
<details open>
<summary><a class="reference reference-toplevel" href="#10" id="60">Consts</a></summary>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#directIntLit" title="directIntLit = nkNone">directIntLit</a></li>
<li><a class="reference" href="#emptyNodeId" title="emptyNodeId = -1'i32">emptyNodeId</a></li>
<li><a class="reference" href="#externIntLit" title="externIntLit = {nkCharLit, nkIntLit, nkInt8Lit, nkInt16Lit, nkInt32Lit,
nkInt64Lit, nkUIntLit, nkUInt8Lit, nkUInt16Lit, nkUInt32Lit,
nkUInt64Lit}">externIntLit</a></li>
<li><a class="reference" href="#externSIntLit" title="externSIntLit = {nkIntLit, nkInt8Lit, nkInt16Lit, nkInt32Lit, nkInt64Lit}">externSIntLit</a></li>
<li><a class="reference" href="#externUIntLit" title="externUIntLit = {nkUIntLit, nkUInt8Lit, nkUInt16Lit, nkUInt32Lit, nkUInt64Lit}">externUIntLit</a></li>
<li><a class="reference" href="#nilItemId" title="nilItemId = (module: 0'u, item: 0)">nilItemId</a></li>
</ul>
</details>
</li>
<li>
<details open>
<summary><a class="reference reference-toplevel" href="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">==
<li><a class="reference" href="#%3D%3D%2CNodeId%2CNodeId" title="`==`(a, b: NodeId): bool">`==`(a, b: NodeId): bool</a></li>
<li><a class="reference" href="#%3D%3D%2CNodePos%2CNodePos" title="`==`(a, b: NodePos): bool">`==`(a, b: NodePos): bool</a></li>
<li><a class="reference" href="#%3D%3D%2CSymId%2CSymId" title="`==`(a, b: SymId): bool">`==`(a, b: SymId): bool</a></li>
</ul>
<ul class="simple nested-toc-section">[]
<li><a class="reference" href="#%5B%5D%2CPackedTree%2CNodePos" title="`[]`(tree: PackedTree; i: NodePos): lent PackedNode">`[]`(tree: PackedTree; i: NodePos): lent PackedNode</a></li>
</ul>
<ul class="simple nested-toc-section">addIdent
<li><a class="reference" href="#addIdent%2CPackedTree%2CLitId%2CPackedLineInfo" title="addIdent(tree: var PackedTree; s: LitId; info: PackedLineInfo)">addIdent(tree: var PackedTree; s: LitId; info: PackedLineInfo)</a></li>
</ul>
<ul class="simple nested-toc-section">addNode
<li><a class="reference" href="#addNode%2CPackedTree%2CTNodeKind%2Cint32%2CPackedItemId%2CPackedLineInfo%2CTNodeFlags" title="addNode(t: var PackedTree; kind: TNodeKind; operand: int32;
typeId: PackedItemId = nilItemId; info: PackedLineInfo;
flags: TNodeFlags = {})">addNode(t: var PackedTree; kind: TNodeKind; operand: int32;
typeId: PackedItemId = nilItemId; info: PackedLineInfo;
flags: TNodeFlags = {})</a></li>
</ul>
<ul class="simple nested-toc-section">addSym
<li><a class="reference" href="#addSym%2CPackedTree%2Cint32%2CPackedLineInfo" title="addSym(tree: var PackedTree; s: int32; info: PackedLineInfo)">addSym(tree: var PackedTree; s: int32; info: PackedLineInfo)</a></li>
</ul>
<ul class="simple nested-toc-section">addSymDef
<li><a class="reference" href="#addSymDef%2CPackedTree%2CSymId%2CPackedLineInfo" title="addSymDef(tree: var PackedTree; s: SymId; info: PackedLineInfo)">addSymDef(tree: var PackedTree; s: SymId; info: PackedLineInfo)</a></li>
</ul>
<ul class="simple nested-toc-section">findFlags
<li><a class="reference" href="#findFlags%2CPackedTree%2CNodePos" title="findFlags(tree: PackedTree; n: NodePos): TNodeFlags">findFlags(tree: PackedTree; n: NodePos): TNodeFlags</a></li>
</ul>
<ul class="simple nested-toc-section">findType
<li><a class="reference" href="#findType%2CPackedTree%2CNodePos" title="findType(tree: PackedTree; n: NodePos): PackedItemId">findType(tree: PackedTree; n: NodePos): PackedItemId</a></li>
</ul>
<ul class="simple nested-toc-section">firstSon
<li><a class="reference" href="#firstSon%2CNodePos" title="firstSon(n: NodePos): NodePos">firstSon(n: NodePos): NodePos</a></li>
<li><a class="reference" href="#firstSon%2CPackedTree%2CNodePos" title="firstSon(tree: PackedTree; n: NodePos): NodePos">firstSon(tree: PackedTree; n: NodePos): NodePos</a></li>
</ul>
<ul class="simple nested-toc-section">getNodeId
<li><a class="reference" href="#getNodeId%2CPackedTree" title="getNodeId(tree: PackedTree): NodeId">getNodeId(tree: PackedTree): NodeId</a></li>
</ul>
<ul class="simple nested-toc-section">hasAtLeastXsons
<li><a class="reference" href="#hasAtLeastXsons%2CPackedTree%2CNodePos%2Cint" title="hasAtLeastXsons(tree: PackedTree; n: NodePos; x: int): bool">hasAtLeastXsons(tree: PackedTree; n: NodePos; x: int): bool</a></li>
</ul>
<ul class="simple nested-toc-section">hash
<li><a class="reference" href="#hash%2CSymId" title="hash(a: SymId): Hash">hash(a: SymId): Hash</a></li>
</ul>
<ul class="simple nested-toc-section">hasXsons
<li><a class="reference" href="#hasXsons%2CPackedTree%2CNodePos%2Cint" title="hasXsons(tree: PackedTree; n: NodePos; x: int): bool">hasXsons(tree: PackedTree; n: NodePos; x: int): bool</a></li>
</ul>
<ul class="simple nested-toc-section">info
<li><a class="reference" href="#info%2CPackedTree%2CNodePos" title="info(tree: PackedTree; n: NodePos): PackedLineInfo">info(tree: PackedTree; n: NodePos): PackedLineInfo</a></li>
</ul>
<ul class="simple nested-toc-section">isAtom
<li><a class="reference" href="#isAtom%2CPackedTree%2Cint" title="isAtom(tree: PackedTree; pos: int): bool">isAtom(tree: PackedTree; pos: int): bool</a></li>
</ul>
<ul class="simple nested-toc-section">ithSon
<li><a class="reference" href="#ithSon%2CPackedTree%2CNodePos%2Cint" title="ithSon(tree: PackedTree; n: NodePos; i: int): NodePos">ithSon(tree: PackedTree; n: NodePos; i: int): NodePos</a></li>
</ul>
<ul class="simple nested-toc-section">kind
<li><a class="reference" href="#kind%2CPackedTree%2CNodePos" title="kind(tree: PackedTree; n: NodePos): TNodeKind">kind(tree: PackedTree; n: NodePos): TNodeKind</a></li>
</ul>
<ul class="simple nested-toc-section">len
<li><a class="reference" href="#len%2CPackedTree" title="len(tree: PackedTree): int">len(tree: PackedTree): int</a></li>
</ul>
<ul class="simple nested-toc-section">litId
<li><a class="reference" href="#litId%2CPackedTree%2CNodePos" title="litId(tree: PackedTree; n: NodePos): LitId">litId(tree: PackedTree; n: NodePos): LitId</a></li>
</ul>
<ul class="simple nested-toc-section">load
<li><a class="reference" href="#load%2CRodFile%2CPackedTree" title="load(f: var RodFile; t: var PackedTree)">load(f: var RodFile; t: var PackedTree)</a></li>
</ul>
<ul class="simple nested-toc-section">newTreeFrom
<li><a class="reference" href="#newTreeFrom%2CPackedTree" title="newTreeFrom(old: PackedTree): PackedTree">newTreeFrom(old: PackedTree): PackedTree</a></li>
</ul>
<ul class="simple nested-toc-section">patch
<li><a class="reference" href="#patch%2CPackedTree%2CPatchPos" title="patch(tree: var PackedTree; pos: PatchPos)">patch(tree: var PackedTree; pos: PatchPos)</a></li>
</ul>
<ul class="simple nested-toc-section">prepare
<li><a class="reference" href="#prepare%2CPackedTree%2CPackedTree%2CNodePos" title="prepare(dest: var PackedTree; source: PackedTree; sourcePos: NodePos): PatchPos">prepare(dest: var PackedTree; source: PackedTree; sourcePos: NodePos): PatchPos</a></li>
<li><a class="reference" href="#prepare%2CPackedTree%2CTNodeKind%2CTNodeFlags%2CPackedItemId%2CPackedLineInfo" title="prepare(tree: var PackedTree; kind: TNodeKind; flags: TNodeFlags;
typeId: PackedItemId; info: PackedLineInfo): PatchPos">prepare(tree: var PackedTree; kind: TNodeKind; flags: TNodeFlags;
typeId: PackedItemId; info: PackedLineInfo): PatchPos</a></li>
</ul>
<ul class="simple nested-toc-section">sons2
<li><a class="reference" href="#sons2%2CPackedTree%2CNodePos" title="sons2(tree: PackedTree; n: NodePos): (NodePos, NodePos)">sons2(tree: PackedTree; n: NodePos): (NodePos, NodePos)</a></li>
</ul>
<ul class="simple nested-toc-section">sons3
<li><a class="reference" href="#sons3%2CPackedTree%2CNodePos" title="sons3(tree: PackedTree; n: NodePos): (NodePos, NodePos, NodePos)">sons3(tree: PackedTree; n: NodePos): (NodePos, NodePos, NodePos)</a></li>
</ul>
<ul class="simple nested-toc-section">span
<li><a class="reference" href="#span%2CPackedTree%2Cint" title="span(tree: PackedTree; pos: int): int">span(tree: PackedTree; pos: int): int</a></li>
</ul>
<ul class="simple nested-toc-section">store
<li><a class="reference" href="#store%2CRodFile%2CPackedTree" title="store(f: var RodFile; t: PackedTree)">store(f: var RodFile; t: PackedTree)</a></li>
</ul>
<ul class="simple nested-toc-section">toPackedItemId
<li><a class="reference" href="#toPackedItemId%2Cint32" title="toPackedItemId(item: int32): PackedItemId">toPackedItemId(item: int32): PackedItemId</a></li>
</ul>
</ul>
</details>
</li>
<li>
<details open>
<summary><a class="reference reference-toplevel" href="#15" id="65">Iterators</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">allNodes
<li><a class="reference" href="#allNodes.i%2CPackedTree" title="allNodes(tree: PackedTree): NodePos">allNodes(tree: PackedTree): NodePos</a></li>
</ul>
<ul class="simple nested-toc-section">isons
<li><a class="reference" href="#isons.i%2CPackedTree%2CPackedTree%2CNodePos" title="isons(dest: var PackedTree; tree: PackedTree; n: NodePos): (int, NodePos)">isons(dest: var PackedTree; tree: PackedTree; n: NodePos): (int, NodePos)</a></li>
</ul>
<ul class="simple nested-toc-section">sons
<li><a class="reference" href="#sons.i%2CPackedTree%2CPackedTree%2CNodePos" title="sons(dest: var PackedTree; tree: PackedTree; n: NodePos): NodePos">sons(dest: var PackedTree; tree: PackedTree; n: NodePos): NodePos</a></li>
</ul>
<ul class="simple nested-toc-section">sonsFrom1
<li><a class="reference" href="#sonsFrom1.i%2CPackedTree%2CNodePos" title="sonsFrom1(tree: PackedTree; n: NodePos): NodePos">sonsFrom1(tree: PackedTree; n: NodePos): NodePos</a></li>
</ul>
<ul class="simple nested-toc-section">sonsReadonly
<li><a class="reference" href="#sonsReadonly.i%2CPackedTree%2CNodePos" title="sonsReadonly(tree: PackedTree; n: NodePos): NodePos">sonsReadonly(tree: PackedTree; n: NodePos): NodePos</a></li>
</ul>
<ul class="simple nested-toc-section">sonsWithoutLast2
<li><a class="reference" href="#sonsWithoutLast2.i%2CPackedTree%2CNodePos" title="sonsWithoutLast2(tree: PackedTree; n: NodePos): NodePos">sonsWithoutLast2(tree: PackedTree; n: NodePos): NodePos</a></li>
</ul>
</ul>
</details>
</li>
<li>
<details open>
<summary><a class="reference reference-toplevel" href="#18" id="68">Templates</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">copyInto
<li><a class="reference" href="#copyInto.t%2C%2C%2C" title="copyInto(dest, n, body)">copyInto(dest, n, body)</a></li>
</ul>
<ul class="simple nested-toc-section">copyIntoKind
<li><a class="reference" href="#copyIntoKind.t%2C%2C%2C%2C" title="copyIntoKind(dest, kind, info, body)">copyIntoKind(dest, kind, info, body)</a></li>
</ul>
<ul class="simple nested-toc-section">flags
<li><a class="reference" href="#flags.t%2CNodePos" title="flags(n: NodePos): TNodeFlags">flags(n: NodePos): TNodeFlags</a></li>
</ul>
<ul class="simple nested-toc-section">info
<li><a class="reference" href="#info.t%2CNodePos" title="info(n: NodePos): PackedLineInfo">info(n: NodePos): PackedLineInfo</a></li>
</ul>
<ul class="simple nested-toc-section">kind
<li><a class="reference" href="#kind.t%2CNodePos" title="kind(n: NodePos): TNodeKind">kind(n: NodePos): TNodeKind</a></li>
<li><a class="reference" href="#kind.t%2CPackedNode" title="kind(n: PackedNode): TNodeKind">kind(n: PackedNode): TNodeKind</a></li>
</ul>
<ul class="simple nested-toc-section">litId
<li><a class="reference" href="#litId.t%2CNodePos" title="litId(n: NodePos): LitId">litId(n: NodePos): LitId</a></li>
</ul>
<ul class="simple nested-toc-section">parent
<li><a class="reference" href="#parent.t%2CNodePos" title="parent(n: NodePos): NodePos">parent(n: NodePos): NodePos</a></li>
</ul>
<ul class="simple nested-toc-section">soperand
<li><a class="reference" href="#soperand.t%2CPackedNode" title="soperand(n: PackedNode): int32">soperand(n: PackedNode): int32</a></li>
</ul>
<ul class="simple nested-toc-section">symId
<li><a class="reference" href="#symId.t%2CNodePos" title="symId(n: NodePos): SymId">symId(n: NodePos): SymId</a></li>
</ul>
<ul class="simple nested-toc-section">typ
<li><a class="reference" href="#typ.t%2CNodePos" title="typ(n: NodePos): PackedItemId">typ(n: NodePos): PackedItemId</a></li>
</ul>
<ul class="simple nested-toc-section">typeId
<li><a class="reference" href="#typeId.t%2CPackedNode" title="typeId(n: PackedNode): PackedItemId">typeId(n: PackedNode): PackedItemId</a></li>
</ul>
<ul class="simple nested-toc-section">uoperand
<li><a class="reference" href="#uoperand.t%2CNodePos" title="uoperand(n: NodePos): uint32">uoperand(n: NodePos): uint32</a></li>
<li><a class="reference" href="#uoperand.t%2CPackedNode" title="uoperand(n: PackedNode): uint32">uoperand(n: PackedNode): uint32</a></li>
</ul>
</ul>
</details>
</li>
</ul>
</div>
<div class="nine columns" id="content">
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">Packed AST representation, mostly based on a seq of nodes. For IC support. Far future: Rewrite the compiler passes to use this representation directly in all the transformations, it is superior.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="bitabs.html">bitabs</a>, <a class="reference external" href="rodfiles.html">rodfiles</a>, <a class="reference external" href="../ast.html">../ast</a>, <a class="reference external" href="../options.html">../options</a>, <a class="reference external" href="iclineinfos.html">iclineinfos</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="ModuleId">
<dt><pre><a href="packed_ast.html#ModuleId"><span class="Identifier">ModuleId</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">int32</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L26" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L26" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="NodeId">
<dt><pre><a href="packed_ast.html#NodeId"><span class="Identifier">NodeId</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">int32</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L29" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L29" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="NodePos">
<dt><pre><a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">int</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L27" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L27" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PackedInstantiation">
<dt><pre><a href="packed_ast.html#PackedInstantiation"><span class="Identifier">PackedInstantiation</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">key</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">sym</span><span class="Operator">*</span><span class="Other">:</span> <a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a>
<span class="Identifier">concreteTypes</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L101" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L101" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PackedItemId">
<dt><pre><a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">module</span><span class="Operator">*</span><span class="Other">:</span> <a href="bitabs.html#LitId"><span class="Identifier">LitId</span></a>
<span class="Identifier">item</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int32</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L31" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L31" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PackedLib">
<dt><pre><a href="packed_ast.html#PackedLib"><span class="Identifier">PackedLib</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">kind</span><span class="Operator">*</span><span class="Other">:</span> <a href="../ast.html#TLibKind"><span class="Identifier">TLibKind</span></a>
<span class="Identifier">generated</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
<span class="Identifier">isOverridden</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
<span class="Identifier">name</span><span class="Operator">*</span><span class="Other">:</span> <a href="bitabs.html#LitId"><span class="Identifier">LitId</span></a>
<span class="Identifier">path</span><span class="Operator">*</span><span class="Other">:</span> <a href="packed_ast.html#NodeId"><span class="Identifier">NodeId</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L42" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L42" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PackedNode">
<dt><pre><a href="packed_ast.html#PackedNode"><span class="Identifier">PackedNode</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">info</span><span class="Operator">*</span><span class="Other">:</span> <a href="iclineinfos.html#PackedLineInfo"><span class="Identifier">PackedLineInfo</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L92" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L92" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PackedSym">
<dt><pre><a href="packed_ast.html#PackedSym"><span class="Identifier">PackedSym</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">id</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int32</span>
<span class="Identifier">kind</span><span class="Operator">*</span><span class="Other">:</span> <a href="../ast.html#TSymKind"><span class="Identifier">TSymKind</span></a>
<span class="Identifier">name</span><span class="Operator">*</span><span class="Other">:</span> <a href="bitabs.html#LitId"><span class="Identifier">LitId</span></a>
<span class="Identifier">typ</span><span class="Operator">*</span><span class="Other">:</span> <a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a>
<span class="Identifier">flags</span><span class="Operator">*</span><span class="Other">:</span> <a href="../ast.html#TSymFlags"><span class="Identifier">TSymFlags</span></a>
<span class="Identifier">magic</span><span class="Operator">*</span><span class="Other">:</span> <a href="../ast.html#TMagic"><span class="Identifier">TMagic</span></a>
<span class="Identifier">info</span><span class="Operator">*</span><span class="Other">:</span> <a href="iclineinfos.html#PackedLineInfo"><span class="Identifier">PackedLineInfo</span></a>
<span class="Identifier">ast</span><span class="Operator">*</span><span class="Other">:</span> <a href="packed_ast.html#NodeId"><span class="Identifier">NodeId</span></a>
<span class="Identifier">owner</span><span class="Operator">*</span><span class="Other">:</span> <a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a>
<span class="Identifier">guard</span><span class="Operator">*</span><span class="Other">:</span> <a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a>
<span class="Identifier">bitsize</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">alignment</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">options</span><span class="Operator">*</span><span class="Other">:</span> <a href="../options.html#TOptions"><span class="Identifier">TOptions</span></a>
<span class="Identifier">position</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">offset</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int32</span>
<span class="Identifier">disamb</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int32</span>
<span class="Identifier">externalName</span><span class="Operator">*</span><span class="Other">:</span> <a href="bitabs.html#LitId"><span class="Identifier">LitId</span></a>
<span class="Identifier">locFlags</span><span class="Operator">*</span><span class="Other">:</span> <a href="../ast.html#TLocFlags"><span class="Identifier">TLocFlags</span></a>
<span class="Identifier">annex</span><span class="Operator">*</span><span class="Other">:</span> <a href="packed_ast.html#PackedLib"><span class="Identifier">PackedLib</span></a>
<span class="Keyword">when</span> <span class="Identifier">hasFFI</span><span class="Other">:</span>
<span class="Identifier">cname</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">LitId</span>
<span class="Identifier">constraint</span><span class="Operator">*</span><span class="Other">:</span> <a href="packed_ast.html#NodeId"><span class="Identifier">NodeId</span></a>
<span class="Identifier">instantiatedFrom</span><span class="Operator">*</span><span class="Other">:</span> <a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L49" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L49" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PackedTree">
<dt><pre><a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a> <span class="Other">=</span> <span class="Keyword">object</span></pre></dt>
<dd>
usually represents a full Nim module
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L96" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L96" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PackedType">
<dt><pre><a href="packed_ast.html#PackedType"><span class="Identifier">PackedType</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">id</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int32</span>
<span class="Identifier">kind</span><span class="Operator">*</span><span class="Other">:</span> <a href="../ast.html#TTypeKind"><span class="Identifier">TTypeKind</span></a>
<span class="Identifier">callConv</span><span class="Operator">*</span><span class="Other">:</span> <a href="../ast.html#TCallingConvention"><span class="Identifier">TCallingConvention</span></a>
<span class="Identifier">flags</span><span class="Operator">*</span><span class="Other">:</span> <a href="../ast.html#TTypeFlags"><span class="Identifier">TTypeFlags</span></a>
<span class="Identifier">types</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a><span class="Other">]</span>
<span class="Identifier">n</span><span class="Operator">*</span><span class="Other">:</span> <a href="packed_ast.html#NodeId"><span class="Identifier">NodeId</span></a>
<span class="Identifier">sym</span><span class="Operator">*</span><span class="Other">:</span> <a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a>
<span class="Identifier">owner</span><span class="Operator">*</span><span class="Other">:</span> <a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a>
<span class="Identifier">size</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">BiggestInt</span>
<span class="Identifier">align</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int16</span>
<span class="Identifier">paddingAtEnd</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int16</span>
<span class="Identifier">typeInst</span><span class="Operator">*</span><span class="Other">:</span> <a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a>
<span class="Identifier">nonUniqueId</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int32</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L74" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L74" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="SymId">
<dt><pre><a href="packed_ast.html#SymId"><span class="Identifier">SymId</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">int32</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L25" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L25" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</dl>
</div>
<div class="section" id="10">
<h1><a class="toc-backref" href="#10">Consts</a></h1>
<dl class="item">
<div id="directIntLit">
<dt><pre><a href="packed_ast.html#directIntLit"><span class="Identifier">directIntLit</span></a> <span class="Other">=</span> <span class="DecNumber">nkNone</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L335" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L335" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="emptyNodeId">
<dt><pre><a href="packed_ast.html#emptyNodeId"><span class="Identifier">emptyNodeId</span></a> <span class="Other">=</span> <span class="DecNumber">-1'i32</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L39" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L39" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="externIntLit">
<dt><pre><a href="packed_ast.html#externIntLit"><span class="Identifier">externIntLit</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkCharLit</span><span class="Other">,</span> <span class="DecNumber">nkIntLit</span><span class="Other">,</span> <span class="DecNumber">nkInt8Lit</span><span class="Other">,</span> <span class="DecNumber">nkInt16Lit</span><span class="Other">,</span> <span class="DecNumber">nkInt32Lit</span><span class="Other">,</span>
<span class="DecNumber">nkInt64Lit</span><span class="Other">,</span> <span class="DecNumber">nkUIntLit</span><span class="Other">,</span> <span class="DecNumber">nkUInt8Lit</span><span class="Other">,</span> <span class="DecNumber">nkUInt16Lit</span><span class="Other">,</span> <span class="DecNumber">nkUInt32Lit</span><span class="Other">,</span>
<span class="DecNumber">nkUInt64Lit</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L321" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L321" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="externSIntLit">
<dt><pre><a href="packed_ast.html#externSIntLit"><span class="Identifier">externSIntLit</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkIntLit</span><span class="Other">,</span> <span class="DecNumber">nkInt8Lit</span><span class="Other">,</span> <span class="DecNumber">nkInt16Lit</span><span class="Other">,</span> <span class="DecNumber">nkInt32Lit</span><span class="Other">,</span> <span class="DecNumber">nkInt64Lit</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L333" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L333" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="externUIntLit">
<dt><pre><a href="packed_ast.html#externUIntLit"><span class="Identifier">externUIntLit</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkUIntLit</span><span class="Other">,</span> <span class="DecNumber">nkUInt8Lit</span><span class="Other">,</span> <span class="DecNumber">nkUInt16Lit</span><span class="Other">,</span> <span class="DecNumber">nkUInt32Lit</span><span class="Other">,</span> <span class="DecNumber">nkUInt64Lit</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L334" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L334" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="nilItemId">
<dt><pre><a href="packed_ast.html#nilItemId"><span class="Identifier">nilItemId</span></a> <span class="Other">=</span> <span class="Other">(</span><span class="Identifier">module</span><span class="Other">:</span> <span class="DecNumber">0'u</span><span class="Other">,</span> <span class="Identifier">item</span><span class="Other">:</span> <span class="DecNumber">0</span><span class="Other">)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L36" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L36" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="==-procs-all">
<div id="==,NodeId,NodeId">
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CNodeId%2CNodeId"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="packed_ast.html#NodeId"><span class="Identifier">NodeId</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span class="Identifier">borrow</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L126" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L126" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="==,NodePos,NodePos">
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CNodePos%2CNodePos"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span class="Identifier">borrow</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L124" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L124" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="==,SymId,SymId">
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CSymId%2CSymId"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="packed_ast.html#SymId"><span class="Identifier">SymId</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span class="Identifier">borrow</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L121" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L121" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="[]-procs-all">
<div id="[],PackedTree,NodePos">
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CPackedTree%2CNodePos"><span class="Identifier">`[]`</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">lent</span> <a href="packed_ast.html#PackedNode"><span class="Identifier">PackedNode</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L173" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L173" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addIdent-procs-all">
<div id="addIdent,PackedTree,LitId,PackedLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#addIdent%2CPackedTree%2CLitId%2CPackedLineInfo"><span class="Identifier">addIdent</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="bitabs.html#LitId"><span class="Identifier">LitId</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="iclineinfos.html#PackedLineInfo"><span class="Identifier">PackedLineInfo</span></a><span class="Other">)</span> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L132" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L132" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addNode-procs-all">
<div id="addNode,PackedTree,TNodeKind,int32,PackedItemId,PackedLineInfo,TNodeFlags">
<dt><pre><span class="Keyword">proc</span> <a href="#addNode%2CPackedTree%2CTNodeKind%2Cint32%2CPackedItemId%2CPackedLineInfo%2CTNodeFlags"><span class="Identifier">addNode</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">kind</span><span class="Other">:</span> <a href="../nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a><span class="Other">;</span> <span class="Identifier">operand</span><span class="Other">:</span> <span class="Identifier">int32</span><span class="Other">;</span>
<span class="Identifier">typeId</span><span class="Other">:</span> <a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a> <span class="Other">=</span> <span class="Identifier">nilItemId</span><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="iclineinfos.html#PackedLineInfo"><span class="Identifier">PackedLineInfo</span></a><span class="Other">;</span>
<span class="Identifier">flags</span><span class="Other">:</span> <a href="../ast.html#TNodeFlags"><span class="Identifier">TNodeFlags</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="Other">}</span><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L146" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L146" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addSym-procs-all">
<div id="addSym,PackedTree,int32,PackedLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#addSym%2CPackedTree%2Cint32%2CPackedLineInfo"><span class="Identifier">addSym</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">int32</span><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="iclineinfos.html#PackedLineInfo"><span class="Identifier">PackedLineInfo</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L135" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L135" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addSymDef-procs-all">
<div id="addSymDef,PackedTree,SymId,PackedLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#addSymDef%2CPackedTree%2CSymId%2CPackedLineInfo"><span class="Identifier">addSymDef</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="packed_ast.html#SymId"><span class="Identifier">SymId</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="iclineinfos.html#PackedLineInfo"><span class="Identifier">PackedLineInfo</span></a><span class="Other">)</span> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L138" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L138" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="findFlags-procs-all">
<div id="findFlags,PackedTree,NodePos">
<dt><pre><span class="Keyword">proc</span> <a href="#findFlags%2CPackedTree%2CNodePos"><span class="Identifier">findFlags</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="../ast.html#TNodeFlags"><span class="Identifier">TNodeFlags</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L269" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L269" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="findType-procs-all">
<div id="findType,PackedTree,NodePos">
<dt><pre><span class="Keyword">proc</span> <a href="#findType%2CPackedTree%2CNodePos"><span class="Identifier">findType</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L263" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L263" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="firstSon-procs-all">
<div id="firstSon,NodePos">
<dt><pre><span class="Keyword">proc</span> <a href="#firstSon%2CNodePos"><span class="Identifier">firstSon</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L318" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L318" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="firstSon,PackedTree,NodePos">
<dt><pre><span class="Keyword">proc</span> <a href="#firstSon%2CPackedTree%2CNodePos"><span class="Identifier">firstSon</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L254" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L254" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getNodeId-procs-all">
<div id="getNodeId,PackedTree">
<dt><pre><span class="Keyword">proc</span> <a href="#getNodeId%2CPackedTree"><span class="Identifier">getNodeId</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#NodeId"><span class="Identifier">NodeId</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L347" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L347" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hasAtLeastXsons-procs-all">
<div id="hasAtLeastXsons,PackedTree,NodePos,int">
<dt><pre><span class="Keyword">proc</span> <a href="#hasAtLeastXsons%2CPackedTree%2CNodePos%2Cint"><span class="Identifier">hasAtLeastXsons</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L246" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L246" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hash-procs-all">
<div id="hash,SymId">
<dt><pre><span class="Keyword">proc</span> <a href="#hash%2CSymId"><span class="Identifier">hash</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="packed_ast.html#SymId"><span class="Identifier">SymId</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Hash</span> {.<span class="Identifier">borrow</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L122" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L122" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hasXsons-procs-all">
<div id="hasXsons,PackedTree,NodePos,int">
<dt><pre><span class="Keyword">proc</span> <a href="#hasXsons%2CPackedTree%2CNodePos%2Cint"><span class="Identifier">hasXsons</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L240" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L240" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="info-procs-all">
<div id="info,PackedTree,NodePos">
<dt><pre><span class="Keyword">proc</span> <a href="#info%2CPackedTree%2CNodePos"><span class="Identifier">info</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="iclineinfos.html#PackedLineInfo"><span class="Identifier">PackedLineInfo</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L260" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L260" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isAtom-procs-all">
<div id="isAtom,PackedTree,int">
<dt><pre><span class="Keyword">proc</span> <a href="#isAtom%2CPackedTree%2Cint"><span class="Identifier">isAtom</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L141" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L141" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="ithSon-procs-all">
<div id="ithSon,PackedTree,NodePos,int">
<dt><pre><span class="Keyword">proc</span> <a href="#ithSon%2CPackedTree%2CNodePos%2Cint"><span class="Identifier">ithSon</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L299" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L299" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="kind-procs-all">
<div id="kind,PackedTree,NodePos">
<dt><pre><span class="Keyword">proc</span> <a href="#kind%2CPackedTree%2CNodePos"><span class="Identifier">kind</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="../nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L256" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L256" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="len-procs-all">
<div id="len,PackedTree">
<dt><pre><span class="Keyword">proc</span> <a href="#len%2CPackedTree"><span class="Identifier">len</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</span> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L171" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L171" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="litId-procs-all">
<div id="litId,PackedTree,NodePos">
<dt><pre><span class="Keyword">proc</span> <a href="#litId%2CPackedTree%2CNodePos"><span class="Identifier">litId</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="bitabs.html#LitId"><span class="Identifier">LitId</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L258" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L258" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="load-procs-all">
<div id="load,RodFile,PackedTree">
<dt><pre><span class="Keyword">proc</span> <a href="#load%2CRodFile%2CPackedTree"><span class="Identifier">load</span></a><span class="Other">(</span><span class="Identifier">f</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="rodfiles.html#RodFile"><span class="Identifier">RodFile</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">IOError</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadIOEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L359" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L359" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newTreeFrom-procs-all">
<div id="newTreeFrom,PackedTree">
<dt><pre><span class="Keyword">proc</span> <a href="#newTreeFrom%2CPackedTree"><span class="Identifier">newTreeFrom</span></a><span class="Other">(</span><span class="Identifier">old</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L128" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L128" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="patch-procs-all">
<div id="patch,PackedTree,PatchPos">
<dt><pre><span class="Keyword">proc</span> <a href="#patch%2CPackedTree%2CPatchPos"><span class="Identifier">patch</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <span class="Identifier">PatchPos</span><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L163" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L163" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="prepare-procs-all">
<div id="prepare,PackedTree,PackedTree,NodePos">
<dt><pre><span class="Keyword">proc</span> <a href="#prepare%2CPackedTree%2CPackedTree%2CNodePos"><span class="Identifier">prepare</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">source</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">sourcePos</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">PatchPos</span> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L159" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L159" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="prepare,PackedTree,TNodeKind,TNodeFlags,PackedItemId,PackedLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#prepare%2CPackedTree%2CTNodeKind%2CTNodeFlags%2CPackedItemId%2CPackedLineInfo"><span class="Identifier">prepare</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">kind</span><span class="Other">:</span> <a href="../nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a><span class="Other">;</span> <span class="Identifier">flags</span><span class="Other">:</span> <a href="../ast.html#TNodeFlags"><span class="Identifier">TNodeFlags</span></a><span class="Other">;</span>
<span class="Identifier">typeId</span><span class="Other">:</span> <a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="iclineinfos.html#PackedLineInfo"><span class="Identifier">PackedLineInfo</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">PatchPos</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L155" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L155" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="sons2-procs-all">
<div id="sons2,PackedTree,NodePos">
<dt><pre><span class="Keyword">proc</span> <a href="#sons2%2CPackedTree%2CNodePos"><span class="Identifier">sons2</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">,</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L286" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L286" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="sons3-procs-all">
<div id="sons3,PackedTree,NodePos">
<dt><pre><span class="Keyword">proc</span> <a href="#sons3%2CPackedTree%2CNodePos"><span class="Identifier">sons3</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">,</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">,</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L292" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L292" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="span-procs-all">
<div id="span,PackedTree,int">
<dt><pre><span class="Keyword">proc</span> <a href="#span%2CPackedTree%2Cint"><span class="Identifier">span</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</span> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L283" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L283" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="store-procs-all">
<div id="store,RodFile,PackedTree">
<dt><pre><span class="Keyword">proc</span> <a href="#store%2CRodFile%2CPackedTree"><span class="Identifier">store</span></a><span class="Other">(</span><span class="Identifier">f</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="rodfiles.html#RodFile"><span class="Identifier">RodFile</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">IOError</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">WriteIOEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L364" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L364" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="toPackedItemId-procs-all">
<div id="toPackedItemId,int32">
<dt><pre><span class="Keyword">proc</span> <a href="#toPackedItemId%2Cint32"><span class="Identifier">toPackedItemId</span></a><span class="Other">(</span><span class="Identifier">item</span><span class="Other">:</span> <span class="Identifier">int32</span><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L356" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L356" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
</dl>
</div>
<div class="section" id="15">
<h1><a class="toc-backref" href="#15">Iterators</a></h1>
<dl class="item">
<div id="allNodes-iterators-all">
<div id="allNodes.i,PackedTree">
<dt><pre><span class="Keyword">iterator</span> <a href="#allNodes.i%2CPackedTree"><span class="Identifier">allNodes</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L349" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L349" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isons-iterators-all">
<div id="isons.i,PackedTree,PackedTree,NodePos">
<dt><pre><span class="Keyword">iterator</span> <a href="#isons.i%2CPackedTree%2CPackedTree%2CNodePos"><span class="Identifier">isons</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">int</span><span class="Other">,</span>
<a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L199" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L199" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="sons-iterators-all">
<div id="sons.i,PackedTree,PackedTree,NodePos">
<dt><pre><span class="Keyword">iterator</span> <a href="#sons.i%2CPackedTree%2CPackedTree%2CNodePos"><span class="Identifier">sons</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L194" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L194" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="sonsFrom1-iterators-all">
<div id="sonsFrom1.i,PackedTree,NodePos">
<dt><pre><span class="Keyword">iterator</span> <a href="#sonsFrom1.i%2CPackedTree%2CNodePos"><span class="Identifier">sonsFrom1</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L206" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L206" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="sonsReadonly-iterators-all">
<div id="sonsReadonly.i,PackedTree,NodePos">
<dt><pre><span class="Keyword">iterator</span> <a href="#sonsReadonly.i%2CPackedTree%2CNodePos"><span class="Identifier">sonsReadonly</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L185" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L185" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="sonsWithoutLast2-iterators-all">
<div id="sonsWithoutLast2.i,PackedTree,NodePos">
<dt><pre><span class="Keyword">iterator</span> <a href="#sonsWithoutLast2.i%2CPackedTree%2CNodePos"><span class="Identifier">sonsWithoutLast2</span></a><span class="Other">(</span><span class="Identifier">tree</span><span class="Other">:</span> <a href="packed_ast.html#PackedTree"><span class="Identifier">PackedTree</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L217" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L217" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
</dl>
</div>
<div class="section" id="18">
<h1><a class="toc-backref" href="#18">Templates</a></h1>
<dl class="item">
<div id="copyInto-templates-all">
<div id="copyInto.t,,,">
<dt><pre><span class="Keyword">template</span> <a href="#copyInto.t%2C%2C%2C"><span class="Identifier">copyInto</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">,</span> <span class="Identifier">n</span><span class="Other">,</span> <span class="Identifier">body</span><span class="Other">)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L337" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L337" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="copyIntoKind-templates-all">
<div id="copyIntoKind.t,,,,">
<dt><pre><span class="Keyword">template</span> <a href="#copyIntoKind.t%2C%2C%2C%2C"><span class="Identifier">copyIntoKind</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">,</span> <span class="Identifier">kind</span><span class="Other">,</span> <span class="Identifier">info</span><span class="Other">,</span> <span class="Identifier">body</span><span class="Other">)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L342" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L342" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="flags-templates-all">
<div id="flags.t,NodePos">
<dt><pre><span class="Keyword">template</span> <a href="#flags.t%2CNodePos"><span class="Identifier">flags</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="../ast.html#TNodeFlags"><span class="Identifier">TNodeFlags</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L277" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L277" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="info-templates-all">
<div id="info.t,NodePos">
<dt><pre><span class="Keyword">template</span> <a href="#info.t%2CNodePos"><span class="Identifier">info</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="iclineinfos.html#PackedLineInfo"><span class="Identifier">PackedLineInfo</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L313" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L313" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="kind-templates-all">
<div id="kind.t,NodePos">
<dt><pre><span class="Keyword">template</span> <a href="#kind.t%2CNodePos"><span class="Identifier">kind</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="../nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L312" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L312" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="kind.t,PackedNode">
<dt><pre><span class="Keyword">template</span> <a href="#kind.t%2CPackedNode"><span class="Identifier">kind</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#PackedNode"><span class="Identifier">PackedNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="../nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L109" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L109" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="litId-templates-all">
<div id="litId.t,NodePos">
<dt><pre><span class="Keyword">template</span> <a href="#litId.t%2CNodePos"><span class="Identifier">litId</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="bitabs.html#LitId"><span class="Identifier">LitId</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L314" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L314" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="parent-templates-all">
<div id="parent.t,NodePos">
<dt><pre><span class="Keyword">template</span> <a href="#parent.t%2CNodePos"><span class="Identifier">parent</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L238" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L238" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="soperand-templates-all">
<div id="soperand.t,PackedNode">
<dt><pre><span class="Keyword">template</span> <a href="#soperand.t%2CPackedNode"><span class="Identifier">soperand</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#PackedNode"><span class="Identifier">PackedNode</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int32</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L111" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L111" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="symId-templates-all">
<div id="symId.t,NodePos">
<dt><pre><span class="Keyword">template</span> <a href="#symId.t%2CNodePos"><span class="Identifier">symId</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#SymId"><span class="Identifier">SymId</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L316" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L316" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="typ-templates-all">
<div id="typ.t,NodePos">
<dt><pre><span class="Keyword">template</span> <a href="#typ.t%2CNodePos"><span class="Identifier">typ</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L275" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L275" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="typeId-templates-all">
<div id="typeId.t,PackedNode">
<dt><pre><span class="Keyword">template</span> <a href="#typeId.t%2CPackedNode"><span class="Identifier">typeId</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#PackedNode"><span class="Identifier">PackedNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="packed_ast.html#PackedItemId"><span class="Identifier">PackedItemId</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L119" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L119" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="uoperand-templates-all">
<div id="uoperand.t,NodePos">
<dt><pre><span class="Keyword">template</span> <a href="#uoperand.t%2CNodePos"><span class="Identifier">uoperand</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#NodePos"><span class="Identifier">NodePos</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">uint32</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L280" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L280" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="uoperand.t,PackedNode">
<dt><pre><span class="Keyword">template</span> <a href="#uoperand.t%2CPackedNode"><span class="Identifier">uoperand</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="packed_ast.html#PackedNode"><span class="Identifier">PackedNode</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">uint32</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/packed_ast.nim#L110" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/packed_ast.nim#L110" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
</dl>
</div>
</div>
</div>
<div class="twelve-columns footer">
<span class="nim-sprite"></span>
<br>
<small style="color: var(--hint);">Made with Nim. Generated: 2025-09-27 04:02:28 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>