Deploy to GitHub pages

This commit is contained in:
github-actions[bot]
2026-06-02 05:20:26 +00:00
committed by GitHub
commit e99fed13ad
870 changed files with 350356 additions and 0 deletions

223
compiler/aliasanalysis.html Normal file
View File

@@ -0,0 +1,223 @@
<?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>aliasanalysis</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">aliasanalysis</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="#AliasKind" title="AliasKind = enum
yes, no, maybe">AliasKind</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="#PathKinds0" title="PathKinds0 = {nkDotExpr, nkCheckedFieldExpr, nkBracketExpr, nkDerefExpr,
nkHiddenDeref, nkAddr, nkHiddenAddr, nkObjDownConv, nkObjUpConv}">PathKinds0</a></li>
<li><a class="reference" href="#PathKinds1" title="PathKinds1 = {nkHiddenStdConv, nkHiddenSubConv}">PathKinds1</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">aliases
<li><a class="reference" href="#aliases%2CPNode%2CPNode" title="aliases(obj, field: PNode): AliasKind">aliases(obj, field: PNode): AliasKind</a></li>
</ul>
<ul class="simple nested-toc-section">isAnalysableFieldAccess
<li><a class="reference" href="#isAnalysableFieldAccess%2CPNode%2CPSym" title="isAnalysableFieldAccess(orig: PNode; owner: PSym): bool">isAnalysableFieldAccess(orig: PNode; owner: PSym): bool</a></li>
</ul>
<ul class="simple nested-toc-section">skipConvDfa
<li><a class="reference" href="#skipConvDfa%2CPNode" title="skipConvDfa(n: PNode): PNode">skipConvDfa(n: PNode): PNode</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/aliasanalysis.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/aliasanalysis.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="AliasKind">
<dt><pre><a href="#AliasKind"><span class="Identifier">AliasKind</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">yes</span><span class="Other">,</span> <span class="Identifier">no</span><span class="Other">,</span> <span class="Identifier">maybe</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/aliasanalysis.nim#L56" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/aliasanalysis.nim#L56" 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="PathKinds0">
<dt><pre><a href="#PathKinds0"><span class="Identifier">PathKinds0</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkDotExpr</span><span class="Other">,</span> <span class="DecNumber">nkCheckedFieldExpr</span><span class="Other">,</span> <span class="DecNumber">nkBracketExpr</span><span class="Other">,</span> <span class="DecNumber">nkDerefExpr</span><span class="Other">,</span>
<span class="DecNumber">nkHiddenDeref</span><span class="Other">,</span> <span class="DecNumber">nkAddr</span><span class="Other">,</span> <span class="DecNumber">nkHiddenAddr</span><span class="Other">,</span> <span class="DecNumber">nkObjDownConv</span><span class="Other">,</span> <span class="DecNumber">nkObjUpConv</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/aliasanalysis.nim#L7" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/aliasanalysis.nim#L7" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PathKinds1">
<dt><pre><a href="#PathKinds1"><span class="Identifier">PathKinds1</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">nkHiddenStdConv</span><span class="Other">,</span> <span class="DecNumber">nkHiddenSubConv</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/aliasanalysis.nim#L11" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/aliasanalysis.nim#L11" 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="aliases-procs-all">
<div id="aliases,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#aliases%2CPNode%2CPNode"><span class="Identifier">aliases</span></a><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">,</span> <span class="Identifier">field</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="#AliasKind"><span class="Identifier">AliasKind</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/aliasanalysis.nim#L59" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/aliasanalysis.nim#L59" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isAnalysableFieldAccess-procs-all">
<div id="isAnalysableFieldAccess,PNode,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#isAnalysableFieldAccess%2CPNode%2CPSym"><span class="Identifier">isAnalysableFieldAccess</span></a><span class="Other">(</span><span class="Identifier">orig</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">owner</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/aliasanalysis.nim#L23" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/aliasanalysis.nim#L23" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="skipConvDfa-procs-all">
<div id="skipConvDfa,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#skipConvDfa%2CPNode"><span class="Identifier">skipConvDfa</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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/aliasanalysis.nim#L13" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/aliasanalysis.nim#L13" 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: 2026-06-02 05:20:19 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

View File

@@ -0,0 +1,10 @@
nimTitle aliasanalysis aliasanalysis.html module aliasanalysis 0
nim PathKinds0 aliasanalysis.html#PathKinds0 const PathKinds0 7
nim PathKinds1 aliasanalysis.html#PathKinds1 const PathKinds1 11
nim skipConvDfa aliasanalysis.html#skipConvDfa,PNode proc skipConvDfa(n: PNode): PNode 13
nim isAnalysableFieldAccess aliasanalysis.html#isAnalysableFieldAccess,PNode,PSym proc isAnalysableFieldAccess(orig: PNode; owner: PSym): bool 23
nim yes aliasanalysis.html#yes AliasKind.yes 56
nim no aliasanalysis.html#no AliasKind.no 56
nim maybe aliasanalysis.html#maybe AliasKind.maybe 56
nim AliasKind aliasanalysis.html#AliasKind enum AliasKind 56
nim aliases aliasanalysis.html#aliases,PNode,PNode proc aliases(obj, field: PNode): AliasKind 59

169
compiler/aliases.html Normal file
View File

@@ -0,0 +1,169 @@
<?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>aliases</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">aliases</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="#TAnalysisResult" title="TAnalysisResult = enum
arNo, arMaybe, arYes">TAnalysisResult</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">isPartOf
<li><a class="reference" href="#isPartOf%2CPNode%2CPNode" title="isPartOf(a, b: PNode): TAnalysisResult">isPartOf(a, b: PNode): TAnalysisResult</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/aliases.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/aliases.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">Simple alias analysis for the HLO and the code generators.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="astalgo.html">astalgo</a>, <a class="reference external" href="types.html">types</a>, <a class="reference external" href="trees.html">trees</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="TAnalysisResult">
<dt><pre><a href="#TAnalysisResult"><span class="Identifier">TAnalysisResult</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">arNo</span><span class="Other">,</span> <span class="Identifier">arMaybe</span><span class="Other">,</span> <span class="Identifier">arYes</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/aliases.nim#L21" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/aliases.nim#L21" 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="isPartOf-procs-all">
<div id="isPartOf,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#isPartOf%2CPNode%2CPNode"><span class="Identifier">isPartOf</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="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="#TAnalysisResult"><span class="Identifier">TAnalysisResult</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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>
<p>checks if location <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> can be part of location <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt>. We treat seqs and strings as pointers because the code gen often just passes them as such.</p>
<p>Note: <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> can only be part of <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt>, if <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt>'s type can be part of <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt>'s type. Since however type analysis is more expensive, we perform it only if necessary.</p>
<p>cases:</p>
<p>YES-cases:</p>
<p><pre class="listing"><span class="Identifier">x</span> <span class="Operator">&lt;|</span> <span class="Identifier">x</span> <span class="Comment"># for general trees</span>
<span class="Identifier">x</span><span class="Punctuation">[</span><span class="Punctuation">]</span> <span class="Operator">&lt;|</span> <span class="Identifier">x</span>
<span class="Identifier">x</span><span class="Punctuation">[</span><span class="Identifier">i</span><span class="Punctuation">]</span> <span class="Operator">&lt;|</span> <span class="Identifier">x</span>
<span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">f</span> <span class="Operator">&lt;|</span> <span class="Identifier">x</span></pre></p>
<p>NO-cases:</p>
<p><pre class="listing"><span class="Identifier">x</span> <span class="Operator">!&lt;|</span> <span class="Identifier">y</span> <span class="Comment"># depending on type and symbol kind</span>
<span class="Identifier">x</span><span class="Punctuation">[</span><span class="Identifier">constA</span><span class="Punctuation">]</span> <span class="Operator">!&lt;|</span> <span class="Identifier">x</span><span class="Punctuation">[</span><span class="Identifier">constB</span><span class="Punctuation">]</span>
<span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">f</span> <span class="Operator">!&lt;|</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">g</span>
<span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">f</span> <span class="Operator">!&lt;|</span> <span class="Identifier">y</span><span class="Operator">.</span><span class="Identifier">f</span> <span class="Identifier">iff</span> <span class="Identifier">x</span> <span class="Operator">!&lt;=</span> <span class="Identifier">y</span></pre></p>
<p>MAYBE-cases:</p>
<p><pre class="listing"><span class="Identifier">x</span><span class="Punctuation">[</span><span class="Punctuation">]</span> <span class="Operator">?&lt;|</span> <span class="Identifier">y</span><span class="Punctuation">[</span><span class="Punctuation">]</span> <span class="Identifier">iff</span> <span class="Identifier">compatible</span> <span class="Keyword">type</span>
<span class="Identifier">x</span><span class="Punctuation">[</span><span class="Punctuation">]</span> <span class="Operator">?&lt;|</span> <span class="Identifier">y</span> <span class="Identifier">depending</span> <span class="Identifier">on</span> <span class="Keyword">type</span></pre></p>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/aliases.nim#L73" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/aliases.nim#L73" 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: 2026-06-02 05:20:20 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

6
compiler/aliases.idx Normal file
View File

@@ -0,0 +1,6 @@
nimTitle aliases aliases.html module aliases 0
nim arNo aliases.html#arNo TAnalysisResult.arNo 21
nim arMaybe aliases.html#arMaybe TAnalysisResult.arMaybe 21
nim arYes aliases.html#arYes TAnalysisResult.arYes 21
nim TAnalysisResult aliases.html#TAnalysisResult enum TAnalysisResult 21
nim isPartOf aliases.html#isPartOf,PNode,PNode proc isPartOf(a, b: PNode): TAnalysisResult 73

5221
compiler/ast.html Normal file

File diff suppressed because one or more lines are too long

311
compiler/ast.idx Normal file
View File

@@ -0,0 +1,311 @@
nimTitle ast ast.html module ast 0
nim program ast.html#program var program 33
nim setupProgram ast.html#setupProgram,ConfigRef,IdentCache proc setupProgram(config: ConfigRef; cache: IdentCache) 35
nim loadSymCallback ast.html#loadSymCallback,PSym proc loadSymCallback(s: PSym) 49
nim loadTypeCallback ast.html#loadTypeCallback,PType proc loadTypeCallback(t: PType) 52
nim ensureMutable ast.html#ensureMutable,PSym proc ensureMutable(s: PSym) 55
nim ensureMutable ast.html#ensureMutable,PType proc ensureMutable(t: PType) 59
nim backendEnsureMutable ast.html#backendEnsureMutable,PSym proc backendEnsureMutable(s: PSym) 63
nim backendEnsureMutable ast.html#backendEnsureMutable,PType proc backendEnsureMutable(t: PType) 68
nim owner ast.html#owner,PSym proc owner(s: PSym): PSym 73
nim owner ast.html#owner,PType proc owner(s: PType): PSym 77
nim setOwner ast.html#setOwner,PSym,PSym proc setOwner(s: PSym; owner: PSym) 81
nim setOwner ast.html#setOwner,PType,PSym proc setOwner(s: PType; owner: PSym) 86
nim kind ast.html#kind,PSym proc kind(s: PSym): TSymKind 91
nim kind= ast.html#kind=,PSym,TSymKind proc kind=(s: PSym; val: TSymKind) 95
nim gcUnsafetyReason ast.html#gcUnsafetyReason,PSym proc gcUnsafetyReason(s: PSym): PSym 100
nim gcUnsafetyReason= ast.html#gcUnsafetyReason=,PSym,PSym proc gcUnsafetyReason=(s: PSym; val: PSym) 104
nim transformedBody ast.html#transformedBody,PSym proc transformedBody(s: PSym): PNode 109
nim transformedBody= ast.html#transformedBody=,PSym,PNode proc transformedBody=(s: PSym; val: PNode) 113
nim guard ast.html#guard,PSym proc guard(s: PSym): PSym 119
nim guard= ast.html#guard=,PSym,PSym proc guard=(s: PSym; val: PSym) 123
nim bitsize ast.html#bitsize,PSym proc bitsize(s: PSym): int 128
nim bitsize= ast.html#bitsize=,PSym,int proc bitsize=(s: PSym; val: int) 132
nim alignment ast.html#alignment,PSym proc alignment(s: PSym): int 137
nim alignment= ast.html#alignment=,PSym,int proc alignment=(s: PSym; val: int) 141
nim magic ast.html#magic,PSym proc magic(s: PSym): TMagic 146
nim magic= ast.html#magic=,PSym,TMagic proc magic=(s: PSym; val: TMagic) 150
nim typ ast.html#typ,PSym proc typ(s: PSym): PType 155
nim typ= ast.html#typ=,PSym,PType proc typ=(s: PSym; val: PType) 159
nim info ast.html#info,PSym proc info(s: PSym): TLineInfo 164
nim info= ast.html#info=,PSym,TLineInfo proc info=(s: PSym; val: TLineInfo) 168
nim flags ast.html#flags,PSym proc flags(s: PSym): TSymFlags 192
nim flags= ast.html#flags=,PSym,TSymFlags proc flags=(s: PSym; val: TSymFlags) 196
nim ast ast.html#ast,PSym proc ast(s: PSym): PNode 201
nim ast= ast.html#ast=,PSym,PNode proc ast=(s: PSym; val: PNode) 205
nim options ast.html#options,PSym proc options(s: PSym): TOptions 210
nim options= ast.html#options=,PSym,TOptions proc options=(s: PSym; val: TOptions) 214
nim position ast.html#position,PSym proc position(s: PSym): int 219
nim position= ast.html#position=,PSym,int proc position=(s: PSym; val: int) 223
nim offset ast.html#offset,PSym proc offset(s: PSym): int32 228
nim offset= ast.html#offset=,PSym,int32 proc offset=(s: PSym; val: int32) 232
nim loc ast.html#loc,PSym proc loc(s: PSym): TLoc 237
nim loc= ast.html#loc=,PSym,TLoc proc loc=(s: PSym; val: TLoc) 241
nim annex ast.html#annex,PSym proc annex(s: PSym): PLib 246
nim annex= ast.html#annex=,PSym,PLib proc annex=(s: PSym; val: PLib) 250
nim constraint ast.html#constraint,PSym proc constraint(s: PSym): PNode 265
nim constraint= ast.html#constraint=,PSym,PNode proc constraint=(s: PSym; val: PNode) 269
nim instantiatedFrom ast.html#instantiatedFrom,PSym proc instantiatedFrom(s: PSym): PSym 274
nim instantiatedFrom= ast.html#instantiatedFrom=,PSym,PSym proc instantiatedFrom=(s: PSym; val: PSym) 278
nim setSnippet ast.html#setSnippet,PSym,sinkstring proc setSnippet(s: PSym; val: sink string) 283
nim incl ast.html#incl,PSym,TSymFlag proc incl(s: PSym; flag: TSymFlag) 288
nim incl ast.html#incl,PSym,set[TSymFlag] proc incl(s: PSym; flags: set[TSymFlag]) 293
nim incl ast.html#incl,PSym,TLocFlag proc incl(s: PSym; flag: TLocFlag) 298
nim excl ast.html#excl,PSym,TSymFlag proc excl(s: PSym; flag: TSymFlag) 304
nim callConv ast.html#callConv,PType proc callConv(t: PType): TCallingConvention 320
nim callConv= ast.html#callConv=,PType,TCallingConvention proc callConv=(t: PType; val: TCallingConvention) 324
nim flags ast.html#flags,PType proc flags(t: PType): TTypeFlags 329
nim flags= ast.html#flags=,PType,TTypeFlags proc flags=(t: PType; val: TTypeFlags) 333
nim sons ast.html#sons,PType proc sons(t: PType): var TTypeSeq 338
nim sons= ast.html#sons=,PType,sinkTTypeSeq proc sons=(t: PType; val: sink TTypeSeq) 342
nim n ast.html#n,PType proc n(t: PType): PNode 347
nim n= ast.html#n=,PType,PNode proc n=(t: PType; val: PNode) 351
nim sym ast.html#sym,PType proc sym(t: PType): PSym 356
nim sym= ast.html#sym=,PType,PSym proc sym=(t: PType; val: PSym) 360
nim size ast.html#size,PType proc size(t: PType): BiggestInt 365
nim size= ast.html#size=,PType,BiggestInt proc size=(t: PType; val: BiggestInt) 369
nim align ast.html#align,PType proc align(t: PType): int16 373
nim align= ast.html#align=,PType,int16 proc align=(t: PType; val: int16) 377
nim paddingAtEnd ast.html#paddingAtEnd,PType proc paddingAtEnd(t: PType): int16 381
nim paddingAtEnd= ast.html#paddingAtEnd=,PType,int16 proc paddingAtEnd=(t: PType; val: int16) 385
nim loc ast.html#loc,PType proc loc(t: PType): TLoc 389
nim loc= ast.html#loc=,PType,TLoc proc loc=(t: PType; val: TLoc) 393
nim typeInst ast.html#typeInst,PType proc typeInst(t: PType): PType 398
nim typeInst= ast.html#typeInst=,PType,PType proc typeInst=(t: PType; val: PType) 402
nim incl ast.html#incl,PType,TTypeFlag proc incl(t: PType; flag: TTypeFlag) 407
nim incl ast.html#incl,PType,set[TTypeFlag] proc incl(t: PType; flags: set[TTypeFlag]) 412
nim excl ast.html#excl,PType,TTypeFlag proc excl(t: PType; flag: TTypeFlag) 417
nim excl ast.html#excl,PType,set[TTypeFlag] proc excl(t: PType; flags: set[TTypeFlag]) 422
nim typ ast.html#typ,PNode proc typ(n: PNode): PType 427
nim typ= ast.html#typ=,PNode,sinkPType proc typ=(n: PNode; val: sink PType) 432
nim setUseIc ast.html#setUseIc,bool proc setUseIc(useIc: bool) 445
nim comment ast.html#comment,PNode proc comment(n: PNode): string 447
nim comment= ast.html#comment=,PNode,string proc comment=(n: PNode; a: string) 454
nim getPIdent ast.html#getPIdent,PNode proc getPIdent(a: PNode): PIdent 473
nim toId ast.html#toId.t,ItemId template toId(a: ItemId): int 484
nim id ast.html#id.t template id(a: PType | PSym): int 488
nim IdGenerator ast.html#IdGenerator type IdGenerator 491
nim PackageModuleId ast.html#PackageModuleId const PackageModuleId 499
nim idGeneratorFromModule ast.html#idGeneratorFromModule,PSym proc idGeneratorFromModule(m: PSym): IdGenerator 501
nim idGeneratorForPackage ast.html#idGeneratorForPackage,int32 proc idGeneratorForPackage(nextIdWillBe: int32): IdGenerator 506
nim nextTypeId ast.html#nextTypeId,IdGenerator proc nextTypeId(x: IdGenerator): ItemId 514
nim ggDebug ast.html#ggDebug var ggDebug 532
nim isCallExpr ast.html#isCallExpr,PNode proc isCallExpr(n: PNode): bool 534
nim discardSons ast.html#discardSons,PNode proc discardSons(father: PNode) 537
nim safeArrLen ast.html#safeArrLen,PNode proc safeArrLen(n: PNode): int 539
nim add ast.html#add,PNode,PNode proc add(father, son: PNode) 545
nim addAllowNil ast.html#addAllowNil,PNode,PNode proc addAllowNil(father, son: PNode) 549
nim add ast.html#add,PType,PType proc add(father, son: PType) 552
nim addAllowNil ast.html#addAllowNil,PType,PType proc addAllowNil(father, son: PType) 558
nim `[]` ast.html#[],PType,int proc `[]`(n: PType; i: int): PType 563
nim `[]=` ast.html#[]=,PType,int,PType proc `[]=`(n: PType; i: int; x: PType) 571
nim `[]` ast.html#[],PType,BackwardsIndex proc `[]`(n: PType; i: BackwardsIndex): PType 579
nim `[]=` ast.html#[]=,PType,BackwardsIndex,PType proc `[]=`(n: PType; i: BackwardsIndex; x: PType) 583
nim getDeclPragma ast.html#getDeclPragma,PNode proc getDeclPragma(n: PNode): PNode 587
nim extractPragma ast.html#extractPragma,PSym proc extractPragma(s: PSym): PNode 621
nim skipPragmaExpr ast.html#skipPragmaExpr,PNode proc skipPragmaExpr(n: PNode): PNode 643
nim setInfoRecursive ast.html#setInfoRecursive,PNode,TLineInfo proc setInfoRecursive(n: PNode; info: TLineInfo) 651
nim newAtom ast.html#newAtom,PIdent,TLineInfo proc newAtom(ident: PIdent; info: TLineInfo): PNode 657
nim newAtom ast.html#newAtom,TNodeKind,BiggestInt,TLineInfo proc newAtom(kind: TNodeKind; intVal: BiggestInt; info: TLineInfo): PNode 661
nim newAtom ast.html#newAtom,TNodeKind,BiggestFloat,TLineInfo proc newAtom(kind: TNodeKind; floatVal: BiggestFloat; info: TLineInfo): PNode 665
nim newAtom ast.html#newAtom,TNodeKind,sinkstring,TLineInfo proc newAtom(kind: TNodeKind; strVal: sink string; info: TLineInfo): PNode 669
nim newTree ast.html#newTree,TNodeKind,TLineInfo,varargs[PNode] proc newTree(kind: TNodeKind; info: TLineInfo; children: varargs[PNode]): PNode 673
nim newTree ast.html#newTree,TNodeKind,varargs[PNode] proc newTree(kind: TNodeKind; children: varargs[PNode]): PNode 679
nim newTreeI ast.html#newTreeI,TNodeKind,TLineInfo,varargs[PNode] proc newTreeI(kind: TNodeKind; info: TLineInfo; children: varargs[PNode]): PNode 685
nim newTreeIT ast.html#newTreeIT,TNodeKind,TLineInfo,PType,varargs[PNode] proc newTreeIT(kind: TNodeKind; info: TLineInfo; typ: PType; children: varargs[PNode]): PNode 691
nim previouslyInferred ast.html#previouslyInferred.t,PType template previouslyInferred(t: PType): PType 697
nim newSym ast.html#newSym,TSymKind,PIdent,IdGenerator,PSym,TLineInfo,TOptions proc newSym(symKind: TSymKind; name: PIdent; idgen: IdGenerator; owner: PSym;\n info: TLineInfo; options: TOptions = {}): PSym 709
nim astdef ast.html#astdef,PSym proc astdef(s: PSym): PNode 724
nim isMetaType ast.html#isMetaType,PType proc isMetaType(t: PType): bool 732
nim isUnresolvedStatic ast.html#isUnresolvedStatic,PType proc isUnresolvedStatic(t: PType): bool 737
nim linkTo ast.html#linkTo,PType,PSym proc linkTo(t: PType; s: PSym): PType 740
nim linkTo ast.html#linkTo,PSym,PType proc linkTo(s: PSym; t: PType): PSym 745
nim fileIdx ast.html#fileIdx.t,PSym template fileIdx(c: PSym): FileIndex 750
nim filename ast.html#filename.t,PSym template filename(c: PSym): string 754
nim appendToModule ast.html#appendToModule,PSym,PNode proc appendToModule(m: PSym; n: PNode) 758
nim copyStrTable ast.html#copyStrTable,TStrTable,TStrTable proc copyStrTable(dest: var TStrTable; src: TStrTable) 767
nim copyIdTable ast.html#copyIdTable,TIdTable[T],TIdTable[T] proc copyIdTable[T](dest: var TIdTable[T]; src: TIdTable[T]) 772
nim copyObjectSet ast.html#copyObjectSet,TObjectSet,TObjectSet proc copyObjectSet(dest: var TObjectSet; src: TObjectSet) 777
nim withInfo ast.html#withInfo,PNode,TLineInfo proc withInfo(n: PNode; info: TLineInfo): PNode 785
nim newSymNode ast.html#newSymNode,PSym proc newSymNode(sym: PSym): PNode 790
nim newOpenSym ast.html#newOpenSym,PNode proc newOpenSym(n: PNode): PNode 796
nim newIntNode ast.html#newIntNode,TNodeKind,BiggestInt proc newIntNode(kind: TNodeKind; intVal: BiggestInt): PNode 799
nim newIntNode ast.html#newIntNode,TNodeKind,Int128 proc newIntNode(kind: TNodeKind; intVal: Int128): PNode 803
nim lastSon ast.html#lastSon,PNode proc lastSon(n: PNode): PNode 807
nim setLastSon ast.html#setLastSon.t,PNode,PNode template setLastSon(n: PNode; s: PNode) 808
nim firstSon ast.html#firstSon.t,PNode template firstSon(n: PNode): PNode 810
nim secondSon ast.html#secondSon.t,PNode template secondSon(n: PNode): PNode 811
nim hasSon ast.html#hasSon.t,PNode template hasSon(n: PNode): bool 813
nim has2Sons ast.html#has2Sons.t,PNode template has2Sons(n: PNode): bool 814
nim replaceFirstSon ast.html#replaceFirstSon,PNode,PNode proc replaceFirstSon(n, newson: PNode) 816
nim replaceSon ast.html#replaceSon,PNode,int,PNode proc replaceSon(n: PNode; i: int; newson: PNode) 819
nim last ast.html#last,PType proc last(n: PType): PType 822
nim elementType ast.html#elementType,PType proc elementType(n: PType): PType 829
nim skipModifier ast.html#skipModifier,PType proc skipModifier(n: PType): PType 833
nim indexType ast.html#indexType,PType proc indexType(n: PType): PType 837
nim baseClass ast.html#baseClass,PType proc baseClass(n: PType): PType 841
nim base ast.html#base,PType proc base(t: PType): PType 845
nim returnType ast.html#returnType,PType proc returnType(n: PType): PType 849
nim setReturnType ast.html#setReturnType,PType,PType proc setReturnType(n, r: PType) 853
nim setIndexType ast.html#setIndexType,PType,PType proc setIndexType(n, idx: PType) 857
nim firstParamType ast.html#firstParamType,PType proc firstParamType(n: PType): PType 861
nim firstGenericParam ast.html#firstGenericParam,PType proc firstGenericParam(n: PType): PType 868
nim typeBodyImpl ast.html#typeBodyImpl,PType proc typeBodyImpl(n: PType): PType 872
nim genericHead ast.html#genericHead,PType proc genericHead(n: PType): PType 876
nim skipTypes ast.html#skipTypes,PType,TTypeKinds proc skipTypes(t: PType; kinds: TTypeKinds): PType 880
nim newIntTypeNode ast.html#newIntTypeNode,BiggestInt,PType proc newIntTypeNode(intVal: BiggestInt; typ: PType): PNode 888
nim newIntTypeNode ast.html#newIntTypeNode,Int128,PType proc newIntTypeNode(intVal: Int128; typ: PType): PNode 911
nim newFloatNode ast.html#newFloatNode,TNodeKind,BiggestFloat proc newFloatNode(kind: TNodeKind; floatVal: BiggestFloat): PNode 915
nim newProcNode ast.html#newProcNode,TNodeKind,TLineInfo,PNode,PNode,PNode,PNode,PNode,PNode,PNode proc newProcNode(kind: TNodeKind; info: TLineInfo; body: PNode;\n params, name, pattern, genericParams, pragmas, exceptions: PNode): PNode 919
nim AttachedOpToStr ast.html#AttachedOpToStr const AttachedOpToStr 928
nim `$` ast.html#$,PSym proc `$`(s: PSym): string 931
nim len ast.html#len,PType proc len(n: PType): int 937
nim sameTupleLengths ast.html#sameTupleLengths,PType,PType proc sameTupleLengths(a, b: PType): bool 944
nim tupleTypePairs ast.html#tupleTypePairs.i,PType,PType iterator tupleTypePairs(a, b: PType): (int, PType, PType) 947
nim underspecifiedPairs ast.html#underspecifiedPairs.i,PType,PType,int,int iterator underspecifiedPairs(a, b: PType; start = 0; without = 0): (PType, PType) 951
nim signatureLen ast.html#signatureLen,PType proc signatureLen(t: PType): int 956
nim paramsLen ast.html#paramsLen,PType proc paramsLen(t: PType): int 959
nim genericParamsLen ast.html#genericParamsLen,PType proc genericParamsLen(t: PType): int 962
nim genericInvocationParamsLen ast.html#genericInvocationParamsLen,PType proc genericInvocationParamsLen(t: PType): int 966
nim kidsLen ast.html#kidsLen,PType proc kidsLen(t: PType): int 970
nim genericParamHasConstraints ast.html#genericParamHasConstraints,PType proc genericParamHasConstraints(t: PType): bool 973
nim hasElementType ast.html#hasElementType,PType proc hasElementType(t: PType): bool 975
nim isEmptyTupleType ast.html#isEmptyTupleType,PType proc isEmptyTupleType(t: PType): bool 976
nim isSingletonTupleType ast.html#isSingletonTupleType,PType proc isSingletonTupleType(t: PType): bool 977
nim genericConstraint ast.html#genericConstraint,PType proc genericConstraint(t: PType): PType 979
nim genericInstParams ast.html#genericInstParams.i,PType iterator genericInstParams(t: PType): (bool, PType) 981
nim genericInstParamPairs ast.html#genericInstParamPairs.i,PType,PType iterator genericInstParamPairs(a, b: PType): (int, PType, PType) 985
nim genericInvocationParams ast.html#genericInvocationParams.i,PType iterator genericInvocationParams(t: PType): (bool, PType) 989
nim genericInvocationAndBodyElements ast.html#genericInvocationAndBodyElements.i,PType,PType iterator genericInvocationAndBodyElements(a, b: PType): (PType, PType) 993
nim genericInvocationParamPairs ast.html#genericInvocationParamPairs.i,PType,PType iterator genericInvocationParamPairs(a, b: PType): (bool, PType, PType) 997
nim genericBodyParams ast.html#genericBodyParams.i,PType iterator genericBodyParams(t: PType): (int, PType) 1004
nim userTypeClassInstParams ast.html#userTypeClassInstParams.i,PType iterator userTypeClassInstParams(t: PType): (bool, PType) 1008
nim ikids ast.html#ikids.i,PType iterator ikids(t: PType): (int, PType) 1012
nim FirstParamAt ast.html#FirstParamAt const FirstParamAt 1016
nim FirstGenericParamAt ast.html#FirstGenericParamAt const FirstGenericParamAt 1017
nim paramTypes ast.html#paramTypes.i,PType iterator paramTypes(t: PType): (int, PType) 1019
nim paramTypePairs ast.html#paramTypePairs.i,PType,PType iterator paramTypePairs(a, b: PType): (PType, PType) 1022
nim paramTypeToNodeIndex ast.html#paramTypeToNodeIndex.t,int template paramTypeToNodeIndex(x: int): int 1025
nim kids ast.html#kids.i,PType iterator kids(t: PType): PType 1027
nim signature ast.html#signature.i,PType iterator signature(t: PType): PType 1030
nim newType ast.html#newType,TTypeKind,IdGenerator,PSym,sinkPType proc newType(kind: TTypeKind; idgen: IdGenerator; owner: PSym; son: sink PType = nil): PType 1034
nim setSons ast.html#setSons,PType,sinkseq[PType] proc setSons(dest: PType; sons: sink seq[PType]) 1047
nim setSon ast.html#setSon,PType,sinkPType proc setSon(dest: PType; son: sink PType) 1050
nim setSonsLen ast.html#setSonsLen,PType,int proc setSonsLen(dest: PType; len: int) 1052
nim newSons ast.html#newSons,PNode,int proc newSons(father: PNode; length: int) 1063
nim newSons ast.html#newSons,PType,int proc newSons(father: PType; length: int) 1066
nim truncateInferredTypeCandidates ast.html#truncateInferredTypeCandidates,PType proc truncateInferredTypeCandidates(t: PType) 1070
nim assignType ast.html#assignType,PType,PType proc assignType(dest, src: PType) 1075
nim copyType ast.html#copyType,PType,IdGenerator,PSym proc copyType(t: PType; idgen: IdGenerator; owner: PSym): PType 1103
nim exactReplica ast.html#exactReplica,PType proc exactReplica(t: PType): PType 1108
nim copySym ast.html#copySym,PSym,IdGenerator proc copySym(s: PSym; idgen: IdGenerator): PSym 1115
nim createModuleAlias ast.html#createModuleAlias,PSym,IdGenerator,PIdent,TLineInfo,TOptions proc createModuleAlias(s: PSym; idgen: IdGenerator; newIdent: PIdent;\n info: TLineInfo; options: TOptions): PSym 1131
nim initStrTable ast.html#initStrTable proc initStrTable(): TStrTable 1143
nim initIdTable ast.html#initIdTable proc initIdTable[T](): TIdTable[T] 1147
nim resetIdTable ast.html#resetIdTable,TIdTable[T] proc resetIdTable[T](x: var TIdTable[T]) 1151
nim initObjectSet ast.html#initObjectSet proc initObjectSet(): TObjectSet 1157
nim initNodeTable ast.html#initNodeTable proc initNodeTable(ignoreTypes = false): TNodeTable 1161
nim skipTypes ast.html#skipTypes,PType,TTypeKinds,int proc skipTypes(t: PType; kinds: TTypeKinds; maxIters: int): PType 1165
nim skipTypesOrNil ast.html#skipTypesOrNil,PType,TTypeKinds proc skipTypesOrNil(t: PType; kinds: TTypeKinds): PType 1173
nim isGCedMem ast.html#isGCedMem,PType proc isGCedMem(t: PType): bool 1181
nim propagateToOwner ast.html#propagateToOwner,PType,PType proc propagateToOwner(owner, elem: PType; propagateHasAsgn = true) 1185
nim rawAddSon ast.html#rawAddSon,PType,PType proc rawAddSon(father, son: PType; propagateHasAsgn = true) 1215
nim addSonNilAllowed ast.html#addSonNilAllowed,PNode,PNode proc addSonNilAllowed(father, son: PNode) 1221
nim delSon ast.html#delSon,PNode,int proc delSon(father: PNode; idx: int) 1224
nim copyNode ast.html#copyNode,PNode proc copyNode(src: PNode): PNode 1229
nim transitionSonsKind ast.html#transitionSonsKind,PNode,range[] proc transitionSonsKind(n: PNode; kind: range[nkComesFrom .. nkTupleConstr]) 1258
nim transitionIntKind ast.html#transitionIntKind,PNode,range[] proc transitionIntKind(n: PNode; kind: range[nkCharLit .. nkUInt64Lit]) 1262
nim transitionIntToFloatKind ast.html#transitionIntToFloatKind,PNode,range[] proc transitionIntToFloatKind(n: PNode; kind: range[nkFloatLit .. nkFloat128Lit]) 1266
nim transitionNoneToSym ast.html#transitionNoneToSym,PNode proc transitionNoneToSym(n: PNode) 1270
nim transitionSymKindCommon ast.html#transitionSymKindCommon.t,TSymKind template transitionSymKindCommon(k: TSymKind) 1273
nim transitionGenericParamToType ast.html#transitionGenericParamToType,PSym proc transitionGenericParamToType(s: PSym) 1285
nim transitionRoutineSymKind ast.html#transitionRoutineSymKind,PSym,range[] proc transitionRoutineSymKind(s: PSym; kind: range[skProc .. skTemplate]) 1288
nim transitionToLet ast.html#transitionToLet,PSym proc transitionToLet(s: PSym) 1293
nim shallowCopy ast.html#shallowCopy,PNode proc shallowCopy(src: PNode): PNode 1319
nim copyTree ast.html#copyTree,PNode proc copyTree(src: PNode): PNode 1324
nim copyTreeWithoutNode ast.html#copyTreeWithoutNode,PNode,PNode proc copyTreeWithoutNode(src, skippedNode: PNode): PNode 1331
nim hasSonWith ast.html#hasSonWith,PNode,TNodeKind proc hasSonWith(n: PNode; kind: TNodeKind): bool 1338
nim hasNilSon ast.html#hasNilSon,PNode proc hasNilSon(n: PNode): bool 1344
nim containsNode ast.html#containsNode,PNode,TNodeKinds proc containsNode(n: PNode; kinds: TNodeKinds): bool 1352
nim hasSubnodeWith ast.html#hasSubnodeWith,PNode,TNodeKind proc hasSubnodeWith(n: PNode; kind: TNodeKind): bool 1361
nim getInt ast.html#getInt,PNode proc getInt(a: PNode): Int128 1370
nim getInt64 ast.html#getInt64,PNode proc getInt64(a: PNode): int64 1383
nim getFloat ast.html#getFloat,PNode proc getFloat(a: PNode): BiggestFloat 1390
nim getStr ast.html#getStr,PNode proc getStr(a: PNode): string 1401
nim getStrOrChar ast.html#getStrOrChar,PNode proc getStrOrChar(a: PNode): string 1413
nim isGenericParams ast.html#isGenericParams,PNode proc isGenericParams(n: PNode): bool 1423
nim isGenericRoutine ast.html#isGenericRoutine,PNode proc isGenericRoutine(n: PNode): bool 1427
nim isGenericRoutineStrict ast.html#isGenericRoutineStrict,PSym proc isGenericRoutineStrict(s: PSym): bool 1430
nim isGenericRoutine ast.html#isGenericRoutine,PSym proc isGenericRoutine(s: PSym): bool 1436
nim skipGenericOwner ast.html#skipGenericOwner,PSym proc skipGenericOwner(s: PSym): PSym 1450
nim originatingModule ast.html#originatingModule,PSym proc originatingModule(s: PSym): PSym 1461
nim isRoutine ast.html#isRoutine,PSym proc isRoutine(s: PSym): bool 1465
nim isCompileTimeProc ast.html#isCompileTimeProc,PSym proc isCompileTimeProc(s: PSym): bool 1468
nim hasPattern ast.html#hasPattern,PSym proc hasPattern(s: PSym): bool 1472
nim pairs ast.html#pairs.i,PNode iterator pairs(n: PNode): tuple[i: int, n: PNode] 1475
nim isAtom ast.html#isAtom,PNode proc isAtom(n: PNode): bool 1478
nim isEmptyType ast.html#isEmptyType,PType proc isEmptyType(t: PType): bool 1481
nim makeStmtList ast.html#makeStmtList,PNode proc makeStmtList(n: PNode): PNode 1485
nim skipStmtList ast.html#skipStmtList,PNode proc skipStmtList(n: PNode): PNode 1492
nim toVar ast.html#toVar,PType,TTypeKind,IdGenerator proc toVar(typ: PType; kind: TTypeKind; idgen: IdGenerator): PType 1500
nim toRef ast.html#toRef,PType,IdGenerator proc toRef(typ: PType; idgen: IdGenerator): PType 1507
nim toObject ast.html#toObject,PType proc toObject(typ: PType): PType 1514
nim toObjectFromRefPtrGeneric ast.html#toObjectFromRefPtrGeneric,PType proc toObjectFromRefPtrGeneric(typ: PType): PType 1522
nim isImportedException ast.html#isImportedException,PType,ConfigRef proc isImportedException(t: PType; conf: ConfigRef): bool 1542
nim isInfixAs ast.html#isInfixAs,PNode proc isInfixAs(n: PNode): bool 1551
nim skipColon ast.html#skipColon,PNode proc skipColon(n: PNode): PNode 1554
nim findUnresolvedStatic ast.html#findUnresolvedStatic,PNode proc findUnresolvedStatic(n: PNode): PNode 1559
nim hasDestructor ast.html#hasDestructor.t,PType template hasDestructor(t: PType): bool 1580
nim incompleteType ast.html#incompleteType.t,PType template incompleteType(t: PType): bool 1582
nim typeCompleted ast.html#typeCompleted.t,PSym template typeCompleted(s: PSym) 1585
nim detailedInfo ast.html#detailedInfo.t,PSym template detailedInfo(sym: PSym): string 1588
nim isInlineIterator ast.html#isInlineIterator,PType proc isInlineIterator(typ: PType): bool 1591
nim isIterator ast.html#isIterator,PType proc isIterator(typ: PType): bool 1594
nim isClosureIterator ast.html#isClosureIterator,PType proc isClosureIterator(typ: PType): bool 1597
nim isClosure ast.html#isClosure,PType proc isClosure(typ: PType): bool 1600
nim isNimcall ast.html#isNimcall,PSym proc isNimcall(s: PSym): bool 1603
nim isExplicitCallConv ast.html#isExplicitCallConv,PSym proc isExplicitCallConv(s: PSym): bool 1606
nim isSinkParam ast.html#isSinkParam,PSym proc isSinkParam(s: PSym): bool 1609
nim isSinkType ast.html#isSinkType,PType proc isSinkType(t: PType): bool 1612
nim newProcType ast.html#newProcType,TLineInfo,IdGenerator,PSym proc newProcType(info: TLineInfo; idgen: IdGenerator; owner: PSym): PType 1615
nim addParam ast.html#addParam,PType,PSym proc addParam(procType: PType; param: PSym) 1624
nim canRaiseConservative ast.html#canRaiseConservative,PNode proc canRaiseConservative(fn: PNode): bool 1632
nim canRaise ast.html#canRaise,PNode proc canRaise(fn: PNode): bool 1638
nim toHumanStr ast.html#toHumanStr,TSymKind proc toHumanStr(kind: TSymKind): string 1665
nim toHumanStr ast.html#toHumanStr,TTypeKind proc toHumanStr(kind: TTypeKind): string 1669
nim skipHiddenAddr ast.html#skipHiddenAddr,PNode proc skipHiddenAddr(n: PNode): PNode 1673
nim isNewStyleConcept ast.html#isNewStyleConcept,PNode proc isNewStyleConcept(n: PNode): bool 1676
nim isOutParam ast.html#isOutParam,PType proc isOutParam(t: PType): bool 1680
nim nodesToIgnoreSet ast.html#nodesToIgnoreSet const nodesToIgnoreSet 1683
nim isTrue ast.html#isTrue,PNode proc isTrue(n: PNode): bool 1690
nim TypeMapping ast.html#TypeMapping type TypeMapping 1695
nim SymMapping ast.html#SymMapping type SymMapping 1696
nim initSymMapping ast.html#initSymMapping.t template initSymMapping(): SymMapping 1698
nim initTypeMapping ast.html#initTypeMapping.t template initTypeMapping(): TypeMapping 1699
nim sameModules ast.html#sameModules,PSym,PSym proc sameModules(a, b: PSym): bool 1701
nim sameOwners ast.html#sameOwners,PSym,PSym proc sameOwners(a, b: PSym): bool 1705
nimgrp addallownil ast.html#addAllowNil-procs-all proc 549
nimgrp isgenericroutine ast.html#isGenericRoutine-procs-all proc 1427
nimgrp newintnode ast.html#newIntNode-procs-all proc 799
nimgrp newinttypenode ast.html#newIntTypeNode-procs-all proc 888
nimgrp loc ast.html#loc-procs-all proc 237
nimgrp newtree ast.html#newTree-procs-all proc 673
nimgrp []= ast.html#[]=-procs-all proc 571
nimgrp add ast.html#add-procs-all proc 545
nimgrp tohumanstr ast.html#toHumanStr-procs-all proc 1665
nimgrp linkto ast.html#linkTo-procs-all proc 740
nimgrp newatom ast.html#newAtom-procs-all proc 657
nimgrp [] ast.html#[]-procs-all proc 563
nimgrp newsons ast.html#newSons-procs-all proc 1063
nimgrp owner ast.html#owner-procs-all proc 73
nimgrp skiptypes ast.html#skipTypes-procs-all proc 880
nimgrp setowner ast.html#setOwner-procs-all proc 81
nimgrp ensuremutable ast.html#ensureMutable-procs-all proc 55
nimgrp excl ast.html#excl-procs-all proc 304
nimgrp loc= ast.html#loc=-procs-all proc 241
nimgrp backendensuremutable ast.html#backendEnsureMutable-procs-all proc 63
nimgrp flags= ast.html#flags=-procs-all proc 196
nimgrp typ ast.html#typ-procs-all proc 155
nimgrp incl ast.html#incl-procs-all proc 288
nimgrp flags ast.html#flags-procs-all proc 192
nimgrp typ= ast.html#typ=-procs-all proc 159

507
compiler/ast2nif.html Normal file
View File

@@ -0,0 +1,507 @@
<?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>ast2nif</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">ast2nif</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="#DecodeContext" title="DecodeContext = object">DecodeContext</a></li>
<li><a class="reference" href="#LoadFlag" title="LoadFlag = enum
LoadFullAst, AlwaysLoadInterface">LoadFlag</a></li>
<li><a class="reference" href="#ModuleSuffix" title="ModuleSuffix = distinct string">ModuleSuffix</a></li>
<li><a class="reference" href="#ParsedSymName" title="ParsedSymName = object
name*: string
module*: string
count*: int">ParsedSymName</a></li>
<li><a class="reference" href="#PrecompiledModule" title="PrecompiledModule = object
topLevel*: PNode
deps*: seq[ModuleSuffix]
logOps*: seq[LogEntry]
module*: PSym">PrecompiledModule</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">createDecodeContext
<li><a class="reference" href="#createDecodeContext%2CConfigRef%2CIdentCache" title="createDecodeContext(config: ConfigRef; cache: IdentCache): DecodeContext">createDecodeContext(config: ConfigRef; cache: IdentCache): DecodeContext</a></li>
</ul>
<ul class="simple nested-toc-section">firstSon
<li><a class="reference" href="#firstSon%2CCursor" title="firstSon(n: Cursor): Cursor">firstSon(n: Cursor): Cursor</a></li>
</ul>
<ul class="simple nested-toc-section">isStub
<li><a class="reference" href="#isStub%2CPSym" title="isStub(s: PSym): bool">isStub(s: PSym): bool</a></li>
<li><a class="reference" href="#isStub%2CPType" title="isStub(t: PType): bool">isStub(t: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">loadNifModule
<li><a class="reference" href="#loadNifModule%2CDecodeContext%2CFileIndex%2CTStrTable%2CTStrTable%2Cset%5BLoadFlag%5D" title="loadNifModule(c: var DecodeContext; f: FileIndex;
interf, interfHidden: var TStrTable; flags: set[LoadFlag] = {}): PrecompiledModule">loadNifModule(c: var DecodeContext; f: FileIndex;
interf, interfHidden: var TStrTable; flags: set[LoadFlag] = {}): PrecompiledModule</a></li>
<li><a class="reference" href="#loadNifModule%2CDecodeContext%2CModuleSuffix%2CTStrTable%2CTStrTable%2Cset%5BLoadFlag%5D" title="loadNifModule(c: var DecodeContext; suffix: ModuleSuffix;
interf, interfHidden: var TStrTable; flags: set[LoadFlag] = {}): PrecompiledModule">loadNifModule(c: var DecodeContext; suffix: ModuleSuffix;
interf, interfHidden: var TStrTable; flags: set[LoadFlag] = {}): PrecompiledModule</a></li>
</ul>
<ul class="simple nested-toc-section">loadSym
<li><a class="reference" href="#loadSym%2CDecodeContext%2CPSym" title="loadSym(c: var DecodeContext; s: PSym)">loadSym(c: var DecodeContext; s: PSym)</a></li>
</ul>
<ul class="simple nested-toc-section">loadType
<li><a class="reference" href="#loadType%2CDecodeContext%2CPType" title="loadType(c: var DecodeContext; t: PType)">loadType(c: var DecodeContext; t: PType)</a></li>
</ul>
<ul class="simple nested-toc-section">parseSymName
<li><a class="reference" href="#parseSymName%2Cstring" title="parseSymName(s: string): ParsedSymName">parseSymName(s: string): ParsedSymName</a></li>
</ul>
<ul class="simple nested-toc-section">resolveHookSym
<li><a class="reference" href="#resolveHookSym%2CDecodeContext%2C" title="resolveHookSym(c: var DecodeContext; symId: nifstreams.SymId): PSym">resolveHookSym(c: var DecodeContext; symId: nifstreams.SymId): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">toClassSymId
<li><a class="reference" href="#toClassSymId%2CConfigRef%2CItemId" title="toClassSymId(config: ConfigRef; typeId: ItemId): nifstreams.SymId">toClassSymId(config: ConfigRef; typeId: ItemId): nifstreams.SymId</a></li>
</ul>
<ul class="simple nested-toc-section">toConverterIndexEntry
<li><a class="reference" href="#toConverterIndexEntry%2CConfigRef%2CPSym" title="toConverterIndexEntry(config: ConfigRef; converterSym: PSym): (nifstreams.SymId,
nifstreams.SymId)">toConverterIndexEntry(config: ConfigRef; converterSym: PSym): (nifstreams.SymId,
nifstreams.SymId)</a></li>
</ul>
<ul class="simple nested-toc-section">toHookIndexEntry
<li><a class="reference" href="#toHookIndexEntry%2CConfigRef%2CItemId%2CPSym" title="toHookIndexEntry(config: ConfigRef; typeId: ItemId; hookSym: PSym): HookIndexEntry">toHookIndexEntry(config: ConfigRef; typeId: ItemId; hookSym: PSym): HookIndexEntry</a></li>
</ul>
<ul class="simple nested-toc-section">toMethodIndexEntry
<li><a class="reference" href="#toMethodIndexEntry%2CConfigRef%2CPSym%2Cstring" title="toMethodIndexEntry(config: ConfigRef; methodSym: PSym; signature: string): (
nifstreams.SymId, nifstreams.StrId)">toMethodIndexEntry(config: ConfigRef; methodSym: PSym; signature: string): (
nifstreams.SymId, nifstreams.StrId)</a></li>
</ul>
<ul class="simple nested-toc-section">toNifFilename
<li><a class="reference" href="#toNifFilename%2CConfigRef%2CFileIndex" title="toNifFilename(conf: ConfigRef; f: FileIndex): string">toNifFilename(conf: ConfigRef; f: FileIndex): string</a></li>
</ul>
<ul class="simple nested-toc-section">tryResolveCompilerProc
<li><a class="reference" href="#tryResolveCompilerProc%2CDecodeContext%2Cstring%2CFileIndex" title="tryResolveCompilerProc(c: var DecodeContext; name: string;
moduleFileIdx: FileIndex): PSym">tryResolveCompilerProc(c: var DecodeContext; name: string;
moduleFileIdx: FileIndex): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">writeNifModule
<li><a class="reference" href="#writeNifModule%2CConfigRef%2Cint32%2CPNode%2Cseq%5BLogEntry%5D%2Cseq%5BPNode%5D" title="writeNifModule(config: ConfigRef; thisModule: int32; n: PNode;
opsLog: seq[LogEntry]; replayActions: seq[PNode] = @[])">writeNifModule(config: ConfigRef; thisModule: int32; n: PNode;
opsLog: seq[LogEntry]; replayActions: seq[PNode] = @[])</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/ast2nif.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">AST to NIF bridge.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="astdef.html">astdef</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="pathutils.html">pathutils</a>, <a class="reference external" href="typekeys.html">typekeys</a>, <a class="reference external" href="ic/enum2nif.html">ic/enum2nif</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="DecodeContext">
<dt><pre><a href="#DecodeContext"><span class="Identifier">DecodeContext</span></a> <span class="Other">=</span> <span class="Keyword">object</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast2nif.nim#L823" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L823" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="LoadFlag">
<dt><pre><a href="#LoadFlag"><span class="Identifier">LoadFlag</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">LoadFullAst</span><span class="Other">,</span> <span class="Identifier">AlwaysLoadInterface</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast2nif.nim#L843" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L843" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ModuleSuffix">
<dt><pre><a href="#ModuleSuffix"><span class="Identifier">ModuleSuffix</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">string</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast2nif.nim#L1524" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L1524" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ParsedSymName">
<dt><pre><a href="#ParsedSymName"><span class="Identifier">ParsedSymName</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">name</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">string</span>
<span class="Identifier">module</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">string</span>
<span class="Identifier">count</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast2nif.nim#L194" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L194" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PrecompiledModule">
<dt><pre><a href="#PrecompiledModule"><span class="Identifier">PrecompiledModule</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">topLevel</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a>
<span class="Identifier">deps</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="#ModuleSuffix"><span class="Identifier">ModuleSuffix</span></a><span class="Other">]</span>
<span class="Identifier">logOps</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#LogEntry"><span class="Identifier">LogEntry</span></a><span class="Other">]</span>
<span class="Identifier">module</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast2nif.nim#L1525" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L1525" 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="createDecodeContext-procs-all">
<div id="createDecodeContext,ConfigRef,IdentCache">
<dt><pre><span class="Keyword">proc</span> <a href="#createDecodeContext%2CConfigRef%2CIdentCache"><span class="Identifier">createDecodeContext</span></a><span class="Other">(</span><span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">cache</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">)</span><span class="Other">:</span> <a href="#DecodeContext"><span class="Identifier">DecodeContext</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>
Supposed to be a global variable
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast2nif.nim#L831" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L831" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="firstSon-procs-all">
<div id="firstSon,Cursor">
<dt><pre><span class="Keyword">proc</span> <a href="#firstSon%2CCursor"><span class="Identifier">firstSon</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <span class="Identifier">Cursor</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Cursor</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/ast2nif.nim#L789" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L789" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isStub-procs-all">
<div id="isStub,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#isStub%2CPSym"><span class="Identifier">isStub</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><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/ast2nif.nim#L1040" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L1040" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="isStub,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#isStub%2CPType"><span class="Identifier">isStub</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><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/ast2nif.nim#L1039" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L1039" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="loadNifModule-procs-all">
<div id="loadNifModule,DecodeContext,FileIndex,TStrTable,TStrTable,set[LoadFlag]">
<dt><pre><span class="Keyword">proc</span> <a href="#loadNifModule%2CDecodeContext%2CFileIndex%2CTStrTable%2CTStrTable%2Cset%5BLoadFlag%5D"><span class="Identifier">loadNifModule</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#DecodeContext"><span class="Identifier">DecodeContext</span></a><span class="Other">;</span> <span class="Identifier">f</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">;</span>
<span class="Identifier">interf</span><span class="Other">,</span> <span class="Identifier">interfHidden</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">;</span>
<span class="Identifier">flags</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="#LoadFlag"><span class="Identifier">LoadFlag</span></a><span class="Other">]</span> <span class="Other">=</span> <span class="Other">{</span><span class="Other">}</span><span class="Other">)</span><span class="Other">:</span> <a href="#PrecompiledModule"><span class="Identifier">PrecompiledModule</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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/ast2nif.nim#L1654" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L1654" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="loadNifModule,DecodeContext,ModuleSuffix,TStrTable,TStrTable,set[LoadFlag]">
<dt><pre><span class="Keyword">proc</span> <a href="#loadNifModule%2CDecodeContext%2CModuleSuffix%2CTStrTable%2CTStrTable%2Cset%5BLoadFlag%5D"><span class="Identifier">loadNifModule</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#DecodeContext"><span class="Identifier">DecodeContext</span></a><span class="Other">;</span> <span class="Identifier">suffix</span><span class="Other">:</span> <a href="#ModuleSuffix"><span class="Identifier">ModuleSuffix</span></a><span class="Other">;</span>
<span class="Identifier">interf</span><span class="Other">,</span> <span class="Identifier">interfHidden</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">;</span>
<span class="Identifier">flags</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="#LoadFlag"><span class="Identifier">LoadFlag</span></a><span class="Other">]</span> <span class="Other">=</span> <span class="Other">{</span><span class="Other">}</span><span class="Other">)</span><span class="Other">:</span> <a href="#PrecompiledModule"><span class="Identifier">PrecompiledModule</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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</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">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</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/ast2nif.nim#L1633" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L1633" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="loadSym-procs-all">
<div id="loadSym,DecodeContext,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#loadSym%2CDecodeContext%2CPSym"><span class="Identifier">loadSym</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#DecodeContext"><span class="Identifier">DecodeContext</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/ast2nif.nim#L1200" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L1200" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="loadType-procs-all">
<div id="loadType,DecodeContext,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#loadType%2CDecodeContext%2CPType"><span class="Identifier">loadType</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#DecodeContext"><span class="Identifier">DecodeContext</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/ast2nif.nim#L1113" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L1113" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="parseSymName-procs-all">
<div id="parseSymName,string">
<dt><pre><span class="Keyword">proc</span> <a href="#parseSymName%2Cstring"><span class="Identifier">parseSymName</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="#ParsedSymName"><span class="Identifier">ParsedSymName</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/ast2nif.nim#L199" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L199" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="resolveHookSym-procs-all">
<div id="resolveHookSym,DecodeContext,">
<dt><pre><span class="Keyword">proc</span> <a href="#resolveHookSym%2CDecodeContext%2C"><span class="Identifier">resolveHookSym</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#DecodeContext"><span class="Identifier">DecodeContext</span></a><span class="Other">;</span> <span class="Identifier">symId</span><span class="Other">:</span> <span class="Identifier">nifstreams</span><span class="Other">.</span><span class="Identifier">SymId</span><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</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">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</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>
Resolves a hook SymId to PSym. Hook symbols are often private (generated =destroy, =wasMoved, etc.)
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast2nif.nim#L1464" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L1464" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="toClassSymId-procs-all">
<div id="toClassSymId,ConfigRef,ItemId">
<dt><pre><span class="Keyword">proc</span> <a href="#toClassSymId%2CConfigRef%2CItemId"><span class="Identifier">toClassSymId</span></a><span class="Other">(</span><span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">typeId</span><span class="Other">:</span> <a href="astdef.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">nifstreams</span><span class="Other">.</span><span class="Identifier">SymId</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="Identifier">RootEffect</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>
Converts a type ItemId to its SymId for the class index.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast2nif.nim#L67" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L67" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="toConverterIndexEntry-procs-all">
<div id="toConverterIndexEntry,ConfigRef,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#toConverterIndexEntry%2CConfigRef%2CPSym"><span class="Identifier">toConverterIndexEntry</span></a><span class="Other">(</span><span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">converterSym</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span>
<span class="Identifier">nifstreams</span><span class="Other">.</span><span class="Identifier">SymId</span><span class="Other">,</span> <span class="Identifier">nifstreams</span><span class="Other">.</span><span class="Identifier">SymId</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="Identifier">RootEffect</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>
Converts a converter symbol to an index entry (destType, converterSym). Returns the destination type's SymId and the converter's SymId.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast2nif.nim#L44" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L44" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="toHookIndexEntry-procs-all">
<div id="toHookIndexEntry,ConfigRef,ItemId,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#toHookIndexEntry%2CConfigRef%2CItemId%2CPSym"><span class="Identifier">toHookIndexEntry</span></a><span class="Other">(</span><span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">typeId</span><span class="Other">:</span> <a href="astdef.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">;</span> <span class="Identifier">hookSym</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">HookIndexEntry</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="Identifier">RootEffect</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>
Converts a type ItemId and hook symbol to a HookIndexEntry for the NIF index.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast2nif.nim#L33" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L33" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="toMethodIndexEntry-procs-all">
<div id="toMethodIndexEntry,ConfigRef,PSym,string">
<dt><pre><span class="Keyword">proc</span> <a href="#toMethodIndexEntry%2CConfigRef%2CPSym%2Cstring"><span class="Identifier">toMethodIndexEntry</span></a><span class="Other">(</span><span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">methodSym</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">signature</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span>
<span class="Identifier">nifstreams</span><span class="Other">.</span><span class="Identifier">SymId</span><span class="Other">,</span> <span class="Identifier">nifstreams</span><span class="Other">.</span><span class="Identifier">StrId</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="Identifier">RootEffect</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>
Converts a method symbol/signature to a method index entry.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast2nif.nim#L59" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L59" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="toNifFilename-procs-all">
<div id="toNifFilename,ConfigRef,FileIndex">
<dt><pre><span class="Keyword">proc</span> <a href="#toNifFilename%2CConfigRef%2CFileIndex"><span class="Identifier">toNifFilename</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">f</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/ast2nif.nim#L1431" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L1431" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="tryResolveCompilerProc-procs-all">
<div id="tryResolveCompilerProc,DecodeContext,string,FileIndex">
<dt><pre><span class="Keyword">proc</span> <a href="#tryResolveCompilerProc%2CDecodeContext%2Cstring%2CFileIndex"><span class="Identifier">tryResolveCompilerProc</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#DecodeContext"><span class="Identifier">DecodeContext</span></a><span class="Other">;</span> <span class="Identifier">name</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span>
<span class="Identifier">moduleFileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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>
Tries to resolve a compiler proc from a module by checking the NIF index. Returns nil if the symbol doesn't exist.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ast2nif.nim#L1470" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L1470" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="writeNifModule-procs-all">
<div id="writeNifModule,ConfigRef,int32,PNode,seq[LogEntry],seq[PNode]">
<dt><pre><span class="Keyword">proc</span> <a href="#writeNifModule%2CConfigRef%2Cint32%2CPNode%2Cseq%5BLogEntry%5D%2Cseq%5BPNode%5D"><span class="Identifier">writeNifModule</span></a><span class="Other">(</span><span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">thisModule</span><span class="Other">:</span> <span class="Identifier">int32</span><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span>
<span class="Identifier">opsLog</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#LogEntry"><span class="Identifier">LogEntry</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">replayActions</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span> <span class="Other">=</span> <span class="Operator">@</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/ast2nif.nim#L709" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ast2nif.nim#L709" 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: 2026-06-02 05:20:17 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

27
compiler/ast2nif.idx Normal file
View File

@@ -0,0 +1,27 @@
nimTitle ast2nif ast2nif.html module ast2nif 0
nim toHookIndexEntry ast2nif.html#toHookIndexEntry,ConfigRef,ItemId,PSym proc toHookIndexEntry(config: ConfigRef; typeId: ItemId; hookSym: PSym): HookIndexEntry 33
nim toConverterIndexEntry ast2nif.html#toConverterIndexEntry,ConfigRef,PSym proc toConverterIndexEntry(config: ConfigRef; converterSym: PSym): (nifstreams.SymId,\n nifstreams.SymId) 44
nim toMethodIndexEntry ast2nif.html#toMethodIndexEntry,ConfigRef,PSym,string proc toMethodIndexEntry(config: ConfigRef; methodSym: PSym; signature: string): (\n nifstreams.SymId, nifstreams.StrId) 59
nim toClassSymId ast2nif.html#toClassSymId,ConfigRef,ItemId proc toClassSymId(config: ConfigRef; typeId: ItemId): nifstreams.SymId 67
nim ParsedSymName ast2nif.html#ParsedSymName object ParsedSymName 194
nim parseSymName ast2nif.html#parseSymName,string proc parseSymName(s: string): ParsedSymName 199
nim writeNifModule ast2nif.html#writeNifModule,ConfigRef,int32,PNode,seq[LogEntry],seq[PNode] proc writeNifModule(config: ConfigRef; thisModule: int32; n: PNode;\n opsLog: seq[LogEntry]; replayActions: seq[PNode] = @[]) 709
nim firstSon ast2nif.html#firstSon,Cursor proc firstSon(n: Cursor): Cursor 789
nim DecodeContext ast2nif.html#DecodeContext object DecodeContext 823
nim createDecodeContext ast2nif.html#createDecodeContext,ConfigRef,IdentCache proc createDecodeContext(config: ConfigRef; cache: IdentCache): DecodeContext 831
nim LoadFullAst ast2nif.html#LoadFullAst LoadFlag.LoadFullAst 843
nim AlwaysLoadInterface ast2nif.html#AlwaysLoadInterface LoadFlag.AlwaysLoadInterface 843
nim LoadFlag ast2nif.html#LoadFlag enum LoadFlag 843
nim isStub ast2nif.html#isStub,PType proc isStub(t: PType): bool 1039
nim isStub ast2nif.html#isStub,PSym proc isStub(s: PSym): bool 1040
nim loadType ast2nif.html#loadType,DecodeContext,PType proc loadType(c: var DecodeContext; t: PType) 1113
nim loadSym ast2nif.html#loadSym,DecodeContext,PSym proc loadSym(c: var DecodeContext; s: PSym) 1200
nim toNifFilename ast2nif.html#toNifFilename,ConfigRef,FileIndex proc toNifFilename(conf: ConfigRef; f: FileIndex): string 1431
nim resolveHookSym ast2nif.html#resolveHookSym,DecodeContext, proc resolveHookSym(c: var DecodeContext; symId: nifstreams.SymId): PSym 1464
nim tryResolveCompilerProc ast2nif.html#tryResolveCompilerProc,DecodeContext,string,FileIndex proc tryResolveCompilerProc(c: var DecodeContext; name: string;\n moduleFileIdx: FileIndex): PSym 1470
nim ModuleSuffix ast2nif.html#ModuleSuffix type ModuleSuffix 1524
nim PrecompiledModule ast2nif.html#PrecompiledModule object PrecompiledModule 1525
nim loadNifModule ast2nif.html#loadNifModule,DecodeContext,ModuleSuffix,TStrTable,TStrTable,set[LoadFlag] proc loadNifModule(c: var DecodeContext; suffix: ModuleSuffix;\n interf, interfHidden: var TStrTable; flags: set[LoadFlag] = {}): PrecompiledModule 1633
nim loadNifModule ast2nif.html#loadNifModule,DecodeContext,FileIndex,TStrTable,TStrTable,set[LoadFlag] proc loadNifModule(c: var DecodeContext; f: FileIndex;\n interf, interfHidden: var TStrTable; flags: set[LoadFlag] = {}): PrecompiledModule 1654
nimgrp isstub ast2nif.html#isStub-procs-all proc 1039
nimgrp loadnifmodule ast2nif.html#loadNifModule-procs-all proc 1633

893
compiler/astalgo.html Normal file
View File

@@ -0,0 +1,893 @@
<?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>astalgo</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">astalgo</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="#TIdentIter" title="TIdentIter = object
h*: Hash
name*: PIdent">TIdentIter</a></li>
<li><a class="reference" href="#TIIPair" title="TIIPair {.final.} = object
key*, val*: int">TIIPair</a></li>
<li><a class="reference" href="#TIIPairSeq" title="TIIPairSeq = seq[TIIPair]">TIIPairSeq</a></li>
<li><a class="reference" href="#TIITable" title="TIITable {.final.} = object
counter*: int
data*: TIIPairSeq">TIITable</a></li>
<li><a class="reference" href="#TTabIter" title="TTabIter = object">TTabIter</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="#InvalidKey" title="InvalidKey = -9223372036854775808">InvalidKey</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="#%5B%5D%3D%2CTIdTable%5BT%5D%2CItemId%2CT" title="`[]=`[T](t: var TIdTable[T]; key: ItemId; val: T)">`[]=`[T](t: var TIdTable[T]; key: ItemId; val: T)</a></li>
</ul>
<ul class="simple nested-toc-section">debug
<li><a class="reference" href="#debug%2CPNode%2CConfigRef" title="debug(n: PNode; conf: ConfigRef = nil)">debug(n: PNode; conf: ConfigRef = nil)</a></li>
<li><a class="reference" href="#debug%2CPSym%2CConfigRef" title="debug(n: PSym; conf: ConfigRef = nil)">debug(n: PSym; conf: ConfigRef = nil)</a></li>
<li><a class="reference" href="#debug%2CPType%2CConfigRef" title="debug(n: PType; conf: ConfigRef = nil)">debug(n: PType; conf: ConfigRef = nil)</a></li>
</ul>
<ul class="simple nested-toc-section">firstIdentExcluding
<li><a class="reference" href="#firstIdentExcluding%2CTIdentIter%2CTStrTable%2CPIdent%2CIntSet" title="firstIdentExcluding(ti: var TIdentIter; tab: TStrTable; s: PIdent;
excluding: IntSet): PSym">firstIdentExcluding(ti: var TIdentIter; tab: TStrTable; s: PIdent;
excluding: IntSet): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">fromSystem
<li><a class="reference" href="#fromSystem%2CPSym" title="fromSystem(op: PSym): bool">fromSystem(op: PSym): bool</a></li>
</ul>
<ul class="simple nested-toc-section">getModule
<li><a class="reference" href="#getModule%2CPSym" title="getModule(s: PSym): PSym">getModule(s: PSym): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">getNamedParamFromList
<li><a class="reference" href="#getNamedParamFromList%2CPNode%2CPIdent" title="getNamedParamFromList(list: PNode; ident: PIdent): PSym">getNamedParamFromList(list: PNode; ident: PIdent): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">getOrDefault
<li><a class="reference" href="#getOrDefault%2CTIdTable%5BT%5D%2CItemId" title="getOrDefault[T](t: TIdTable[T]; key: ItemId): T">getOrDefault[T](t: TIdTable[T]; key: ItemId): T</a></li>
</ul>
<ul class="simple nested-toc-section">getSymFromList
<li><a class="reference" href="#getSymFromList%2CPNode%2CPIdent%2Cint" title="getSymFromList(list: PNode; ident: PIdent; start: int = 0): PSym">getSymFromList(list: PNode; ident: PIdent; start: int = 0): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">hashNode
<li><a class="reference" href="#hashNode%2CRootRef" title="hashNode(p: RootRef): Hash">hashNode(p: RootRef): Hash</a></li>
</ul>
<ul class="simple nested-toc-section">iiTableGet
<li><a class="reference" href="#iiTableGet%2CTIITable%2Cint" title="iiTableGet(t: TIITable; key: int): int">iiTableGet(t: TIITable; key: int): int</a></li>
</ul>
<ul class="simple nested-toc-section">iiTablePut
<li><a class="reference" href="#iiTablePut%2CTIITable%2Cint%2Cint" title="iiTablePut(t: var TIITable; key, val: int)">iiTablePut(t: var TIITable; key, val: int)</a></li>
</ul>
<ul class="simple nested-toc-section">initIdentIter
<li><a class="reference" href="#initIdentIter%2CTIdentIter%2CTStrTable%2CPIdent" title="initIdentIter(ti: var TIdentIter; tab: TStrTable; s: PIdent): PSym">initIdentIter(ti: var TIdentIter; tab: TStrTable; s: PIdent): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">initIITable
<li><a class="reference" href="#initIITable%2CTIITable" title="initIITable(x: var TIITable)">initIITable(x: var TIITable)</a></li>
</ul>
<ul class="simple nested-toc-section">initTabIter
<li><a class="reference" href="#initTabIter%2CTTabIter%2CTStrTable" title="initTabIter(ti: var TTabIter; tab: TStrTable): PSym">initTabIter(ti: var TTabIter; tab: TStrTable): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">isDiscriminantField
<li><a class="reference" href="#isDiscriminantField%2CPNode" title="isDiscriminantField(n: PNode): bool">isDiscriminantField(n: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">leValue
<li><a class="reference" href="#leValue%2CPNode%2CPNode" title="leValue(a, b: PNode): bool">leValue(a, b: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">listSymbolNames
<li><a class="reference" href="#listSymbolNames%2CopenArray%5BPSym%5D" title="listSymbolNames(symbols: openArray[PSym]): string">listSymbolNames(symbols: openArray[PSym]): string</a></li>
</ul>
<ul class="simple nested-toc-section">lookupInRecord
<li><a class="reference" href="#lookupInRecord%2CPNode%2CPIdent" title="lookupInRecord(n: PNode; field: PIdent): PSym">lookupInRecord(n: PNode; field: PIdent): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">nextIdentExcluding
<li><a class="reference" href="#nextIdentExcluding%2CTIdentIter%2CTStrTable%2CIntSet" title="nextIdentExcluding(ti: var TIdentIter; tab: TStrTable; excluding: IntSet): PSym">nextIdentExcluding(ti: var TIdentIter; tab: TStrTable; excluding: IntSet): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">nextIdentIter
<li><a class="reference" href="#nextIdentIter%2CTIdentIter%2CTStrTable" title="nextIdentIter(ti: var TIdentIter; tab: TStrTable): PSym">nextIdentIter(ti: var TIdentIter; tab: TStrTable): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">nextIter
<li><a class="reference" href="#nextIter%2CTTabIter%2CTStrTable" title="nextIter(ti: var TTabIter; tab: TStrTable): PSym">nextIter(ti: var TTabIter; tab: TStrTable): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">objectSetContains
<li><a class="reference" href="#objectSetContains%2CTObjectSet%2CRootRef" title="objectSetContains(t: TObjectSet; obj: RootRef): bool">objectSetContains(t: TObjectSet; obj: RootRef): bool</a></li>
</ul>
<ul class="simple nested-toc-section">objectSetContainsOrIncl
<li><a class="reference" href="#objectSetContainsOrIncl%2CTObjectSet%2CRootRef" title="objectSetContainsOrIncl(t: var TObjectSet; obj: RootRef): bool">objectSetContainsOrIncl(t: var TObjectSet; obj: RootRef): bool</a></li>
</ul>
<ul class="simple nested-toc-section">objectSetIncl
<li><a class="reference" href="#objectSetIncl%2CTObjectSet%2CRootRef" title="objectSetIncl(t: var TObjectSet; obj: RootRef)">objectSetIncl(t: var TObjectSet; obj: RootRef)</a></li>
</ul>
<ul class="simple nested-toc-section">sameValue
<li><a class="reference" href="#sameValue%2CPNode%2CPNode" title="sameValue(a, b: PNode): bool">sameValue(a, b: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">skipConvCastAndClosure
<li><a class="reference" href="#skipConvCastAndClosure%2CPNode" title="skipConvCastAndClosure(n: PNode): PNode">skipConvCastAndClosure(n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">weakLeValue
<li><a class="reference" href="#weakLeValue%2CPNode%2CPNode" title="weakLeValue(a, b: PNode): TImplication">weakLeValue(a, b: PNode): TImplication</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">idTablePairs
<li><a class="reference" href="#idTablePairs.i%2CTIdTable%5BT%5D" title="idTablePairs[T](t: TIdTable[T]): tuple[key: ItemId, val: T]">idTablePairs[T](t: TIdTable[T]): tuple[key: ItemId, val: T]</a></li>
</ul>
<ul class="simple nested-toc-section">items
<li><a class="reference" href="#items.i%2CTStrTable" title="items(tab: TStrTable): PSym">items(tab: TStrTable): PSym</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">debug
<li><a class="reference" href="#debug.t%2Cauto" title="debug(x: auto)">debug(x: auto)</a></li>
<li><a class="reference" href="#debug.t" title="debug(x: PSym | PType | PNode)">debug(x: PSym | PType | PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">idTableGet
<li><a class="reference" href="#idTableGet.t%2CTIdTable%5BT%5D%2C" title="idTableGet[T](t: TIdTable[T]; key: PType | PSym): T">idTableGet[T](t: TIdTable[T]; key: PType | PSym): T</a></li>
</ul>
<ul class="simple nested-toc-section">idTablePut
<li><a class="reference" href="#idTablePut.t%2CTIdTable%5BT%5D%2C%2CT" title="idTablePut[T](t: var TIdTable[T]; key: PType | PSym; val: T)">idTablePut[T](t: var TIdTable[T]; key: PType | PSym; val: T)</a></li>
</ul>
<ul class="simple nested-toc-section">mdbg
<li><a class="reference" href="#mdbg.t" title="mdbg(): bool">mdbg(): bool</a></li>
</ul>
</ul>
</details>
</li>
<li>
<a class="reference reference-toplevel" href="#19" id="69">Exports</a>
</li>
</ul>
</div>
<div class="nine columns" id="content">
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="astyaml.html">astyaml</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="rodutils.html">rodutils</a>, <a class="reference external" href="msgs.html">msgs</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="TIdentIter">
<dt><pre><a href="#TIdentIter"><span class="Identifier">TIdentIter</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">h</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Hash</span>
<span class="Identifier">name</span><span class="Operator">*</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L530" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L530" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TIIPair">
<dt><pre><a href="#TIIPair"><span class="Identifier">TIIPair</span></a> {.<span class="Identifier">final</span>.} <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">val</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L77" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L77" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TIIPairSeq">
<dt><pre><a href="#TIIPairSeq"><span class="Identifier">TIIPairSeq</span></a> <span class="Other">=</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="#TIIPair"><span class="Identifier">TIIPair</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L80" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L80" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TIITable">
<dt><pre><a href="#TIITable"><span class="Identifier">TIITable</span></a> {.<span class="Identifier">final</span>.} <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">counter</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">data</span><span class="Operator">*</span><span class="Other">:</span> <a href="#TIIPairSeq"><span class="Identifier">TIIPairSeq</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L81" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L81" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TTabIter">
<dt><pre><a href="#TTabIter"><span class="Identifier">TTabIter</span></a> <span class="Other">=</span> <span class="Keyword">object</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L582" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L582" 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="InvalidKey">
<dt><pre><a href="#InvalidKey"><span class="Identifier">InvalidKey</span></a> <span class="Other">=</span> <span class="DecNumber">-9223372036854775808</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L74" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L74" 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="[]=,TIdTable[T],ItemId,T">
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CTIdTable%5BT%5D%2CItemId%2CT"><span class="Identifier">`[]=`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="astdef.html#TIdTable"><span class="Identifier">TIdTable</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="astdef.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L652" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L652" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="debug-procs-all">
<div id="debug,PNode,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#debug%2CPNode%2CConfigRef"><span class="Identifier">debug</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a> <span class="Other">=</span> <span class="Keyword">nil</span><span class="Other">)</span> {.<span class="Identifier">exportc</span><span class="Other">:</span> <span class="StringLit">&quot;debugNode&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">,</span>
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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>
<div class="deprecation-message">
<b>Deprecated</b>
</div>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L32" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L32" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="debug,PSym,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#debug%2CPSym%2CConfigRef"><span class="Identifier">debug</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a> <span class="Other">=</span> <span class="Keyword">nil</span><span class="Other">)</span> {.<span class="Identifier">exportc</span><span class="Other">:</span> <span class="StringLit">&quot;debugSym&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">,</span>
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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>
<div class="deprecation-message">
<b>Deprecated</b>
</div>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L30" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L30" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="debug,PType,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#debug%2CPType%2CConfigRef"><span class="Identifier">debug</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a> <span class="Other">=</span> <span class="Keyword">nil</span><span class="Other">)</span> {.<span class="Identifier">exportc</span><span class="Other">:</span> <span class="StringLit">&quot;debugType&quot;</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">,</span>
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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>
<div class="deprecation-message">
<b>Deprecated</b>
</div>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L31" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L31" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="firstIdentExcluding-procs-all">
<div id="firstIdentExcluding,TIdentIter,TStrTable,PIdent,IntSet">
<dt><pre><span class="Keyword">proc</span> <a href="#firstIdentExcluding%2CTIdentIter%2CTStrTable%2CPIdent%2CIntSet"><span class="Identifier">firstIdentExcluding</span></a><span class="Other">(</span><span class="Identifier">ti</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TIdentIter"><span class="Identifier">TIdentIter</span></a><span class="Other">;</span> <span class="Identifier">tab</span><span class="Other">:</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">;</span>
<span class="Identifier">excluding</span><span class="Other">:</span> <span class="Identifier">IntSet</span><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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/astalgo.nim#L574" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L574" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="fromSystem-procs-all">
<div id="fromSystem,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#fromSystem%2CPSym"><span class="Identifier">fromSystem</span></a><span class="Other">(</span><span class="Identifier">op</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">ReadDirEffect</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/astalgo.nim#L164" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L164" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getModule-procs-all">
<div id="getModule,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#getModule%2CPSym"><span class="Identifier">getModule</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span>
<span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/astalgo.nim#L159" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L159" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getNamedParamFromList-procs-all">
<div id="getNamedParamFromList,PNode,PIdent">
<dt><pre><span class="Keyword">proc</span> <a href="#getNamedParamFromList%2CPNode%2CPIdent"><span class="Identifier">getNamedParamFromList</span></a><span class="Other">(</span><span class="Identifier">list</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">ident</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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>
<p>Named parameters are special because a named parameter can be gensym'ed and then they have '`&lt;number&gt;' suffix that we need to ignore, see compiler / evaltempl.nim, snippet:</p>
<p><pre class="listing"><span class="Identifier">result</span><span class="Operator">.</span><span class="Identifier">add</span> <span class="Identifier">newIdentNode</span><span class="Punctuation">(</span><span class="Identifier">getIdent</span><span class="Punctuation">(</span><span class="Identifier">c</span><span class="Operator">.</span><span class="Identifier">ic</span><span class="Punctuation">,</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">name</span><span class="Operator">.</span><span class="Identifier">s</span> <span class="Operator">&amp;</span> <span class="StringLit">&quot;</span><span class="EscapeSequence">\`</span><span class="StringLit">gensym&quot;</span> <span class="Operator">&amp;</span> <span class="Operator">$</span><span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">id</span><span class="Punctuation">)</span><span class="Punctuation">,</span>
<span class="Keyword">if</span> <span class="Identifier">c</span><span class="Operator">.</span><span class="Identifier">instLines</span><span class="Punctuation">:</span> <span class="Identifier">actual</span><span class="Operator">.</span><span class="Identifier">info</span> <span class="Keyword">else</span><span class="Punctuation">:</span> <span class="Identifier">templ</span><span class="Operator">.</span><span class="Identifier">info</span><span class="Punctuation">)</span></pre></p>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L200" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L200" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getOrDefault-procs-all">
<div id="getOrDefault,TIdTable[T],ItemId">
<dt><pre><span class="Keyword">proc</span> <a href="#getOrDefault%2CTIdTable%5BT%5D%2CItemId"><span class="Identifier">getOrDefault</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#TIdTable"><span class="Identifier">TIdTable</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="astdef.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L633" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L633" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getSymFromList-procs-all">
<div id="getSymFromList,PNode,PIdent,int">
<dt><pre><span class="Keyword">proc</span> <a href="#getSymFromList%2CPNode%2CPIdent%2Cint"><span class="Identifier">getSymFromList</span></a><span class="Other">(</span><span class="Identifier">list</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">ident</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">;</span> <span class="Identifier">start</span><span class="Other">:</span> <span class="Identifier">int</span> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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/astalgo.nim#L165" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L165" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hashNode-procs-all">
<div id="hashNode,RootRef">
<dt><pre><span class="Keyword">proc</span> <a href="#hashNode%2CRootRef"><span class="Identifier">hashNode</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <span class="Identifier">RootRef</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Hash</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/astalgo.nim#L26" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L26" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="iiTableGet-procs-all">
<div id="iiTableGet,TIITable,int">
<dt><pre><span class="Keyword">proc</span> <a href="#iiTableGet%2CTIITable%2Cint"><span class="Identifier">iiTableGet</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="#TIITable"><span class="Identifier">TIITable</span></a><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</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/astalgo.nim#L87" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L87" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="iiTablePut-procs-all">
<div id="iiTablePut,TIITable,int,int">
<dt><pre><span class="Keyword">proc</span> <a href="#iiTablePut%2CTIITable%2Cint%2Cint"><span class="Identifier">iiTablePut</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TIITable"><span class="Identifier">TIITable</span></a><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">,</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">int</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/astalgo.nim#L88" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L88" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initIdentIter-procs-all">
<div id="initIdentIter,TIdentIter,TStrTable,PIdent">
<dt><pre><span class="Keyword">proc</span> <a href="#initIdentIter%2CTIdentIter%2CTStrTable%2CPIdent"><span class="Identifier">initIdentIter</span></a><span class="Other">(</span><span class="Identifier">ti</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TIdentIter"><span class="Identifier">TIdentIter</span></a><span class="Other">;</span> <span class="Identifier">tab</span><span class="Other">:</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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/astalgo.nim#L552" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L552" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initIITable-procs-all">
<div id="initIITable,TIITable">
<dt><pre><span class="Keyword">proc</span> <a href="#initIITable%2CTIITable"><span class="Identifier">initIITable</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TIITable"><span class="Identifier">TIITable</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/astalgo.nim#L86" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L86" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initTabIter-procs-all">
<div id="initTabIter,TTabIter,TStrTable">
<dt><pre><span class="Keyword">proc</span> <a href="#initTabIter%2CTTabIter%2CTStrTable"><span class="Identifier">initTabIter</span></a><span class="Other">(</span><span class="Identifier">ti</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TTabIter"><span class="Identifier">TTabIter</span></a><span class="Other">;</span> <span class="Identifier">tab</span><span class="Other">:</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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/astalgo.nim#L601" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L601" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isDiscriminantField-procs-all">
<div id="isDiscriminantField,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#isDiscriminantField%2CPNode"><span class="Identifier">isDiscriminantField</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/astalgo.nim#L731" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L731" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="leValue-procs-all">
<div id="leValue,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#leValue%2CPNode%2CPNode"><span class="Identifier">leValue</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="astdef.html#PNode"><span class="Identifier">PNode</span></a><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="Identifier">ERecoverableError</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/astalgo.nim#L117" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L117" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="listSymbolNames-procs-all">
<div id="listSymbolNames,openArray[PSym]">
<dt><pre><span class="Keyword">proc</span> <a href="#listSymbolNames%2CopenArray%5BPSym%5D"><span class="Identifier">listSymbolNames</span></a><span class="Other">(</span><span class="Identifier">symbols</span><span class="Other">:</span> <span class="Identifier">openArray</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/astalgo.nim#L724" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L724" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="lookupInRecord-procs-all">
<div id="lookupInRecord,PNode,PIdent">
<dt><pre><span class="Keyword">proc</span> <a href="#lookupInRecord%2CPNode%2CPIdent"><span class="Identifier">lookupInRecord</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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/astalgo.nim#L70" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L70" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="nextIdentExcluding-procs-all">
<div id="nextIdentExcluding,TIdentIter,TStrTable,IntSet">
<dt><pre><span class="Keyword">proc</span> <a href="#nextIdentExcluding%2CTIdentIter%2CTStrTable%2CIntSet"><span class="Identifier">nextIdentExcluding</span></a><span class="Other">(</span><span class="Identifier">ti</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TIdentIter"><span class="Identifier">TIdentIter</span></a><span class="Other">;</span> <span class="Identifier">tab</span><span class="Other">:</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">;</span> <span class="Identifier">excluding</span><span class="Other">:</span> <span class="Identifier">IntSet</span><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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/astalgo.nim#L558" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L558" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="nextIdentIter-procs-all">
<div id="nextIdentIter,TIdentIter,TStrTable">
<dt><pre><span class="Keyword">proc</span> <a href="#nextIdentIter%2CTIdentIter%2CTStrTable"><span class="Identifier">nextIdentIter</span></a><span class="Other">(</span><span class="Identifier">ti</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TIdentIter"><span class="Identifier">TIdentIter</span></a><span class="Other">;</span> <span class="Identifier">tab</span><span class="Other">:</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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/astalgo.nim#L534" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L534" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="nextIter-procs-all">
<div id="nextIter,TTabIter,TStrTable">
<dt><pre><span class="Keyword">proc</span> <a href="#nextIter%2CTTabIter%2CTStrTable"><span class="Identifier">nextIter</span></a><span class="Other">(</span><span class="Identifier">ti</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TTabIter"><span class="Identifier">TTabIter</span></a><span class="Other">;</span> <span class="Identifier">tab</span><span class="Other">:</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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/astalgo.nim#L585" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L585" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="objectSetContains-procs-all">
<div id="objectSetContains,TObjectSet,RootRef">
<dt><pre><span class="Keyword">proc</span> <a href="#objectSetContains%2CTObjectSet%2CRootRef"><span class="Identifier">objectSetContains</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#TObjectSet"><span class="Identifier">TObjectSet</span></a><span class="Other">;</span> <span class="Identifier">obj</span><span class="Other">:</span> <span class="Identifier">RootRef</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/astalgo.nim#L481" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L481" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="objectSetContainsOrIncl-procs-all">
<div id="objectSetContainsOrIncl,TObjectSet,RootRef">
<dt><pre><span class="Keyword">proc</span> <a href="#objectSetContainsOrIncl%2CTObjectSet%2CRootRef"><span class="Identifier">objectSetContainsOrIncl</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="astdef.html#TObjectSet"><span class="Identifier">TObjectSet</span></a><span class="Other">;</span> <span class="Identifier">obj</span><span class="Other">:</span> <span class="Identifier">RootRef</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/astalgo.nim#L510" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L510" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="objectSetIncl-procs-all">
<div id="objectSetIncl,TObjectSet,RootRef">
<dt><pre><span class="Keyword">proc</span> <a href="#objectSetIncl%2CTObjectSet%2CRootRef"><span class="Identifier">objectSetIncl</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="astdef.html#TObjectSet"><span class="Identifier">TObjectSet</span></a><span class="Other">;</span> <span class="Identifier">obj</span><span class="Other">:</span> <span class="Identifier">RootRef</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/astalgo.nim#L505" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L505" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="sameValue-procs-all">
<div id="sameValue,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#sameValue%2CPNode%2CPNode"><span class="Identifier">sameValue</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="astdef.html#PNode"><span class="Identifier">PNode</span></a><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="Identifier">ERecoverableError</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/astalgo.nim#L103" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L103" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="skipConvCastAndClosure-procs-all">
<div id="skipConvCastAndClosure,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#skipConvCastAndClosure%2CPNode"><span class="Identifier">skipConvCastAndClosure</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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/astalgo.nim#L92" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L92" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="weakLeValue-procs-all">
<div id="weakLeValue,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#weakLeValue%2CPNode%2CPNode"><span class="Identifier">weakLeValue</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="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#TImplication"><span class="Identifier">TImplication</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="Identifier">ERecoverableError</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/astalgo.nim#L132" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L132" 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="idTablePairs-iterators-all">
<div id="idTablePairs.i,TIdTable[T]">
<dt><pre><span class="Keyword">iterator</span> <a href="#idTablePairs.i%2CTIdTable%5BT%5D"><span class="Identifier">idTablePairs</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#TIdTable"><span class="Identifier">TIdTable</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">key</span><span class="Other">:</span> <a href="astdef.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">,</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L674" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L674" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="items-iterators-all">
<div id="items.i,TStrTable">
<dt><pre><span class="Keyword">iterator</span> <a href="#items.i%2CTStrTable"><span class="Identifier">items</span></a><span class="Other">(</span><span class="Identifier">tab</span><span class="Other">:</span> <a href="astdef.html#TStrTable"><span class="Identifier">TStrTable</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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/astalgo.nim#L608" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L608" 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="debug-templates-all">
<div id="debug.t,auto">
<dt><pre><span class="Keyword">template</span> <a href="#debug.t%2Cauto"><span class="Identifier">debug</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">auto</span><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span></span>.}</pre></dt>
<dd>
<div class="deprecation-message">
<b>Deprecated</b>
</div>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L42" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L42" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="debug.t">
<dt><pre><span class="Keyword">template</span> <a href="#debug.t"><span class="Identifier">debug</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> <span class="Operator">|</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a> <span class="Operator">|</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span></span>.}</pre></dt>
<dd>
<div class="deprecation-message">
<b>Deprecated</b>
</div>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L34" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L34" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="idTableGet-templates-all">
<div id="idTableGet.t,TIdTable[T],">
<dt><pre><span class="Keyword">template</span> <a href="#idTableGet.t%2CTIdTable%5BT%5D%2C"><span class="Identifier">idTableGet</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#TIdTable"><span class="Identifier">TIdTable</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a> <span class="Operator">|</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L638" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L638" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="idTablePut-templates-all">
<div id="idTablePut.t,TIdTable[T],,T">
<dt><pre><span class="Keyword">template</span> <a href="#idTablePut.t%2CTIdTable%5BT%5D%2C%2CT"><span class="Identifier">idTablePut</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="astdef.html#TIdTable"><span class="Identifier">TIdTable</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a> <span class="Operator">|</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L671" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L671" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="mdbg-templates-all">
<div id="mdbg.t">
<dt><pre><span class="Keyword">template</span> <a href="#mdbg.t"><span class="Identifier">mdbg</span></a><span class="Other">(</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">deprecated</span></span>.}</pre></dt>
<dd>
<div class="deprecation-message">
<b>Deprecated</b>
</div>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astalgo.nim#L45" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astalgo.nim#L45" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
</dl>
</div>
<div class="section" id="19">
<h1><a class="toc-backref" href="#19">Exports</a></h1>
<dl class="item">
<a href="astyaml.html#treeToYaml,ConfigRef,PNode,int,int"><span class="Identifier">treeToYaml</span></a>, <a href="astyaml.html#typeToYaml,ConfigRef,PType,int,int"><span class="Identifier">typeToYaml</span></a>, <a href="astyaml.html#symToYaml,ConfigRef,PSym,int,int"><span class="Identifier">symToYaml</span></a>, <a href="astyaml.html#lineInfoToStr,ConfigRef,TLineInfo"><span class="Identifier">lineInfoToStr</span></a>
</dl>
</div>
</div>
</div>
<div class="twelve-columns footer">
<span class="nim-sprite"></span>
<br>
<small style="color: var(--hint);">Made with Nim. Generated: 2026-06-02 05:20:18 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

45
compiler/astalgo.idx Normal file
View File

@@ -0,0 +1,45 @@
nimTitle astalgo astalgo.html module astalgo 0
nim hashNode astalgo.html#hashNode,RootRef proc hashNode(p: RootRef): Hash 26
nim debug astalgo.html#debug,PSym,ConfigRef proc debug(n: PSym; conf: ConfigRef = nil) 30
nim debug astalgo.html#debug,PType,ConfigRef proc debug(n: PType; conf: ConfigRef = nil) 31
nim debug astalgo.html#debug,PNode,ConfigRef proc debug(n: PNode; conf: ConfigRef = nil) 32
nim debug astalgo.html#debug.t template debug(x: PSym | PType | PNode) 34
nim debug astalgo.html#debug.t,auto template debug(x: auto) 42
nim mdbg astalgo.html#mdbg.t template mdbg(): bool 45
nim lookupInRecord astalgo.html#lookupInRecord,PNode,PIdent proc lookupInRecord(n: PNode; field: PIdent): PSym 70
nim InvalidKey astalgo.html#InvalidKey const InvalidKey 74
nim TIIPair astalgo.html#TIIPair object TIIPair 77
nim TIIPairSeq astalgo.html#TIIPairSeq type TIIPairSeq 80
nim TIITable astalgo.html#TIITable object TIITable 81
nim initIITable astalgo.html#initIITable,TIITable proc initIITable(x: var TIITable) 86
nim iiTableGet astalgo.html#iiTableGet,TIITable,int proc iiTableGet(t: TIITable; key: int): int 87
nim iiTablePut astalgo.html#iiTablePut,TIITable,int,int proc iiTablePut(t: var TIITable; key, val: int) 88
nim skipConvCastAndClosure astalgo.html#skipConvCastAndClosure,PNode proc skipConvCastAndClosure(n: PNode): PNode 92
nim sameValue astalgo.html#sameValue,PNode,PNode proc sameValue(a, b: PNode): bool 103
nim leValue astalgo.html#leValue,PNode,PNode proc leValue(a, b: PNode): bool 117
nim weakLeValue astalgo.html#weakLeValue,PNode,PNode proc weakLeValue(a, b: PNode): TImplication 132
nim getModule astalgo.html#getModule,PSym proc getModule(s: PSym): PSym 159
nim fromSystem astalgo.html#fromSystem,PSym proc fromSystem(op: PSym): bool 164
nim getSymFromList astalgo.html#getSymFromList,PNode,PIdent,int proc getSymFromList(list: PNode; ident: PIdent; start: int = 0): PSym 165
nim getNamedParamFromList astalgo.html#getNamedParamFromList,PNode,PIdent proc getNamedParamFromList(list: PNode; ident: PIdent): PSym 200
nim objectSetContains astalgo.html#objectSetContains,TObjectSet,RootRef proc objectSetContains(t: TObjectSet; obj: RootRef): bool 481
nim objectSetIncl astalgo.html#objectSetIncl,TObjectSet,RootRef proc objectSetIncl(t: var TObjectSet; obj: RootRef) 505
nim objectSetContainsOrIncl astalgo.html#objectSetContainsOrIncl,TObjectSet,RootRef proc objectSetContainsOrIncl(t: var TObjectSet; obj: RootRef): bool 510
nim TIdentIter astalgo.html#TIdentIter object TIdentIter 530
nim nextIdentIter astalgo.html#nextIdentIter,TIdentIter,TStrTable proc nextIdentIter(ti: var TIdentIter; tab: TStrTable): PSym 534
nim initIdentIter astalgo.html#initIdentIter,TIdentIter,TStrTable,PIdent proc initIdentIter(ti: var TIdentIter; tab: TStrTable; s: PIdent): PSym 552
nim nextIdentExcluding astalgo.html#nextIdentExcluding,TIdentIter,TStrTable,IntSet proc nextIdentExcluding(ti: var TIdentIter; tab: TStrTable; excluding: IntSet): PSym 558
nim firstIdentExcluding astalgo.html#firstIdentExcluding,TIdentIter,TStrTable,PIdent,IntSet proc firstIdentExcluding(ti: var TIdentIter; tab: TStrTable; s: PIdent;\n excluding: IntSet): PSym 574
nim TTabIter astalgo.html#TTabIter object TTabIter 582
nim nextIter astalgo.html#nextIter,TTabIter,TStrTable proc nextIter(ti: var TTabIter; tab: TStrTable): PSym 585
nim initTabIter astalgo.html#initTabIter,TTabIter,TStrTable proc initTabIter(ti: var TTabIter; tab: TStrTable): PSym 601
nim items astalgo.html#items.i,TStrTable iterator items(tab: TStrTable): PSym 608
nim getOrDefault astalgo.html#getOrDefault,TIdTable[T],ItemId proc getOrDefault[T](t: TIdTable[T]; key: ItemId): T 633
nim idTableGet astalgo.html#idTableGet.t,TIdTable[T], template idTableGet[T](t: TIdTable[T]; key: PType | PSym): T 638
nim `[]=` astalgo.html#[]=,TIdTable[T],ItemId,T proc `[]=`[T](t: var TIdTable[T]; key: ItemId; val: T) 652
nim idTablePut astalgo.html#idTablePut.t,TIdTable[T],,T template idTablePut[T](t: var TIdTable[T]; key: PType | PSym; val: T) 671
nim idTablePairs astalgo.html#idTablePairs.i,TIdTable[T] iterator idTablePairs[T](t: TIdTable[T]): tuple[key: ItemId, val: T] 674
nim listSymbolNames astalgo.html#listSymbolNames,openArray[PSym] proc listSymbolNames(symbols: openArray[PSym]): string 724
nim isDiscriminantField astalgo.html#isDiscriminantField,PNode proc isDiscriminantField(n: PNode): bool 731
nimgrp debug astalgo.html#debug-procs-all proc 30
nimgrp debug astalgo.html#debug-templates-all template 34

2525
compiler/astdef.html Normal file

File diff suppressed because one or more lines are too long

725
compiler/astdef.idx Normal file
View File

@@ -0,0 +1,725 @@
nimTitle astdef astdef.html module astdef 0
nim ccNimCall astdef.html#ccNimCall TCallingConvention.ccNimCall 24
nim ccStdCall astdef.html#ccStdCall TCallingConvention.ccStdCall 24
nim ccCDecl astdef.html#ccCDecl TCallingConvention.ccCDecl 24
nim ccSafeCall astdef.html#ccSafeCall TCallingConvention.ccSafeCall 24
nim ccSysCall astdef.html#ccSysCall TCallingConvention.ccSysCall 24
nim ccInline astdef.html#ccInline TCallingConvention.ccInline 24
nim ccNoInline astdef.html#ccNoInline TCallingConvention.ccNoInline 24
nim ccFastCall astdef.html#ccFastCall TCallingConvention.ccFastCall 24
nim ccThisCall astdef.html#ccThisCall TCallingConvention.ccThisCall 24
nim ccClosure astdef.html#ccClosure TCallingConvention.ccClosure 24
nim ccNoConvention astdef.html#ccNoConvention TCallingConvention.ccNoConvention 24
nim ccMember astdef.html#ccMember TCallingConvention.ccMember 24
nim TCallingConvention astdef.html#TCallingConvention enum TCallingConvention 24
nim TNodeKinds astdef.html#TNodeKinds type TNodeKinds 38
nim sfUsed astdef.html#sfUsed TSymFlag.sfUsed 41
nim sfExported astdef.html#sfExported TSymFlag.sfExported 41
nim sfFromGeneric astdef.html#sfFromGeneric TSymFlag.sfFromGeneric 41
nim sfGlobal astdef.html#sfGlobal TSymFlag.sfGlobal 41
nim sfForward astdef.html#sfForward TSymFlag.sfForward 41
nim sfWasForwarded astdef.html#sfWasForwarded TSymFlag.sfWasForwarded 41
nim sfImportc astdef.html#sfImportc TSymFlag.sfImportc 41
nim sfExportc astdef.html#sfExportc TSymFlag.sfExportc 41
nim sfMangleCpp astdef.html#sfMangleCpp TSymFlag.sfMangleCpp 41
nim sfVolatile astdef.html#sfVolatile TSymFlag.sfVolatile 41
nim sfRegister astdef.html#sfRegister TSymFlag.sfRegister 41
nim sfPure astdef.html#sfPure TSymFlag.sfPure 41
nim sfNoSideEffect astdef.html#sfNoSideEffect TSymFlag.sfNoSideEffect 41
nim sfSideEffect astdef.html#sfSideEffect TSymFlag.sfSideEffect 41
nim sfMainModule astdef.html#sfMainModule TSymFlag.sfMainModule 41
nim sfSystemModule astdef.html#sfSystemModule TSymFlag.sfSystemModule 41
nim sfNoReturn astdef.html#sfNoReturn TSymFlag.sfNoReturn 41
nim sfAddrTaken astdef.html#sfAddrTaken TSymFlag.sfAddrTaken 41
nim sfCompilerProc astdef.html#sfCompilerProc TSymFlag.sfCompilerProc 41
nim sfEscapes astdef.html#sfEscapes TSymFlag.sfEscapes 41
nim sfDiscriminant astdef.html#sfDiscriminant TSymFlag.sfDiscriminant 41
nim sfRequiresInit astdef.html#sfRequiresInit TSymFlag.sfRequiresInit 41
nim sfDeprecated astdef.html#sfDeprecated TSymFlag.sfDeprecated 41
nim sfExplain astdef.html#sfExplain TSymFlag.sfExplain 41
nim sfError astdef.html#sfError TSymFlag.sfError 41
nim sfShadowed astdef.html#sfShadowed TSymFlag.sfShadowed 41
nim sfThread astdef.html#sfThread TSymFlag.sfThread 41
nim sfCppNonPod astdef.html#sfCppNonPod TSymFlag.sfCppNonPod 41
nim sfCompileTime astdef.html#sfCompileTime TSymFlag.sfCompileTime 41
nim sfConstructor astdef.html#sfConstructor TSymFlag.sfConstructor 41
nim sfDispatcher astdef.html#sfDispatcher TSymFlag.sfDispatcher 41
nim sfBorrow astdef.html#sfBorrow TSymFlag.sfBorrow 41
nim sfInfixCall astdef.html#sfInfixCall TSymFlag.sfInfixCall 41
nim sfNamedParamCall astdef.html#sfNamedParamCall TSymFlag.sfNamedParamCall 41
nim sfDiscardable astdef.html#sfDiscardable TSymFlag.sfDiscardable 41
nim sfOverridden astdef.html#sfOverridden TSymFlag.sfOverridden 41
nim sfCallsite astdef.html#sfCallsite TSymFlag.sfCallsite 41
nim sfGenSym astdef.html#sfGenSym TSymFlag.sfGenSym 41
nim sfNonReloadable astdef.html#sfNonReloadable TSymFlag.sfNonReloadable 41
nim sfGeneratedOp astdef.html#sfGeneratedOp TSymFlag.sfGeneratedOp 41
nim sfTemplateParam astdef.html#sfTemplateParam TSymFlag.sfTemplateParam 41
nim sfCursor astdef.html#sfCursor TSymFlag.sfCursor 41
nim sfInjectDestructors astdef.html#sfInjectDestructors TSymFlag.sfInjectDestructors 41
nim sfNeverRaises astdef.html#sfNeverRaises TSymFlag.sfNeverRaises 41
nim sfSystemRaisesDefect astdef.html#sfSystemRaisesDefect TSymFlag.sfSystemRaisesDefect 41
nim sfUsedInFinallyOrExcept astdef.html#sfUsedInFinallyOrExcept TSymFlag.sfUsedInFinallyOrExcept 41
nim sfSingleUsedTemp astdef.html#sfSingleUsedTemp TSymFlag.sfSingleUsedTemp 41
nim sfNoalias astdef.html#sfNoalias TSymFlag.sfNoalias 41
nim sfEffectsDelayed astdef.html#sfEffectsDelayed TSymFlag.sfEffectsDelayed 41
nim sfGeneratedType astdef.html#sfGeneratedType TSymFlag.sfGeneratedType 41
nim sfVirtual astdef.html#sfVirtual TSymFlag.sfVirtual 41
nim sfByCopy astdef.html#sfByCopy TSymFlag.sfByCopy 41
nim sfMember astdef.html#sfMember TSymFlag.sfMember 41
nim sfCodegenDecl astdef.html#sfCodegenDecl TSymFlag.sfCodegenDecl 41
nim sfWasGenSym astdef.html#sfWasGenSym TSymFlag.sfWasGenSym 41
nim sfForceLift astdef.html#sfForceLift TSymFlag.sfForceLift 41
nim sfDirty astdef.html#sfDirty TSymFlag.sfDirty 41
nim sfCustomPragma astdef.html#sfCustomPragma TSymFlag.sfCustomPragma 41
nim sfBase astdef.html#sfBase TSymFlag.sfBase 41
nim sfGoto astdef.html#sfGoto TSymFlag.sfGoto 41
nim sfAnon astdef.html#sfAnon TSymFlag.sfAnon 41
nim sfAllUntyped astdef.html#sfAllUntyped TSymFlag.sfAllUntyped 41
nim sfTemplateRedefinition astdef.html#sfTemplateRedefinition TSymFlag.sfTemplateRedefinition 41
nim TSymFlag astdef.html#TSymFlag enum TSymFlag 41
nim TSymFlags astdef.html#TSymFlags type TSymFlags 140
nim sfNoInit astdef.html#sfNoInit const sfNoInit 143
nim sfNoForward astdef.html#sfNoForward const sfNoForward 145
nim sfReorder astdef.html#sfReorder const sfReorder 147
nim sfCompileToCpp astdef.html#sfCompileToCpp const sfCompileToCpp 150
nim sfCompileToObjc astdef.html#sfCompileToObjc const sfCompileToObjc 151
nim sfExperimental astdef.html#sfExperimental const sfExperimental 152
nim sfWrittenTo astdef.html#sfWrittenTo const sfWrittenTo 153
nim sfCppMember astdef.html#sfCppMember const sfCppMember 155
nim nkWhen astdef.html#nkWhen const nkWhen 159
nim nkWhenExpr astdef.html#nkWhenExpr const nkWhenExpr 160
nim nkEffectList astdef.html#nkEffectList const nkEffectList 161
nim exceptionEffects astdef.html#exceptionEffects const exceptionEffects 163
nim requiresEffects astdef.html#requiresEffects const requiresEffects 164
nim ensuresEffects astdef.html#ensuresEffects const ensuresEffects 165
nim tagEffects astdef.html#tagEffects const tagEffects 166
nim pragmasEffects astdef.html#pragmasEffects const pragmasEffects 167
nim forbiddenEffects astdef.html#forbiddenEffects const forbiddenEffects 168
nim effectListLen astdef.html#effectListLen const effectListLen 169
nim nkLastBlockStmts astdef.html#nkLastBlockStmts const nkLastBlockStmts 170
nim tyNone astdef.html#tyNone TTypeKind.tyNone 174
nim tyBool astdef.html#tyBool TTypeKind.tyBool 174
nim tyChar astdef.html#tyChar TTypeKind.tyChar 174
nim tyEmpty astdef.html#tyEmpty TTypeKind.tyEmpty 174
nim tyAlias astdef.html#tyAlias TTypeKind.tyAlias 174
nim tyNil astdef.html#tyNil TTypeKind.tyNil 174
nim tyUntyped astdef.html#tyUntyped TTypeKind.tyUntyped 174
nim tyTyped astdef.html#tyTyped TTypeKind.tyTyped 174
nim tyTypeDesc astdef.html#tyTypeDesc TTypeKind.tyTypeDesc 174
nim tyGenericInvocation astdef.html#tyGenericInvocation TTypeKind.tyGenericInvocation 174
nim tyGenericBody astdef.html#tyGenericBody TTypeKind.tyGenericBody 174
nim tyGenericInst astdef.html#tyGenericInst TTypeKind.tyGenericInst 174
nim tyGenericParam astdef.html#tyGenericParam TTypeKind.tyGenericParam 174
nim tyDistinct astdef.html#tyDistinct TTypeKind.tyDistinct 174
nim tyEnum astdef.html#tyEnum TTypeKind.tyEnum 174
nim tyOrdinal astdef.html#tyOrdinal TTypeKind.tyOrdinal 174
nim tyArray astdef.html#tyArray TTypeKind.tyArray 174
nim tyObject astdef.html#tyObject TTypeKind.tyObject 174
nim tyTuple astdef.html#tyTuple TTypeKind.tyTuple 174
nim tySet astdef.html#tySet TTypeKind.tySet 174
nim tyRange astdef.html#tyRange TTypeKind.tyRange 174
nim tyPtr astdef.html#tyPtr TTypeKind.tyPtr 174
nim tyRef astdef.html#tyRef TTypeKind.tyRef 174
nim tyVar astdef.html#tyVar TTypeKind.tyVar 174
nim tySequence astdef.html#tySequence TTypeKind.tySequence 174
nim tyProc astdef.html#tyProc TTypeKind.tyProc 174
nim tyPointer astdef.html#tyPointer TTypeKind.tyPointer 174
nim tyOpenArray astdef.html#tyOpenArray TTypeKind.tyOpenArray 174
nim tyString astdef.html#tyString TTypeKind.tyString 174
nim tyCstring astdef.html#tyCstring TTypeKind.tyCstring 174
nim tyForward astdef.html#tyForward TTypeKind.tyForward 174
nim tyInt astdef.html#tyInt TTypeKind.tyInt 174
nim tyInt8 astdef.html#tyInt8 TTypeKind.tyInt8 174
nim tyInt16 astdef.html#tyInt16 TTypeKind.tyInt16 174
nim tyInt32 astdef.html#tyInt32 TTypeKind.tyInt32 174
nim tyInt64 astdef.html#tyInt64 TTypeKind.tyInt64 174
nim tyFloat astdef.html#tyFloat TTypeKind.tyFloat 174
nim tyFloat32 astdef.html#tyFloat32 TTypeKind.tyFloat32 174
nim tyFloat64 astdef.html#tyFloat64 TTypeKind.tyFloat64 174
nim tyFloat128 astdef.html#tyFloat128 TTypeKind.tyFloat128 174
nim tyUInt astdef.html#tyUInt TTypeKind.tyUInt 174
nim tyUInt8 astdef.html#tyUInt8 TTypeKind.tyUInt8 174
nim tyUInt16 astdef.html#tyUInt16 TTypeKind.tyUInt16 174
nim tyUInt32 astdef.html#tyUInt32 TTypeKind.tyUInt32 174
nim tyUInt64 astdef.html#tyUInt64 TTypeKind.tyUInt64 174
nim tyOwned astdef.html#tyOwned TTypeKind.tyOwned 174
nim tySink astdef.html#tySink TTypeKind.tySink 174
nim tyLent astdef.html#tyLent TTypeKind.tyLent 174
nim tyVarargs astdef.html#tyVarargs TTypeKind.tyVarargs 174
nim tyUncheckedArray astdef.html#tyUncheckedArray TTypeKind.tyUncheckedArray 174
nim tyError astdef.html#tyError TTypeKind.tyError 174
nim tyBuiltInTypeClass astdef.html#tyBuiltInTypeClass TTypeKind.tyBuiltInTypeClass 174
nim tyUserTypeClass astdef.html#tyUserTypeClass TTypeKind.tyUserTypeClass 174
nim tyUserTypeClassInst astdef.html#tyUserTypeClassInst TTypeKind.tyUserTypeClassInst 174
nim tyCompositeTypeClass astdef.html#tyCompositeTypeClass TTypeKind.tyCompositeTypeClass 174
nim tyInferred astdef.html#tyInferred TTypeKind.tyInferred 174
nim tyAnd astdef.html#tyAnd TTypeKind.tyAnd 174
nim tyOr astdef.html#tyOr TTypeKind.tyOr 174
nim tyNot astdef.html#tyNot TTypeKind.tyNot 174
nim tyAnything astdef.html#tyAnything TTypeKind.tyAnything 174
nim tyStatic astdef.html#tyStatic TTypeKind.tyStatic 174
nim tyFromExpr astdef.html#tyFromExpr TTypeKind.tyFromExpr 174
nim tyConcept astdef.html#tyConcept TTypeKind.tyConcept 174
nim tyVoid astdef.html#tyVoid TTypeKind.tyVoid 174
nim tyIterable astdef.html#tyIterable TTypeKind.tyIterable 174
nim TTypeKind astdef.html#TTypeKind enum TTypeKind 174
nim tyPureObject astdef.html#tyPureObject const tyPureObject 279
nim GcTypeKinds astdef.html#GcTypeKinds const GcTypeKinds 280
nim tyTypeClasses astdef.html#tyTypeClasses const tyTypeClasses 282
nim tyMetaTypes astdef.html#tyMetaTypes const tyMetaTypes 286
nim tyUserTypeClasses astdef.html#tyUserTypeClasses const tyUserTypeClasses 287
nim abstractVarRange astdef.html#abstractVarRange const abstractVarRange 289
nim abstractInst astdef.html#abstractInst const abstractInst 291
nim TTypeKinds astdef.html#TTypeKinds type TTypeKinds 295
nim nfNone astdef.html#nfNone TNodeFlag.nfNone 297
nim nfBase2 astdef.html#nfBase2 TNodeFlag.nfBase2 297
nim nfBase8 astdef.html#nfBase8 TNodeFlag.nfBase8 297
nim nfBase16 astdef.html#nfBase16 TNodeFlag.nfBase16 297
nim nfAllConst astdef.html#nfAllConst TNodeFlag.nfAllConst 297
nim nfTransf astdef.html#nfTransf TNodeFlag.nfTransf 297
nim nfNoRewrite astdef.html#nfNoRewrite TNodeFlag.nfNoRewrite 297
nim nfSem astdef.html#nfSem TNodeFlag.nfSem 297
nim nfLL astdef.html#nfLL TNodeFlag.nfLL 297
nim nfDotField astdef.html#nfDotField TNodeFlag.nfDotField 297
nim nfDotSetter astdef.html#nfDotSetter TNodeFlag.nfDotSetter 297
nim nfExplicitCall astdef.html#nfExplicitCall TNodeFlag.nfExplicitCall 297
nim nfExprCall astdef.html#nfExprCall TNodeFlag.nfExprCall 297
nim nfIsRef astdef.html#nfIsRef TNodeFlag.nfIsRef 297
nim nfIsPtr astdef.html#nfIsPtr TNodeFlag.nfIsPtr 297
nim nfPreventCg astdef.html#nfPreventCg TNodeFlag.nfPreventCg 297
nim nfBlockArg astdef.html#nfBlockArg TNodeFlag.nfBlockArg 297
nim nfFromTemplate astdef.html#nfFromTemplate TNodeFlag.nfFromTemplate 297
nim nfDefaultParam astdef.html#nfDefaultParam TNodeFlag.nfDefaultParam 297
nim nfDefaultRefsParam astdef.html#nfDefaultRefsParam TNodeFlag.nfDefaultRefsParam 297
nim nfExecuteOnReload astdef.html#nfExecuteOnReload TNodeFlag.nfExecuteOnReload 297
nim nfLastRead astdef.html#nfLastRead TNodeFlag.nfLastRead 297
nim nfFirstWrite astdef.html#nfFirstWrite TNodeFlag.nfFirstWrite 297
nim nfHasComment astdef.html#nfHasComment TNodeFlag.nfHasComment 297
nim nfSkipFieldChecking astdef.html#nfSkipFieldChecking TNodeFlag.nfSkipFieldChecking 297
nim nfDisabledOpenSym astdef.html#nfDisabledOpenSym TNodeFlag.nfDisabledOpenSym 297
nim nfLazyType astdef.html#nfLazyType TNodeFlag.nfLazyType 297
nim TNodeFlag astdef.html#TNodeFlag enum TNodeFlag 297
nim TNodeFlags astdef.html#TNodeFlags type TNodeFlags 331
nim tfVarargs astdef.html#tfVarargs TTypeFlag.tfVarargs 332
nim tfNoSideEffect astdef.html#tfNoSideEffect TTypeFlag.tfNoSideEffect 332
nim tfFinal astdef.html#tfFinal TTypeFlag.tfFinal 332
nim tfInheritable astdef.html#tfInheritable TTypeFlag.tfInheritable 332
nim tfHasOwned astdef.html#tfHasOwned TTypeFlag.tfHasOwned 332
nim tfEnumHasHoles astdef.html#tfEnumHasHoles TTypeFlag.tfEnumHasHoles 332
nim tfShallow astdef.html#tfShallow TTypeFlag.tfShallow 332
nim tfThread astdef.html#tfThread TTypeFlag.tfThread 332
nim tfFromGeneric astdef.html#tfFromGeneric TTypeFlag.tfFromGeneric 332
nim tfUnresolved astdef.html#tfUnresolved TTypeFlag.tfUnresolved 332
nim tfResolved astdef.html#tfResolved TTypeFlag.tfResolved 332
nim tfRetType astdef.html#tfRetType TTypeFlag.tfRetType 332
nim tfCapturesEnv astdef.html#tfCapturesEnv TTypeFlag.tfCapturesEnv 332
nim tfByCopy astdef.html#tfByCopy TTypeFlag.tfByCopy 332
nim tfByRef astdef.html#tfByRef TTypeFlag.tfByRef 332
nim tfIterator astdef.html#tfIterator TTypeFlag.tfIterator 332
nim tfPartial astdef.html#tfPartial TTypeFlag.tfPartial 332
nim tfNotNil astdef.html#tfNotNil TTypeFlag.tfNotNil 332
nim tfRequiresInit astdef.html#tfRequiresInit TTypeFlag.tfRequiresInit 332
nim tfNeedsFullInit astdef.html#tfNeedsFullInit TTypeFlag.tfNeedsFullInit 332
nim tfVarIsPtr astdef.html#tfVarIsPtr TTypeFlag.tfVarIsPtr 332
nim tfHasMeta astdef.html#tfHasMeta TTypeFlag.tfHasMeta 332
nim tfHasGCedMem astdef.html#tfHasGCedMem TTypeFlag.tfHasGCedMem 332
nim tfPacked astdef.html#tfPacked TTypeFlag.tfPacked 332
nim tfHasStatic astdef.html#tfHasStatic TTypeFlag.tfHasStatic 332
nim tfGenericTypeParam astdef.html#tfGenericTypeParam TTypeFlag.tfGenericTypeParam 332
nim tfImplicitTypeParam astdef.html#tfImplicitTypeParam TTypeFlag.tfImplicitTypeParam 332
nim tfInferrableStatic astdef.html#tfInferrableStatic TTypeFlag.tfInferrableStatic 332
nim tfConceptMatchedTypeSym astdef.html#tfConceptMatchedTypeSym TTypeFlag.tfConceptMatchedTypeSym 332
nim tfExplicit astdef.html#tfExplicit TTypeFlag.tfExplicit 332
nim tfWildcard astdef.html#tfWildcard TTypeFlag.tfWildcard 332
nim tfHasAsgn astdef.html#tfHasAsgn TTypeFlag.tfHasAsgn 332
nim tfBorrowDot astdef.html#tfBorrowDot TTypeFlag.tfBorrowDot 332
nim tfTriggersCompileTime astdef.html#tfTriggersCompileTime TTypeFlag.tfTriggersCompileTime 332
nim tfRefsAnonObj astdef.html#tfRefsAnonObj TTypeFlag.tfRefsAnonObj 332
nim tfCovariant astdef.html#tfCovariant TTypeFlag.tfCovariant 332
nim tfWeakCovariant astdef.html#tfWeakCovariant TTypeFlag.tfWeakCovariant 332
nim tfContravariant astdef.html#tfContravariant TTypeFlag.tfContravariant 332
nim tfCheckedForDestructor astdef.html#tfCheckedForDestructor TTypeFlag.tfCheckedForDestructor 332
nim tfAcyclic astdef.html#tfAcyclic TTypeFlag.tfAcyclic 332
nim tfIncompleteStruct astdef.html#tfIncompleteStruct TTypeFlag.tfIncompleteStruct 332
nim tfCompleteStruct astdef.html#tfCompleteStruct TTypeFlag.tfCompleteStruct 332
nim tfExplicitCallConv astdef.html#tfExplicitCallConv TTypeFlag.tfExplicitCallConv 332
nim tfIsConstructor astdef.html#tfIsConstructor TTypeFlag.tfIsConstructor 332
nim tfEffectSystemWorkaround astdef.html#tfEffectSystemWorkaround TTypeFlag.tfEffectSystemWorkaround 332
nim tfIsOutParam astdef.html#tfIsOutParam TTypeFlag.tfIsOutParam 332
nim tfSendable astdef.html#tfSendable TTypeFlag.tfSendable 332
nim tfImplicitStatic astdef.html#tfImplicitStatic TTypeFlag.tfImplicitStatic 332
nim TTypeFlag astdef.html#TTypeFlag enum TTypeFlag 332
nim TTypeFlags astdef.html#TTypeFlags type TTypeFlags 405
nim skUnknown astdef.html#skUnknown TSymKind.skUnknown 407
nim skConditional astdef.html#skConditional TSymKind.skConditional 407
nim skDynLib astdef.html#skDynLib TSymKind.skDynLib 407
nim skParam astdef.html#skParam TSymKind.skParam 407
nim skGenericParam astdef.html#skGenericParam TSymKind.skGenericParam 407
nim skTemp astdef.html#skTemp TSymKind.skTemp 407
nim skModule astdef.html#skModule TSymKind.skModule 407
nim skType astdef.html#skType TSymKind.skType 407
nim skVar astdef.html#skVar TSymKind.skVar 407
nim skLet astdef.html#skLet TSymKind.skLet 407
nim skConst astdef.html#skConst TSymKind.skConst 407
nim skResult astdef.html#skResult TSymKind.skResult 407
nim skProc astdef.html#skProc TSymKind.skProc 407
nim skFunc astdef.html#skFunc TSymKind.skFunc 407
nim skMethod astdef.html#skMethod TSymKind.skMethod 407
nim skIterator astdef.html#skIterator TSymKind.skIterator 407
nim skConverter astdef.html#skConverter TSymKind.skConverter 407
nim skMacro astdef.html#skMacro TSymKind.skMacro 407
nim skTemplate astdef.html#skTemplate TSymKind.skTemplate 407
nim skField astdef.html#skField TSymKind.skField 407
nim skEnumField astdef.html#skEnumField TSymKind.skEnumField 407
nim skForVar astdef.html#skForVar TSymKind.skForVar 407
nim skLabel astdef.html#skLabel TSymKind.skLabel 407
nim skStub astdef.html#skStub TSymKind.skStub 407
nim skPackage astdef.html#skPackage TSymKind.skPackage 407
nim TSymKind astdef.html#TSymKind enum TSymKind 407
nim TSymKinds astdef.html#TSymKinds type TSymKinds 439
nim routineKinds astdef.html#routineKinds const routineKinds 442
nim ExportableSymKinds astdef.html#ExportableSymKinds const ExportableSymKinds 444
nim tfUnion astdef.html#tfUnion const tfUnion 446
nim tfGcSafe astdef.html#tfGcSafe const tfGcSafe 447
nim tfObjHasKids astdef.html#tfObjHasKids const tfObjHasKids 448
nim tfReturnsNew astdef.html#tfReturnsNew const tfReturnsNew 449
nim tfNonConstExpr astdef.html#tfNonConstExpr const tfNonConstExpr 450
nim tfGenericHasDestructor astdef.html#tfGenericHasDestructor const tfGenericHasDestructor 452
nim skError astdef.html#skError const skError 454
nim eqTypeFlags astdef.html#eqTypeFlags var eqTypeFlags 457
nim mNone astdef.html#mNone TMagic.mNone 463
nim mDefined astdef.html#mDefined TMagic.mDefined 463
nim mDeclared astdef.html#mDeclared TMagic.mDeclared 463
nim mDeclaredInScope astdef.html#mDeclaredInScope TMagic.mDeclaredInScope 463
nim mCompiles astdef.html#mCompiles TMagic.mCompiles 463
nim mArrGet astdef.html#mArrGet TMagic.mArrGet 463
nim mArrPut astdef.html#mArrPut TMagic.mArrPut 463
nim mAsgn astdef.html#mAsgn TMagic.mAsgn 463
nim mLow astdef.html#mLow TMagic.mLow 463
nim mHigh astdef.html#mHigh TMagic.mHigh 463
nim mSizeOf astdef.html#mSizeOf TMagic.mSizeOf 463
nim mAlignOf astdef.html#mAlignOf TMagic.mAlignOf 463
nim mOffsetOf astdef.html#mOffsetOf TMagic.mOffsetOf 463
nim mTypeTrait astdef.html#mTypeTrait TMagic.mTypeTrait 463
nim mIs astdef.html#mIs TMagic.mIs 463
nim mOf astdef.html#mOf TMagic.mOf 463
nim mAddr astdef.html#mAddr TMagic.mAddr 463
nim mType astdef.html#mType TMagic.mType 463
nim mTypeOf astdef.html#mTypeOf TMagic.mTypeOf 463
nim mPlugin astdef.html#mPlugin TMagic.mPlugin 463
nim mEcho astdef.html#mEcho TMagic.mEcho 463
nim mShallowCopy astdef.html#mShallowCopy TMagic.mShallowCopy 463
nim mSlurp astdef.html#mSlurp TMagic.mSlurp 463
nim mStaticExec astdef.html#mStaticExec TMagic.mStaticExec 463
nim mStatic astdef.html#mStatic TMagic.mStatic 463
nim mParseExprToAst astdef.html#mParseExprToAst TMagic.mParseExprToAst 463
nim mParseStmtToAst astdef.html#mParseStmtToAst TMagic.mParseStmtToAst 463
nim mExpandToAst astdef.html#mExpandToAst TMagic.mExpandToAst 463
nim mQuoteAst astdef.html#mQuoteAst TMagic.mQuoteAst 463
nim mInc astdef.html#mInc TMagic.mInc 463
nim mDec astdef.html#mDec TMagic.mDec 463
nim mOrd astdef.html#mOrd TMagic.mOrd 463
nim mNew astdef.html#mNew TMagic.mNew 463
nim mNewFinalize astdef.html#mNewFinalize TMagic.mNewFinalize 463
nim mNewSeq astdef.html#mNewSeq TMagic.mNewSeq 463
nim mNewSeqOfCap astdef.html#mNewSeqOfCap TMagic.mNewSeqOfCap 463
nim mLengthOpenArray astdef.html#mLengthOpenArray TMagic.mLengthOpenArray 463
nim mLengthStr astdef.html#mLengthStr TMagic.mLengthStr 463
nim mLengthArray astdef.html#mLengthArray TMagic.mLengthArray 463
nim mLengthSeq astdef.html#mLengthSeq TMagic.mLengthSeq 463
nim mIncl astdef.html#mIncl TMagic.mIncl 463
nim mExcl astdef.html#mExcl TMagic.mExcl 463
nim mCard astdef.html#mCard TMagic.mCard 463
nim mChr astdef.html#mChr TMagic.mChr 463
nim mGCref astdef.html#mGCref TMagic.mGCref 463
nim mGCunref astdef.html#mGCunref TMagic.mGCunref 463
nim mAddI astdef.html#mAddI TMagic.mAddI 463
nim mSubI astdef.html#mSubI TMagic.mSubI 463
nim mMulI astdef.html#mMulI TMagic.mMulI 463
nim mDivI astdef.html#mDivI TMagic.mDivI 463
nim mModI astdef.html#mModI TMagic.mModI 463
nim mSucc astdef.html#mSucc TMagic.mSucc 463
nim mPred astdef.html#mPred TMagic.mPred 463
nim mAddF64 astdef.html#mAddF64 TMagic.mAddF64 463
nim mSubF64 astdef.html#mSubF64 TMagic.mSubF64 463
nim mMulF64 astdef.html#mMulF64 TMagic.mMulF64 463
nim mDivF64 astdef.html#mDivF64 TMagic.mDivF64 463
nim mShrI astdef.html#mShrI TMagic.mShrI 463
nim mShlI astdef.html#mShlI TMagic.mShlI 463
nim mAshrI astdef.html#mAshrI TMagic.mAshrI 463
nim mBitandI astdef.html#mBitandI TMagic.mBitandI 463
nim mBitorI astdef.html#mBitorI TMagic.mBitorI 463
nim mBitxorI astdef.html#mBitxorI TMagic.mBitxorI 463
nim mMinI astdef.html#mMinI TMagic.mMinI 463
nim mMaxI astdef.html#mMaxI TMagic.mMaxI 463
nim mAddU astdef.html#mAddU TMagic.mAddU 463
nim mSubU astdef.html#mSubU TMagic.mSubU 463
nim mMulU astdef.html#mMulU TMagic.mMulU 463
nim mDivU astdef.html#mDivU TMagic.mDivU 463
nim mModU astdef.html#mModU TMagic.mModU 463
nim mEqI astdef.html#mEqI TMagic.mEqI 463
nim mLeI astdef.html#mLeI TMagic.mLeI 463
nim mLtI astdef.html#mLtI TMagic.mLtI 463
nim mEqF64 astdef.html#mEqF64 TMagic.mEqF64 463
nim mLeF64 astdef.html#mLeF64 TMagic.mLeF64 463
nim mLtF64 astdef.html#mLtF64 TMagic.mLtF64 463
nim mLeU astdef.html#mLeU TMagic.mLeU 463
nim mLtU astdef.html#mLtU TMagic.mLtU 463
nim mEqEnum astdef.html#mEqEnum TMagic.mEqEnum 463
nim mLeEnum astdef.html#mLeEnum TMagic.mLeEnum 463
nim mLtEnum astdef.html#mLtEnum TMagic.mLtEnum 463
nim mEqCh astdef.html#mEqCh TMagic.mEqCh 463
nim mLeCh astdef.html#mLeCh TMagic.mLeCh 463
nim mLtCh astdef.html#mLtCh TMagic.mLtCh 463
nim mEqB astdef.html#mEqB TMagic.mEqB 463
nim mLeB astdef.html#mLeB TMagic.mLeB 463
nim mLtB astdef.html#mLtB TMagic.mLtB 463
nim mEqRef astdef.html#mEqRef TMagic.mEqRef 463
nim mLePtr astdef.html#mLePtr TMagic.mLePtr 463
nim mLtPtr astdef.html#mLtPtr TMagic.mLtPtr 463
nim mXor astdef.html#mXor TMagic.mXor 463
nim mEqCString astdef.html#mEqCString TMagic.mEqCString 463
nim mEqProc astdef.html#mEqProc TMagic.mEqProc 463
nim mUnaryMinusI astdef.html#mUnaryMinusI TMagic.mUnaryMinusI 463
nim mUnaryMinusI64 astdef.html#mUnaryMinusI64 TMagic.mUnaryMinusI64 463
nim mAbsI astdef.html#mAbsI TMagic.mAbsI 463
nim mNot astdef.html#mNot TMagic.mNot 463
nim mUnaryPlusI astdef.html#mUnaryPlusI TMagic.mUnaryPlusI 463
nim mBitnotI astdef.html#mBitnotI TMagic.mBitnotI 463
nim mUnaryPlusF64 astdef.html#mUnaryPlusF64 TMagic.mUnaryPlusF64 463
nim mUnaryMinusF64 astdef.html#mUnaryMinusF64 TMagic.mUnaryMinusF64 463
nim mCharToStr astdef.html#mCharToStr TMagic.mCharToStr 463
nim mBoolToStr astdef.html#mBoolToStr TMagic.mBoolToStr 463
nim mCStrToStr astdef.html#mCStrToStr TMagic.mCStrToStr 463
nim mStrToStr astdef.html#mStrToStr TMagic.mStrToStr 463
nim mEnumToStr astdef.html#mEnumToStr TMagic.mEnumToStr 463
nim mAnd astdef.html#mAnd TMagic.mAnd 463
nim mOr astdef.html#mOr TMagic.mOr 463
nim mImplies astdef.html#mImplies TMagic.mImplies 463
nim mIff astdef.html#mIff TMagic.mIff 463
nim mExists astdef.html#mExists TMagic.mExists 463
nim mForall astdef.html#mForall TMagic.mForall 463
nim mOld astdef.html#mOld TMagic.mOld 463
nim mEqStr astdef.html#mEqStr TMagic.mEqStr 463
nim mLeStr astdef.html#mLeStr TMagic.mLeStr 463
nim mLtStr astdef.html#mLtStr TMagic.mLtStr 463
nim mEqSet astdef.html#mEqSet TMagic.mEqSet 463
nim mLeSet astdef.html#mLeSet TMagic.mLeSet 463
nim mLtSet astdef.html#mLtSet TMagic.mLtSet 463
nim mMulSet astdef.html#mMulSet TMagic.mMulSet 463
nim mPlusSet astdef.html#mPlusSet TMagic.mPlusSet 463
nim mMinusSet astdef.html#mMinusSet TMagic.mMinusSet 463
nim mXorSet astdef.html#mXorSet TMagic.mXorSet 463
nim mConStrStr astdef.html#mConStrStr TMagic.mConStrStr 463
nim mSlice astdef.html#mSlice TMagic.mSlice 463
nim mDotDot astdef.html#mDotDot TMagic.mDotDot 463
nim mFields astdef.html#mFields TMagic.mFields 463
nim mFieldPairs astdef.html#mFieldPairs TMagic.mFieldPairs 463
nim mOmpParFor astdef.html#mOmpParFor TMagic.mOmpParFor 463
nim mAppendStrCh astdef.html#mAppendStrCh TMagic.mAppendStrCh 463
nim mAppendStrStr astdef.html#mAppendStrStr TMagic.mAppendStrStr 463
nim mAppendSeqElem astdef.html#mAppendSeqElem TMagic.mAppendSeqElem 463
nim mInSet astdef.html#mInSet TMagic.mInSet 463
nim mRepr astdef.html#mRepr TMagic.mRepr 463
nim mExit astdef.html#mExit TMagic.mExit 463
nim mSetLengthStr astdef.html#mSetLengthStr TMagic.mSetLengthStr 463
nim mSetLengthSeq astdef.html#mSetLengthSeq TMagic.mSetLengthSeq 463
nim mSetLengthSeqUninit astdef.html#mSetLengthSeqUninit TMagic.mSetLengthSeqUninit 463
nim mIsPartOf astdef.html#mIsPartOf TMagic.mIsPartOf 463
nim mAstToStr astdef.html#mAstToStr TMagic.mAstToStr 463
nim mParallel astdef.html#mParallel TMagic.mParallel 463
nim mSwap astdef.html#mSwap TMagic.mSwap 463
nim mIsNil astdef.html#mIsNil TMagic.mIsNil 463
nim mArrToSeq astdef.html#mArrToSeq TMagic.mArrToSeq 463
nim mOpenArrayToSeq astdef.html#mOpenArrayToSeq TMagic.mOpenArrayToSeq 463
nim mNewString astdef.html#mNewString TMagic.mNewString 463
nim mNewStringOfCap astdef.html#mNewStringOfCap TMagic.mNewStringOfCap 463
nim mParseBiggestFloat astdef.html#mParseBiggestFloat TMagic.mParseBiggestFloat 463
nim mMove astdef.html#mMove TMagic.mMove 463
nim mEnsureMove astdef.html#mEnsureMove TMagic.mEnsureMove 463
nim mWasMoved astdef.html#mWasMoved TMagic.mWasMoved 463
nim mDup astdef.html#mDup TMagic.mDup 463
nim mDestroy astdef.html#mDestroy TMagic.mDestroy 463
nim mTrace astdef.html#mTrace TMagic.mTrace 463
nim mDefault astdef.html#mDefault TMagic.mDefault 463
nim mUnown astdef.html#mUnown TMagic.mUnown 463
nim mFinished astdef.html#mFinished TMagic.mFinished 463
nim mIsolate astdef.html#mIsolate TMagic.mIsolate 463
nim mAccessEnv astdef.html#mAccessEnv TMagic.mAccessEnv 463
nim mAccessTypeField astdef.html#mAccessTypeField TMagic.mAccessTypeField 463
nim mArray astdef.html#mArray TMagic.mArray 463
nim mOpenArray astdef.html#mOpenArray TMagic.mOpenArray 463
nim mRange astdef.html#mRange TMagic.mRange 463
nim mSet astdef.html#mSet TMagic.mSet 463
nim mSeq astdef.html#mSeq TMagic.mSeq 463
nim mVarargs astdef.html#mVarargs TMagic.mVarargs 463
nim mRef astdef.html#mRef TMagic.mRef 463
nim mPtr astdef.html#mPtr TMagic.mPtr 463
nim mVar astdef.html#mVar TMagic.mVar 463
nim mDistinct astdef.html#mDistinct TMagic.mDistinct 463
nim mVoid astdef.html#mVoid TMagic.mVoid 463
nim mTuple astdef.html#mTuple TMagic.mTuple 463
nim mOrdinal astdef.html#mOrdinal TMagic.mOrdinal 463
nim mIterableType astdef.html#mIterableType TMagic.mIterableType 463
nim mInt astdef.html#mInt TMagic.mInt 463
nim mInt8 astdef.html#mInt8 TMagic.mInt8 463
nim mInt16 astdef.html#mInt16 TMagic.mInt16 463
nim mInt32 astdef.html#mInt32 TMagic.mInt32 463
nim mInt64 astdef.html#mInt64 TMagic.mInt64 463
nim mUInt astdef.html#mUInt TMagic.mUInt 463
nim mUInt8 astdef.html#mUInt8 TMagic.mUInt8 463
nim mUInt16 astdef.html#mUInt16 TMagic.mUInt16 463
nim mUInt32 astdef.html#mUInt32 TMagic.mUInt32 463
nim mUInt64 astdef.html#mUInt64 TMagic.mUInt64 463
nim mFloat astdef.html#mFloat TMagic.mFloat 463
nim mFloat32 astdef.html#mFloat32 TMagic.mFloat32 463
nim mFloat64 astdef.html#mFloat64 TMagic.mFloat64 463
nim mFloat128 astdef.html#mFloat128 TMagic.mFloat128 463
nim mBool astdef.html#mBool TMagic.mBool 463
nim mChar astdef.html#mChar TMagic.mChar 463
nim mString astdef.html#mString TMagic.mString 463
nim mCstring astdef.html#mCstring TMagic.mCstring 463
nim mPointer astdef.html#mPointer TMagic.mPointer 463
nim mNil astdef.html#mNil TMagic.mNil 463
nim mExpr astdef.html#mExpr TMagic.mExpr 463
nim mStmt astdef.html#mStmt TMagic.mStmt 463
nim mTypeDesc astdef.html#mTypeDesc TMagic.mTypeDesc 463
nim mVoidType astdef.html#mVoidType TMagic.mVoidType 463
nim mPNimrodNode astdef.html#mPNimrodNode TMagic.mPNimrodNode 463
nim mSpawn astdef.html#mSpawn TMagic.mSpawn 463
nim mDeepCopy astdef.html#mDeepCopy TMagic.mDeepCopy 463
nim mIsMainModule astdef.html#mIsMainModule TMagic.mIsMainModule 463
nim mCompileDate astdef.html#mCompileDate TMagic.mCompileDate 463
nim mCompileTime astdef.html#mCompileTime TMagic.mCompileTime 463
nim mProcCall astdef.html#mProcCall TMagic.mProcCall 463
nim mCpuEndian astdef.html#mCpuEndian TMagic.mCpuEndian 463
nim mHostOS astdef.html#mHostOS TMagic.mHostOS 463
nim mHostCPU astdef.html#mHostCPU TMagic.mHostCPU 463
nim mBuildOS astdef.html#mBuildOS TMagic.mBuildOS 463
nim mBuildCPU astdef.html#mBuildCPU TMagic.mBuildCPU 463
nim mAppType astdef.html#mAppType TMagic.mAppType 463
nim mCompileOption astdef.html#mCompileOption TMagic.mCompileOption 463
nim mCompileOptionArg astdef.html#mCompileOptionArg TMagic.mCompileOptionArg 463
nim mNLen astdef.html#mNLen TMagic.mNLen 463
nim mNChild astdef.html#mNChild TMagic.mNChild 463
nim mNSetChild astdef.html#mNSetChild TMagic.mNSetChild 463
nim mNAdd astdef.html#mNAdd TMagic.mNAdd 463
nim mNAddMultiple astdef.html#mNAddMultiple TMagic.mNAddMultiple 463
nim mNDel astdef.html#mNDel TMagic.mNDel 463
nim mNKind astdef.html#mNKind TMagic.mNKind 463
nim mNSymKind astdef.html#mNSymKind TMagic.mNSymKind 463
nim mNccValue astdef.html#mNccValue TMagic.mNccValue 463
nim mNccInc astdef.html#mNccInc TMagic.mNccInc 463
nim mNcsAdd astdef.html#mNcsAdd TMagic.mNcsAdd 463
nim mNcsIncl astdef.html#mNcsIncl TMagic.mNcsIncl 463
nim mNcsLen astdef.html#mNcsLen TMagic.mNcsLen 463
nim mNcsAt astdef.html#mNcsAt TMagic.mNcsAt 463
nim mNctPut astdef.html#mNctPut TMagic.mNctPut 463
nim mNctLen astdef.html#mNctLen TMagic.mNctLen 463
nim mNctGet astdef.html#mNctGet TMagic.mNctGet 463
nim mNctHasNext astdef.html#mNctHasNext TMagic.mNctHasNext 463
nim mNctNext astdef.html#mNctNext TMagic.mNctNext 463
nim mNIntVal astdef.html#mNIntVal TMagic.mNIntVal 463
nim mNFloatVal astdef.html#mNFloatVal TMagic.mNFloatVal 463
nim mNSymbol astdef.html#mNSymbol TMagic.mNSymbol 463
nim mNIdent astdef.html#mNIdent TMagic.mNIdent 463
nim mNGetType astdef.html#mNGetType TMagic.mNGetType 463
nim mNStrVal astdef.html#mNStrVal TMagic.mNStrVal 463
nim mNSetIntVal astdef.html#mNSetIntVal TMagic.mNSetIntVal 463
nim mNSetFloatVal astdef.html#mNSetFloatVal TMagic.mNSetFloatVal 463
nim mNSetSymbol astdef.html#mNSetSymbol TMagic.mNSetSymbol 463
nim mNSetIdent astdef.html#mNSetIdent TMagic.mNSetIdent 463
nim mNSetStrVal astdef.html#mNSetStrVal TMagic.mNSetStrVal 463
nim mNLineInfo astdef.html#mNLineInfo TMagic.mNLineInfo 463
nim mNNewNimNode astdef.html#mNNewNimNode TMagic.mNNewNimNode 463
nim mNCopyNimNode astdef.html#mNCopyNimNode TMagic.mNCopyNimNode 463
nim mNCopyNimTree astdef.html#mNCopyNimTree TMagic.mNCopyNimTree 463
nim mStrToIdent astdef.html#mStrToIdent TMagic.mStrToIdent 463
nim mNSigHash astdef.html#mNSigHash TMagic.mNSigHash 463
nim mNSizeOf astdef.html#mNSizeOf TMagic.mNSizeOf 463
nim mNBindSym astdef.html#mNBindSym TMagic.mNBindSym 463
nim mNCallSite astdef.html#mNCallSite TMagic.mNCallSite 463
nim mEqIdent astdef.html#mEqIdent TMagic.mEqIdent 463
nim mEqNimrodNode astdef.html#mEqNimrodNode TMagic.mEqNimrodNode 463
nim mSameNodeType astdef.html#mSameNodeType TMagic.mSameNodeType 463
nim mGetImpl astdef.html#mGetImpl TMagic.mGetImpl 463
nim mNGenSym astdef.html#mNGenSym TMagic.mNGenSym 463
nim mNHint astdef.html#mNHint TMagic.mNHint 463
nim mNWarning astdef.html#mNWarning TMagic.mNWarning 463
nim mNError astdef.html#mNError TMagic.mNError 463
nim mInstantiationInfo astdef.html#mInstantiationInfo TMagic.mInstantiationInfo 463
nim mGetTypeInfo astdef.html#mGetTypeInfo TMagic.mGetTypeInfo 463
nim mGetTypeInfoV2 astdef.html#mGetTypeInfoV2 TMagic.mGetTypeInfoV2 463
nim mNimvm astdef.html#mNimvm TMagic.mNimvm 463
nim mIntDefine astdef.html#mIntDefine TMagic.mIntDefine 463
nim mStrDefine astdef.html#mStrDefine TMagic.mStrDefine 463
nim mBoolDefine astdef.html#mBoolDefine TMagic.mBoolDefine 463
nim mGenericDefine astdef.html#mGenericDefine TMagic.mGenericDefine 463
nim mRunnableExamples astdef.html#mRunnableExamples TMagic.mRunnableExamples 463
nim mException astdef.html#mException TMagic.mException 463
nim mBuiltinType astdef.html#mBuiltinType TMagic.mBuiltinType 463
nim mSymOwner astdef.html#mSymOwner TMagic.mSymOwner 463
nim mUncheckedArray astdef.html#mUncheckedArray TMagic.mUncheckedArray 463
nim mGetImplTransf astdef.html#mGetImplTransf TMagic.mGetImplTransf 463
nim mSymIsInstantiationOf astdef.html#mSymIsInstantiationOf TMagic.mSymIsInstantiationOf 463
nim mNodeId astdef.html#mNodeId TMagic.mNodeId 463
nim mPrivateAccess astdef.html#mPrivateAccess TMagic.mPrivateAccess 463
nim mZeroDefault astdef.html#mZeroDefault TMagic.mZeroDefault 463
nim TMagic astdef.html#TMagic enum TMagic 463
nim ctfeWhitelist astdef.html#ctfeWhitelist const ctfeWhitelist 543
nim generatedMagics astdef.html#generatedMagics const generatedMagics 571
nim ItemId astdef.html#ItemId object ItemId 575
nim `$` astdef.html#$,ItemId proc `$`(x: ItemId): string 579
nim `==` astdef.html#==,ItemId,ItemId proc `==`(a, b: ItemId): bool 582
nim hash astdef.html#hash,ItemId proc hash(x: ItemId): Hash 585
nim PNode astdef.html#PNode type PNode 592
nim TNodeSeq astdef.html#TNodeSeq type TNodeSeq 593
nim PType astdef.html#PType type PType 594
nim PSym astdef.html#PSym type PSym 595
nim TNode astdef.html#TNode object TNode 596
nim TStrTable astdef.html#TStrTable object TStrTable 618
nim locNone astdef.html#locNone TLocKind.locNone 623
nim locTemp astdef.html#locTemp TLocKind.locTemp 623
nim locLocalVar astdef.html#locLocalVar TLocKind.locLocalVar 623
nim locGlobalVar astdef.html#locGlobalVar TLocKind.locGlobalVar 623
nim locParam astdef.html#locParam TLocKind.locParam 623
nim locField astdef.html#locField TLocKind.locField 623
nim locExpr astdef.html#locExpr TLocKind.locExpr 623
nim locProc astdef.html#locProc TLocKind.locProc 623
nim locData astdef.html#locData TLocKind.locData 623
nim locCall astdef.html#locCall TLocKind.locCall 623
nim locOther astdef.html#locOther TLocKind.locOther 623
nim TLocKind astdef.html#TLocKind enum TLocKind 623
nim lfIndirect astdef.html#lfIndirect TLocFlag.lfIndirect 635
nim lfNoDeepCopy astdef.html#lfNoDeepCopy TLocFlag.lfNoDeepCopy 635
nim lfNoDecl astdef.html#lfNoDecl TLocFlag.lfNoDecl 635
nim lfDynamicLib astdef.html#lfDynamicLib TLocFlag.lfDynamicLib 635
nim lfExportLib astdef.html#lfExportLib TLocFlag.lfExportLib 635
nim lfHeader astdef.html#lfHeader TLocFlag.lfHeader 635
nim lfImportCompilerProc astdef.html#lfImportCompilerProc TLocFlag.lfImportCompilerProc 635
nim lfSingleUse astdef.html#lfSingleUse TLocFlag.lfSingleUse 635
nim lfEnforceDeref astdef.html#lfEnforceDeref TLocFlag.lfEnforceDeref 635
nim lfPrepareForMutation astdef.html#lfPrepareForMutation TLocFlag.lfPrepareForMutation 635
nim TLocFlag astdef.html#TLocFlag enum TLocFlag 635
nim OnUnknown astdef.html#OnUnknown TStorageLoc.OnUnknown 648
nim OnStatic astdef.html#OnStatic TStorageLoc.OnStatic 648
nim OnStack astdef.html#OnStack TStorageLoc.OnStack 648
nim OnHeap astdef.html#OnHeap TStorageLoc.OnHeap 648
nim TStorageLoc astdef.html#TStorageLoc enum TStorageLoc 648
nim TLocFlags astdef.html#TLocFlags type TLocFlags 654
nim TLoc astdef.html#TLoc object TLoc 655
nim libHeader astdef.html#libHeader TLibKind.libHeader 664
nim libDynamic astdef.html#libDynamic TLibKind.libDynamic 664
nim TLibKind astdef.html#TLibKind enum TLibKind 664
nim TLib astdef.html#TLib object TLib 667
nim CompilesId astdef.html#CompilesId type CompilesId 676
nim TInstantiation astdef.html#TInstantiation object TInstantiation 678
nim PInstantiation astdef.html#PInstantiation type PInstantiation 686
nim TScope astdef.html#TScope object TScope 688
nim PScope astdef.html#PScope type PScope 695
nim Complete astdef.html#Complete ItemState.Complete 697
nim Partial astdef.html#Partial ItemState.Partial 697
nim Sealed astdef.html#Sealed ItemState.Sealed 697
nim ItemState astdef.html#ItemState enum ItemState 697
nim PLib astdef.html#PLib type PLib 702
nim TSym astdef.html#TSym object TSym 703
nim TTypeSeq astdef.html#TTypeSeq type TTypeSeq 764
nim attachedWasMoved astdef.html#attachedWasMoved TTypeAttachedOp.attachedWasMoved 766
nim attachedDestructor astdef.html#attachedDestructor TTypeAttachedOp.attachedDestructor 766
nim attachedAsgn astdef.html#attachedAsgn TTypeAttachedOp.attachedAsgn 766
nim attachedDup astdef.html#attachedDup TTypeAttachedOp.attachedDup 766
nim attachedSink astdef.html#attachedSink TTypeAttachedOp.attachedSink 766
nim attachedTrace astdef.html#attachedTrace TTypeAttachedOp.attachedTrace 766
nim attachedDeepCopy astdef.html#attachedDeepCopy TTypeAttachedOp.attachedDeepCopy 766
nim TTypeAttachedOp astdef.html#TTypeAttachedOp enum TTypeAttachedOp 766
nim TType astdef.html#TType object TType 775
nim TPair astdef.html#TPair object TPair 808
nim TPairSeq astdef.html#TPairSeq type TPairSeq 811
nim TIdPair astdef.html#TIdPair object TIdPair 813
nim TIdPairSeq astdef.html#TIdPairSeq type TIdPairSeq 817
nim TIdTable astdef.html#TIdTable object TIdTable 818
nim TNodePair astdef.html#TNodePair object TNodePair 822
nim TNodePairSeq astdef.html#TNodePairSeq type TNodePairSeq 827
nim TNodeTable astdef.html#TNodeTable object TNodeTable 828
nim TObjectSeq astdef.html#TObjectSeq type TObjectSeq 834
nim TObjectSet astdef.html#TObjectSet object TObjectSet 835
nim impUnknown astdef.html#impUnknown TImplication.impUnknown 839
nim impNo astdef.html#impNo TImplication.impNo 839
nim impYes astdef.html#impYes TImplication.impYes 839
nim TImplication astdef.html#TImplication enum TImplication 839
nim OverloadableSyms astdef.html#OverloadableSyms const OverloadableSyms 844
nim GenericTypes astdef.html#GenericTypes const GenericTypes 847
nim StructuralEquivTypes astdef.html#StructuralEquivTypes const StructuralEquivTypes 850
nim ConcreteTypes astdef.html#ConcreteTypes const ConcreteTypes 854
nim IntegralTypes astdef.html#IntegralTypes const IntegralTypes 861
nim ConstantDataTypes astdef.html#ConstantDataTypes const ConstantDataTypes 863
nim NilableTypes astdef.html#NilableTypes const NilableTypes 865
nim PtrLikeKinds astdef.html#PtrLikeKinds const PtrLikeKinds 867
nim PersistentNodeFlags astdef.html#PersistentNodeFlags const PersistentNodeFlags 868
nim namePos astdef.html#namePos const namePos 875
nim patternPos astdef.html#patternPos const patternPos 876
nim genericParamsPos astdef.html#genericParamsPos const genericParamsPos 877
nim paramsPos astdef.html#paramsPos const paramsPos 878
nim pragmasPos astdef.html#pragmasPos const pragmasPos 879
nim miscPos astdef.html#miscPos const miscPos 880
nim bodyPos astdef.html#bodyPos const bodyPos 881
nim resultPos astdef.html#resultPos const resultPos 882
nim dispatcherPos astdef.html#dispatcherPos const dispatcherPos 883
nim nfAllFieldsSet astdef.html#nfAllFieldsSet const nfAllFieldsSet 885
nim nkIdentKinds astdef.html#nkIdentKinds const nkIdentKinds 887
nim nkPragmaCallKinds astdef.html#nkPragmaCallKinds const nkPragmaCallKinds 890
nim nkLiterals astdef.html#nkLiterals const nkLiterals 891
nim nkFloatLiterals astdef.html#nkFloatLiterals const nkFloatLiterals 892
nim nkLambdaKinds astdef.html#nkLambdaKinds const nkLambdaKinds 893
nim declarativeDefs astdef.html#declarativeDefs const declarativeDefs 894
nim routineDefs astdef.html#routineDefs const routineDefs 895
nim procDefs astdef.html#procDefs const procDefs 896
nim callableDefs astdef.html#callableDefs const callableDefs 897
nim nkSymChoices astdef.html#nkSymChoices const nkSymChoices 899
nim nkStrKinds astdef.html#nkStrKinds const nkStrKinds 900
nim skLocalVars astdef.html#skLocalVars const skLocalVars 902
nim skProcKinds astdef.html#skProcKinds const skProcKinds 903
nim defaultSize astdef.html#defaultSize const defaultSize 906
nim defaultAlignment astdef.html#defaultAlignment const defaultAlignment 907
nim defaultOffset astdef.html#defaultOffset const defaultOffset 908
nim len astdef.html#len,PNode proc len(n: PNode): int 911
nim safeLen astdef.html#safeLen,PNode proc safeLen(n: PNode): int 914
nim `[]` astdef.html#[].t,PNode,int template `[]`(n: PNode; i: int): PNode 919
nim `[]=` astdef.html#[]=.t,PNode,int,PNode template `[]=`(n: PNode; i: int; x: PNode) 920
nim `[]` astdef.html#[].t,PNode,BackwardsIndex template `[]`(n: PNode; i: BackwardsIndex): PNode 922
nim `[]=` astdef.html#[]=.t,PNode,BackwardsIndex,PNode template `[]=`(n: PNode; i: BackwardsIndex; x: PNode) 923
nim items astdef.html#items.i,PNode iterator items(n: PNode): PNode 925
nim newNode astdef.html#newNode,TNodeKind proc newNode(kind: TNodeKind): PNode 950
nim newNodeI astdef.html#newNodeI,TNodeKind,TLineInfo proc newNodeI(kind: TNodeKind; info: TLineInfo): PNode 955
nim newNodeI astdef.html#newNodeI,TNodeKind,TLineInfo,int proc newNodeI(kind: TNodeKind; info: TLineInfo; children: int): PNode 960
nim newNodeIT astdef.html#newNodeIT,TNodeKind,TLineInfo,PType proc newNodeIT(kind: TNodeKind; info: TLineInfo; typ: PType): PNode 967
nim newNode astdef.html#newNode,TNodeKind,TLineInfo proc newNode(kind: TNodeKind; info: TLineInfo): PNode 973
nim newIdentNode astdef.html#newIdentNode,PIdent,TLineInfo proc newIdentNode(ident: PIdent; info: TLineInfo): PNode 978
nim newSymNode astdef.html#newSymNode,PSym,TLineInfo proc newSymNode(sym: PSym; info: TLineInfo): PNode 983
nim newStrNode astdef.html#newStrNode,TNodeKind,string proc newStrNode(kind: TNodeKind; strVal: string): PNode 989
nim newStrNode astdef.html#newStrNode,string,TLineInfo proc newStrNode(strVal: string; info: TLineInfo): PNode 993
nim HookEntry astdef.html#HookEntry LogEntryKind.HookEntry 1002
nim ConverterEntry astdef.html#ConverterEntry LogEntryKind.ConverterEntry 1002
nim MethodEntry astdef.html#MethodEntry LogEntryKind.MethodEntry 1002
nim EnumToStrEntry astdef.html#EnumToStrEntry LogEntryKind.EnumToStrEntry 1002
nim GenericInstEntry astdef.html#GenericInstEntry LogEntryKind.GenericInstEntry 1002
nim LogEntryKind astdef.html#LogEntryKind enum LogEntryKind 1002
nim LogEntry astdef.html#LogEntry object LogEntry 1004
nim forcePartial astdef.html#forcePartial,PSym proc forcePartial(s: PSym) 1013
nim forcePartial astdef.html#forcePartial,PType proc forcePartial(t: PType) 1047
nim GrowthFactor astdef.html#GrowthFactor const GrowthFactor 1065
nim StartSize astdef.html#StartSize const StartSize 1066
nim nextTry astdef.html#nextTry,Hash,Hash proc nextTry(h, maxHash: Hash): Hash 1068
nim mustRehash astdef.html#mustRehash,int,int proc mustRehash(length, counter: int): bool 1074
nim strTableContains astdef.html#strTableContains,TStrTable,PSym proc strTableContains(t: TStrTable; n: PSym): bool 1078
nim symTabReplace astdef.html#symTabReplace,TStrTable,PSym,PSym proc symTabReplace(t: var TStrTable; prevSym: PSym; newSym: PSym) 1107
nim strTableAdd astdef.html#strTableAdd,TStrTable,PSym proc strTableAdd(t: var TStrTable; n: PSym) 1117
nim strTableInclReportConflict astdef.html#strTableInclReportConflict,TStrTable,PSym proc strTableInclReportConflict(t: var TStrTable; n: PSym; onConflictKeepOld = false): PSym 1122
nim strTableIncl astdef.html#strTableIncl,TStrTable,PSym proc strTableIncl(t: var TStrTable; n: PSym; onConflictKeepOld = false): bool 1155
nim strTableGet astdef.html#strTableGet,TStrTable,PIdent proc strTableGet(t: TStrTable; name: PIdent): PSym 1159
nimgrp newnodei astdef.html#newNodeI-procs-all proc 955
nimgrp newstrnode astdef.html#newStrNode-procs-all proc 989
nimgrp newnode astdef.html#newNode-procs-all proc 950
nimgrp forcepartial astdef.html#forcePartial-procs-all proc 1013
nimgrp []= astdef.html#[]=-templates-all template 920
nimgrp [] astdef.html#[]-templates-all template 919

256
compiler/astmsgs.html Normal file
View File

@@ -0,0 +1,256 @@
<?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>astmsgs</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">astmsgs</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">addDeclaredLoc
<li><a class="reference" href="#addDeclaredLoc%2Cstring%2CConfigRef%2CPSym" title="addDeclaredLoc(result: var string; conf: ConfigRef; sym: PSym)">addDeclaredLoc(result: var string; conf: ConfigRef; sym: PSym)</a></li>
<li><a class="reference" href="#addDeclaredLoc%2Cstring%2CConfigRef%2CPType" title="addDeclaredLoc(result: var string; conf: ConfigRef; typ: PType)">addDeclaredLoc(result: var string; conf: ConfigRef; typ: PType)</a></li>
</ul>
<ul class="simple nested-toc-section">addDeclaredLocMaybe
<li><a class="reference" href="#addDeclaredLocMaybe%2Cstring%2CConfigRef%2CPSym" title="addDeclaredLocMaybe(result: var string; conf: ConfigRef; sym: PSym)">addDeclaredLocMaybe(result: var string; conf: ConfigRef; sym: PSym)</a></li>
<li><a class="reference" href="#addDeclaredLocMaybe%2Cstring%2CConfigRef%2CPType" title="addDeclaredLocMaybe(result: var string; conf: ConfigRef; typ: PType)">addDeclaredLocMaybe(result: var string; conf: ConfigRef; typ: PType)</a></li>
</ul>
<ul class="simple nested-toc-section">addTypeNodeDeclaredLoc
<li><a class="reference" href="#addTypeNodeDeclaredLoc%2Cstring%2CConfigRef%2CPType" title="addTypeNodeDeclaredLoc(result: var string; conf: ConfigRef; typ: PType)">addTypeNodeDeclaredLoc(result: var string; conf: ConfigRef; typ: PType)</a></li>
</ul>
<ul class="simple nested-toc-section">genFieldDefect
<li><a class="reference" href="#genFieldDefect%2CConfigRef%2Cstring%2CPSym" title="genFieldDefect(conf: ConfigRef; field: string; disc: PSym): string">genFieldDefect(conf: ConfigRef; field: string; disc: PSym): string</a></li>
</ul>
<ul class="simple nested-toc-section">typSym
<li><a class="reference" href="#typSym%2CPType" title="typSym(t: PType): PSym">typSym(t: PType): PSym</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">quoteExpr
<li><a class="reference" href="#quoteExpr.t%2Cstring" title="quoteExpr(a: string): untyped">quoteExpr(a: string): untyped</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/astmsgs.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astmsgs.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="options.html">options</a>, <a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="msgs.html">msgs</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="addDeclaredLoc-procs-all">
<div id="addDeclaredLoc,string,ConfigRef,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#addDeclaredLoc%2Cstring%2CConfigRef%2CPSym"><span class="Identifier">addDeclaredLoc</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">sym</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/astmsgs.nim#L10" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astmsgs.nim#L10" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="addDeclaredLoc,string,ConfigRef,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#addDeclaredLoc%2Cstring%2CConfigRef%2CPType"><span class="Identifier">addDeclaredLoc</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">typ</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/astmsgs.nim#L17" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astmsgs.nim#L17" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addDeclaredLocMaybe-procs-all">
<div id="addDeclaredLocMaybe,string,ConfigRef,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#addDeclaredLocMaybe%2Cstring%2CConfigRef%2CPSym"><span class="Identifier">addDeclaredLocMaybe</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">sym</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/astmsgs.nim#L13" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astmsgs.nim#L13" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="addDeclaredLocMaybe,string,ConfigRef,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#addDeclaredLocMaybe%2Cstring%2CConfigRef%2CPType"><span class="Identifier">addDeclaredLocMaybe</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">typ</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/astmsgs.nim#L33" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astmsgs.nim#L33" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addTypeNodeDeclaredLoc-procs-all">
<div id="addTypeNodeDeclaredLoc,string,ConfigRef,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#addTypeNodeDeclaredLoc%2Cstring%2CConfigRef%2CPType"><span class="Identifier">addTypeNodeDeclaredLoc</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">typ</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</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">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/astmsgs.nim#L27" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astmsgs.nim#L27" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genFieldDefect-procs-all">
<div id="genFieldDefect,ConfigRef,string,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#genFieldDefect%2CConfigRef%2Cstring%2CPSym"><span class="Identifier">genFieldDefect</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">disc</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/astmsgs.nim#L40" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astmsgs.nim#L40" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="typSym-procs-all">
<div id="typSym,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#typSym%2CPType"><span class="Identifier">typSym</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/astmsgs.nim#L5" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astmsgs.nim#L5" 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="quoteExpr-templates-all">
<div id="quoteExpr.t,string">
<dt><pre><span class="Keyword">template</span> <a href="#quoteExpr.t%2Cstring"><span class="Identifier">quoteExpr</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">untyped</span></pre></dt>
<dd>
can be used for quoting expressions in error msgs.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/astmsgs.nim#L36" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astmsgs.nim#L36" 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: 2026-06-02 05:20:18 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

11
compiler/astmsgs.idx Normal file
View File

@@ -0,0 +1,11 @@
nimTitle astmsgs astmsgs.html module astmsgs 0
nim typSym astmsgs.html#typSym,PType proc typSym(t: PType): PSym 5
nim addDeclaredLoc astmsgs.html#addDeclaredLoc,string,ConfigRef,PSym proc addDeclaredLoc(result: var string; conf: ConfigRef; sym: PSym) 10
nim addDeclaredLocMaybe astmsgs.html#addDeclaredLocMaybe,string,ConfigRef,PSym proc addDeclaredLocMaybe(result: var string; conf: ConfigRef; sym: PSym) 13
nim addDeclaredLoc astmsgs.html#addDeclaredLoc,string,ConfigRef,PType proc addDeclaredLoc(result: var string; conf: ConfigRef; typ: PType) 17
nim addTypeNodeDeclaredLoc astmsgs.html#addTypeNodeDeclaredLoc,string,ConfigRef,PType proc addTypeNodeDeclaredLoc(result: var string; conf: ConfigRef; typ: PType) 27
nim addDeclaredLocMaybe astmsgs.html#addDeclaredLocMaybe,string,ConfigRef,PType proc addDeclaredLocMaybe(result: var string; conf: ConfigRef; typ: PType) 33
nim quoteExpr astmsgs.html#quoteExpr.t,string template quoteExpr(a: string): untyped 36
nim genFieldDefect astmsgs.html#genFieldDefect,ConfigRef,string,PSym proc genFieldDefect(conf: ConfigRef; field: string; disc: PSym): string 40
nimgrp adddeclaredloc astmsgs.html#addDeclaredLoc-procs-all proc 10
nimgrp adddeclaredlocmaybe astmsgs.html#addDeclaredLocMaybe-procs-all proc 13

200
compiler/astyaml.html Normal file
View File

@@ -0,0 +1,200 @@
<?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>astyaml</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">astyaml</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">addYamlString
<li><a class="reference" href="#addYamlString%2Cstring%2Cstring" title="addYamlString(res: var string; s: string)">addYamlString(res: var string; s: string)</a></li>
</ul>
<ul class="simple nested-toc-section">lineInfoToStr
<li><a class="reference" href="#lineInfoToStr%2CConfigRef%2CTLineInfo" title="lineInfoToStr(conf: ConfigRef; info: TLineInfo): string">lineInfoToStr(conf: ConfigRef; info: TLineInfo): string</a></li>
</ul>
<ul class="simple nested-toc-section">symToYaml
<li><a class="reference" href="#symToYaml%2CConfigRef%2CPSym%2Cint%2Cint" title="symToYaml(conf: ConfigRef; n: PSym; indent: int = 0; maxRecDepth: int = -1): string">symToYaml(conf: ConfigRef; n: PSym; indent: int = 0; maxRecDepth: int = -1): string</a></li>
</ul>
<ul class="simple nested-toc-section">treeToYaml
<li><a class="reference" href="#treeToYaml%2CConfigRef%2CPNode%2Cint%2Cint" title="treeToYaml(conf: ConfigRef; n: PNode; indent: int = 0; maxRecDepth: int = -1): string">treeToYaml(conf: ConfigRef; n: PNode; indent: int = 0; maxRecDepth: int = -1): string</a></li>
</ul>
<ul class="simple nested-toc-section">typeToYaml
<li><a class="reference" href="#typeToYaml%2CConfigRef%2CPType%2Cint%2Cint" title="typeToYaml(conf: ConfigRef; n: PType; indent: int = 0; maxRecDepth: int = -1): string">typeToYaml(conf: ConfigRef; n: PType; indent: int = 0; maxRecDepth: int = -1): string</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/astyaml.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astyaml.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="rodutils.html">rodutils</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="addYamlString-procs-all">
<div id="addYamlString,string,string">
<dt><pre><span class="Keyword">proc</span> <a href="#addYamlString%2Cstring%2Cstring"><span class="Identifier">addYamlString</span></a><span class="Other">(</span><span class="Identifier">res</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</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/astyaml.nim#L15" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astyaml.nim#L15" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="lineInfoToStr-procs-all">
<div id="lineInfoToStr,ConfigRef,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#lineInfoToStr%2CConfigRef%2CTLineInfo"><span class="Identifier">lineInfoToStr</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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">ValueError</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/astyaml.nim#L43" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astyaml.nim#L43" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="symToYaml-procs-all">
<div id="symToYaml,ConfigRef,PSym,int,int">
<dt><pre><span class="Keyword">proc</span> <a href="#symToYaml%2CConfigRef%2CPSym%2Cint%2Cint"><span class="Identifier">symToYaml</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">indent</span><span class="Other">:</span> <span class="Identifier">int</span> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">;</span> <span class="Identifier">maxRecDepth</span><span class="Other">:</span> <span class="Identifier">int</span> <span class="Other">=</span> <span class="DecNumber">-1</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/astyaml.nim#L151" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astyaml.nim#L151" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="treeToYaml-procs-all">
<div id="treeToYaml,ConfigRef,PNode,int,int">
<dt><pre><span class="Keyword">proc</span> <a href="#treeToYaml%2CConfigRef%2CPNode%2Cint%2Cint"><span class="Identifier">treeToYaml</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">indent</span><span class="Other">:</span> <span class="Identifier">int</span> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">;</span>
<span class="Identifier">maxRecDepth</span><span class="Other">:</span> <span class="Identifier">int</span> <span class="Other">=</span> <span class="DecNumber">-1</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/astyaml.nim#L141" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astyaml.nim#L141" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="typeToYaml-procs-all">
<div id="typeToYaml,ConfigRef,PType,int,int">
<dt><pre><span class="Keyword">proc</span> <a href="#typeToYaml%2CConfigRef%2CPType%2Cint%2Cint"><span class="Identifier">typeToYaml</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">indent</span><span class="Other">:</span> <span class="Identifier">int</span> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">;</span>
<span class="Identifier">maxRecDepth</span><span class="Other">:</span> <span class="Identifier">int</span> <span class="Other">=</span> <span class="DecNumber">-1</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/astyaml.nim#L146" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/astyaml.nim#L146" 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: 2026-06-02 05:20:18 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

6
compiler/astyaml.idx Normal file
View File

@@ -0,0 +1,6 @@
nimTitle astyaml astyaml.html module astyaml 0
nim addYamlString astyaml.html#addYamlString,string,string proc addYamlString(res: var string; s: string) 15
nim lineInfoToStr astyaml.html#lineInfoToStr,ConfigRef,TLineInfo proc lineInfoToStr(conf: ConfigRef; info: TLineInfo): string 43
nim treeToYaml astyaml.html#treeToYaml,ConfigRef,PNode,int,int proc treeToYaml(conf: ConfigRef; n: PNode; indent: int = 0; maxRecDepth: int = -1): string 141
nim typeToYaml astyaml.html#typeToYaml,ConfigRef,PType,int,int proc typeToYaml(conf: ConfigRef; n: PType; indent: int = 0; maxRecDepth: int = -1): string 146
nim symToYaml astyaml.html#symToYaml,ConfigRef,PSym,int,int proc symToYaml(conf: ConfigRef; n: PSym; indent: int = 0; maxRecDepth: int = -1): string 151

356
compiler/bitsets.html Normal file
View File

@@ -0,0 +1,356 @@
<?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>bitsets</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">bitsets</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>
<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="#TBitSet" title="TBitSet = seq[ElemType]">TBitSet</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="#ElemSize" title="ElemSize = 8">ElemSize</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">bitSetCard
<li><a class="reference" href="#bitSetCard%2CTBitSet" title="bitSetCard(x: TBitSet): BiggestInt">bitSetCard(x: TBitSet): BiggestInt</a></li>
</ul>
<ul class="simple nested-toc-section">bitSetContains
<li><a class="reference" href="#bitSetContains%2CTBitSet%2CTBitSet" title="bitSetContains(x, y: TBitSet): bool">bitSetContains(x, y: TBitSet): bool</a></li>
</ul>
<ul class="simple nested-toc-section">bitSetDiff
<li><a class="reference" href="#bitSetDiff%2CTBitSet%2CTBitSet" title="bitSetDiff(x: var TBitSet; y: TBitSet)">bitSetDiff(x: var TBitSet; y: TBitSet)</a></li>
</ul>
<ul class="simple nested-toc-section">bitSetEquals
<li><a class="reference" href="#bitSetEquals%2CTBitSet%2CTBitSet" title="bitSetEquals(x, y: TBitSet): bool">bitSetEquals(x, y: TBitSet): bool</a></li>
</ul>
<ul class="simple nested-toc-section">bitSetExcl
<li><a class="reference" href="#bitSetExcl%2CTBitSet%2CBiggestInt" title="bitSetExcl(x: var TBitSet; elem: BiggestInt)">bitSetExcl(x: var TBitSet; elem: BiggestInt)</a></li>
</ul>
<ul class="simple nested-toc-section">bitSetIn
<li><a class="reference" href="#bitSetIn%2CTBitSet%2CBiggestInt" title="bitSetIn(x: TBitSet; e: BiggestInt): bool">bitSetIn(x: TBitSet; e: BiggestInt): bool</a></li>
</ul>
<ul class="simple nested-toc-section">bitSetIncl
<li><a class="reference" href="#bitSetIncl%2CTBitSet%2CBiggestInt" title="bitSetIncl(x: var TBitSet; elem: BiggestInt)">bitSetIncl(x: var TBitSet; elem: BiggestInt)</a></li>
</ul>
<ul class="simple nested-toc-section">bitSetInit
<li><a class="reference" href="#bitSetInit%2CTBitSet%2Cint" title="bitSetInit(b: var TBitSet; length: int)">bitSetInit(b: var TBitSet; length: int)</a></li>
</ul>
<ul class="simple nested-toc-section">bitSetIntersect
<li><a class="reference" href="#bitSetIntersect%2CTBitSet%2CTBitSet" title="bitSetIntersect(x: var TBitSet; y: TBitSet)">bitSetIntersect(x: var TBitSet; y: TBitSet)</a></li>
</ul>
<ul class="simple nested-toc-section">bitSetSymDiff
<li><a class="reference" href="#bitSetSymDiff%2CTBitSet%2CTBitSet" title="bitSetSymDiff(x: var TBitSet; y: TBitSet)">bitSetSymDiff(x: var TBitSet; y: TBitSet)</a></li>
</ul>
<ul class="simple nested-toc-section">bitSetToWord
<li><a class="reference" href="#bitSetToWord%2CTBitSet%2Cint" title="bitSetToWord(s: TBitSet; size: int): BiggestUInt">bitSetToWord(s: TBitSet; size: int): BiggestUInt</a></li>
</ul>
<ul class="simple nested-toc-section">bitSetUnion
<li><a class="reference" href="#bitSetUnion%2CTBitSet%2CTBitSet" title="bitSetUnion(x: var TBitSet; y: TBitSet)">bitSetUnion(x: var TBitSet; y: TBitSet)</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/bitsets.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/bitsets.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="TBitSet">
<dt><pre><a href="#TBitSet"><span class="Identifier">TBitSet</span></a> <span class="Other">=</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Identifier">ElemType</span><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/bitsets.nim#L18" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/bitsets.nim#L18" 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="ElemSize">
<dt><pre><a href="#ElemSize"><span class="Identifier">ElemSize</span></a> <span class="Other">=</span> <span class="DecNumber">8</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/bitsets.nim#L22" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/bitsets.nim#L22" 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="bitSetCard-procs-all">
<div id="bitSetCard,TBitSet">
<dt><pre><span class="Keyword">proc</span> <a href="#bitSetCard%2CTBitSet"><span class="Identifier">bitSetCard</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="#TBitSet"><span class="Identifier">TBitSet</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">BiggestInt</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/bitsets.nim#L89" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/bitsets.nim#L89" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="bitSetContains-procs-all">
<div id="bitSetContains,TBitSet,TBitSet">
<dt><pre><span class="Keyword">proc</span> <a href="#bitSetContains%2CTBitSet%2CTBitSet"><span class="Identifier">bitSetContains</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="#TBitSet"><span class="Identifier">TBitSet</span></a><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/bitsets.nim#L62" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/bitsets.nim#L62" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="bitSetDiff-procs-all">
<div id="bitSetDiff,TBitSet,TBitSet">
<dt><pre><span class="Keyword">proc</span> <a href="#bitSetDiff%2CTBitSet%2CTBitSet"><span class="Identifier">bitSetDiff</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TBitSet"><span class="Identifier">TBitSet</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="#TBitSet"><span class="Identifier">TBitSet</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/bitsets.nim#L47" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/bitsets.nim#L47" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="bitSetEquals-procs-all">
<div id="bitSetEquals,TBitSet,TBitSet">
<dt><pre><span class="Keyword">proc</span> <a href="#bitSetEquals%2CTBitSet%2CTBitSet"><span class="Identifier">bitSetEquals</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="#TBitSet"><span class="Identifier">TBitSet</span></a><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/bitsets.nim#L56" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/bitsets.nim#L56" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="bitSetExcl-procs-all">
<div id="bitSetExcl,TBitSet,BiggestInt">
<dt><pre><span class="Keyword">proc</span> <a href="#bitSetExcl%2CTBitSet%2CBiggestInt"><span class="Identifier">bitSetExcl</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TBitSet"><span class="Identifier">TBitSet</span></a><span class="Other">;</span> <span class="Identifier">elem</span><span class="Other">:</span> <span class="Identifier">BiggestInt</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/bitsets.nim#L37" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/bitsets.nim#L37" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="bitSetIn-procs-all">
<div id="bitSetIn,TBitSet,BiggestInt">
<dt><pre><span class="Keyword">proc</span> <a href="#bitSetIn%2CTBitSet%2CBiggestInt"><span class="Identifier">bitSetIn</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="#TBitSet"><span class="Identifier">TBitSet</span></a><span class="Other">;</span> <span class="Identifier">e</span><span class="Other">:</span> <span class="Identifier">BiggestInt</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/bitsets.nim#L29" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/bitsets.nim#L29" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="bitSetIncl-procs-all">
<div id="bitSetIncl,TBitSet,BiggestInt">
<dt><pre><span class="Keyword">proc</span> <a href="#bitSetIncl%2CTBitSet%2CBiggestInt"><span class="Identifier">bitSetIncl</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TBitSet"><span class="Identifier">TBitSet</span></a><span class="Other">;</span> <span class="Identifier">elem</span><span class="Other">:</span> <span class="Identifier">BiggestInt</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/bitsets.nim#L32" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/bitsets.nim#L32" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="bitSetInit-procs-all">
<div id="bitSetInit,TBitSet,int">
<dt><pre><span class="Keyword">proc</span> <a href="#bitSetInit%2CTBitSet%2Cint"><span class="Identifier">bitSetInit</span></a><span class="Other">(</span><span class="Identifier">b</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TBitSet"><span class="Identifier">TBitSet</span></a><span class="Other">;</span> <span class="Identifier">length</span><span class="Other">:</span> <span class="Identifier">int</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/bitsets.nim#L41" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/bitsets.nim#L41" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="bitSetIntersect-procs-all">
<div id="bitSetIntersect,TBitSet,TBitSet">
<dt><pre><span class="Keyword">proc</span> <a href="#bitSetIntersect%2CTBitSet%2CTBitSet"><span class="Identifier">bitSetIntersect</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TBitSet"><span class="Identifier">TBitSet</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="#TBitSet"><span class="Identifier">TBitSet</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/bitsets.nim#L53" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/bitsets.nim#L53" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="bitSetSymDiff-procs-all">
<div id="bitSetSymDiff,TBitSet,TBitSet">
<dt><pre><span class="Keyword">proc</span> <a href="#bitSetSymDiff%2CTBitSet%2CTBitSet"><span class="Identifier">bitSetSymDiff</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TBitSet"><span class="Identifier">TBitSet</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="#TBitSet"><span class="Identifier">TBitSet</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/bitsets.nim#L50" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/bitsets.nim#L50" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="bitSetToWord-procs-all">
<div id="bitSetToWord,TBitSet,int">
<dt><pre><span class="Keyword">proc</span> <a href="#bitSetToWord%2CTBitSet%2Cint"><span class="Identifier">bitSetToWord</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="#TBitSet"><span class="Identifier">TBitSet</span></a><span class="Other">;</span> <span class="Identifier">size</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">BiggestUInt</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/bitsets.nim#L94" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/bitsets.nim#L94" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="bitSetUnion-procs-all">
<div id="bitSetUnion,TBitSet,TBitSet">
<dt><pre><span class="Keyword">proc</span> <a href="#bitSetUnion%2CTBitSet%2CTBitSet"><span class="Identifier">bitSetUnion</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TBitSet"><span class="Identifier">TBitSet</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="#TBitSet"><span class="Identifier">TBitSet</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/bitsets.nim#L44" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/bitsets.nim#L44" 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: 2026-06-02 05:20:18 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

15
compiler/bitsets.idx Normal file
View File

@@ -0,0 +1,15 @@
nimTitle bitsets bitsets.html module bitsets 0
nim TBitSet bitsets.html#TBitSet type TBitSet 18
nim ElemSize bitsets.html#ElemSize const ElemSize 22
nim bitSetIn bitsets.html#bitSetIn,TBitSet,BiggestInt proc bitSetIn(x: TBitSet; e: BiggestInt): bool 29
nim bitSetIncl bitsets.html#bitSetIncl,TBitSet,BiggestInt proc bitSetIncl(x: var TBitSet; elem: BiggestInt) 32
nim bitSetExcl bitsets.html#bitSetExcl,TBitSet,BiggestInt proc bitSetExcl(x: var TBitSet; elem: BiggestInt) 37
nim bitSetInit bitsets.html#bitSetInit,TBitSet,int proc bitSetInit(b: var TBitSet; length: int) 41
nim bitSetUnion bitsets.html#bitSetUnion,TBitSet,TBitSet proc bitSetUnion(x: var TBitSet; y: TBitSet) 44
nim bitSetDiff bitsets.html#bitSetDiff,TBitSet,TBitSet proc bitSetDiff(x: var TBitSet; y: TBitSet) 47
nim bitSetSymDiff bitsets.html#bitSetSymDiff,TBitSet,TBitSet proc bitSetSymDiff(x: var TBitSet; y: TBitSet) 50
nim bitSetIntersect bitsets.html#bitSetIntersect,TBitSet,TBitSet proc bitSetIntersect(x: var TBitSet; y: TBitSet) 53
nim bitSetEquals bitsets.html#bitSetEquals,TBitSet,TBitSet proc bitSetEquals(x, y: TBitSet): bool 56
nim bitSetContains bitsets.html#bitSetContains,TBitSet,TBitSet proc bitSetContains(x, y: TBitSet): bool 62
nim bitSetCard bitsets.html#bitSetCard,TBitSet proc bitSetCard(x: TBitSet): BiggestInt 89
nim bitSetToWord bitsets.html#bitSetToWord,TBitSet,int proc bitSetToWord(s: TBitSet; size: int): BiggestUInt 94

271
compiler/btrees.html Normal file
View File

@@ -0,0 +1,271 @@
<?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>btrees</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">btrees</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>
<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="#BTree" title="BTree[Key; Val] = object">BTree</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">add
<li><a class="reference" href="#add%2CBTree%5BKey%2CVal%5D%2CKey%2CVal" title="add[Key, Val](b: var BTree[Key, Val]; key: Key; val: Val)">add[Key, Val](b: var BTree[Key, Val]; key: Key; val: Val)</a></li>
</ul>
<ul class="simple nested-toc-section">contains
<li><a class="reference" href="#contains%2CBTree%5BKey%2CVal%5D%2CKey" title="contains[Key, Val](b: BTree[Key, Val]; key: Key): bool">contains[Key, Val](b: BTree[Key, Val]; key: Key): bool</a></li>
</ul>
<ul class="simple nested-toc-section">getOrDefault
<li><a class="reference" href="#getOrDefault%2CBTree%5BKey%2CVal%5D%2CKey" title="getOrDefault[Key, Val](b: BTree[Key, Val]; key: Key): Val">getOrDefault[Key, Val](b: BTree[Key, Val]; key: Key): Val</a></li>
</ul>
<ul class="simple nested-toc-section">hasNext
<li><a class="reference" href="#hasNext%2CBTree%5BKey%2CVal%5D%2Cint" title="hasNext[Key, Val](b: BTree[Key, Val]; index: int): bool">hasNext[Key, Val](b: BTree[Key, Val]; index: int): bool</a></li>
</ul>
<ul class="simple nested-toc-section">initBTree
<li><a class="reference" href="#initBTree" title="initBTree[Key, Val](): BTree[Key, Val]">initBTree[Key, Val](): BTree[Key, Val]</a></li>
</ul>
<ul class="simple nested-toc-section">len
<li><a class="reference" href="#len%2CBTree%5BKey%2CVal%5D" title="len[Key, Val](b: BTree[Key, Val]): int">len[Key, Val](b: BTree[Key, Val]): int</a></li>
</ul>
<ul class="simple nested-toc-section">next
<li><a class="reference" href="#next%2CBTree%5BKey%2CVal%5D%2Cint" title="next[Key, Val](b: BTree[Key, Val]; index: int): (Key, Val, int)">next[Key, Val](b: BTree[Key, Val]; index: int): (Key, Val, int)</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">pairs
<li><a class="reference" href="#pairs.i%2CBTree%5BKey%2CVal%5D" title="pairs[Key, Val](b: BTree[Key, Val]): (Key, Val)">pairs[Key, Val](b: BTree[Key, Val]): (Key, Val)</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/btrees.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/btrees.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">BTree implementation with few features, but good enough for the Nim compiler's needs.</p>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="BTree">
<dt><pre><a href="#BTree"><span class="Identifier">BTree</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">;</span> <span class="Identifier">Val</span><span class="Other">]</span> <span class="Other">=</span> <span class="Keyword">object</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/btrees.nim#L30" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/btrees.nim#L30" 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="add-procs-all">
<div id="add,BTree[Key,Val],Key,Val">
<dt><pre><span class="Keyword">proc</span> <a href="#add%2CBTree%5BKey%2CVal%5D%2CKey%2CVal"><span class="Identifier">add</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">b</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#BTree"><span class="Identifier">BTree</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">Key</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">Val</span><span class="Other">)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/btrees.nim#L121" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/btrees.nim#L121" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="contains-procs-all">
<div id="contains,BTree[Key,Val],Key">
<dt><pre><span class="Keyword">proc</span> <a href="#contains%2CBTree%5BKey%2CVal%5D%2CKey"><span class="Identifier">contains</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">b</span><span class="Other">:</span> <a href="#BTree"><span class="Identifier">BTree</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">Key</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/btrees.nim#L52" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/btrees.nim#L52" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getOrDefault-procs-all">
<div id="getOrDefault,BTree[Key,Val],Key">
<dt><pre><span class="Keyword">proc</span> <a href="#getOrDefault%2CBTree%5BKey%2CVal%5D%2CKey"><span class="Identifier">getOrDefault</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">b</span><span class="Other">:</span> <a href="#BTree"><span class="Identifier">BTree</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">Key</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Val</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/btrees.nim#L40" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/btrees.nim#L40" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hasNext-procs-all">
<div id="hasNext,BTree[Key,Val],int">
<dt><pre><span class="Keyword">proc</span> <a href="#hasNext%2CBTree%5BKey%2CVal%5D%2Cint"><span class="Identifier">hasNext</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">b</span><span class="Other">:</span> <a href="#BTree"><span class="Identifier">BTree</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">index</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/btrees.nim#L148" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/btrees.nim#L148" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initBTree-procs-all">
<div id="initBTree">
<dt><pre><span class="Keyword">proc</span> <a href="#initBTree"><span class="Identifier">initBTree</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="#BTree"><span class="Identifier">BTree</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/btrees.nim#L34" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/btrees.nim#L34" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="len-procs-all">
<div id="len,BTree[Key,Val]">
<dt><pre><span class="Keyword">proc</span> <a href="#len%2CBTree%5BKey%2CVal%5D"><span class="Identifier">len</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">b</span><span class="Other">:</span> <a href="#BTree"><span class="Identifier">BTree</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</span> {.<span class="Identifier">inline</span>.}</pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/btrees.nim#L180" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/btrees.nim#L180" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="next-procs-all">
<div id="next,BTree[Key,Val],int">
<dt><pre><span class="Keyword">proc</span> <a href="#next%2CBTree%5BKey%2CVal%5D%2Cint"><span class="Identifier">next</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">b</span><span class="Other">:</span> <a href="#BTree"><span class="Identifier">BTree</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">index</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">,</span> <span class="Identifier">int</span><span class="Other">)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/btrees.nim#L158" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/btrees.nim#L158" 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="pairs-iterators-all">
<div id="pairs.i,BTree[Key,Val]">
<dt><pre><span class="Keyword">iterator</span> <a href="#pairs.i%2CBTree%5BKey%2CVal%5D"><span class="Identifier">pairs</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">b</span><span class="Other">:</span> <a href="#BTree"><span class="Identifier">BTree</span></a><span class="Other">[</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">Key</span><span class="Other">,</span> <span class="Identifier">Val</span><span class="Other">)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/btrees.nim#L173" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/btrees.nim#L173" 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: 2026-06-02 05:20:18 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

10
compiler/btrees.idx Normal file
View File

@@ -0,0 +1,10 @@
nimTitle btrees btrees.html module btrees 0
nim BTree btrees.html#BTree object BTree 30
nim initBTree btrees.html#initBTree proc initBTree[Key, Val](): BTree[Key, Val] 34
nim getOrDefault btrees.html#getOrDefault,BTree[Key,Val],Key proc getOrDefault[Key, Val](b: BTree[Key, Val]; key: Key): Val 40
nim contains btrees.html#contains,BTree[Key,Val],Key proc contains[Key, Val](b: BTree[Key, Val]; key: Key): bool 52
nim add btrees.html#add,BTree[Key,Val],Key,Val proc add[Key, Val](b: var BTree[Key, Val]; key: Key; val: Val) 121
nim hasNext btrees.html#hasNext,BTree[Key,Val],int proc hasNext[Key, Val](b: BTree[Key, Val]; index: int): bool 148
nim next btrees.html#next,BTree[Key,Val],int proc next[Key, Val](b: BTree[Key, Val]; index: int): (Key, Val, int) 158
nim pairs btrees.html#pairs.i,BTree[Key,Val] iterator pairs[Key, Val](b: BTree[Key, Val]): (Key, Val) 173
nim len btrees.html#len,BTree[Key,Val] proc len[Key, Val](b: BTree[Key, Val]): int 180

1005
compiler/cbuilderbase.html Normal file

File diff suppressed because it is too large Load Diff

73
compiler/cbuilderbase.idx Normal file
View File

@@ -0,0 +1,73 @@
nimTitle cbuilderbase cbuilderbase.html module cbuilderbase 0
nim Snippet cbuilderbase.html#Snippet type Snippet 4
nim Builder cbuilderbase.html#Builder object Builder 5
nim newBuilder cbuilderbase.html#newBuilder.t,string template newBuilder(s: string): Builder 9
nim extract cbuilderbase.html#extract,Builder proc extract(builder: Builder): Snippet 12
nim add cbuilderbase.html#add,Builder,string proc add(builder: var Builder; s: string) 15
nim add cbuilderbase.html#add,Builder,char proc add(builder: var Builder; s: char) 18
nim addNewline cbuilderbase.html#addNewline,Builder proc addNewline(builder: var Builder) 21
nim addLineEnd cbuilderbase.html#addLineEnd,Builder,string proc addLineEnd(builder: var Builder; s: string) 26
nim addLineEndIndent cbuilderbase.html#addLineEndIndent,Builder,string proc addLineEndIndent(builder: var Builder; s: string) 30
nim addDedent cbuilderbase.html#addDedent,Builder,string proc addDedent(builder: var Builder; s: string) 35
nim addLineEndDedent cbuilderbase.html#addLineEndDedent,Builder,string proc addLineEndDedent(builder: var Builder; s: string) 41
nim addLineComment cbuilderbase.html#addLineComment,Builder,string proc addLineComment(builder: var Builder; comment: string) 45
nim addIntValue cbuilderbase.html#addIntValue,Builder,int proc addIntValue(builder: var Builder; val: int) 51
nim addIntValue cbuilderbase.html#addIntValue,Builder,int64 proc addIntValue(builder: var Builder; val: int64) 54
nim addIntValue cbuilderbase.html#addIntValue,Builder,uint64 proc addIntValue(builder: var Builder; val: uint64) 57
nim addIntValue cbuilderbase.html#addIntValue,Builder,Int128 proc addIntValue(builder: var Builder; val: Int128) 60
nim cIntValue cbuilderbase.html#cIntValue.t,int template cIntValue(val: int): Snippet 63
nim cIntValue cbuilderbase.html#cIntValue.t,int64 template cIntValue(val: int64): Snippet 64
nim cIntValue cbuilderbase.html#cIntValue.t,uint64 template cIntValue(val: uint64): Snippet 65
nim cIntValue cbuilderbase.html#cIntValue.t,Int128 template cIntValue(val: Int128): Snippet 66
nim cUintValue cbuilderbase.html#cUintValue.t,uint template cUintValue(val: uint): Snippet 68
nim addFloatValue cbuilderbase.html#addFloatValue,Builder,float proc addFloatValue(builder: var Builder; val: float) 72
nim cFloatValue cbuilderbase.html#cFloatValue.t,float template cFloatValue(val: float): Snippet 75
nim addInt64Literal cbuilderbase.html#addInt64Literal,Builder,BiggestInt proc addInt64Literal(result: var Builder; i: BiggestInt) 77
nim addUint64Literal cbuilderbase.html#addUint64Literal,Builder,uint64 proc addUint64Literal(result: var Builder; i: uint64) 83
nim addIntLiteral cbuilderbase.html#addIntLiteral,Builder,BiggestInt proc addIntLiteral(result: var Builder; i: BiggestInt) 86
nim addIntLiteral cbuilderbase.html#addIntLiteral,Builder,Int128 proc addIntLiteral(result: var Builder; i: Int128) 97
nim cInt64Literal cbuilderbase.html#cInt64Literal,BiggestInt proc cInt64Literal(i: BiggestInt): Snippet 100
nim cUint64Literal cbuilderbase.html#cUint64Literal,uint64 proc cUint64Literal(i: uint64): Snippet 106
nim cIntLiteral cbuilderbase.html#cIntLiteral,BiggestInt proc cIntLiteral(i: BiggestInt): Snippet 109
nim cIntLiteral cbuilderbase.html#cIntLiteral,Int128 proc cIntLiteral(i: Int128): Snippet 120
nim NimInt cbuilderbase.html#NimInt const NimInt 124
nim NimInt8 cbuilderbase.html#NimInt8 const NimInt8 125
nim NimInt16 cbuilderbase.html#NimInt16 const NimInt16 126
nim NimInt32 cbuilderbase.html#NimInt32 const NimInt32 127
nim NimInt64 cbuilderbase.html#NimInt64 const NimInt64 128
nim CInt cbuilderbase.html#CInt const CInt 129
nim NimUint cbuilderbase.html#NimUint const NimUint 130
nim NimUint8 cbuilderbase.html#NimUint8 const NimUint8 131
nim NimUint16 cbuilderbase.html#NimUint16 const NimUint16 132
nim NimUint32 cbuilderbase.html#NimUint32 const NimUint32 133
nim NimUint64 cbuilderbase.html#NimUint64 const NimUint64 134
nim NimFloat cbuilderbase.html#NimFloat const NimFloat 135
nim NimFloat32 cbuilderbase.html#NimFloat32 const NimFloat32 136
nim NimFloat64 cbuilderbase.html#NimFloat64 const NimFloat64 137
nim NimFloat128 cbuilderbase.html#NimFloat128 const NimFloat128 138
nim NimNan cbuilderbase.html#NimNan const NimNan 139
nim NimInf cbuilderbase.html#NimInf const NimInf 140
nim NimBool cbuilderbase.html#NimBool const NimBool 141
nim NimTrue cbuilderbase.html#NimTrue const NimTrue 142
nim NimFalse cbuilderbase.html#NimFalse const NimFalse 143
nim NimChar cbuilderbase.html#NimChar const NimChar 144
nim CChar cbuilderbase.html#CChar const CChar 145
nim NimCstring cbuilderbase.html#NimCstring const NimCstring 146
nim NimNil cbuilderbase.html#NimNil const NimNil 147
nim CNil cbuilderbase.html#CNil const CNil 148
nim NimStrlitFlag cbuilderbase.html#NimStrlitFlag const NimStrlitFlag 149
nim CVoid cbuilderbase.html#CVoid const CVoid 150
nim CPointer cbuilderbase.html#CPointer const CPointer 151
nim CConstPointer cbuilderbase.html#CConstPointer const CConstPointer 152
nim cIntType cbuilderbase.html#cIntType,BiggestInt proc cIntType(bits: BiggestInt): Snippet 154
nim cUintType cbuilderbase.html#cUintType,BiggestInt proc cUintType(bits: BiggestInt): Snippet 157
nim WaitingIf cbuilderbase.html#WaitingIf IfBuilderState.WaitingIf 161
nim WaitingElseIf cbuilderbase.html#WaitingElseIf IfBuilderState.WaitingElseIf 161
nim InBlock cbuilderbase.html#InBlock IfBuilderState.InBlock 161
nim IfBuilderState cbuilderbase.html#IfBuilderState enum IfBuilderState 161
nim IfBuilder cbuilderbase.html#IfBuilder object IfBuilder 163
nimgrp cintliteral cbuilderbase.html#cIntLiteral-procs-all proc 109
nimgrp addintvalue cbuilderbase.html#addIntValue-procs-all proc 51
nimgrp addintliteral cbuilderbase.html#addIntLiteral-procs-all proc 86
nimgrp add cbuilderbase.html#add-procs-all proc 15
nimgrp cintvalue cbuilderbase.html#cIntValue-templates-all template 63

283
compiler/ccgutils.html Normal file
View File

@@ -0,0 +1,283 @@
<?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>ccgutils</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">ccgutils</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">ccgIntroducedPtr
<li><a class="reference" href="#ccgIntroducedPtr%2CConfigRef%2CPSym%2CPType" title="ccgIntroducedPtr(conf: ConfigRef; s: PSym; retType: PType): bool">ccgIntroducedPtr(conf: ConfigRef; s: PSym; retType: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">encodeName
<li><a class="reference" href="#encodeName%2Cstring" title="encodeName(name: string): string">encodeName(name: string): string</a></li>
</ul>
<ul class="simple nested-toc-section">encodeSym
<li><a class="reference" href="#encodeSym%2CBModule%2CPSym%2Cbool%2Cstring" title="encodeSym(m: BModule; s: PSym; makeUnique: bool = false; extra: string = &quot;&quot;): string">encodeSym(m: BModule; s: PSym; makeUnique: bool = false; extra: string = &quot;&quot;): string</a></li>
</ul>
<ul class="simple nested-toc-section">encodeType
<li><a class="reference" href="#encodeType%2CBModule%2CPType%2Cstring" title="encodeType(m: BModule; t: PType; staticLists: var string): string">encodeType(m: BModule; t: PType; staticLists: var string): string</a></li>
</ul>
<ul class="simple nested-toc-section">getPragmaStmt
<li><a class="reference" href="#getPragmaStmt%2CPNode%2CTSpecialWord" title="getPragmaStmt(n: PNode; w: TSpecialWord): PNode">getPragmaStmt(n: PNode; w: TSpecialWord): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">hashString
<li><a class="reference" href="#hashString%2CConfigRef%2Cstring" title="hashString(conf: ConfigRef; s: string): BiggestInt">hashString(conf: ConfigRef; s: string): BiggestInt</a></li>
</ul>
<ul class="simple nested-toc-section">makeSingleLineCString
<li><a class="reference" href="#makeSingleLineCString%2Cstring" title="makeSingleLineCString(s: string): string">makeSingleLineCString(s: string): string</a></li>
</ul>
<ul class="simple nested-toc-section">stmtsContainPragma
<li><a class="reference" href="#stmtsContainPragma%2CPNode%2CTSpecialWord" title="stmtsContainPragma(n: PNode; w: TSpecialWord): bool">stmtsContainPragma(n: PNode; w: TSpecialWord): bool</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">getUniqueType
<li><a class="reference" href="#getUniqueType.t%2CPType" title="getUniqueType(key: PType): PType">getUniqueType(key: PType): PType</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/ccgutils.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ccgutils.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="types.html">types</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="wordrecg.html">wordrecg</a>, <a class="reference external" href="platform.html">platform</a>, <a class="reference external" href="trees.html">trees</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="cgendata.html">cgendata</a>, <a class="reference external" href="mangleutils.html">mangleutils</a>, <a class="reference external" href="renderer.html">renderer</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="ccgIntroducedPtr-procs-all">
<div id="ccgIntroducedPtr,ConfigRef,PSym,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#ccgIntroducedPtr%2CConfigRef%2CPSym%2CPType"><span class="Identifier">ccgIntroducedPtr</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">retType</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/ccgutils.nim#L79" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ccgutils.nim#L79" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="encodeName-procs-all">
<div id="encodeName,string">
<dt><pre><span class="Keyword">proc</span> <a href="#encodeName%2Cstring"><span class="Identifier">encodeName</span></a><span class="Other">(</span><span class="Identifier">name</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/ccgutils.nim#L109" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ccgutils.nim#L109" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="encodeSym-procs-all">
<div id="encodeSym,BModule,PSym,bool,string">
<dt><pre><span class="Keyword">proc</span> <a href="#encodeSym%2CBModule%2CPSym%2Cbool%2Cstring"><span class="Identifier">encodeSym</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <a href="cgendata.html#BModule"><span class="Identifier">BModule</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">makeUnique</span><span class="Other">:</span> <span class="Identifier">bool</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">;</span> <span class="Identifier">extra</span><span class="Other">:</span> <span class="Identifier">string</span> <span class="Other">=</span> <span class="StringLit">&quot;&quot;</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/ccgutils.nim#L120" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ccgutils.nim#L120" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="encodeType-procs-all">
<div id="encodeType,BModule,PType,string">
<dt><pre><span class="Keyword">proc</span> <a href="#encodeType%2CBModule%2CPType%2Cstring"><span class="Identifier">encodeType</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <a href="cgendata.html#BModule"><span class="Identifier">BModule</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">staticLists</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/ccgutils.nim#L127" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ccgutils.nim#L127" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getPragmaStmt-procs-all">
<div id="getPragmaStmt,PNode,TSpecialWord">
<dt><pre><span class="Keyword">proc</span> <a href="#getPragmaStmt%2CPNode%2CTSpecialWord"><span class="Identifier">getPragmaStmt</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">w</span><span class="Other">:</span> <a href="wordrecg.html#TSpecialWord"><span class="Identifier">TSpecialWord</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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/ccgutils.nim#L21" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ccgutils.nim#L21" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hashString-procs-all">
<div id="hashString,ConfigRef,string">
<dt><pre><span class="Keyword">proc</span> <a href="#hashString%2CConfigRef%2Cstring"><span class="Identifier">hashString</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">BiggestInt</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/ccgutils.nim#L38" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ccgutils.nim#L38" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="makeSingleLineCString-procs-all">
<div id="makeSingleLineCString,string">
<dt><pre><span class="Keyword">proc</span> <a href="#makeSingleLineCString%2Cstring"><span class="Identifier">makeSingleLineCString</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/ccgutils.nim#L65" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ccgutils.nim#L65" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="stmtsContainPragma-procs-all">
<div id="stmtsContainPragma,PNode,TSpecialWord">
<dt><pre><span class="Keyword">proc</span> <a href="#stmtsContainPragma%2CPNode%2CTSpecialWord"><span class="Identifier">stmtsContainPragma</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">w</span><span class="Other">:</span> <a href="wordrecg.html#TSpecialWord"><span class="Identifier">TSpecialWord</span></a><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/ccgutils.nim#L35" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ccgutils.nim#L35" 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="getUniqueType-templates-all">
<div id="getUniqueType.t,PType">
<dt><pre><span class="Keyword">template</span> <a href="#getUniqueType.t%2CPType"><span class="Identifier">getUniqueType</span></a><span class="Other">(</span><span class="Identifier">key</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ccgutils.nim#L63" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ccgutils.nim#L63" 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: 2026-06-02 05:20:18 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

10
compiler/ccgutils.idx Normal file
View File

@@ -0,0 +1,10 @@
nimTitle ccgutils ccgutils.html module ccgutils 0
nim getPragmaStmt ccgutils.html#getPragmaStmt,PNode,TSpecialWord proc getPragmaStmt(n: PNode; w: TSpecialWord): PNode 21
nim stmtsContainPragma ccgutils.html#stmtsContainPragma,PNode,TSpecialWord proc stmtsContainPragma(n: PNode; w: TSpecialWord): bool 35
nim hashString ccgutils.html#hashString,ConfigRef,string proc hashString(conf: ConfigRef; s: string): BiggestInt 38
nim getUniqueType ccgutils.html#getUniqueType.t,PType template getUniqueType(key: PType): PType 63
nim makeSingleLineCString ccgutils.html#makeSingleLineCString,string proc makeSingleLineCString(s: string): string 65
nim ccgIntroducedPtr ccgutils.html#ccgIntroducedPtr,ConfigRef,PSym,PType proc ccgIntroducedPtr(conf: ConfigRef; s: PSym; retType: PType): bool 79
nim encodeName ccgutils.html#encodeName,string proc encodeName(name: string): string 109
nim encodeSym ccgutils.html#encodeSym,BModule,PSym,bool,string proc encodeSym(m: BModule; s: PSym; makeUnique: bool = false; extra: string = ""): string 120
nim encodeType ccgutils.html#encodeType,BModule,PType,string proc encodeType(m: BModule; t: PType; staticLists: var string): string 127

314
compiler/cgen.html Normal file
View File

@@ -0,0 +1,314 @@
<?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>cgen</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">cgen</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">cgenWriteModules
<li><a class="reference" href="#cgenWriteModules%2CRootRef%2CConfigRef" title="cgenWriteModules(backend: RootRef; config: ConfigRef)">cgenWriteModules(backend: RootRef; config: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">fillObjectFields
<li><a class="reference" href="#fillObjectFields%2CBModule%2CPType" title="fillObjectFields(m: BModule; typ: PType)">fillObjectFields(m: BModule; typ: PType)</a></li>
</ul>
<ul class="simple nested-toc-section">finalCodegenActions
<li><a class="reference" href="#finalCodegenActions%2CModuleGraph%2CBModule%2CPNode" title="finalCodegenActions(graph: ModuleGraph; m: BModule; n: PNode)">finalCodegenActions(graph: ModuleGraph; m: BModule; n: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">genProcLvl3
<li><a class="reference" href="#genProcLvl3%2CBModule%2CPSym" title="genProcLvl3(m: BModule; prc: PSym)">genProcLvl3(m: BModule; prc: PSym)</a></li>
</ul>
<ul class="simple nested-toc-section">genTopLevelStmt
<li><a class="reference" href="#genTopLevelStmt%2CBModule%2CPNode" title="genTopLevelStmt(m: BModule; n: PNode)">genTopLevelStmt(m: BModule; n: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">genTypeInfo
<li><a class="reference" href="#genTypeInfo%2CConfigRef%2CBModule%2CPType%2CTLineInfo" title="genTypeInfo(config: ConfigRef; m: BModule; t: PType; info: TLineInfo): Rope">genTypeInfo(config: ConfigRef; m: BModule; t: PType; info: TLineInfo): Rope</a></li>
</ul>
<ul class="simple nested-toc-section">multiFormat
<li><a class="reference" href="#multiFormat%2Cstring%2CstaticopenArray%5Bchar%5D%2CopenArray%5Bseq%5Bstring%5D%5D" title="multiFormat(frmt: var string; chars: static openArray[char];
args: openArray[seq[string]])">multiFormat(frmt: var string; chars: static openArray[char];
args: openArray[seq[string]])</a></li>
</ul>
<ul class="simple nested-toc-section">newModule
<li><a class="reference" href="#newModule%2CBModuleList%2CPSym%2CConfigRef%2CIdGenerator" title="newModule(g: BModuleList; module: PSym; conf: ConfigRef; idgen: IdGenerator): BModule">newModule(g: BModuleList; module: PSym; conf: ConfigRef; idgen: IdGenerator): BModule</a></li>
</ul>
<ul class="simple nested-toc-section">setupCgen
<li><a class="reference" href="#setupCgen%2CModuleGraph%2CPSym%2CIdGenerator" title="setupCgen(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext">setupCgen(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext</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">cgDeclFrmt
<li><a class="reference" href="#cgDeclFrmt.t%2CPSym" title="cgDeclFrmt(s: PSym): string">cgDeclFrmt(s: PSym): string</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/cgen.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgen.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">This module implements the C code generator.This include file contains the logic to produce constant string and seq literals. The code here is responsible that <tt class="docutils literal"><span class="pre">const x = [&quot;a&quot;, &quot;b&quot;]</span></tt> works without hidden runtime creation code. The price is that seqs and strings are not purely a library implementation.Generates traversal procs for the C backend.Code specialization instead of the old, incredibly slow 'genericReset' implementation.Thread var support for architectures that lack native support for thread local storage.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="astalgo.html">astalgo</a>, <a class="reference external" href="trees.html">trees</a>, <a class="reference external" href="platform.html">platform</a>, <a class="reference external" href="magicsys.html">magicsys</a>, <a class="reference external" href="extccomp.html">extccomp</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="nversion.html">nversion</a>, <a class="reference external" href="nimsets.html">nimsets</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="bitsets.html">bitsets</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="types.html">types</a>, <a class="reference external" href="ccgutils.html">ccgutils</a>, <a class="reference external" href="ropes.html">ropes</a>, <a class="reference external" href="wordrecg.html">wordrecg</a>, <a class="reference external" href="treetab.html">treetab</a>, <a class="reference external" href="cgmeth.html">cgmeth</a>, <a class="reference external" href="rodutils.html">rodutils</a>, <a class="reference external" href="renderer.html">renderer</a>, <a class="reference external" href="cgendata.html">cgendata</a>, <a class="reference external" href="aliases.html">aliases</a>, <a class="reference external" href="lowerings.html">lowerings</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="pathutils.html">pathutils</a>, <a class="reference external" href="transf.html">transf</a>, <a class="reference external" href="injectdestructors.html">injectdestructors</a>, <a class="reference external" href="astmsgs.html">astmsgs</a>, <a class="reference external" href="modulepaths.html">modulepaths</a>, <a class="reference external" href="pushpoppragmas.html">pushpoppragmas</a>, <a class="reference external" href="mangleutils.html">mangleutils</a>, <a class="reference external" href="cbuilderbase.html">cbuilderbase</a>, <a class="reference external" href="modulegraphs.html">modulegraphs</a>, <a class="reference external" href="expanddefaults.html">expanddefaults</a>, <a class="reference external" href="pipelineutils.html">pipelineutils</a>, <a class="reference external" href="spawn.html">spawn</a>, <a class="reference external" href="semparallel.html">semparallel</a>, <a class="reference external" href="sighashes.html">sighashes</a>, <a class="reference external" href="aliasanalysis.html">aliasanalysis</a>, <a class="reference external" href="parampatterns.html">parampatterns</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="cgenWriteModules-procs-all">
<div id="cgenWriteModules,RootRef,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#cgenWriteModules%2CRootRef%2CConfigRef"><span class="Identifier">cgenWriteModules</span></a><span class="Other">(</span><span class="Identifier">backend</span><span class="Other">:</span> <span class="Identifier">RootRef</span><span class="Other">;</span> <span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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">KeyError</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span>
<span class="Identifier">TimeEffect</span><span class="Other">,</span> <span class="Identifier">WriteDirEffect</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/cgen.nim#L2648" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgen.nim#L2648" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="fillObjectFields-procs-all">
<div id="fillObjectFields,BModule,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#fillObjectFields%2CBModule%2CPType"><span class="Identifier">fillObjectFields</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <a href="cgendata.html#BModule"><span class="Identifier">BModule</span></a><span class="Other">;</span> <span class="Identifier">typ</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</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">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/ccgtypes.nim#L783" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ccgtypes.nim#L783" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="finalCodegenActions-procs-all">
<div id="finalCodegenActions,ModuleGraph,BModule,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#finalCodegenActions%2CModuleGraph%2CBModule%2CPNode"><span class="Identifier">finalCodegenActions</span></a><span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="cgendata.html#BModule"><span class="Identifier">BModule</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span>
<span class="Identifier">TimeEffect</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>
Also called from IC.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgen.nim#L2568" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgen.nim#L2568" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genProcLvl3-procs-all">
<div id="genProcLvl3,BModule,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#genProcLvl3%2CBModule%2CPSym"><span class="Identifier">genProcLvl3</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <a href="cgendata.html#BModule"><span class="Identifier">BModule</span></a><span class="Other">;</span> <span class="Identifier">prc</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">TimeEffect</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/cgen.nim#L1318" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgen.nim#L1318" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genTopLevelStmt-procs-all">
<div id="genTopLevelStmt,BModule,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#genTopLevelStmt%2CBModule%2CPNode"><span class="Identifier">genTopLevelStmt</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <a href="cgendata.html#BModule"><span class="Identifier">BModule</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">TimeEffect</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>
Also called from <tt class="docutils literal"><span class="pre"><span class="Identifier">ic</span><span class="Operator">/</span><span class="Identifier">cbackend</span><span class="Operator">.</span><span class="Identifier">nim</span></span></tt>.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgen.nim#L2472" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgen.nim#L2472" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genTypeInfo-procs-all">
<div id="genTypeInfo,ConfigRef,BModule,PType,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#genTypeInfo%2CConfigRef%2CBModule%2CPType%2CTLineInfo"><span class="Identifier">genTypeInfo</span></a><span class="Other">(</span><span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">m</span><span class="Other">:</span> <a href="cgendata.html#BModule"><span class="Identifier">BModule</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ropes.html#Rope"><span class="Identifier">Rope</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/ccgtypes.nim#L2091" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ccgtypes.nim#L2091" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="multiFormat-procs-all">
<div id="multiFormat,string,staticopenArray[char],openArray[seq[string]]">
<dt><pre><span class="Keyword">proc</span> <a href="#multiFormat%2Cstring%2CstaticopenArray%5Bchar%5D%2CopenArray%5Bseq%5Bstring%5D%5D"><span class="Identifier">multiFormat</span></a><span class="Other">(</span><span class="Identifier">frmt</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">chars</span><span class="Other">:</span> <span class="Keyword">static</span> <span class="Identifier">openArray</span><span class="Other">[</span><span class="Identifier">char</span><span class="Other">]</span><span class="Other">;</span>
<span class="Identifier">args</span><span class="Other">:</span> <span class="Identifier">openArray</span><span class="Other">[</span><span class="Identifier">seq</span><span class="Other">[</span><span class="Identifier">string</span><span class="Other">]</span><span class="Other">]</span><span class="Other">)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ccgtypes.nim#L496" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ccgtypes.nim#L496" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newModule-procs-all">
<div id="newModule,BModuleList,PSym,ConfigRef,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#newModule%2CBModuleList%2CPSym%2CConfigRef%2CIdGenerator"><span class="Identifier">newModule</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="cgendata.html#BModuleList"><span class="Identifier">BModuleList</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="cgendata.html#BModule"><span class="Identifier">BModule</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/cgen.nim#L63" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgen.nim#L63" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setupCgen-procs-all">
<div id="setupCgen,ModuleGraph,PSym,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#setupCgen%2CModuleGraph%2CPSym%2CIdGenerator"><span class="Identifier">setupCgen</span></a><span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="modulegraphs.html#PPassContext"><span class="Identifier">PPassContext</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteDirEffect</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/cgen.nim#L2386" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgen.nim#L2386" 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="cgDeclFrmt-templates-all">
<div id="cgDeclFrmt.t,PSym">
<dt><pre><span class="Keyword">template</span> <a href="#cgDeclFrmt.t%2CPSym"><span class="Identifier">cgDeclFrmt</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cbuilderdecls.nim#L437" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cbuilderdecls.nim#L437" 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: 2026-06-02 05:20:22 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

11
compiler/cgen.idx Normal file
View File

@@ -0,0 +1,11 @@
nimTitle cgen cgen.html module cgen 0
nim newModule cgen.html#newModule,BModuleList,PSym,ConfigRef,IdGenerator proc newModule(g: BModuleList; module: PSym; conf: ConfigRef; idgen: IdGenerator): BModule 63
nim cgDeclFrmt cgen.html#cgDeclFrmt.t,PSym template cgDeclFrmt(s: PSym): string 437
nim multiFormat cgen.html#multiFormat,string,staticopenArray[char],openArray[seq[string]] proc multiFormat(frmt: var string; chars: static openArray[char];\n args: openArray[seq[string]]) 496
nim fillObjectFields cgen.html#fillObjectFields,BModule,PType proc fillObjectFields(m: BModule; typ: PType) 783
nim genTypeInfo cgen.html#genTypeInfo,ConfigRef,BModule,PType,TLineInfo proc genTypeInfo(config: ConfigRef; m: BModule; t: PType; info: TLineInfo): Rope 2091
nim genProcLvl3 cgen.html#genProcLvl3,BModule,PSym proc genProcLvl3(m: BModule; prc: PSym) 1318
nim setupCgen cgen.html#setupCgen,ModuleGraph,PSym,IdGenerator proc setupCgen(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext 2386
nim genTopLevelStmt cgen.html#genTopLevelStmt,BModule,PNode proc genTopLevelStmt(m: BModule; n: PNode) 2472
nim finalCodegenActions cgen.html#finalCodegenActions,ModuleGraph,BModule,PNode proc finalCodegenActions(graph: ModuleGraph; m: BModule; n: PNode) 2568
nim cgenWriteModules cgen.html#cgenWriteModules,RootRef,ConfigRef proc cgenWriteModules(backend: RootRef; config: ConfigRef) 2648

569
compiler/cgendata.html Normal file
View File

@@ -0,0 +1,569 @@
<?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>cgendata</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">cgendata</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="#BModule" title="BModule = ref TCGen">BModule</a></li>
<li><a class="reference" href="#BModuleList" title="BModuleList = ref object of RootObj
mainModProcs*, mainModInit*, otherModsInit*, mainDatInit*: Builder
mapping*: Rope
mods*: seq[BModule]
modulesClosed*: seq[BModule]
forwardedProcs*: seq[PSym]
generatedHeader*: BModule
typeInfoMarker*: TypeCacheWithOwner
typeInfoMarkerV2*: TypeCacheWithOwner
config*: ConfigRef
graph*: ModuleGraph
strVersion*, seqVersion*: int
nimtv*: Builder
nimtvDeps*: seq[PType]
nimtvDeclared*: IntSet
mangledPrcs*: HashSet[string]">BModuleList</a></li>
<li><a class="reference" href="#BProc" title="BProc = ref TCProc">BProc</a></li>
<li><a class="reference" href="#CodegenFlag" title="CodegenFlag = enum
preventStackTrace, usesThreadVars, frameDeclared, isHeaderFile,
includesStringh, objHasKidsValid, useAliveDataFromDce">CodegenFlag</a></li>
<li><a class="reference" href="#TBlock" title="TBlock = object
id*: int
label*: Rope
sections*: TCProcSections
isLoop*: bool
nestedTryStmts*: int16
nestedExceptStmts*: int16
frameLen*: int16">TBlock</a></li>
<li><a class="reference" href="#TCFileSection" title="TCFileSection = enum
cfsHeaders, cfsFrameDefines, cfsForwardTypes, cfsTypes, cfsSeqTypes,
cfsTypeInfo, cfsProcHeaders, cfsStrData, cfsData, cfsVars, cfsProcs,
cfsInitProc, cfsDatInitProc, cfsTypeInit1, cfsTypeInit3, cfsDynLibInit">TCFileSection</a></li>
<li><a class="reference" href="#TCFileSections" title="TCFileSections = array[TCFileSection, Builder]">TCFileSections</a></li>
<li><a class="reference" href="#TCProcFlag" title="TCProcFlag = enum
beforeRetNeeded, threadVarAccessed, hasCurFramePointer, noSafePoints,
nimErrorFlagAccessed, nimErrorFlagDeclared, nimErrorFlagDisabled">TCProcFlag</a></li>
<li><a class="reference" href="#TCProcSection" title="TCProcSection = enum
cpsLocals, cpsInit, cpsStmts">TCProcSection</a></li>
<li><a class="reference" href="#TCProcSections" title="TCProcSections = array[TCProcSection, Builder]">TCProcSections</a></li>
<li><a class="reference" href="#TCTypeKind" title="TCTypeKind = enum
ctVoid, ctChar, ctBool, ctInt, ctInt8, ctInt16, ctInt32, ctInt64, ctFloat,
ctFloat32, ctFloat64, ctFloat128, ctUInt, ctUInt8, ctUInt16, ctUInt32,
ctUInt64, ctArray, ctPtrToArray, ctStruct, ctPtr, ctNimStr, ctNimSeq, ctProc,
ctCString">TCTypeKind</a></li>
<li><a class="reference" href="#TLabel" title="TLabel = Rope">TLabel</a></li>
<li><a class="reference" href="#TTypeSeq" title="TTypeSeq = seq[PType]">TTypeSeq</a></li>
<li><a class="reference" href="#TypeCache" title="TypeCache = Table[SigHash, Rope]">TypeCache</a></li>
<li><a class="reference" href="#TypeCacheWithOwner" title="TypeCacheWithOwner = Table[SigHash, tuple[str: Rope, owner: int32]]">TypeCacheWithOwner</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">delayedCodegen
<li><a class="reference" href="#delayedCodegen%2CBModule" title="delayedCodegen(m: BModule): bool">delayedCodegen(m: BModule): bool</a></li>
</ul>
<ul class="simple nested-toc-section">includeHeader
<li><a class="reference" href="#includeHeader%2CBModule%2Cstring" title="includeHeader(this: BModule; header: string)">includeHeader(this: BModule; header: string)</a></li>
</ul>
<ul class="simple nested-toc-section">initBlock
<li><a class="reference" href="#initBlock" title="initBlock(): TBlock">initBlock(): TBlock</a></li>
</ul>
<ul class="simple nested-toc-section">newModuleList
<li><a class="reference" href="#newModuleList%2CModuleGraph" title="newModuleList(g: ModuleGraph): BModuleList">newModuleList(g: ModuleGraph): BModuleList</a></li>
</ul>
<ul class="simple nested-toc-section">newProc
<li><a class="reference" href="#newProc%2CPSym%2CBModule" title="newProc(prc: PSym; module: BModule): BProc">newProc(prc: PSym; module: BModule): BProc</a></li>
</ul>
<ul class="simple nested-toc-section">procSec
<li><a class="reference" href="#procSec%2CBProc%2CTCProcSection" title="procSec(p: BProc; s: TCProcSection): var Builder">procSec(p: BProc; s: TCProcSection): var Builder</a></li>
</ul>
<ul class="simple nested-toc-section">s
<li><a class="reference" href="#s%2CBProc%2CTCProcSection" title="s(p: BProc; s: TCProcSection): var Builder">s(p: BProc; s: TCProcSection): var Builder</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">cgenModules
<li><a class="reference" href="#cgenModules.i%2CBModuleList" title="cgenModules(g: BModuleList): BModule">cgenModules(g: BModuleList): BModule</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">config
<li><a class="reference" href="#config.t%2CBModule" title="config(m: BModule): ConfigRef">config(m: BModule): ConfigRef</a></li>
<li><a class="reference" href="#config.t%2CBProc" title="config(p: BProc): ConfigRef">config(p: BProc): ConfigRef</a></li>
</ul>
<ul class="simple nested-toc-section">vccAndC
<li><a class="reference" href="#vccAndC.t%2CBProc" title="vccAndC(p: BProc): bool">vccAndC(p: BProc): bool</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/cgendata.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">This module contains the data structures for the C code generation phase.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="ropes.html">ropes</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="pathutils.html">pathutils</a>, <a class="reference external" href="modulegraphs.html">modulegraphs</a>, <a class="reference external" href="cbuilderbase.html">cbuilderbase</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="BModule">
<dt><pre><a href="#BModule"><span class="Identifier">BModule</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <span class="Identifier">TCGen</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L52" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L52" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="BModuleList">
<dt><pre><a href="#BModuleList"><span class="Identifier">BModuleList</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <span class="Identifier">RootObj</span>
<span class="Identifier">mainModProcs</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">mainModInit</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">otherModsInit</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">mainDatInit</span><span class="Operator">*</span><span class="Other">:</span> <a href="cbuilderbase.html#Builder"><span class="Identifier">Builder</span></a>
<span class="Identifier">mapping</span><span class="Operator">*</span><span class="Other">:</span> <a href="ropes.html#Rope"><span class="Identifier">Rope</span></a>
<span class="Identifier">mods</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="#BModule"><span class="Identifier">BModule</span></a><span class="Other">]</span>
<span class="Identifier">modulesClosed</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="#BModule"><span class="Identifier">BModule</span></a><span class="Other">]</span>
<span class="Identifier">forwardedProcs</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span>
<span class="Identifier">generatedHeader</span><span class="Operator">*</span><span class="Other">:</span> <a href="#BModule"><span class="Identifier">BModule</span></a>
<span class="Identifier">typeInfoMarker</span><span class="Operator">*</span><span class="Other">:</span> <a href="#TypeCacheWithOwner"><span class="Identifier">TypeCacheWithOwner</span></a>
<span class="Identifier">typeInfoMarkerV2</span><span class="Operator">*</span><span class="Other">:</span> <a href="#TypeCacheWithOwner"><span class="Identifier">TypeCacheWithOwner</span></a>
<span class="Identifier">config</span><span class="Operator">*</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a>
<span class="Identifier">graph</span><span class="Operator">*</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a>
<span class="Identifier">strVersion</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">seqVersion</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">nimtv</span><span class="Operator">*</span><span class="Other">:</span> <a href="cbuilderbase.html#Builder"><span class="Identifier">Builder</span></a>
<span class="Identifier">nimtvDeps</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">]</span>
<span class="Identifier">nimtvDeclared</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">IntSet</span>
<span class="Identifier">mangledPrcs</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">HashSet</span><span class="Other">[</span><span class="Identifier">string</span><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L120" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L120" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="BProc">
<dt><pre><a href="#BProc"><span class="Identifier">BProc</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <span class="Identifier">TCProc</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L53" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L53" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="CodegenFlag">
<dt><pre><a href="#CodegenFlag"><span class="Identifier">CodegenFlag</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">preventStackTrace</span><span class="Other">,</span> <span class="Identifier">usesThreadVars</span><span class="Other">,</span> <span class="Identifier">frameDeclared</span><span class="Other">,</span> <span class="Identifier">isHeaderFile</span><span class="Other">,</span>
<span class="Identifier">includesStringh</span><span class="Other">,</span> <span class="Identifier">objHasKidsValid</span><span class="Other">,</span> <span class="Identifier">useAliveDataFromDce</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L109" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L109" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TBlock">
<dt><pre><a href="#TBlock"><span class="Identifier">TBlock</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">int</span>
<span class="Identifier">label</span><span class="Operator">*</span><span class="Other">:</span> <a href="ropes.html#Rope"><span class="Identifier">Rope</span></a>
<span class="Identifier">sections</span><span class="Operator">*</span><span class="Other">:</span> <a href="#TCProcSections"><span class="Identifier">TCProcSections</span></a>
<span class="Identifier">isLoop</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
<span class="Identifier">nestedTryStmts</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int16</span>
<span class="Identifier">nestedExceptStmts</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int16</span>
<span class="Identifier">frameLen</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int16</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L54" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L54" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TCFileSection">
<dt><pre><a href="#TCFileSection"><span class="Identifier">TCFileSection</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">cfsHeaders</span><span class="Other">,</span> <span class="Identifier">cfsFrameDefines</span><span class="Other">,</span> <span class="Identifier">cfsForwardTypes</span><span class="Other">,</span> <span class="Identifier">cfsTypes</span><span class="Other">,</span> <span class="Identifier">cfsSeqTypes</span><span class="Other">,</span>
<span class="Identifier">cfsTypeInfo</span><span class="Other">,</span> <span class="Identifier">cfsProcHeaders</span><span class="Other">,</span> <span class="Identifier">cfsStrData</span><span class="Other">,</span> <span class="Identifier">cfsData</span><span class="Other">,</span> <span class="Identifier">cfsVars</span><span class="Other">,</span> <span class="Identifier">cfsProcs</span><span class="Other">,</span>
<span class="Identifier">cfsInitProc</span><span class="Other">,</span> <span class="Identifier">cfsDatInitProc</span><span class="Other">,</span> <span class="Identifier">cfsTypeInit1</span><span class="Other">,</span> <span class="Identifier">cfsTypeInit3</span><span class="Other">,</span> <span class="Identifier">cfsDynLibInit</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L20" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L20" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TCFileSections">
<dt><pre><a href="#TCFileSections"><span class="Identifier">TCFileSections</span></a> <span class="Other">=</span> <span class="Identifier">array</span><span class="Other">[</span><span class="Identifier">TCFileSection</span><span class="Other">,</span> <a href="cbuilderbase.html#Builder"><span class="Identifier">Builder</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L46" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L46" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TCProcFlag">
<dt><pre><a href="#TCProcFlag"><span class="Identifier">TCProcFlag</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">beforeRetNeeded</span><span class="Other">,</span> <span class="Identifier">threadVarAccessed</span><span class="Other">,</span> <span class="Identifier">hasCurFramePointer</span><span class="Other">,</span> <span class="Identifier">noSafePoints</span><span class="Other">,</span>
<span class="Identifier">nimErrorFlagAccessed</span><span class="Other">,</span> <span class="Identifier">nimErrorFlagDeclared</span><span class="Other">,</span> <span class="Identifier">nimErrorFlagDisabled</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L64" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L64" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TCProcSection">
<dt><pre><a href="#TCProcSection"><span class="Identifier">TCProcSection</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">cpsLocals</span><span class="Other">,</span> <span class="Identifier">cpsInit</span><span class="Other">,</span> <span class="Identifier">cpsStmts</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L47" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L47" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TCProcSections">
<dt><pre><a href="#TCProcSections"><span class="Identifier">TCProcSections</span></a> <span class="Other">=</span> <span class="Identifier">array</span><span class="Other">[</span><span class="Identifier">TCProcSection</span><span class="Other">,</span> <a href="cbuilderbase.html#Builder"><span class="Identifier">Builder</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L51" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L51" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TCTypeKind">
<dt><pre><a href="#TCTypeKind"><span class="Identifier">TCTypeKind</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">ctVoid</span><span class="Other">,</span> <span class="Identifier">ctChar</span><span class="Other">,</span> <span class="Identifier">ctBool</span><span class="Other">,</span> <span class="Identifier">ctInt</span><span class="Other">,</span> <span class="Identifier">ctInt8</span><span class="Other">,</span> <span class="Identifier">ctInt16</span><span class="Other">,</span> <span class="Identifier">ctInt32</span><span class="Other">,</span> <span class="Identifier">ctInt64</span><span class="Other">,</span> <span class="Identifier">ctFloat</span><span class="Other">,</span>
<span class="Identifier">ctFloat32</span><span class="Other">,</span> <span class="Identifier">ctFloat64</span><span class="Other">,</span> <span class="Identifier">ctFloat128</span><span class="Other">,</span> <span class="Identifier">ctUInt</span><span class="Other">,</span> <span class="Identifier">ctUInt8</span><span class="Other">,</span> <span class="Identifier">ctUInt16</span><span class="Other">,</span> <span class="Identifier">ctUInt32</span><span class="Other">,</span>
<span class="Identifier">ctUInt64</span><span class="Other">,</span> <span class="Identifier">ctArray</span><span class="Other">,</span> <span class="Identifier">ctPtrToArray</span><span class="Other">,</span> <span class="Identifier">ctStruct</span><span class="Other">,</span> <span class="Identifier">ctPtr</span><span class="Other">,</span> <span class="Identifier">ctNimStr</span><span class="Other">,</span> <span class="Identifier">ctNimSeq</span><span class="Other">,</span> <span class="Identifier">ctProc</span><span class="Other">,</span>
<span class="Identifier">ctCString</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L39" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L39" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TLabel">
<dt><pre><a href="#TLabel"><span class="Identifier">TLabel</span></a> <span class="Other">=</span> <a href="ropes.html#Rope"><span class="Identifier">Rope</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L19" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L19" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TTypeSeq">
<dt><pre><a href="#TTypeSeq"><span class="Identifier">TTypeSeq</span></a> <span class="Other">=</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L105" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L105" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TypeCache">
<dt><pre><a href="#TypeCache"><span class="Identifier">TypeCache</span></a> <span class="Other">=</span> <span class="Identifier">Table</span><span class="Other">[</span><a href="modulegraphs.html#SigHash"><span class="Identifier">SigHash</span></a><span class="Other">,</span> <a href="ropes.html#Rope"><span class="Identifier">Rope</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L106" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L106" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TypeCacheWithOwner">
<dt><pre><a href="#TypeCacheWithOwner"><span class="Identifier">TypeCacheWithOwner</span></a> <span class="Other">=</span> <span class="Identifier">Table</span><span class="Other">[</span><a href="modulegraphs.html#SigHash"><span class="Identifier">SigHash</span></a><span class="Other">,</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">str</span><span class="Other">:</span> <a href="ropes.html#Rope"><span class="Identifier">Rope</span></a><span class="Other">,</span> <span class="Identifier">owner</span><span class="Other">:</span> <span class="Identifier">int32</span><span class="Other">]</span><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L107" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L107" 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="delayedCodegen-procs-all">
<div id="delayedCodegen,BModule">
<dt><pre><span class="Keyword">proc</span> <a href="#delayedCodegen%2CBModule"><span class="Identifier">delayedCodegen</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <a href="#BModule"><span class="Identifier">BModule</span></a><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/cgendata.nim#L185" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L185" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="includeHeader-procs-all">
<div id="includeHeader,BModule,string">
<dt><pre><span class="Keyword">proc</span> <a href="#includeHeader%2CBModule%2Cstring"><span class="Identifier">includeHeader</span></a><span class="Other">(</span><span class="Identifier">this</span><span class="Other">:</span> <a href="#BModule"><span class="Identifier">BModule</span></a><span class="Other">;</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="Identifier">string</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/cgendata.nim#L188" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L188" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initBlock-procs-all">
<div id="initBlock">
<dt><pre><span class="Keyword">proc</span> <a href="#initBlock"><span class="Identifier">initBlock</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="#TBlock"><span class="Identifier">TBlock</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/cgendata.nim#L200" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L200" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newModuleList-procs-all">
<div id="newModuleList,ModuleGraph">
<dt><pre><span class="Keyword">proc</span> <a href="#newModuleList%2CModuleGraph"><span class="Identifier">newModuleList</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">)</span><span class="Other">:</span> <a href="#BModuleList"><span class="Identifier">BModuleList</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/cgendata.nim#L218" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L218" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newProc-procs-all">
<div id="newProc,PSym,BModule">
<dt><pre><span class="Keyword">proc</span> <a href="#newProc%2CPSym%2CBModule"><span class="Identifier">newProc</span></a><span class="Other">(</span><span class="Identifier">prc</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <a href="#BModule"><span class="Identifier">BModule</span></a><span class="Other">)</span><span class="Other">:</span> <a href="#BProc"><span class="Identifier">BProc</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/cgendata.nim#L205" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L205" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="procSec-procs-all">
<div id="procSec,BProc,TCProcSection">
<dt><pre><span class="Keyword">proc</span> <a href="#procSec%2CBProc%2CTCProcSection"><span class="Identifier">procSec</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <a href="#BProc"><span class="Identifier">BProc</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="#TCProcSection"><span class="Identifier">TCProcSection</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="cbuilderbase.html#Builder"><span class="Identifier">Builder</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/cgendata.nim#L196" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L196" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="s-procs-all">
<div id="s,BProc,TCProcSection">
<dt><pre><span class="Keyword">proc</span> <a href="#s%2CBProc%2CTCProcSection"><span class="Identifier">s</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <a href="#BProc"><span class="Identifier">BProc</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="#TCProcSection"><span class="Identifier">TCProcSection</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="cbuilderbase.html#Builder"><span class="Identifier">Builder</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/cgendata.nim#L192" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L192" 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="cgenModules-iterators-all">
<div id="cgenModules.i,BModuleList">
<dt><pre><span class="Keyword">iterator</span> <a href="#cgenModules.i%2CBModuleList"><span class="Identifier">cgenModules</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="#BModuleList"><span class="Identifier">BModuleList</span></a><span class="Other">)</span><span class="Other">:</span> <a href="#BModule"><span class="Identifier">BModule</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/cgendata.nim#L222" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L222" 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="config-templates-all">
<div id="config.t,BModule">
<dt><pre><span class="Keyword">template</span> <a href="#config.t%2CBModule"><span class="Identifier">config</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <a href="#BModule"><span class="Identifier">BModule</span></a><span class="Other">)</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L181" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L181" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="config.t,BProc">
<dt><pre><span class="Keyword">template</span> <a href="#config.t%2CBProc"><span class="Identifier">config</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <a href="#BProc"><span class="Identifier">BProc</span></a><span class="Other">)</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L182" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L182" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="vccAndC-templates-all">
<div id="vccAndC.t,BProc">
<dt><pre><span class="Keyword">template</span> <a href="#vccAndC.t%2CBProc"><span class="Identifier">vccAndC</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <a href="#BProc"><span class="Identifier">BProc</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgendata.nim#L183" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgendata.nim#L183" 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: 2026-06-02 05:20:18 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

86
compiler/cgendata.idx Normal file
View File

@@ -0,0 +1,86 @@
nimTitle cgendata cgendata.html module cgendata 0
nim TLabel cgendata.html#TLabel type TLabel 19
nim cfsHeaders cgendata.html#cfsHeaders TCFileSection.cfsHeaders 20
nim cfsFrameDefines cgendata.html#cfsFrameDefines TCFileSection.cfsFrameDefines 20
nim cfsForwardTypes cgendata.html#cfsForwardTypes TCFileSection.cfsForwardTypes 20
nim cfsTypes cgendata.html#cfsTypes TCFileSection.cfsTypes 20
nim cfsSeqTypes cgendata.html#cfsSeqTypes TCFileSection.cfsSeqTypes 20
nim cfsTypeInfo cgendata.html#cfsTypeInfo TCFileSection.cfsTypeInfo 20
nim cfsProcHeaders cgendata.html#cfsProcHeaders TCFileSection.cfsProcHeaders 20
nim cfsStrData cgendata.html#cfsStrData TCFileSection.cfsStrData 20
nim cfsData cgendata.html#cfsData TCFileSection.cfsData 20
nim cfsVars cgendata.html#cfsVars TCFileSection.cfsVars 20
nim cfsProcs cgendata.html#cfsProcs TCFileSection.cfsProcs 20
nim cfsInitProc cgendata.html#cfsInitProc TCFileSection.cfsInitProc 20
nim cfsDatInitProc cgendata.html#cfsDatInitProc TCFileSection.cfsDatInitProc 20
nim cfsTypeInit1 cgendata.html#cfsTypeInit1 TCFileSection.cfsTypeInit1 20
nim cfsTypeInit3 cgendata.html#cfsTypeInit3 TCFileSection.cfsTypeInit3 20
nim cfsDynLibInit cgendata.html#cfsDynLibInit TCFileSection.cfsDynLibInit 20
nim TCFileSection cgendata.html#TCFileSection enum TCFileSection 20
nim ctVoid cgendata.html#ctVoid TCTypeKind.ctVoid 39
nim ctChar cgendata.html#ctChar TCTypeKind.ctChar 39
nim ctBool cgendata.html#ctBool TCTypeKind.ctBool 39
nim ctInt cgendata.html#ctInt TCTypeKind.ctInt 39
nim ctInt8 cgendata.html#ctInt8 TCTypeKind.ctInt8 39
nim ctInt16 cgendata.html#ctInt16 TCTypeKind.ctInt16 39
nim ctInt32 cgendata.html#ctInt32 TCTypeKind.ctInt32 39
nim ctInt64 cgendata.html#ctInt64 TCTypeKind.ctInt64 39
nim ctFloat cgendata.html#ctFloat TCTypeKind.ctFloat 39
nim ctFloat32 cgendata.html#ctFloat32 TCTypeKind.ctFloat32 39
nim ctFloat64 cgendata.html#ctFloat64 TCTypeKind.ctFloat64 39
nim ctFloat128 cgendata.html#ctFloat128 TCTypeKind.ctFloat128 39
nim ctUInt cgendata.html#ctUInt TCTypeKind.ctUInt 39
nim ctUInt8 cgendata.html#ctUInt8 TCTypeKind.ctUInt8 39
nim ctUInt16 cgendata.html#ctUInt16 TCTypeKind.ctUInt16 39
nim ctUInt32 cgendata.html#ctUInt32 TCTypeKind.ctUInt32 39
nim ctUInt64 cgendata.html#ctUInt64 TCTypeKind.ctUInt64 39
nim ctArray cgendata.html#ctArray TCTypeKind.ctArray 39
nim ctPtrToArray cgendata.html#ctPtrToArray TCTypeKind.ctPtrToArray 39
nim ctStruct cgendata.html#ctStruct TCTypeKind.ctStruct 39
nim ctPtr cgendata.html#ctPtr TCTypeKind.ctPtr 39
nim ctNimStr cgendata.html#ctNimStr TCTypeKind.ctNimStr 39
nim ctNimSeq cgendata.html#ctNimSeq TCTypeKind.ctNimSeq 39
nim ctProc cgendata.html#ctProc TCTypeKind.ctProc 39
nim ctCString cgendata.html#ctCString TCTypeKind.ctCString 39
nim TCTypeKind cgendata.html#TCTypeKind enum TCTypeKind 39
nim TCFileSections cgendata.html#TCFileSections type TCFileSections 46
nim cpsLocals cgendata.html#cpsLocals TCProcSection.cpsLocals 47
nim cpsInit cgendata.html#cpsInit TCProcSection.cpsInit 47
nim cpsStmts cgendata.html#cpsStmts TCProcSection.cpsStmts 47
nim TCProcSection cgendata.html#TCProcSection enum TCProcSection 47
nim TCProcSections cgendata.html#TCProcSections type TCProcSections 51
nim BModule cgendata.html#BModule type BModule 52
nim BProc cgendata.html#BProc type BProc 53
nim TBlock cgendata.html#TBlock object TBlock 54
nim beforeRetNeeded cgendata.html#beforeRetNeeded TCProcFlag.beforeRetNeeded 64
nim threadVarAccessed cgendata.html#threadVarAccessed TCProcFlag.threadVarAccessed 64
nim hasCurFramePointer cgendata.html#hasCurFramePointer TCProcFlag.hasCurFramePointer 64
nim noSafePoints cgendata.html#noSafePoints TCProcFlag.noSafePoints 64
nim nimErrorFlagAccessed cgendata.html#nimErrorFlagAccessed TCProcFlag.nimErrorFlagAccessed 64
nim nimErrorFlagDeclared cgendata.html#nimErrorFlagDeclared TCProcFlag.nimErrorFlagDeclared 64
nim nimErrorFlagDisabled cgendata.html#nimErrorFlagDisabled TCProcFlag.nimErrorFlagDisabled 64
nim TCProcFlag cgendata.html#TCProcFlag enum TCProcFlag 64
nim TTypeSeq cgendata.html#TTypeSeq type TTypeSeq 105
nim TypeCache cgendata.html#TypeCache type TypeCache 106
nim TypeCacheWithOwner cgendata.html#TypeCacheWithOwner type TypeCacheWithOwner 107
nim preventStackTrace cgendata.html#preventStackTrace CodegenFlag.preventStackTrace 109
nim usesThreadVars cgendata.html#usesThreadVars CodegenFlag.usesThreadVars 109
nim frameDeclared cgendata.html#frameDeclared CodegenFlag.frameDeclared 109
nim isHeaderFile cgendata.html#isHeaderFile CodegenFlag.isHeaderFile 109
nim includesStringh cgendata.html#includesStringh CodegenFlag.includesStringh 109
nim objHasKidsValid cgendata.html#objHasKidsValid CodegenFlag.objHasKidsValid 109
nim useAliveDataFromDce cgendata.html#useAliveDataFromDce CodegenFlag.useAliveDataFromDce 109
nim CodegenFlag cgendata.html#CodegenFlag enum CodegenFlag 109
nim BModuleList cgendata.html#BModuleList type BModuleList 120
nim config cgendata.html#config.t,BModule template config(m: BModule): ConfigRef 181
nim config cgendata.html#config.t,BProc template config(p: BProc): ConfigRef 182
nim vccAndC cgendata.html#vccAndC.t,BProc template vccAndC(p: BProc): bool 183
nim delayedCodegen cgendata.html#delayedCodegen,BModule proc delayedCodegen(m: BModule): bool 185
nim includeHeader cgendata.html#includeHeader,BModule,string proc includeHeader(this: BModule; header: string) 188
nim s cgendata.html#s,BProc,TCProcSection proc s(p: BProc; s: TCProcSection): var Builder 192
nim procSec cgendata.html#procSec,BProc,TCProcSection proc procSec(p: BProc; s: TCProcSection): var Builder 196
nim initBlock cgendata.html#initBlock proc initBlock(): TBlock 200
nim newProc cgendata.html#newProc,PSym,BModule proc newProc(prc: PSym; module: BModule): BProc 205
nim newModuleList cgendata.html#newModuleList,ModuleGraph proc newModuleList(g: ModuleGraph): BModuleList 218
nim cgenModules cgendata.html#cgenModules.i,BModuleList iterator cgenModules(g: BModuleList): BModule 222
nimgrp config cgendata.html#config-templates-all template 181

244
compiler/cgmeth.html Normal file
View File

@@ -0,0 +1,244 @@
<?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>cgmeth</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">cgmeth</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">generateIfMethodDispatchers
<li><a class="reference" href="#generateIfMethodDispatchers%2CModuleGraph%2CIdGenerator" title="generateIfMethodDispatchers(g: ModuleGraph; idgen: IdGenerator)">generateIfMethodDispatchers(g: ModuleGraph; idgen: IdGenerator)</a></li>
</ul>
<ul class="simple nested-toc-section">genIfDispatcher
<li><a class="reference" href="#genIfDispatcher%2CModuleGraph%2Cseq%5BPSym%5D%2CIntSet%2CIdGenerator" title="genIfDispatcher(g: ModuleGraph; methods: seq[PSym]; relevantCols: IntSet;
idgen: IdGenerator): PSym">genIfDispatcher(g: ModuleGraph; methods: seq[PSym]; relevantCols: IntSet;
idgen: IdGenerator): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">getDispatcher
<li><a class="reference" href="#getDispatcher%2CPSym" title="getDispatcher(s: PSym): PSym">getDispatcher(s: PSym): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">methodCall
<li><a class="reference" href="#methodCall%2CPNode%2CConfigRef" title="methodCall(n: PNode; conf: ConfigRef): PNode">methodCall(n: PNode; conf: ConfigRef): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">methodDef
<li><a class="reference" href="#methodDef%2CModuleGraph%2CIdGenerator%2CPSym" title="methodDef(g: ModuleGraph; idgen: IdGenerator; s: PSym)">methodDef(g: ModuleGraph; idgen: IdGenerator; s: PSym)</a></li>
</ul>
<ul class="simple nested-toc-section">relevantCol
<li><a class="reference" href="#relevantCol%2Cseq%5BPSym%5D%2Cint" title="relevantCol(methods: seq[PSym]; col: int): bool">relevantCol(methods: seq[PSym]; col: int): bool</a></li>
</ul>
<ul class="simple nested-toc-section">sortBucket
<li><a class="reference" href="#sortBucket%2Cseq%5BPSym%5D%2CIntSet" title="sortBucket(a: var seq[PSym]; relevantCols: IntSet)">sortBucket(a: var seq[PSym]; relevantCols: IntSet)</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/cgmeth.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgmeth.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">This module implements code generation for methods.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="options.html">options</a>, <a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="renderer.html">renderer</a>, <a class="reference external" href="types.html">types</a>, <a class="reference external" href="magicsys.html">magicsys</a>, <a class="reference external" href="sempass2.html">sempass2</a>, <a class="reference external" href="modulegraphs.html">modulegraphs</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="astalgo.html">astalgo</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="generateIfMethodDispatchers-procs-all">
<div id="generateIfMethodDispatchers,ModuleGraph,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#generateIfMethodDispatchers%2CModuleGraph%2CIdGenerator"><span class="Identifier">generateIfMethodDispatchers</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/cgmeth.nim#L299" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgmeth.nim#L299" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genIfDispatcher-procs-all">
<div id="genIfDispatcher,ModuleGraph,seq[PSym],IntSet,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#genIfDispatcher%2CModuleGraph%2Cseq%5BPSym%5D%2CIntSet%2CIdGenerator"><span class="Identifier">genIfDispatcher</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">methods</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">relevantCols</span><span class="Other">:</span> <span class="Identifier">IntSet</span><span class="Other">;</span>
<span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/cgmeth.nim#L240" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgmeth.nim#L240" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getDispatcher-procs-all">
<div id="getDispatcher,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#getDispatcher%2CPSym"><span class="Identifier">getDispatcher</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span>
<span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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>
can return nil if is has no dispatcher.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cgmeth.nim#L45" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgmeth.nim#L45" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="methodCall-procs-all">
<div id="methodCall,PNode,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#methodCall%2CPNode%2CConfigRef"><span class="Identifier">methodCall</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/cgmeth.nim#L53" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgmeth.nim#L53" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="methodDef-procs-all">
<div id="methodDef,ModuleGraph,IdGenerator,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#methodDef%2CModuleGraph%2CIdGenerator%2CPSym"><span class="Identifier">methodDef</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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">KeyError</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/cgmeth.nim#L160" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgmeth.nim#L160" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="relevantCol-procs-all">
<div id="relevantCol,seq[PSym],int">
<dt><pre><span class="Keyword">proc</span> <a href="#relevantCol%2Cseq%5BPSym%5D%2Cint"><span class="Identifier">relevantCol</span></a><span class="Other">(</span><span class="Identifier">methods</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">col</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/cgmeth.nim#L201" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgmeth.nim#L201" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="sortBucket-procs-all">
<div id="sortBucket,seq[PSym],IntSet">
<dt><pre><span class="Keyword">proc</span> <a href="#sortBucket%2Cseq%5BPSym%5D%2CIntSet"><span class="Identifier">sortBucket</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">relevantCols</span><span class="Other">:</span> <span class="Identifier">IntSet</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/cgmeth.nim#L221" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cgmeth.nim#L221" 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: 2026-06-02 05:20:20 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

8
compiler/cgmeth.idx Normal file
View File

@@ -0,0 +1,8 @@
nimTitle cgmeth cgmeth.html module cgmeth 0
nim getDispatcher cgmeth.html#getDispatcher,PSym proc getDispatcher(s: PSym): PSym 45
nim methodCall cgmeth.html#methodCall,PNode,ConfigRef proc methodCall(n: PNode; conf: ConfigRef): PNode 53
nim methodDef cgmeth.html#methodDef,ModuleGraph,IdGenerator,PSym proc methodDef(g: ModuleGraph; idgen: IdGenerator; s: PSym) 160
nim relevantCol cgmeth.html#relevantCol,seq[PSym],int proc relevantCol(methods: seq[PSym]; col: int): bool 201
nim sortBucket cgmeth.html#sortBucket,seq[PSym],IntSet proc sortBucket(a: var seq[PSym]; relevantCols: IntSet) 221
nim genIfDispatcher cgmeth.html#genIfDispatcher,ModuleGraph,seq[PSym],IntSet,IdGenerator proc genIfDispatcher(g: ModuleGraph; methods: seq[PSym]; relevantCols: IntSet;\n idgen: IdGenerator): PSym 240
nim generateIfMethodDispatchers cgmeth.html#generateIfMethodDispatchers,ModuleGraph,IdGenerator proc generateIfMethodDispatchers(g: ModuleGraph; idgen: IdGenerator) 299

125
compiler/closureiters.html Normal file
View File

@@ -0,0 +1,125 @@
<?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>closureiters</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">closureiters</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">transformClosureIterator
<li><a class="reference" href="#transformClosureIterator%2CModuleGraph%2CIdGenerator%2CPSym%2CPNode" title="transformClosureIterator(g: ModuleGraph; idgen: IdGenerator; fn: PSym; n: PNode): PNode">transformClosureIterator(g: ModuleGraph; idgen: IdGenerator; fn: PSym; n: PNode): PNode</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/closureiters.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/closureiters.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="renderer.html">renderer</a>, <a class="reference external" href="magicsys.html">magicsys</a>, <a class="reference external" href="lowerings.html">lowerings</a>, <a class="reference external" href="lambdalifting.html">lambdalifting</a>, <a class="reference external" href="modulegraphs.html">modulegraphs</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="trees.html">trees</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="transformClosureIterator-procs-all">
<div id="transformClosureIterator,ModuleGraph,IdGenerator,PSym,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#transformClosureIterator%2CModuleGraph%2CIdGenerator%2CPSym%2CPNode"><span class="Identifier">transformClosureIterator</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">;</span> <span class="Identifier">fn</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span>
<span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/closureiters.nim#L1477" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/closureiters.nim#L1477" 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: 2026-06-02 05:20:20 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

View File

@@ -0,0 +1,2 @@
nimTitle closureiters closureiters.html module closureiters 0
nim transformClosureIterator closureiters.html#transformClosureIterator,ModuleGraph,IdGenerator,PSym,PNode proc transformClosureIterator(g: ModuleGraph; idgen: IdGenerator; fn: PSym; n: PNode): PNode 1477

259
compiler/cmdlinehelper.html Normal file
View File

@@ -0,0 +1,259 @@
<?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>cmdlinehelper</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">cmdlinehelper</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="#NimProg" title="NimProg = ref object
suggestMode*: bool
supportsStdinFile*: bool
processCmdLine*: proc (pass: TCmdLinePass; cmd: string; config: ConfigRef)">NimProg</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">addCmdPrefix
<li><a class="reference" href="#addCmdPrefix%2Cstring%2CCmdLineKind" title="addCmdPrefix(result: var string; kind: CmdLineKind)">addCmdPrefix(result: var string; kind: CmdLineKind)</a></li>
</ul>
<ul class="simple nested-toc-section">initDefinesProg
<li><a class="reference" href="#initDefinesProg%2CNimProg%2CConfigRef%2Cstring" title="initDefinesProg(self: NimProg; conf: ConfigRef; name: string)">initDefinesProg(self: NimProg; conf: ConfigRef; name: string)</a></li>
</ul>
<ul class="simple nested-toc-section">loadConfigsAndProcessCmdLine
<li><a class="reference" href="#loadConfigsAndProcessCmdLine%2CNimProg%2CIdentCache%2CConfigRef%2CModuleGraph" title="loadConfigsAndProcessCmdLine(self: NimProg; cache: IdentCache; conf: ConfigRef;
graph: ModuleGraph): bool">loadConfigsAndProcessCmdLine(self: NimProg; cache: IdentCache; conf: ConfigRef;
graph: ModuleGraph): bool</a></li>
</ul>
<ul class="simple nested-toc-section">loadConfigsAndRunMainCommand
<li><a class="reference" href="#loadConfigsAndRunMainCommand%2CNimProg%2CIdentCache%2CConfigRef%2CModuleGraph" title="loadConfigsAndRunMainCommand(self: NimProg; cache: IdentCache; conf: ConfigRef;
graph: ModuleGraph): bool">loadConfigsAndRunMainCommand(self: NimProg; cache: IdentCache; conf: ConfigRef;
graph: ModuleGraph): bool</a></li>
</ul>
<ul class="simple nested-toc-section">prependCurDir
<li><a class="reference" href="#prependCurDir%2CAbsoluteFile" title="prependCurDir(f: AbsoluteFile): AbsoluteFile">prependCurDir(f: AbsoluteFile): AbsoluteFile</a></li>
</ul>
<ul class="simple nested-toc-section">processCmdLineAndProjectPath
<li><a class="reference" href="#processCmdLineAndProjectPath%2CNimProg%2CConfigRef" title="processCmdLineAndProjectPath(self: NimProg; conf: ConfigRef)">processCmdLineAndProjectPath(self: NimProg; conf: ConfigRef)</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/cmdlinehelper.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cmdlinehelper.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">Helpers for binaries that use compiler passes, e.g.: nim, nimsuggest</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="options.html">options</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="nimconf.html">nimconf</a>, <a class="reference external" href="extccomp.html">extccomp</a>, <a class="reference external" href="commands.html">commands</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="modulegraphs.html">modulegraphs</a>, <a class="reference external" href="condsyms.html">condsyms</a>, <a class="reference external" href="pathutils.html">pathutils</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="NimProg">
<dt><pre><a href="#NimProg"><span class="Identifier">NimProg</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <span class="Keyword">object</span>
<span class="Identifier">suggestMode</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
<span class="Identifier">supportsStdinFile</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
<span class="Identifier">processCmdLine</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">pass</span><span class="Other">:</span> <a href="commands.html#TCmdLinePass"><span class="Identifier">TCmdLinePass</span></a><span class="Other">;</span> <span class="Identifier">cmd</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cmdlinehelper.nim#L33" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cmdlinehelper.nim#L33" 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="addCmdPrefix-procs-all">
<div id="addCmdPrefix,string,CmdLineKind">
<dt><pre><span class="Keyword">proc</span> <a href="#addCmdPrefix%2Cstring%2CCmdLineKind"><span class="Identifier">addCmdPrefix</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">kind</span><span class="Other">:</span> <span class="Identifier">CmdLineKind</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/cmdlinehelper.nim#L25" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cmdlinehelper.nim#L25" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initDefinesProg-procs-all">
<div id="initDefinesProg,NimProg,ConfigRef,string">
<dt><pre><span class="Keyword">proc</span> <a href="#initDefinesProg%2CNimProg%2CConfigRef%2Cstring"><span class="Identifier">initDefinesProg</span></a><span class="Other">(</span><span class="Identifier">self</span><span class="Other">:</span> <a href="#NimProg"><span class="Identifier">NimProg</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">name</span><span class="Other">:</span> <span class="Identifier">string</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/cmdlinehelper.nim#L38" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cmdlinehelper.nim#L38" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="loadConfigsAndProcessCmdLine-procs-all">
<div id="loadConfigsAndProcessCmdLine,NimProg,IdentCache,ConfigRef,ModuleGraph">
<dt><pre><span class="Keyword">proc</span> <a href="#loadConfigsAndProcessCmdLine%2CNimProg%2CIdentCache%2CConfigRef%2CModuleGraph"><span class="Identifier">loadConfigsAndProcessCmdLine</span></a><span class="Other">(</span><span class="Identifier">self</span><span class="Other">:</span> <a href="#NimProg"><span class="Identifier">NimProg</span></a><span class="Other">;</span> <span class="Identifier">cache</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span>
<span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">graph</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">,</span>
<span class="Identifier">EOFError</span><span class="Other">,</span> <span class="Identifier">ESuggestDone</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="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span>
<span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteEnvEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">TimeEffect</span><span class="Other">,</span> <span class="Identifier">ExecIOEffect</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/cmdlinehelper.nim#L53" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cmdlinehelper.nim#L53" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="loadConfigsAndRunMainCommand-procs-all">
<div id="loadConfigsAndRunMainCommand,NimProg,IdentCache,ConfigRef,ModuleGraph">
<dt><pre><span class="Keyword">proc</span> <a href="#loadConfigsAndRunMainCommand%2CNimProg%2CIdentCache%2CConfigRef%2CModuleGraph"><span class="Identifier">loadConfigsAndRunMainCommand</span></a><span class="Other">(</span><span class="Identifier">self</span><span class="Other">:</span> <a href="#NimProg"><span class="Identifier">NimProg</span></a><span class="Other">;</span> <span class="Identifier">cache</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span>
<span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">graph</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">,</span>
<span class="Identifier">EOFError</span><span class="Other">,</span> <span class="Identifier">ESuggestDone</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="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span>
<span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteEnvEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">TimeEffect</span><span class="Other">,</span> <span class="Identifier">ExecIOEffect</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>
Alias for loadConfigsAndProcessCmdLine, here for backwards compatibility
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/cmdlinehelper.nim#L83" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cmdlinehelper.nim#L83" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="prependCurDir-procs-all">
<div id="prependCurDir,AbsoluteFile">
<dt><pre><span class="Keyword">proc</span> <a href="#prependCurDir%2CAbsoluteFile"><span class="Identifier">prependCurDir</span></a><span class="Other">(</span><span class="Identifier">f</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</span></a><span class="Other">)</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</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/cmdlinehelper.nim#L18" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cmdlinehelper.nim#L18" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="processCmdLineAndProjectPath-procs-all">
<div id="processCmdLineAndProjectPath,NimProg,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#processCmdLineAndProjectPath%2CNimProg%2CConfigRef"><span class="Identifier">processCmdLineAndProjectPath</span></a><span class="Other">(</span><span class="Identifier">self</span><span class="Other">:</span> <a href="#NimProg"><span class="Identifier">NimProg</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/cmdlinehelper.nim#L42" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/cmdlinehelper.nim#L42" 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: 2026-06-02 05:20:25 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

View File

@@ -0,0 +1,8 @@
nimTitle cmdlinehelper cmdlinehelper.html module cmdlinehelper 0
nim prependCurDir cmdlinehelper.html#prependCurDir,AbsoluteFile proc prependCurDir(f: AbsoluteFile): AbsoluteFile 18
nim addCmdPrefix cmdlinehelper.html#addCmdPrefix,string,CmdLineKind proc addCmdPrefix(result: var string; kind: CmdLineKind) 25
nim NimProg cmdlinehelper.html#NimProg type NimProg 33
nim initDefinesProg cmdlinehelper.html#initDefinesProg,NimProg,ConfigRef,string proc initDefinesProg(self: NimProg; conf: ConfigRef; name: string) 38
nim processCmdLineAndProjectPath cmdlinehelper.html#processCmdLineAndProjectPath,NimProg,ConfigRef proc processCmdLineAndProjectPath(self: NimProg; conf: ConfigRef) 42
nim loadConfigsAndProcessCmdLine cmdlinehelper.html#loadConfigsAndProcessCmdLine,NimProg,IdentCache,ConfigRef,ModuleGraph proc loadConfigsAndProcessCmdLine(self: NimProg; cache: IdentCache; conf: ConfigRef;\n graph: ModuleGraph): bool 53
nim loadConfigsAndRunMainCommand cmdlinehelper.html#loadConfigsAndRunMainCommand,NimProg,IdentCache,ConfigRef,ModuleGraph proc loadConfigsAndRunMainCommand(self: NimProg; cache: IdentCache; conf: ConfigRef;\n graph: ModuleGraph): bool 83

420
compiler/commands.html Normal file
View File

@@ -0,0 +1,420 @@
<?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>commands</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">commands</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="#TCmdLinePass" title="TCmdLinePass = enum
passCmd1, passCmd2, passPP">TCmdLinePass</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">handleCmdInput
<li><a class="reference" href="#handleCmdInput%2CConfigRef" title="handleCmdInput(conf: ConfigRef)">handleCmdInput(conf: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">handleStdinInput
<li><a class="reference" href="#handleStdinInput%2CConfigRef" title="handleStdinInput(conf: ConfigRef)">handleStdinInput(conf: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">initOrcDefines
<li><a class="reference" href="#initOrcDefines%2CConfigRef" title="initOrcDefines(conf: ConfigRef)">initOrcDefines(conf: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">parseCommand
<li><a class="reference" href="#parseCommand%2Cstring" title="parseCommand(command: string): Command">parseCommand(command: string): Command</a></li>
</ul>
<ul class="simple nested-toc-section">processArgument
<li><a class="reference" href="#processArgument%2CTCmdLinePass%2COptParser%2Cint%2CConfigRef" title="processArgument(pass: TCmdLinePass; p: OptParser; argsCount: var int;
config: ConfigRef): bool">processArgument(pass: TCmdLinePass; p: OptParser; argsCount: var int;
config: ConfigRef): bool</a></li>
</ul>
<ul class="simple nested-toc-section">processCommand
<li><a class="reference" href="#processCommand%2Cstring%2CTCmdLinePass%2CConfigRef" title="processCommand(switch: string; pass: TCmdLinePass; config: ConfigRef)">processCommand(switch: string; pass: TCmdLinePass; config: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">processSpecificNote
<li><a class="reference" href="#processSpecificNote%2Cstring%2CTSpecialWord%2CTCmdLinePass%2CTLineInfo%2Cstring%2CConfigRef" title="processSpecificNote(arg: string; state: TSpecialWord; pass: TCmdLinePass;
info: TLineInfo; orig: string; conf: ConfigRef)">processSpecificNote(arg: string; state: TSpecialWord; pass: TCmdLinePass;
info: TLineInfo; orig: string; conf: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">processSwitch
<li><a class="reference" href="#processSwitch%2CTCmdLinePass%2COptParser%2CConfigRef" title="processSwitch(pass: TCmdLinePass; p: OptParser; config: ConfigRef)">processSwitch(pass: TCmdLinePass; p: OptParser; config: ConfigRef)</a></li>
<li><a class="reference" href="#processSwitch%2Cstring%2Cstring%2CTCmdLinePass%2CTLineInfo%2CConfigRef" title="processSwitch(switch, arg: string; pass: TCmdLinePass; info: TLineInfo;
conf: ConfigRef)">processSwitch(switch, arg: string; pass: TCmdLinePass; info: TLineInfo;
conf: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">setCmd
<li><a class="reference" href="#setCmd%2CConfigRef%2CCommand" title="setCmd(conf: ConfigRef; cmd: Command)">setCmd(conf: ConfigRef; cmd: Command)</a></li>
</ul>
<ul class="simple nested-toc-section">setCommandEarly
<li><a class="reference" href="#setCommandEarly%2CConfigRef%2Cstring" title="setCommandEarly(conf: ConfigRef; command: string)">setCommandEarly(conf: ConfigRef; command: string)</a></li>
</ul>
<ul class="simple nested-toc-section">testCompileOption
<li><a class="reference" href="#testCompileOption%2CConfigRef%2Cstring%2CTLineInfo" title="testCompileOption(conf: ConfigRef; switch: string; info: TLineInfo): bool">testCompileOption(conf: ConfigRef; switch: string; info: TLineInfo): bool</a></li>
</ul>
<ul class="simple nested-toc-section">testCompileOptionArg
<li><a class="reference" href="#testCompileOptionArg%2CConfigRef%2Cstring%2Cstring%2CTLineInfo" title="testCompileOptionArg(conf: ConfigRef; switch, arg: string; info: TLineInfo): bool">testCompileOptionArg(conf: ConfigRef; switch, arg: string; info: TLineInfo): bool</a></li>
</ul>
<ul class="simple nested-toc-section">unregisterArcOrc
<li><a class="reference" href="#unregisterArcOrc%2CConfigRef" title="unregisterArcOrc(conf: ConfigRef)">unregisterArcOrc(conf: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">writeCommandLineUsage
<li><a class="reference" href="#writeCommandLineUsage%2CConfigRef" title="writeCommandLineUsage(conf: ConfigRef)">writeCommandLineUsage(conf: ConfigRef)</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/commands.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="nversion.html">nversion</a>, <a class="reference external" href="condsyms.html">condsyms</a>, <a class="reference external" href="extccomp.html">extccomp</a>, <a class="reference external" href="platform.html">platform</a>, <a class="reference external" href="wordrecg.html">wordrecg</a>, <a class="reference external" href="nimblecmd.html">nimblecmd</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="pathutils.html">pathutils</a>, <a class="reference external" href="ast.html">ast</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="TCmdLinePass">
<dt><pre><a href="#TCmdLinePass"><span class="Identifier">TCmdLinePass</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">passCmd1</span><span class="Other">,</span> <span class="Identifier">passCmd2</span><span class="Other">,</span> <span class="Identifier">passPP</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/commands.nim#L44" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L44" 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="handleCmdInput-procs-all">
<div id="handleCmdInput,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#handleCmdInput%2CConfigRef"><span class="Identifier">handleCmdInput</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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">OSError</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">ReadEnvEffect</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/commands.nim#L476" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L476" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="handleStdinInput-procs-all">
<div id="handleStdinInput,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#handleStdinInput%2CConfigRef"><span class="Identifier">handleStdinInput</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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">OSError</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">ReadEnvEffect</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/commands.nim#L471" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L471" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initOrcDefines-procs-all">
<div id="initOrcDefines,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#initOrcDefines%2CConfigRef"><span class="Identifier">initOrcDefines</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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/commands.nim#L557" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L557" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="parseCommand-procs-all">
<div id="parseCommand,string">
<dt><pre><span class="Keyword">proc</span> <a href="#parseCommand%2Cstring"><span class="Identifier">parseCommand</span></a><span class="Other">(</span><span class="Identifier">command</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="options.html#Command"><span class="Identifier">Command</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/commands.nim#L480" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L480" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="processArgument-procs-all">
<div id="processArgument,TCmdLinePass,OptParser,int,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#processArgument%2CTCmdLinePass%2COptParser%2Cint%2CConfigRef"><span class="Identifier">processArgument</span></a><span class="Other">(</span><span class="Identifier">pass</span><span class="Other">:</span> <a href="#TCmdLinePass"><span class="Identifier">TCmdLinePass</span></a><span class="Other">;</span> <span class="Identifier">p</span><span class="Other">:</span> <span class="Identifier">OptParser</span><span class="Other">;</span> <span class="Identifier">argsCount</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">int</span><span class="Other">;</span>
<span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><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/commands.nim#L1239" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L1239" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="processCommand-procs-all">
<div id="processCommand,string,TCmdLinePass,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#processCommand%2Cstring%2CTCmdLinePass%2CConfigRef"><span class="Identifier">processCommand</span></a><span class="Other">(</span><span class="Identifier">switch</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">pass</span><span class="Other">:</span> <a href="#TCmdLinePass"><span class="Identifier">TCmdLinePass</span></a><span class="Other">;</span> <span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">,</span>
<span class="Identifier">EOFError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteEnvEffect</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/commands.nim#L1222" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L1222" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="processSpecificNote-procs-all">
<div id="processSpecificNote,string,TSpecialWord,TCmdLinePass,TLineInfo,string,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#processSpecificNote%2Cstring%2CTSpecialWord%2CTCmdLinePass%2CTLineInfo%2Cstring%2CConfigRef"><span class="Identifier">processSpecificNote</span></a><span class="Other">(</span><span class="Identifier">arg</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">state</span><span class="Other">:</span> <a href="wordrecg.html#TSpecialWord"><span class="Identifier">TSpecialWord</span></a><span class="Other">;</span> <span class="Identifier">pass</span><span class="Other">:</span> <a href="#TCmdLinePass"><span class="Identifier">TCmdLinePass</span></a><span class="Other">;</span>
<span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">orig</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/commands.nim#L185" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L185" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="processSwitch-procs-all">
<div id="processSwitch,TCmdLinePass,OptParser,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#processSwitch%2CTCmdLinePass%2COptParser%2CConfigRef"><span class="Identifier">processSwitch</span></a><span class="Other">(</span><span class="Identifier">pass</span><span class="Other">:</span> <a href="#TCmdLinePass"><span class="Identifier">TCmdLinePass</span></a><span class="Other">;</span> <span class="Identifier">p</span><span class="Other">:</span> <span class="Identifier">OptParser</span><span class="Other">;</span> <span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">,</span>
<span class="Identifier">EOFError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteEnvEffect</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/commands.nim#L1228" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L1228" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="processSwitch,string,string,TCmdLinePass,TLineInfo,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#processSwitch%2Cstring%2Cstring%2CTCmdLinePass%2CTLineInfo%2CConfigRef"><span class="Identifier">processSwitch</span></a><span class="Other">(</span><span class="Identifier">switch</span><span class="Other">,</span> <span class="Identifier">arg</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">pass</span><span class="Other">:</span> <a href="#TCmdLinePass"><span class="Identifier">TCmdLinePass</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span>
<span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span>
<span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">,</span> <span class="Identifier">EOFError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">WriteDirEffect</span><span class="Other">,</span>
<span class="Identifier">WriteEnvEffect</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/commands.nim#L652" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L652" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setCmd-procs-all">
<div id="setCmd,ConfigRef,Command">
<dt><pre><span class="Keyword">proc</span> <a href="#setCmd%2CConfigRef%2CCommand"><span class="Identifier">setCmd</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">cmd</span><span class="Other">:</span> <a href="options.html#Command"><span class="Identifier">Command</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>
sets cmd, backend so subsequent flags can query it (e.g. so --gc:arc can be ignored for backendJs)
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/commands.nim#L513" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L513" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setCommandEarly-procs-all">
<div id="setCommandEarly,ConfigRef,string">
<dt><pre><span class="Keyword">proc</span> <a href="#setCommandEarly%2CConfigRef%2Cstring"><span class="Identifier">setCommandEarly</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">command</span><span class="Other">:</span> <span class="Identifier">string</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/commands.nim#L530" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L530" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="testCompileOption-procs-all">
<div id="testCompileOption,ConfigRef,string,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#testCompileOption%2CConfigRef%2Cstring%2CTLineInfo"><span class="Identifier">testCompileOption</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">switch</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><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="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/commands.nim#L327" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L327" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="testCompileOptionArg-procs-all">
<div id="testCompileOptionArg,ConfigRef,string,string,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#testCompileOptionArg%2CConfigRef%2Cstring%2Cstring%2CTLineInfo"><span class="Identifier">testCompileOptionArg</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">switch</span><span class="Other">,</span> <span class="Identifier">arg</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><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="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/commands.nim#L261" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L261" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="unregisterArcOrc-procs-all">
<div id="unregisterArcOrc,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#unregisterArcOrc%2CConfigRef"><span class="Identifier">unregisterArcOrc</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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/commands.nim#L578" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.nim#L578" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="writeCommandLineUsage-procs-all">
<div id="writeCommandLineUsage,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#writeCommandLineUsage%2CConfigRef"><span class="Identifier">writeCommandLineUsage</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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">Exception</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ValueError</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">RootEffect</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/commands.nim#L110" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/commands.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: 2026-06-02 05:20:17 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

21
compiler/commands.idx Normal file
View File

@@ -0,0 +1,21 @@
nimTitle commands commands.html module commands 0
nim passCmd1 commands.html#passCmd1 TCmdLinePass.passCmd1 44
nim passCmd2 commands.html#passCmd2 TCmdLinePass.passCmd2 44
nim passPP commands.html#passPP TCmdLinePass.passPP 44
nim TCmdLinePass commands.html#TCmdLinePass enum TCmdLinePass 44
nim writeCommandLineUsage commands.html#writeCommandLineUsage,ConfigRef proc writeCommandLineUsage(conf: ConfigRef) 110
nim processSpecificNote commands.html#processSpecificNote,string,TSpecialWord,TCmdLinePass,TLineInfo,string,ConfigRef proc processSpecificNote(arg: string; state: TSpecialWord; pass: TCmdLinePass;\n info: TLineInfo; orig: string; conf: ConfigRef) 185
nim testCompileOptionArg commands.html#testCompileOptionArg,ConfigRef,string,string,TLineInfo proc testCompileOptionArg(conf: ConfigRef; switch, arg: string; info: TLineInfo): bool 261
nim testCompileOption commands.html#testCompileOption,ConfigRef,string,TLineInfo proc testCompileOption(conf: ConfigRef; switch: string; info: TLineInfo): bool 327
nim handleStdinInput commands.html#handleStdinInput,ConfigRef proc handleStdinInput(conf: ConfigRef) 471
nim handleCmdInput commands.html#handleCmdInput,ConfigRef proc handleCmdInput(conf: ConfigRef) 476
nim parseCommand commands.html#parseCommand,string proc parseCommand(command: string): Command 480
nim setCmd commands.html#setCmd,ConfigRef,Command proc setCmd(conf: ConfigRef; cmd: Command) 513
nim setCommandEarly commands.html#setCommandEarly,ConfigRef,string proc setCommandEarly(conf: ConfigRef; command: string) 530
nim initOrcDefines commands.html#initOrcDefines,ConfigRef proc initOrcDefines(conf: ConfigRef) 557
nim unregisterArcOrc commands.html#unregisterArcOrc,ConfigRef proc unregisterArcOrc(conf: ConfigRef) 578
nim processSwitch commands.html#processSwitch,string,string,TCmdLinePass,TLineInfo,ConfigRef proc processSwitch(switch, arg: string; pass: TCmdLinePass; info: TLineInfo;\n conf: ConfigRef) 652
nim processCommand commands.html#processCommand,string,TCmdLinePass,ConfigRef proc processCommand(switch: string; pass: TCmdLinePass; config: ConfigRef) 1222
nim processSwitch commands.html#processSwitch,TCmdLinePass,OptParser,ConfigRef proc processSwitch(pass: TCmdLinePass; p: OptParser; config: ConfigRef) 1228
nim processArgument commands.html#processArgument,TCmdLinePass,OptParser,int,ConfigRef proc processArgument(pass: TCmdLinePass; p: OptParser; argsCount: var int;\n config: ConfigRef): bool 1239
nimgrp processswitch commands.html#processSwitch-procs-all proc 652

197
compiler/concepts.html Normal file
View File

@@ -0,0 +1,197 @@
<?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>concepts</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">concepts</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" id="code-dealing-with-concept-declarations_toc" href="#code-dealing-with-concept-declarations">Code dealing with Concept declarations</a></li>
<li><a class="reference" id="concept-matching_toc" href="#concept-matching">Concept matching</a></li>
<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="#MatchFlags" title="MatchFlags = enum
mfDontBind, mfCheckGeneric">MatchFlags</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">conceptBody
<li><a class="reference" href="#conceptBody%2CPType" title="conceptBody(n: PType): PNode">conceptBody(n: PType): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">conceptMatch
<li><a class="reference" href="#conceptMatch%2CPContext%2CPType%2CPType%2CLayeredIdTableObj%2CPType%2Cset%5BMatchFlags%5D" title="conceptMatch(c: PContext; concpt, arg: PType; bindings: var LayeredIdTable;
invocation: PType; flags: set[MatchFlags] = {}): bool">conceptMatch(c: PContext; concpt, arg: PType; bindings: var LayeredIdTable;
invocation: PType; flags: set[MatchFlags] = {}): bool</a></li>
</ul>
<ul class="simple nested-toc-section">semConceptDeclaration
<li><a class="reference" href="#semConceptDeclaration%2CPContext%2CPNode" title="semConceptDeclaration(c: PContext; n: PNode): PNode">semConceptDeclaration(c: PContext; n: PNode): PNode</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/concepts.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/concepts.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">New styled concepts for Nim. See <a class="reference external" href="https://github.com/nim-lang/RFCs/issues/168">https://github.com/nim-lang/RFCs/issues/168</a> for details. Note this is a first implementation and only the &quot;Concept matching&quot; section has been implemented.
<h1><a class="toc-backref" id="code-dealing-with-concept-declarations" href="#code-dealing-with-concept-declarations">Code dealing with Concept declarations</a></h1>
<h1><a class="toc-backref" id="concept-matching" href="#concept-matching">Concept matching</a></h1></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="semdata.html">semdata</a>, <a class="reference external" href="lookups.html">lookups</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="renderer.html">renderer</a>, <a class="reference external" href="types.html">types</a>, <a class="reference external" href="layeredtable.html">layeredtable</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="MatchFlags">
<dt><pre><a href="#MatchFlags"><span class="Identifier">MatchFlags</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">mfDontBind</span><span class="Other">,</span> <span class="Identifier">mfCheckGeneric</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/concepts.nim#L73" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/concepts.nim#L73" 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="conceptBody-procs-all">
<div id="conceptBody,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#conceptBody%2CPType"><span class="Identifier">conceptBody</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span>
<span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/concepts.nim#L155" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/concepts.nim#L155" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="conceptMatch-procs-all">
<div id="conceptMatch,PContext,PType,PType,LayeredIdTableObj,PType,set[MatchFlags]">
<dt><pre><span class="Keyword">proc</span> <a href="#conceptMatch%2CPContext%2CPType%2CPType%2CLayeredIdTableObj%2CPType%2Cset%5BMatchFlags%5D"><span class="Identifier">conceptMatch</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="semdata.html#PContext"><span class="Identifier">PContext</span></a><span class="Other">;</span> <span class="Identifier">concpt</span><span class="Other">,</span> <span class="Identifier">arg</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">bindings</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="layeredtable.html#LayeredIdTable"><span class="Identifier">LayeredIdTable</span></a><span class="Other">;</span>
<span class="Identifier">invocation</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">flags</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="#MatchFlags"><span class="Identifier">MatchFlags</span></a><span class="Other">]</span> <span class="Other">=</span> <span class="Other">{</span><span class="Other">}</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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>
Entry point from sigmatch. 'concpt' is the concept we try to match (here still a PType but we extract its AST via 'concpt.n.lastSon'). 'arg' is the type that might fulfill the concept's requirements. If so, we return true and fill the 'bindings' with pairs of (typeVar, instance) pairs. ('typeVar' is usually simply written as a generic 'T'.) 'invocation' can be nil for atomic concepts. For non-atomic concepts, it contains the <tt class="docutils literal"><span class="pre"><span class="Identifier">C</span><span class="Punctuation">[</span><span class="Identifier">S</span><span class="Punctuation">,</span> <span class="Identifier">T</span><span class="Punctuation">]</span></span></tt> parent type that we look for. We need this because we need to store bindings for 'S' and 'T' inside 'bindings' on a successful match. It is very important that we do not add any bindings at all on an unsuccessful match!
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/concepts.nim#L622" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/concepts.nim#L622" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="semConceptDeclaration-procs-all">
<div id="semConceptDeclaration,PContext,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#semConceptDeclaration%2CPContext%2CPNode"><span class="Identifier">semConceptDeclaration</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="semdata.html#PContext"><span class="Identifier">PContext</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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>
Semantic checking for the concept declaration. Runs when we process the concept itself, not its matching process.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/concepts.nim#L58" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/concepts.nim#L58" 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: 2026-06-02 05:20:19 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

9
compiler/concepts.idx Normal file
View File

@@ -0,0 +1,9 @@
nimTitle concepts concepts.html module concepts 0
nim semConceptDeclaration concepts.html#semConceptDeclaration,PContext,PNode proc semConceptDeclaration(c: PContext; n: PNode): PNode 58
nim mfDontBind concepts.html#mfDontBind MatchFlags.mfDontBind 73
nim mfCheckGeneric concepts.html#mfCheckGeneric MatchFlags.mfCheckGeneric 73
nim MatchFlags concepts.html#MatchFlags enum MatchFlags 73
nim conceptBody concepts.html#conceptBody,PType proc conceptBody(n: PType): PNode 155
nim conceptMatch concepts.html#conceptMatch,PContext,PType,PType,LayeredIdTableObj,PType,set[MatchFlags] proc conceptMatch(c: PContext; concpt, arg: PType; bindings: var LayeredIdTable;\n invocation: PType; flags: set[MatchFlags] = {}): bool 622
heading Code dealing with Concept declarations concepts.html#code-dealing-with-concept-declarations Code dealing with Concept declarations 0
heading Concept matching concepts.html#concept-matching Concept matching 0

208
compiler/condsyms.html Normal file
View File

@@ -0,0 +1,208 @@
<?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>condsyms</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">condsyms</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">countDefinedSymbols
<li><a class="reference" href="#countDefinedSymbols%2CStringTableRef" title="countDefinedSymbols(symbols: StringTableRef): int">countDefinedSymbols(symbols: StringTableRef): int</a></li>
</ul>
<ul class="simple nested-toc-section">defineSymbol
<li><a class="reference" href="#defineSymbol%2CStringTableRef%2Cstring%2Cstring" title="defineSymbol(symbols: StringTableRef; symbol: string; value: string = &quot;true&quot;)">defineSymbol(symbols: StringTableRef; symbol: string; value: string = &quot;true&quot;)</a></li>
</ul>
<ul class="simple nested-toc-section">initDefines
<li><a class="reference" href="#initDefines%2CStringTableRef" title="initDefines(symbols: StringTableRef)">initDefines(symbols: StringTableRef)</a></li>
</ul>
<ul class="simple nested-toc-section">undefSymbol
<li><a class="reference" href="#undefSymbol%2CStringTableRef%2Cstring" title="undefSymbol(symbols: StringTableRef; symbol: string)">undefSymbol(symbols: StringTableRef; symbol: string)</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">definedSymbolNames
<li><a class="reference" href="#definedSymbolNames.i%2CStringTableRef" title="definedSymbolNames(symbols: StringTableRef): string">definedSymbolNames(symbols: StringTableRef): string</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/condsyms.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/condsyms.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="options.html">options</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="countDefinedSymbols-procs-all">
<div id="countDefinedSymbols,StringTableRef">
<dt><pre><span class="Keyword">proc</span> <a href="#countDefinedSymbols%2CStringTableRef"><span class="Identifier">countDefinedSymbols</span></a><span class="Other">(</span><span class="Identifier">symbols</span><span class="Other">:</span> <span class="Identifier">StringTableRef</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</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/condsyms.nim#L31" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/condsyms.nim#L31" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="defineSymbol-procs-all">
<div id="defineSymbol,StringTableRef,string,string">
<dt><pre><span class="Keyword">proc</span> <a href="#defineSymbol%2CStringTableRef%2Cstring%2Cstring"><span class="Identifier">defineSymbol</span></a><span class="Other">(</span><span class="Identifier">symbols</span><span class="Other">:</span> <span class="Identifier">StringTableRef</span><span class="Other">;</span> <span class="Identifier">symbol</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span>
<span class="Identifier">value</span><span class="Other">:</span> <span class="Identifier">string</span> <span class="Other">=</span> <span class="StringLit">&quot;true&quot;</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/condsyms.nim#L18" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/condsyms.nim#L18" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initDefines-procs-all">
<div id="initDefines,StringTableRef">
<dt><pre><span class="Keyword">proc</span> <a href="#initDefines%2CStringTableRef"><span class="Identifier">initDefines</span></a><span class="Other">(</span><span class="Identifier">symbols</span><span class="Other">:</span> <span class="Identifier">StringTableRef</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/condsyms.nim#L34" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/condsyms.nim#L34" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="undefSymbol-procs-all">
<div id="undefSymbol,StringTableRef,string">
<dt><pre><span class="Keyword">proc</span> <a href="#undefSymbol%2CStringTableRef%2Cstring"><span class="Identifier">undefSymbol</span></a><span class="Other">(</span><span class="Identifier">symbols</span><span class="Other">:</span> <span class="Identifier">StringTableRef</span><span class="Other">;</span> <span class="Identifier">symbol</span><span class="Other">:</span> <span class="Identifier">string</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/condsyms.nim#L21" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/condsyms.nim#L21" 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="definedSymbolNames-iterators-all">
<div id="definedSymbolNames.i,StringTableRef">
<dt><pre><span class="Keyword">iterator</span> <a href="#definedSymbolNames.i%2CStringTableRef"><span class="Identifier">definedSymbolNames</span></a><span class="Other">(</span><span class="Identifier">symbols</span><span class="Other">:</span> <span class="Identifier">StringTableRef</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/condsyms.nim#L27" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/condsyms.nim#L27" 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: 2026-06-02 05:20:16 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

6
compiler/condsyms.idx Normal file
View File

@@ -0,0 +1,6 @@
nimTitle condsyms condsyms.html module condsyms 0
nim defineSymbol condsyms.html#defineSymbol,StringTableRef,string,string proc defineSymbol(symbols: StringTableRef; symbol: string; value: string = "true") 18
nim undefSymbol condsyms.html#undefSymbol,StringTableRef,string proc undefSymbol(symbols: StringTableRef; symbol: string) 21
nim definedSymbolNames condsyms.html#definedSymbolNames.i,StringTableRef iterator definedSymbolNames(symbols: StringTableRef): string 27
nim countDefinedSymbols condsyms.html#countDefinedSymbols,StringTableRef proc countDefinedSymbols(symbols: StringTableRef): int 31
nim initDefines condsyms.html#initDefines,StringTableRef proc initDefines(symbols: StringTableRef) 34

160
compiler/depends.html Normal file
View File

@@ -0,0 +1,160 @@
<?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>depends</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">depends</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">addDotDependency
<li><a class="reference" href="#addDotDependency%2CPPassContext%2CPNode" title="addDotDependency(c: PPassContext; n: PNode): PNode">addDotDependency(c: PPassContext; n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">generateDot
<li><a class="reference" href="#generateDot%2CModuleGraph%2CAbsoluteFile" title="generateDot(graph: ModuleGraph; project: AbsoluteFile)">generateDot(graph: ModuleGraph; project: AbsoluteFile)</a></li>
</ul>
<ul class="simple nested-toc-section">setupDependPass
<li><a class="reference" href="#setupDependPass%2CModuleGraph%2CPSym%2CIdGenerator" title="setupDependPass(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext">setupDependPass(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext</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/depends.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/depends.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="options.html">options</a>, <a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="ropes.html">ropes</a>, <a class="reference external" href="pathutils.html">pathutils</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="modulegraphs.html">modulegraphs</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="addDotDependency-procs-all">
<div id="addDotDependency,PPassContext,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#addDotDependency%2CPPassContext%2CPNode"><span class="Identifier">addDotDependency</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="modulegraphs.html#PPassContext"><span class="Identifier">PPassContext</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/depends.nim#L86" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/depends.nim#L86" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="generateDot-procs-all">
<div id="generateDot,ModuleGraph,AbsoluteFile">
<dt><pre><span class="Keyword">proc</span> <a href="#generateDot%2CModuleGraph%2CAbsoluteFile"><span class="Identifier">generateDot</span></a><span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">project</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</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/depends.nim#L101" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/depends.nim#L101" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setupDependPass-procs-all">
<div id="setupDependPass,ModuleGraph,PSym,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#setupDependPass%2CModuleGraph%2CPSym%2CIdGenerator"><span class="Identifier">setupDependPass</span></a><span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="modulegraphs.html#PPassContext"><span class="Identifier">PPassContext</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/depends.nim#L107" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/depends.nim#L107" 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: 2026-06-02 05:20:24 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

4
compiler/depends.idx Normal file
View File

@@ -0,0 +1,4 @@
nimTitle depends depends.html module depends 0
nim addDotDependency depends.html#addDotDependency,PPassContext,PNode proc addDotDependency(c: PPassContext; n: PNode): PNode 86
nim generateDot depends.html#generateDot,ModuleGraph,AbsoluteFile proc generateDot(graph: ModuleGraph; project: AbsoluteFile) 101
nim setupDependPass depends.html#setupDependPass,ModuleGraph,PSym,IdGenerator proc setupDependPass(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext 107

125
compiler/deps.html Normal file
View File

@@ -0,0 +1,125 @@
<?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>deps</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">deps</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">commandIc
<li><a class="reference" href="#commandIc%2CConfigRef" title="commandIc(conf: ConfigRef)">commandIc(conf: ConfigRef)</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/deps.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/deps.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">Generate a .build.nif file for nifmake from a Nim project. This enables incremental and parallel compilation using the <tt class="docutils literal"><span class="pre"><span class="Identifier">m</span></span></tt> switch.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="options.html">options</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="pathutils.html">pathutils</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="commandIc-procs-all">
<div id="commandIc,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#commandIc%2CConfigRef"><span class="Identifier">commandIc</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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="Identifier">ReadDirEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">ExecIOEffect</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>
Main entry point for <tt class="docutils literal"><span class="pre"><span class="Identifier">nim</span> <span class="Identifier">ic</span></span></tt>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/deps.nim#L511" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/deps.nim#L511" 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: 2026-06-02 05:20:25 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

2
compiler/deps.idx Normal file
View File

@@ -0,0 +1,2 @@
nimTitle deps deps.html module deps 0
nim commandIc deps.html#commandIc,ConfigRef proc commandIc(conf: ConfigRef) 511

207
compiler/dfa.html Normal file
View File

@@ -0,0 +1,207 @@
<?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>dfa</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">dfa</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="#ControlFlowGraph" title="ControlFlowGraph = seq[Instr]">ControlFlowGraph</a></li>
<li><a class="reference" href="#Instr" title="Instr = object
case kind*: InstrKind
of goto, fork, loop:
dest*: int
of def, use:
n*: PNode">Instr</a></li>
<li><a class="reference" href="#InstrKind" title="InstrKind = enum
goto, loop, fork, def, use">InstrKind</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">constructCfg
<li><a class="reference" href="#constructCfg%2CPSym%2CPNode%2CPSym" title="constructCfg(s: PSym; body: PNode; root: PSym): ControlFlowGraph">constructCfg(s: PSym; body: PNode; root: PSym): ControlFlowGraph</a></li>
</ul>
<ul class="simple nested-toc-section">echoCfg
<li><a class="reference" href="#echoCfg%2CControlFlowGraph%2Cint%2Cint" title="echoCfg(c: ControlFlowGraph; start = 0; last = -1)">echoCfg(c: ControlFlowGraph; start = 0; last = -1)</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/dfa.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/dfa.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"><p>Data flow analysis for Nim. We transform the AST into a linear list of instructions first to make this easier to handle: There are only 3 different branching instructions: 'goto X' is an unconditional goto, 'fork X' is a conditional goto (either the next instruction or 'X' can be taken), 'loop X' is the only jump that jumps back.</p>
<p>Exhaustive case statements are translated so that the last branch is transformed into an 'else' branch. <tt class="docutils literal"><span class="pre">return</span></tt> and <tt class="docutils literal"><span class="pre">break</span></tt> are all covered by 'goto'.</p>
<p>The data structures and algorithms used here are inspired by &quot;A GraphFree Approach to DataFlow Analysis&quot; by Markus Mohnen. <a class="reference external" href="https://link.springer.com/content/pdf/10.1007/3-540-45937-5_6.pdf">https://link.springer.com/content/pdf/10.1007/3-540-45937-5_6.pdf</a></p>
</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="renderer.html">renderer</a>, <a class="reference external" href="aliasanalysis.html">aliasanalysis</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="ControlFlowGraph">
<dt><pre><a href="#ControlFlowGraph"><span class="Identifier">ControlFlowGraph</span></a> <span class="Other">=</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="#Instr"><span class="Identifier">Instr</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/dfa.nim#L41" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/dfa.nim#L41" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="Instr">
<dt><pre><a href="#Instr"><span class="Identifier">Instr</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Keyword">case</span> <span class="Identifier">kind</span><span class="Operator">*</span><span class="Other">:</span> <a href="#InstrKind"><span class="Identifier">InstrKind</span></a>
<span class="Keyword">of</span> <span class="Identifier">goto</span><span class="Other">,</span> <span class="Identifier">fork</span><span class="Other">,</span> <span class="Identifier">loop</span><span class="Other">:</span>
<span class="Identifier">dest</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Keyword">of</span> <span class="Identifier">def</span><span class="Other">,</span> <span class="Identifier">use</span><span class="Other">:</span>
<span class="Identifier">n</span><span class="Operator">*</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/dfa.nim#L35" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/dfa.nim#L35" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="InstrKind">
<dt><pre><a href="#InstrKind"><span class="Identifier">InstrKind</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">goto</span><span class="Other">,</span> <span class="Identifier">loop</span><span class="Other">,</span> <span class="Identifier">fork</span><span class="Other">,</span> <span class="Identifier">def</span><span class="Other">,</span> <span class="Identifier">use</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/dfa.nim#L33" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/dfa.nim#L33" 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="constructCfg-procs-all">
<div id="constructCfg,PSym,PNode,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#constructCfg%2CPSym%2CPNode%2CPSym"><span class="Identifier">constructCfg</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">body</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">root</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="#ControlFlowGraph"><span class="Identifier">ControlFlowGraph</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="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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>
constructs a control flow graph for <tt class="docutils literal"><span class="pre">body</span></tt>.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/dfa.nim#L479" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/dfa.nim#L479" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="echoCfg-procs-all">
<div id="echoCfg,ControlFlowGraph,int,int">
<dt><pre><span class="Keyword">proc</span> <a href="#echoCfg%2CControlFlowGraph%2Cint%2Cint"><span class="Identifier">echoCfg</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="#ControlFlowGraph"><span class="Identifier">ControlFlowGraph</span></a><span class="Other">;</span> <span class="Identifier">start</span> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">;</span> <span class="Identifier">last</span> <span class="Other">=</span> <span class="DecNumber">-1</span><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">,</span>
<span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</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">RootEffect</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>
<div class="deprecation-message">
<b>Deprecated</b>
</div>
echos the ControlFlowGraph for debugging purposes.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/dfa.nim#L88" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/dfa.nim#L88" 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: 2026-06-02 05:20:20 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

11
compiler/dfa.idx Normal file
View File

@@ -0,0 +1,11 @@
nimTitle dfa dfa.html module dfa 0
nim goto dfa.html#goto InstrKind.goto 33
nim loop dfa.html#loop InstrKind.loop 33
nim fork dfa.html#fork InstrKind.fork 33
nim def dfa.html#def InstrKind.def 33
nim use dfa.html#use InstrKind.use 33
nim InstrKind dfa.html#InstrKind enum InstrKind 33
nim Instr dfa.html#Instr object Instr 35
nim ControlFlowGraph dfa.html#ControlFlowGraph type ControlFlowGraph 41
nim echoCfg dfa.html#echoCfg,ControlFlowGraph,int,int proc echoCfg(c: ControlFlowGraph; start = 0; last = -1) 88
nim constructCfg dfa.html#constructCfg,PSym,PNode,PSym proc constructCfg(s: PSym; body: PNode; root: PSym): ControlFlowGraph 479

501
compiler/docgen.html Normal file
View File

@@ -0,0 +1,501 @@
<?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>docgen</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">docgen</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="#PDoc" title="PDoc = ref TDocumentor">PDoc</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">commandBuildIndex
<li><a class="reference" href="#commandBuildIndex%2CConfigRef%2Cstring" title="commandBuildIndex(conf: ConfigRef; dir: string; outFile = RelativeFile&quot;&quot;)">commandBuildIndex(conf: ConfigRef; dir: string; outFile = RelativeFile&quot;&quot;)</a></li>
</ul>
<ul class="simple nested-toc-section">commandBuildIndexJson
<li><a class="reference" href="#commandBuildIndexJson%2CConfigRef%2Cstring" title="commandBuildIndexJson(conf: ConfigRef; dir: string; outFile = RelativeFile&quot;&quot;)">commandBuildIndexJson(conf: ConfigRef; dir: string; outFile = RelativeFile&quot;&quot;)</a></li>
</ul>
<ul class="simple nested-toc-section">commandDoc
<li><a class="reference" href="#commandDoc%2CIdentCache%2CConfigRef" title="commandDoc(cache: IdentCache; conf: ConfigRef)">commandDoc(cache: IdentCache; conf: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">commandJson
<li><a class="reference" href="#commandJson%2CIdentCache%2CConfigRef" title="commandJson(cache: IdentCache; conf: ConfigRef)">commandJson(cache: IdentCache; conf: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">commandRst2Html
<li><a class="reference" href="#commandRst2Html%2CIdentCache%2CConfigRef" title="commandRst2Html(cache: IdentCache; conf: ConfigRef; preferMarkdown = false)">commandRst2Html(cache: IdentCache; conf: ConfigRef; preferMarkdown = false)</a></li>
</ul>
<ul class="simple nested-toc-section">commandRst2TeX
<li><a class="reference" href="#commandRst2TeX%2CIdentCache%2CConfigRef" title="commandRst2TeX(cache: IdentCache; conf: ConfigRef; preferMarkdown = false)">commandRst2TeX(cache: IdentCache; conf: ConfigRef; preferMarkdown = false)</a></li>
</ul>
<ul class="simple nested-toc-section">commandTags
<li><a class="reference" href="#commandTags%2CIdentCache%2CConfigRef" title="commandTags(cache: IdentCache; conf: ConfigRef)">commandTags(cache: IdentCache; conf: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">documentRaises
<li><a class="reference" href="#documentRaises%2CIdentCache%2CPNode" title="documentRaises(cache: IdentCache; n: PNode)">documentRaises(cache: IdentCache; n: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">finishGenerateDoc
<li><a class="reference" href="#finishGenerateDoc%2CPDoc" title="finishGenerateDoc(d: var PDoc)">finishGenerateDoc(d: var PDoc)</a></li>
</ul>
<ul class="simple nested-toc-section">generateDoc
<li><a class="reference" href="#generateDoc%2CPDoc%2CPNode%2CPNode%2CConfigRef%2CDocFlags" title="generateDoc(d: PDoc; n, orig: PNode; config: ConfigRef;
docFlags: DocFlags = kDefault)">generateDoc(d: PDoc; n, orig: PNode; config: ConfigRef;
docFlags: DocFlags = kDefault)</a></li>
</ul>
<ul class="simple nested-toc-section">generateIndex
<li><a class="reference" href="#generateIndex%2CPDoc" title="generateIndex(d: PDoc)">generateIndex(d: PDoc)</a></li>
</ul>
<ul class="simple nested-toc-section">generateJson
<li><a class="reference" href="#generateJson%2CPDoc%2CPNode%2CConfigRef%2Cbool" title="generateJson(d: PDoc; n: PNode; config: ConfigRef; includeComments: bool = true)">generateJson(d: PDoc; n: PNode; config: ConfigRef; includeComments: bool = true)</a></li>
</ul>
<ul class="simple nested-toc-section">generateTags
<li><a class="reference" href="#generateTags%2CPDoc%2CPNode%2Cstring" title="generateTags(d: PDoc; n: PNode; r: var string)">generateTags(d: PDoc; n: PNode; r: var string)</a></li>
</ul>
<ul class="simple nested-toc-section">handleDocOutputOptions
<li><a class="reference" href="#handleDocOutputOptions%2CConfigRef" title="handleDocOutputOptions(conf: ConfigRef)">handleDocOutputOptions(conf: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">newDocumentor
<li><a class="reference" href="#newDocumentor%2CAbsoluteFile%2CIdentCache%2CConfigRef%2Cstring%2CPSym" title="newDocumentor(filename: AbsoluteFile; cache: IdentCache; conf: ConfigRef;
outExt: string = HtmlExt; module: PSym = nil;
standaloneDoc = false; preferMarkdown = true; hasToc = true): PDoc">newDocumentor(filename: AbsoluteFile; cache: IdentCache; conf: ConfigRef;
outExt: string = HtmlExt; module: PSym = nil;
standaloneDoc = false; preferMarkdown = true; hasToc = true): PDoc</a></li>
</ul>
<ul class="simple nested-toc-section">presentationPath
<li><a class="reference" href="#presentationPath%2CConfigRef%2CAbsoluteFile" title="presentationPath(conf: ConfigRef; file: AbsoluteFile): RelativeFile">presentationPath(conf: ConfigRef; file: AbsoluteFile): RelativeFile</a></li>
</ul>
<ul class="simple nested-toc-section">writeOutput
<li><a class="reference" href="#writeOutput%2CPDoc" title="writeOutput(d: PDoc; useWarning = false; groupedToc = false)">writeOutput(d: PDoc; useWarning = false; groupedToc = false)</a></li>
</ul>
<ul class="simple nested-toc-section">writeOutputJson
<li><a class="reference" href="#writeOutputJson%2CPDoc" title="writeOutputJson(d: PDoc; useWarning = false)">writeOutputJson(d: PDoc; useWarning = false)</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/docgen.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">This is the Nim documentation generator. Cross-references are generated by knowing how the anchors are going to be named.<p>For corresponding users' documentation see <a class="reference external" href="../docgen.html">Nim DocGen Tools Guide</a>.</p>
</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="wordrecg.html">wordrecg</a>, <a class="reference external" href="syntaxes.html">syntaxes</a>, <a class="reference external" href="renderer.html">renderer</a>, <a class="reference external" href="lexer.html">lexer</a>, <a class="reference external" href="trees.html">trees</a>, <a class="reference external" href="types.html">types</a>, <a class="reference external" href="typesrenderer.html">typesrenderer</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="pathutils.html">pathutils</a>, <a class="reference external" href="nimpaths.html">nimpaths</a>, <a class="reference external" href="renderverbatim.html">renderverbatim</a>, <a class="reference external" href="packages.html">packages</a>, <a class="reference external" href="nodejs.html">nodejs</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="PDoc">
<dt><pre><a href="#PDoc"><span class="Identifier">PDoc</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <span class="Identifier">TDocumentor</span></pre></dt>
<dd>
Alias to type less.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/docgen.nim#L111" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L111" 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="commandBuildIndex-procs-all">
<div id="commandBuildIndex,ConfigRef,string">
<dt><pre><span class="Keyword">proc</span> <a href="#commandBuildIndex%2CConfigRef%2Cstring"><span class="Identifier">commandBuildIndex</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">dir</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">outFile</span> <span class="Other">=</span> <a href="pathutils.html#RelativeFile"><span class="Identifier">RelativeFile</span></a><span class="StringLit">&quot;&quot;</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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span>
<span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">TimeEffect</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/docgen.nim#L1935" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1935" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="commandBuildIndexJson-procs-all">
<div id="commandBuildIndexJson,ConfigRef,string">
<dt><pre><span class="Keyword">proc</span> <a href="#commandBuildIndexJson%2CConfigRef%2Cstring"><span class="Identifier">commandBuildIndexJson</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">dir</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span>
<span class="Identifier">outFile</span> <span class="Other">=</span> <a href="pathutils.html#RelativeFile"><span class="Identifier">RelativeFile</span></a><span class="StringLit">&quot;&quot;</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="Identifier">OSError</span><span class="Other">,</span>
<span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span>
<span class="Identifier">ERecoverableError</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">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span>
<span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/docgen.nim#L1958" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1958" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="commandDoc-procs-all">
<div id="commandDoc,IdentCache,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#commandDoc%2CIdentCache%2CConfigRef"><span class="Identifier">commandDoc</span></a><span class="Other">(</span><span class="Identifier">cache</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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">OSError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">ExecIOEffect</span><span class="Other">,</span> <span class="Identifier">TimeEffect</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>
implementation of deprecated <tt class="docutils literal"><span class="pre">doc0</span></tt> command (without semantic checking)
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/docgen.nim#L1848" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1848" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="commandJson-procs-all">
<div id="commandJson,IdentCache,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#commandJson%2CIdentCache%2CConfigRef"><span class="Identifier">commandJson</span></a><span class="Other">(</span><span class="Identifier">cache</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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">Exception</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</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>
implementation of a deprecated jsondoc0 command
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/docgen.nim#L1884" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1884" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="commandRst2Html-procs-all">
<div id="commandRst2Html,IdentCache,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#commandRst2Html%2CIdentCache%2CConfigRef"><span class="Identifier">commandRst2Html</span></a><span class="Other">(</span><span class="Identifier">cache</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">preferMarkdown</span> <span class="Other">=</span> <span class="Identifier">false</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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ExecIOEffect</span><span class="Other">,</span> <span class="Identifier">TimeEffect</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/docgen.nim#L1876" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1876" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="commandRst2TeX-procs-all">
<div id="commandRst2TeX,IdentCache,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#commandRst2TeX%2CIdentCache%2CConfigRef"><span class="Identifier">commandRst2TeX</span></a><span class="Other">(</span><span class="Identifier">cache</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">preferMarkdown</span> <span class="Other">=</span> <span class="Identifier">false</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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ExecIOEffect</span><span class="Other">,</span> <span class="Identifier">TimeEffect</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/docgen.nim#L1880" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1880" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="commandTags-procs-all">
<div id="commandTags,IdentCache,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#commandTags%2CIdentCache%2CConfigRef"><span class="Identifier">commandTags</span></a><span class="Other">(</span><span class="Identifier">cache</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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">Exception</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</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/docgen.nim#L1911" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1911" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="documentRaises-procs-all">
<div id="documentRaises,IdentCache,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#documentRaises%2CIdentCache%2CPNode"><span class="Identifier">documentRaises</span></a><span class="Other">(</span><span class="Identifier">cache</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/docgen.nim#L1353" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1353" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="finishGenerateDoc-procs-all">
<div id="finishGenerateDoc,PDoc">
<dt><pre><span class="Keyword">proc</span> <a href="#finishGenerateDoc%2CPDoc"><span class="Identifier">finishGenerateDoc</span></a><span class="Other">(</span><span class="Identifier">d</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#PDoc"><span class="Identifier">PDoc</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">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span>
<span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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>
Perform 2nd RST pass for resolution of links/footnotes/headings...
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/docgen.nim#L1461" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1461" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="generateDoc-procs-all">
<div id="generateDoc,PDoc,PNode,PNode,ConfigRef,DocFlags">
<dt><pre><span class="Keyword">proc</span> <a href="#generateDoc%2CPDoc%2CPNode%2CPNode%2CConfigRef%2CDocFlags"><span class="Identifier">generateDoc</span></a><span class="Other">(</span><span class="Identifier">d</span><span class="Other">:</span> <a href="#PDoc"><span class="Identifier">PDoc</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">,</span> <span class="Identifier">orig</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span>
<span class="Identifier">docFlags</span><span class="Other">:</span> <span class="Identifier">DocFlags</span> <span class="Other">=</span> <span class="Identifier">kDefault</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="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</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>
Goes through nim nodes recursively and collects doc comments. Main function for <tt class="docutils literal"><span class="pre option">doc</span></tt> command, which is implemented in <tt class="docutils literal"><span class="pre">docgen2.nim</span></tt>.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/docgen.nim#L1373" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1373" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="generateIndex-procs-all">
<div id="generateIndex,PDoc">
<dt><pre><span class="Keyword">proc</span> <a href="#generateIndex%2CPDoc"><span class="Identifier">generateIndex</span></a><span class="Other">(</span><span class="Identifier">d</span><span class="Other">:</span> <a href="#PDoc"><span class="Identifier">PDoc</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">OSError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span>
<span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</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/docgen.nim#L1774" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1774" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="generateJson-procs-all">
<div id="generateJson,PDoc,PNode,ConfigRef,bool">
<dt><pre><span class="Keyword">proc</span> <a href="#generateJson%2CPDoc%2CPNode%2CConfigRef%2Cbool"><span class="Identifier">generateJson</span></a><span class="Other">(</span><span class="Identifier">d</span><span class="Other">:</span> <a href="#PDoc"><span class="Identifier">PDoc</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span>
<span class="Identifier">includeComments</span><span class="Other">:</span> <span class="Identifier">bool</span> <span class="Other">=</span> <span class="Identifier">true</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="Identifier">Exception</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</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/docgen.nim#L1577" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1577" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="generateTags-procs-all">
<div id="generateTags,PDoc,PNode,string">
<dt><pre><span class="Keyword">proc</span> <a href="#generateTags%2CPDoc%2CPNode%2Cstring"><span class="Identifier">generateTags</span></a><span class="Other">(</span><span class="Identifier">d</span><span class="Other">:</span> <a href="#PDoc"><span class="Identifier">PDoc</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">r</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">string</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/docgen.nim#L1622" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1622" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="handleDocOutputOptions-procs-all">
<div id="handleDocOutputOptions,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#handleDocOutputOptions%2CConfigRef"><span class="Identifier">handleDocOutputOptions</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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">OSError</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/docgen.nim#L1841" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1841" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newDocumentor-procs-all">
<div id="newDocumentor,AbsoluteFile,IdentCache,ConfigRef,string,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#newDocumentor%2CAbsoluteFile%2CIdentCache%2CConfigRef%2Cstring%2CPSym"><span class="Identifier">newDocumentor</span></a><span class="Other">(</span><span class="Identifier">filename</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</span></a><span class="Other">;</span> <span class="Identifier">cache</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span>
<span class="Identifier">outExt</span><span class="Other">:</span> <span class="Identifier">string</span> <span class="Other">=</span> <span class="Identifier">HtmlExt</span><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a> <span class="Other">=</span> <span class="Keyword">nil</span><span class="Other">;</span>
<span class="Identifier">standaloneDoc</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">;</span> <span class="Identifier">preferMarkdown</span> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">;</span> <span class="Identifier">hasToc</span> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">)</span><span class="Other">:</span> <a href="#PDoc"><span class="Identifier">PDoc</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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</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/docgen.nim#L324" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L324" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="presentationPath-procs-all">
<div id="presentationPath,ConfigRef,AbsoluteFile">
<dt><pre><span class="Keyword">proc</span> <a href="#presentationPath%2CConfigRef%2CAbsoluteFile"><span class="Identifier">presentationPath</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">file</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</span></a><span class="Other">)</span><span class="Other">:</span> <a href="pathutils.html#RelativeFile"><span class="Identifier">RelativeFile</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="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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>
returns a relative file that will be appended to outDir
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/docgen.nim#L178" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L178" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="writeOutput-procs-all">
<div id="writeOutput,PDoc">
<dt><pre><span class="Keyword">proc</span> <a href="#writeOutput%2CPDoc"><span class="Identifier">writeOutput</span></a><span class="Other">(</span><span class="Identifier">d</span><span class="Other">:</span> <a href="#PDoc"><span class="Identifier">PDoc</span></a><span class="Other">;</span> <span class="Identifier">useWarning</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">;</span> <span class="Identifier">groupedToc</span> <span class="Other">=</span> <span class="Identifier">false</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="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">ExecIOEffect</span><span class="Other">,</span> <span class="Identifier">TimeEffect</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/docgen.nim#L1786" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1786" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="writeOutputJson-procs-all">
<div id="writeOutputJson,PDoc">
<dt><pre><span class="Keyword">proc</span> <a href="#writeOutputJson%2CPDoc"><span class="Identifier">writeOutputJson</span></a><span class="Other">(</span><span class="Identifier">d</span><span class="Other">:</span> <a href="#PDoc"><span class="Identifier">PDoc</span></a><span class="Other">;</span> <span class="Identifier">useWarning</span> <span class="Other">=</span> <span class="Identifier">false</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="Identifier">OSError</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">ExecIOEffect</span><span class="Other">,</span>
<span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteDirEffect</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/docgen.nim#L1817" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen.nim#L1817" 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: 2026-06-02 05:20:25 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

20
compiler/docgen.idx Normal file
View File

@@ -0,0 +1,20 @@
nimTitle docgen docgen.html module docgen 0
nim PDoc docgen.html#PDoc type PDoc 111
nim presentationPath docgen.html#presentationPath,ConfigRef,AbsoluteFile proc presentationPath(conf: ConfigRef; file: AbsoluteFile): RelativeFile 178
nim newDocumentor docgen.html#newDocumentor,AbsoluteFile,IdentCache,ConfigRef,string,PSym proc newDocumentor(filename: AbsoluteFile; cache: IdentCache; conf: ConfigRef;\n outExt: string = HtmlExt; module: PSym = nil;\n standaloneDoc = false; preferMarkdown = true; hasToc = true): PDoc 324
nim documentRaises docgen.html#documentRaises,IdentCache,PNode proc documentRaises(cache: IdentCache; n: PNode) 1353
nim generateDoc docgen.html#generateDoc,PDoc,PNode,PNode,ConfigRef,DocFlags proc generateDoc(d: PDoc; n, orig: PNode; config: ConfigRef;\n docFlags: DocFlags = kDefault) 1373
nim finishGenerateDoc docgen.html#finishGenerateDoc,PDoc proc finishGenerateDoc(d: var PDoc) 1461
nim generateJson docgen.html#generateJson,PDoc,PNode,ConfigRef,bool proc generateJson(d: PDoc; n: PNode; config: ConfigRef; includeComments: bool = true) 1577
nim generateTags docgen.html#generateTags,PDoc,PNode,string proc generateTags(d: PDoc; n: PNode; r: var string) 1622
nim generateIndex docgen.html#generateIndex,PDoc proc generateIndex(d: PDoc) 1774
nim writeOutput docgen.html#writeOutput,PDoc proc writeOutput(d: PDoc; useWarning = false; groupedToc = false) 1786
nim writeOutputJson docgen.html#writeOutputJson,PDoc proc writeOutputJson(d: PDoc; useWarning = false) 1817
nim handleDocOutputOptions docgen.html#handleDocOutputOptions,ConfigRef proc handleDocOutputOptions(conf: ConfigRef) 1841
nim commandDoc docgen.html#commandDoc,IdentCache,ConfigRef proc commandDoc(cache: IdentCache; conf: ConfigRef) 1848
nim commandRst2Html docgen.html#commandRst2Html,IdentCache,ConfigRef proc commandRst2Html(cache: IdentCache; conf: ConfigRef; preferMarkdown = false) 1876
nim commandRst2TeX docgen.html#commandRst2TeX,IdentCache,ConfigRef proc commandRst2TeX(cache: IdentCache; conf: ConfigRef; preferMarkdown = false) 1880
nim commandJson docgen.html#commandJson,IdentCache,ConfigRef proc commandJson(cache: IdentCache; conf: ConfigRef) 1884
nim commandTags docgen.html#commandTags,IdentCache,ConfigRef proc commandTags(cache: IdentCache; conf: ConfigRef) 1911
nim commandBuildIndex docgen.html#commandBuildIndex,ConfigRef,string proc commandBuildIndex(conf: ConfigRef; dir: string; outFile = RelativeFile"") 1935
nim commandBuildIndexJson docgen.html#commandBuildIndexJson,ConfigRef,string proc commandBuildIndexJson(conf: ConfigRef; dir: string; outFile = RelativeFile"") 1958

247
compiler/docgen2.html Normal file
View File

@@ -0,0 +1,247 @@
<?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>docgen2</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">docgen2</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">closeDoc
<li><a class="reference" href="#closeDoc%2CModuleGraph%2CPPassContext%2CPNode" title="closeDoc(graph: ModuleGraph; p: PPassContext; n: PNode): PNode">closeDoc(graph: ModuleGraph; p: PPassContext; n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">closeJson
<li><a class="reference" href="#closeJson%2CModuleGraph%2CPPassContext%2CPNode" title="closeJson(graph: ModuleGraph; p: PPassContext; n: PNode): PNode">closeJson(graph: ModuleGraph; p: PPassContext; n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">openHtml
<li><a class="reference" href="#openHtml%2CModuleGraph%2CPSym%2CIdGenerator" title="openHtml(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext">openHtml(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext</a></li>
</ul>
<ul class="simple nested-toc-section">openJson
<li><a class="reference" href="#openJson%2CModuleGraph%2CPSym%2CIdGenerator" title="openJson(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext">openJson(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext</a></li>
</ul>
<ul class="simple nested-toc-section">openTex
<li><a class="reference" href="#openTex%2CModuleGraph%2CPSym%2CIdGenerator" title="openTex(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext">openTex(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext</a></li>
</ul>
<ul class="simple nested-toc-section">processNode
<li><a class="reference" href="#processNode%2CPPassContext%2CPNode" title="processNode(c: PPassContext; n: PNode): PNode">processNode(c: PPassContext; n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">processNodeJson
<li><a class="reference" href="#processNodeJson%2CPPassContext%2CPNode" title="processNodeJson(c: PPassContext; n: PNode): PNode">processNodeJson(c: PPassContext; n: PNode): PNode</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/docgen2.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen2.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="options.html">options</a>, <a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="docgen.html">docgen</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="pathutils.html">pathutils</a>, <a class="reference external" href="packages.html">packages</a>, <a class="reference external" href="modulegraphs.html">modulegraphs</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="closeDoc-procs-all">
<div id="closeDoc,ModuleGraph,PPassContext,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#closeDoc%2CModuleGraph%2CPPassContext%2CPNode"><span class="Identifier">closeDoc</span></a><span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">p</span><span class="Other">:</span> <a href="modulegraphs.html#PPassContext"><span class="Identifier">PPassContext</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">,</span>
<span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">ExecIOEffect</span><span class="Other">,</span> <span class="Identifier">TimeEffect</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/docgen2.nim#L41" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen2.nim#L41" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="closeJson-procs-all">
<div id="closeJson,ModuleGraph,PPassContext,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#closeJson%2CModuleGraph%2CPPassContext%2CPNode"><span class="Identifier">closeJson</span></a><span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">p</span><span class="Other">:</span> <a href="modulegraphs.html#PPassContext"><span class="Identifier">PPassContext</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">,</span>
<span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span>
<span class="Identifier">ExecIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteDirEffect</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/docgen2.nim#L46" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen2.nim#L46" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="openHtml-procs-all">
<div id="openHtml,ModuleGraph,PSym,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#openHtml%2CModuleGraph%2CPSym%2CIdGenerator"><span class="Identifier">openHtml</span></a><span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="modulegraphs.html#PPassContext"><span class="Identifier">PPassContext</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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</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/docgen2.nim#L73" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen2.nim#L73" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="openJson-procs-all">
<div id="openJson,ModuleGraph,PSym,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#openJson%2CModuleGraph%2CPSym%2CIdGenerator"><span class="Identifier">openJson</span></a><span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="modulegraphs.html#PPassContext"><span class="Identifier">PPassContext</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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</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/docgen2.nim#L79" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen2.nim#L79" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="openTex-procs-all">
<div id="openTex,ModuleGraph,PSym,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#openTex%2CModuleGraph%2CPSym%2CIdGenerator"><span class="Identifier">openTex</span></a><span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">module</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="modulegraphs.html#PPassContext"><span class="Identifier">PPassContext</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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</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/docgen2.nim#L76" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen2.nim#L76" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="processNode-procs-all">
<div id="processNode,PPassContext,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#processNode%2CPPassContext%2CPNode"><span class="Identifier">processNode</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="modulegraphs.html#PPassContext"><span class="Identifier">PPassContext</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</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/docgen2.nim#L51" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen2.nim#L51" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="processNodeJson-procs-all">
<div id="processNodeJson,PPassContext,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#processNodeJson%2CPPassContext%2CPNode"><span class="Identifier">processNodeJson</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="modulegraphs.html#PPassContext"><span class="Identifier">PPassContext</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</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/docgen2.nim#L57" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/docgen2.nim#L57" 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: 2026-06-02 05:20:25 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

8
compiler/docgen2.idx Normal file
View File

@@ -0,0 +1,8 @@
nimTitle docgen2 docgen2.html module docgen2 0
nim closeDoc docgen2.html#closeDoc,ModuleGraph,PPassContext,PNode proc closeDoc(graph: ModuleGraph; p: PPassContext; n: PNode): PNode 41
nim closeJson docgen2.html#closeJson,ModuleGraph,PPassContext,PNode proc closeJson(graph: ModuleGraph; p: PPassContext; n: PNode): PNode 46
nim processNode docgen2.html#processNode,PPassContext,PNode proc processNode(c: PPassContext; n: PNode): PNode 51
nim processNodeJson docgen2.html#processNodeJson,PPassContext,PNode proc processNodeJson(c: PPassContext; n: PNode): PNode 57
nim openHtml docgen2.html#openHtml,ModuleGraph,PSym,IdGenerator proc openHtml(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext 73
nim openTex docgen2.html#openTex,ModuleGraph,PSym,IdGenerator proc openTex(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext 76
nim openJson docgen2.html#openJson,ModuleGraph,PSym,IdGenerator proc openJson(graph: ModuleGraph; module: PSym; idgen: IdGenerator): PPassContext 79

1728
compiler/dochack.js Normal file

File diff suppressed because it is too large Load Diff

148
compiler/enumtostr.html Normal file
View File

@@ -0,0 +1,148 @@
<?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>enumtostr</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">enumtostr</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">genCaseObjDiscMapping
<li><a class="reference" href="#genCaseObjDiscMapping%2CPType%2CPSym%2CTLineInfo%2CModuleGraph%2CIdGenerator" title="genCaseObjDiscMapping(t: PType; field: PSym; info: TLineInfo; g: ModuleGraph;
idgen: IdGenerator): PSym">genCaseObjDiscMapping(t: PType; field: PSym; info: TLineInfo; g: ModuleGraph;
idgen: IdGenerator): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">genEnumToStrProc
<li><a class="reference" href="#genEnumToStrProc%2CPType%2CTLineInfo%2CModuleGraph%2CIdGenerator" title="genEnumToStrProc(t: PType; info: TLineInfo; g: ModuleGraph; idgen: IdGenerator): PSym">genEnumToStrProc(t: PType; info: TLineInfo; g: ModuleGraph; idgen: IdGenerator): PSym</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/enumtostr.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/enumtostr.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="modulegraphs.html">modulegraphs</a>, <a class="reference external" href="magicsys.html">magicsys</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="genCaseObjDiscMapping-procs-all">
<div id="genCaseObjDiscMapping,PType,PSym,TLineInfo,ModuleGraph,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#genCaseObjDiscMapping%2CPType%2CPSym%2CTLineInfo%2CModuleGraph%2CIdGenerator"><span class="Identifier">genCaseObjDiscMapping</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span>
<span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/enumtostr.nim#L73" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/enumtostr.nim#L73" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genEnumToStrProc-procs-all">
<div id="genEnumToStrProc,PType,TLineInfo,ModuleGraph,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#genEnumToStrProc%2CPType%2CTLineInfo%2CModuleGraph%2CIdGenerator"><span class="Identifier">genEnumToStrProc</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span>
<span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/enumtostr.nim#L8" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/enumtostr.nim#L8" 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: 2026-06-02 05:20:22 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

3
compiler/enumtostr.idx Normal file
View File

@@ -0,0 +1,3 @@
nimTitle enumtostr enumtostr.html module enumtostr 0
nim genEnumToStrProc enumtostr.html#genEnumToStrProc,PType,TLineInfo,ModuleGraph,IdGenerator proc genEnumToStrProc(t: PType; info: TLineInfo; g: ModuleGraph; idgen: IdGenerator): PSym 8
nim genCaseObjDiscMapping enumtostr.html#genCaseObjDiscMapping,PType,PSym,TLineInfo,ModuleGraph,IdGenerator proc genCaseObjDiscMapping(t: PType; field: PSym; info: TLineInfo; g: ModuleGraph;\n idgen: IdGenerator): PSym 73

200
compiler/errorhandling.html Normal file
View File

@@ -0,0 +1,200 @@
<?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>errorhandling</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">errorhandling</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="#ErrorKind" title="ErrorKind = enum
RawTypeMismatchError, ExpressionCannotBeCalled, CustomError,
WrongNumberOfArguments, AmbiguousCall">ErrorKind</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">errorSubNode
<li><a class="reference" href="#errorSubNode%2CPNode" title="errorSubNode(n: PNode): PNode">errorSubNode(n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">errorToString
<li><a class="reference" href="#errorToString%2CConfigRef%2CPNode" title="errorToString(config: ConfigRef; n: PNode): string">errorToString(config: ConfigRef; n: PNode): string</a></li>
</ul>
<ul class="simple nested-toc-section">newError
<li><a class="reference" href="#newError%2CPNode%2CErrorKind%2Cvarargs%5BPNode%5D" title="newError(wrongNode: PNode; k: ErrorKind; args: varargs[PNode]): PNode">newError(wrongNode: PNode; k: ErrorKind; args: varargs[PNode]): PNode</a></li>
<li><a class="reference" href="#newError%2CPNode%2Cstring" title="newError(wrongNode: PNode; msg: string): PNode">newError(wrongNode: PNode; msg: string): PNode</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/errorhandling.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/errorhandling.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">This module contains support code for new-styled error handling via an <tt class="docutils literal"><span class="pre"><span class="Identifier">nkError</span></span></tt> node kind.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="renderer.html">renderer</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="types.html">types</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="ErrorKind">
<dt><pre><a href="#ErrorKind"><span class="Identifier">ErrorKind</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">RawTypeMismatchError</span><span class="Other">,</span> <span class="Identifier">ExpressionCannotBeCalled</span><span class="Other">,</span> <span class="Identifier">CustomError</span><span class="Other">,</span>
<span class="Identifier">WrongNumberOfArguments</span><span class="Other">,</span> <span class="Identifier">AmbiguousCall</span></pre></dt>
<dd>
expand as you need.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/errorhandling.nim#L20" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/errorhandling.nim#L20" 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="errorSubNode-procs-all">
<div id="errorSubNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#errorSubNode%2CPNode"><span class="Identifier">errorSubNode</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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/errorhandling.nim#L27" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/errorhandling.nim#L27" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="errorToString-procs-all">
<div id="errorToString,ConfigRef,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#errorToString%2CConfigRef%2CPNode"><span class="Identifier">errorToString</span></a><span class="Other">(</span><span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/errorhandling.nim#L61" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/errorhandling.nim#L61" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newError-procs-all">
<div id="newError,PNode,ErrorKind,varargs[PNode]">
<dt><pre><span class="Keyword">proc</span> <a href="#newError%2CPNode%2CErrorKind%2Cvarargs%5BPNode%5D"><span class="Identifier">newError</span></a><span class="Other">(</span><span class="Identifier">wrongNode</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">k</span><span class="Other">:</span> <a href="#ErrorKind"><span class="Identifier">ErrorKind</span></a><span class="Other">;</span> <span class="Identifier">args</span><span class="Other">:</span> <span class="Identifier">varargs</span><span class="Other">[</span><a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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/errorhandling.nim#L39" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/errorhandling.nim#L39" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="newError,PNode,string">
<dt><pre><span class="Keyword">proc</span> <a href="#newError%2CPNode%2Cstring"><span class="Identifier">newError</span></a><span class="Other">(</span><span class="Identifier">wrongNode</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">msg</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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/errorhandling.nim#L50" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/errorhandling.nim#L50" 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: 2026-06-02 05:20:19 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

View File

@@ -0,0 +1,12 @@
nimTitle errorhandling errorhandling.html module errorhandling 0
nim RawTypeMismatchError errorhandling.html#RawTypeMismatchError ErrorKind.RawTypeMismatchError 20
nim ExpressionCannotBeCalled errorhandling.html#ExpressionCannotBeCalled ErrorKind.ExpressionCannotBeCalled 20
nim CustomError errorhandling.html#CustomError ErrorKind.CustomError 20
nim WrongNumberOfArguments errorhandling.html#WrongNumberOfArguments ErrorKind.WrongNumberOfArguments 20
nim AmbiguousCall errorhandling.html#AmbiguousCall ErrorKind.AmbiguousCall 20
nim ErrorKind errorhandling.html#ErrorKind enum ErrorKind 20
nim errorSubNode errorhandling.html#errorSubNode,PNode proc errorSubNode(n: PNode): PNode 27
nim newError errorhandling.html#newError,PNode,ErrorKind,varargs[PNode] proc newError(wrongNode: PNode; k: ErrorKind; args: varargs[PNode]): PNode 39
nim newError errorhandling.html#newError,PNode,string proc newError(wrongNode: PNode; msg: string): PNode 50
nim errorToString errorhandling.html#errorToString,ConfigRef,PNode proc errorToString(config: ConfigRef; n: PNode): string 61
nimgrp newerror errorhandling.html#newError-procs-all proc 39

171
compiler/evaltempl.html Normal file
View File

@@ -0,0 +1,171 @@
<?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>evaltempl</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">evaltempl</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="#10" id="60">Consts</a></summary>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#evalTemplateLimit" title="evalTemplateLimit = 1000">evalTemplateLimit</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">evalTemplate
<li><a class="reference" href="#evalTemplate%2CPNode%2CPSym%2CPSym%2CConfigRef%2CIdentCache%2Cref.int%2CIdGenerator" title="evalTemplate(n: PNode; tmpl, genSymOwner: PSym; conf: ConfigRef; ic: IdentCache;
instID: ref int; idgen: IdGenerator; fromHlo = false): PNode">evalTemplate(n: PNode; tmpl, genSymOwner: PSym; conf: ConfigRef; ic: IdentCache;
instID: ref int; idgen: IdGenerator; fromHlo = false): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">wrapInComesFrom
<li><a class="reference" href="#wrapInComesFrom%2CTLineInfo%2CPSym%2CPNode" title="wrapInComesFrom(info: TLineInfo; sym: PSym; res: PNode): PNode">wrapInComesFrom(info: TLineInfo; sym: PSym; res: PNode): PNode</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/evaltempl.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/evaltempl.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">Template evaluation engine. Now hygienic.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="options.html">options</a>, <a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="astalgo.html">astalgo</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="renderer.html">renderer</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="trees.html">trees</a>
</dl>
</div>
<div class="section" id="10">
<h1><a class="toc-backref" href="#10">Consts</a></h1>
<dl class="item">
<div id="evalTemplateLimit">
<dt><pre><a href="#evalTemplateLimit"><span class="Identifier">evalTemplateLimit</span></a> <span class="Other">=</span> <span class="DecNumber">1000</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/evaltempl.nim#L163" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/evaltempl.nim#L163" 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="evalTemplate-procs-all">
<div id="evalTemplate,PNode,PSym,PSym,ConfigRef,IdentCache,ref.int,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#evalTemplate%2CPNode%2CPSym%2CPSym%2CConfigRef%2CIdentCache%2Cref.int%2CIdGenerator"><span class="Identifier">evalTemplate</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">tmpl</span><span class="Other">,</span> <span class="Identifier">genSymOwner</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span>
<span class="Identifier">ic</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span> <span class="Identifier">instID</span><span class="Other">:</span> <span class="Keyword">ref</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">;</span>
<span class="Identifier">fromHlo</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/evaltempl.nim#L187" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/evaltempl.nim#L187" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="wrapInComesFrom-procs-all">
<div id="wrapInComesFrom,TLineInfo,PSym,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#wrapInComesFrom%2CTLineInfo%2CPSym%2CPNode"><span class="Identifier">wrapInComesFrom</span></a><span class="Other">(</span><span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">sym</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">res</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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/evaltempl.nim#L165" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/evaltempl.nim#L165" 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: 2026-06-02 05:20:22 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

4
compiler/evaltempl.idx Normal file
View File

@@ -0,0 +1,4 @@
nimTitle evaltempl evaltempl.html module evaltempl 0
nim evalTemplateLimit evaltempl.html#evalTemplateLimit const evalTemplateLimit 163
nim wrapInComesFrom evaltempl.html#wrapInComesFrom,TLineInfo,PSym,PNode proc wrapInComesFrom(info: TLineInfo; sym: PSym; res: PNode): PNode 165
nim evalTemplate evaltempl.html#evalTemplate,PNode,PSym,PSym,ConfigRef,IdentCache,ref.int,IdGenerator proc evalTemplate(n: PNode; tmpl, genSymOwner: PSym; conf: ConfigRef; ic: IdentCache;\n instID: ref int; idgen: IdGenerator; fromHlo = false): PNode 187

View File

@@ -0,0 +1,144 @@
<?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>expanddefaults</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">expanddefaults</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">caseObjDefaultBranch
<li><a class="reference" href="#caseObjDefaultBranch%2CPNode%2CInt128" title="caseObjDefaultBranch(obj: PNode; branch: Int128): int">caseObjDefaultBranch(obj: PNode; branch: Int128): int</a></li>
</ul>
<ul class="simple nested-toc-section">expandDefault
<li><a class="reference" href="#expandDefault%2CPType%2CTLineInfo" title="expandDefault(t: PType; info: TLineInfo): PNode">expandDefault(t: PType; info: TLineInfo): PNode</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/expanddefaults.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/expanddefaults.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="types.html">types</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="caseObjDefaultBranch-procs-all">
<div id="caseObjDefaultBranch,PNode,Int128">
<dt><pre><span class="Keyword">proc</span> <a href="#caseObjDefaultBranch%2CPNode%2CInt128"><span class="Identifier">caseObjDefaultBranch</span></a><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">branch</span><span class="Other">:</span> <a href="int128.html#Int128"><span class="Identifier">Int128</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/expanddefaults.nim#L12" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/expanddefaults.nim#L12" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="expandDefault-procs-all">
<div id="expandDefault,PType,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#expandDefault%2CPType%2CTLineInfo"><span class="Identifier">expandDefault</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/expanddefaults.nim#L30" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/expanddefaults.nim#L30" 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: 2026-06-02 05:20:20 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

View File

@@ -0,0 +1,3 @@
nimTitle expanddefaults expanddefaults.html module expanddefaults 0
nim caseObjDefaultBranch expanddefaults.html#caseObjDefaultBranch,PNode,Int128 proc caseObjDefaultBranch(obj: PNode; branch: Int128): int 12
nim expandDefault expanddefaults.html#expandDefault,PType,TLineInfo proc expandDefault(t: PType; info: TLineInfo): PNode 30

871
compiler/extccomp.html Normal file
View File

@@ -0,0 +1,871 @@
<?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>extccomp</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">extccomp</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="#TInfoCC" title="TInfoCC = tuple[name: string, objExt: string, optSpeed: string, optSize: string,
compilerExe: string, cppCompiler: string, compileTmpl: string,
buildGui: string, buildDll: string, buildLib: string,
linkerExe: string, linkTmpl: string, includeCmd: string,
linkDirCmd: string, linkLibCmd: string, debug: string,
pic: string, asmStmtFrmt: string, structStmtFmt: string,
produceAsm: string, cppXsupport: string, props: TInfoCCProps]">TInfoCC</a></li>
<li><a class="reference" href="#TInfoCCProp" title="TInfoCCProp = enum
hasSwitchRange, hasComputedGoto, hasCpp, hasAssume, hasGcGuard, hasGnuAsm,
hasDeclspec, hasAttribute, hasBuiltinUnreachable">TInfoCCProp</a></li>
<li><a class="reference" href="#TInfoCCProps" title="TInfoCCProps = set[TInfoCCProp]">TInfoCCProps</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="#CC" title="CC: array[succ(low(TSystemCC)) .. high(TSystemCC), TInfoCC] = [(&quot;gcc&quot;, &quot;o&quot;,
&quot; -O3 -fno-ident&quot;, &quot; -Os -fno-ident&quot;, &quot;gcc&quot;, &quot;g++&quot;,
&quot;-c $options $include -o $objfile $file&quot;, &quot; -mwindows&quot;, &quot; -shared&quot;,
&quot;ar rcs $libfile $objfiles&quot;, &quot;&quot;,
&quot;$buildgui $builddll -o $exefile $objfiles $options&quot;, &quot; -I&quot;, &quot; -L&quot;, &quot; -l$1&quot;,
&quot;&quot;, &quot;-fPIC&quot;, &quot;__asm__($1);$n&quot;, &quot;$1 $3 $2 &quot;,
&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;,
&quot;-std=gnu++17 -funsigned-char&quot;, {hasSwitchRange, hasComputedGoto, hasCpp,
hasGcGuard, hasGnuAsm, hasAttribute,
hasBuiltinUnreachable}), (&quot;switch_gcc&quot;,
&quot;o&quot;, &quot; -O3 &quot;, &quot; -Os &quot;, &quot;aarch64-none-elf-gcc&quot;, &quot;aarch64-none-elf-g++&quot;,
&quot;-w -MMD -MP -MF $dfile -c $options $include -o $objfile $file&quot;,
&quot; -mwindows&quot;, &quot; -shared&quot;, &quot;aarch64-none-elf-gcc-ar rcs $libfile $objfiles&quot;,
&quot;aarch64-none-elf-gcc&quot;,
&quot;$buildgui $builddll -Wl,-Map,$mapfile -o $exefile $objfiles $options&quot;,
&quot; -I&quot;, &quot; -L&quot;, &quot; -l$1&quot;, &quot;&quot;, &quot;-fPIE&quot;, &quot;asm($1);$n&quot;, &quot;$1 $3 $2 &quot;,
&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;,
&quot;-std=gnu++17 -funsigned-char&quot;, {hasSwitchRange, hasComputedGoto, hasCpp,
hasGcGuard, hasGnuAsm, hasAttribute,
hasBuiltinUnreachable}), (&quot;llvm_gcc&quot;, &quot;o&quot;,
&quot; -O3 -fno-ident&quot;, &quot; -Os -fno-ident&quot;, &quot;llvm-gcc&quot;, &quot;llvm-g++&quot;,
&quot;-c $options $include -o $objfile $file&quot;, &quot; -mwindows&quot;, &quot; -shared&quot;,
&quot;llvm-ar rcs $libfile $objfiles&quot;, &quot;&quot;,
&quot;$buildgui $builddll -o $exefile $objfiles $options&quot;, &quot; -I&quot;, &quot; -L&quot;, &quot; -l$1&quot;,
&quot;&quot;, &quot;-fPIC&quot;, &quot;__asm__($1);$n&quot;, &quot;$1 $3 $2 &quot;,
&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;,
&quot;-std=gnu++17 -funsigned-char&quot;, {hasSwitchRange, hasComputedGoto, hasCpp,
hasGcGuard, hasGnuAsm, hasAttribute,
hasBuiltinUnreachable}), (&quot;clang&quot;, &quot;o&quot;,
&quot; -O3 -fno-ident&quot;, &quot; -Os -fno-ident&quot;, &quot;clang&quot;, &quot;clang++&quot;,
&quot;-c $options $include -o $objfile $file&quot;, &quot; -mwindows&quot;, &quot; -shared&quot;,
&quot;llvm-ar rcs $libfile $objfiles&quot;, &quot;&quot;,
&quot;$buildgui $builddll -o $exefile $objfiles $options&quot;, &quot; -I&quot;, &quot; -L&quot;, &quot; -l$1&quot;,
&quot;&quot;, &quot;-fPIC&quot;, &quot;__asm__($1);$n&quot;, &quot;$1 $3 $2 &quot;,
&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;,
&quot;-std=gnu++17 -funsigned-char&quot;, {hasSwitchRange, hasComputedGoto, hasCpp,
hasGcGuard, hasGnuAsm, hasAttribute,
hasBuiltinUnreachable}), (&quot;bcc&quot;, &quot;obj&quot;,
&quot; -O3 -6 &quot;, &quot; -O1 -6 &quot;, &quot;bcc32c&quot;, &quot;cpp32c&quot;,
&quot;-c $options $include -o$objfile $file&quot;, &quot; -tW&quot;, &quot; -tWD&quot;, &quot;&quot;, &quot;bcc32&quot;,
&quot;$options $buildgui $builddll -e$exefile $objfiles&quot;, &quot; -I&quot;, &quot;&quot;, &quot;&quot;, &quot;&quot;, &quot;&quot;,
&quot;__asm{$n$1$n}$n&quot;, &quot;$1 $2&quot;, &quot;&quot;, &quot;&quot;,
{hasSwitchRange, hasComputedGoto, hasCpp, hasGcGuard, hasAttribute}), (
&quot;vcc&quot;, &quot;obj&quot;, &quot; /Ogityb2 &quot;, &quot; /O1 &quot;, &quot;cl&quot;, &quot;cl&quot;,
&quot;/c$vccplatform $options $include /nologo /Fo$objfile $file&quot;,
&quot; /SUBSYSTEM:WINDOWS user32.lib &quot;, &quot; /LD&quot;,
&quot;vccexe --command:lib$vccplatform /nologo /OUT:$libfile $objfiles&quot;, &quot;cl&quot;,
&quot;$builddll$vccplatform /Fe$exefile $objfiles $buildgui /nologo $options&quot;,
&quot; /I&quot;, &quot; /link /LIBPATH:&quot;, &quot; $1.lib&quot;, &quot; /RTC1 /Z7 &quot;, &quot;&quot;, &quot;__asm{$n$1$n}$n&quot;,
&quot;$3$n$1 $2&quot;, &quot;/Fa$asmfile&quot;, &quot;&quot;, {hasCpp, hasAssume, hasDeclspec}), (&quot;tcc&quot;,
&quot;o&quot;, &quot;&quot;, &quot;&quot;, &quot;tcc&quot;, &quot;&quot;, &quot;-c $options $include -o $objfile $file&quot;,
&quot;-Wl,-subsystem=gui&quot;, &quot; -shared&quot;, &quot;&quot;, &quot;tcc&quot;,
&quot;-o $exefile $options $buildgui $builddll $objfiles&quot;, &quot; -I&quot;, &quot; -L&quot;, &quot; -l$1&quot;,
&quot; -g &quot;, &quot;&quot;, &quot;asm($1);$n&quot;, &quot;$1 $2&quot;,
&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;, &quot;&quot;,
{hasSwitchRange, hasComputedGoto, hasGnuAsm}), (&quot;env&quot;, &quot;o&quot;, &quot; -O3 &quot;,
&quot; -O1 &quot;, &quot;&quot;, &quot;&quot;, &quot;-c $ccenvflags $options $include -o $objfile $file&quot;, &quot;&quot;,
&quot; -shared &quot;, &quot;&quot;, &quot;&quot;, &quot;-o $exefile $buildgui $builddll $objfiles $options&quot;,
&quot; -I&quot;, &quot;&quot;, &quot;&quot;, &quot;&quot;, &quot;&quot;, &quot;__asm{$n$1$n}$n&quot;, &quot;$1 $2&quot;, &quot;&quot;, &quot;&quot;, {hasGnuAsm}), (
&quot;icl&quot;, &quot;obj&quot;, &quot; /Ogityb2 &quot;, &quot; /O1 &quot;, &quot;icl&quot;, &quot;cl&quot;,
&quot;/c$vccplatform $options $include /nologo /Fo$objfile $file&quot;,
&quot; /SUBSYSTEM:WINDOWS user32.lib &quot;, &quot; /LD&quot;,
&quot;vccexe --command:lib$vccplatform /nologo /OUT:$libfile $objfiles&quot;, &quot;icl&quot;,
&quot;$builddll$vccplatform /Fe$exefile $objfiles $buildgui /nologo $options&quot;,
&quot; /I&quot;, &quot; /link /LIBPATH:&quot;, &quot; $1.lib&quot;, &quot; /RTC1 /Z7 &quot;, &quot;&quot;, &quot;__asm{$n$1$n}$n&quot;,
&quot;$3$n$1 $2&quot;, &quot;/Fa$asmfile&quot;, &quot;&quot;, {hasCpp, hasAssume, hasDeclspec}), (&quot;icc&quot;,
&quot;o&quot;, &quot; -O3 -fno-ident&quot;, &quot; -Os -fno-ident&quot;, &quot;icc&quot;, &quot;g++&quot;,
&quot;-c $options $include -o $objfile $file&quot;, &quot; -mwindows&quot;, &quot; -shared&quot;,
&quot;ar rcs $libfile $objfiles&quot;, &quot;icc&quot;,
&quot;$buildgui $builddll -o $exefile $objfiles $options&quot;, &quot; -I&quot;, &quot; -L&quot;, &quot; -l$1&quot;,
&quot;&quot;, &quot;-fPIC&quot;, &quot;__asm__($1);$n&quot;, &quot;$1 $3 $2 &quot;,
&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;,
&quot;-std=gnu++17 -funsigned-char&quot;, {hasSwitchRange, hasComputedGoto, hasCpp,
hasGcGuard, hasGnuAsm, hasAttribute,
hasBuiltinUnreachable}), (&quot;clang_cl&quot;,
&quot;obj&quot;, &quot; /Ogityb2 &quot;, &quot; /O1 &quot;, &quot;clang-cl&quot;, &quot;clang-cl&quot;,
&quot;/c$vccplatform $options $include /nologo /Fo$objfile $file&quot;,
&quot; /SUBSYSTEM:WINDOWS user32.lib &quot;, &quot; /LD&quot;,
&quot;vccexe --command:lib$vccplatform /nologo /OUT:$libfile $objfiles&quot;,
&quot;clang-cl&quot;, &quot;-fuse-ld=lld $builddll$vccplatform /Fe$exefile $objfiles $buildgui /nologo $options&quot;,
&quot; /I&quot;, &quot; /link /LIBPATH:&quot;, &quot; $1.lib&quot;, &quot; /RTC1 /Z7 &quot;, &quot;&quot;, &quot;__asm{$n$1$n}$n&quot;,
&quot;$3$n$1 $2&quot;, &quot;/Fa$asmfile&quot;, &quot;&quot;, {hasCpp, hasAssume, hasDeclspec}), (&quot;hipcc&quot;,
&quot;o&quot;, &quot; -O3 -fno-ident&quot;, &quot; -Os -fno-ident&quot;, &quot;hipcc&quot;, &quot;hipcc&quot;,
&quot;-c $options $include -o $objfile $file&quot;, &quot; -mwindows&quot;, &quot; -shared&quot;,
&quot;llvm-ar rcs $libfile $objfiles&quot;, &quot;&quot;,
&quot;$buildgui $builddll -o $exefile $objfiles $options&quot;, &quot; -I&quot;, &quot; -L&quot;, &quot; -l$1&quot;,
&quot;&quot;, &quot;-fPIC&quot;, &quot;__asm__($1);$n&quot;, &quot;$1 $3 $2 &quot;,
&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;,
&quot;-std=gnu++17 -funsigned-char&quot;, {hasSwitchRange, hasComputedGoto, hasCpp,
hasGcGuard, hasGnuAsm, hasAttribute,
hasBuiltinUnreachable}), (&quot;nvcc&quot;, &quot;o&quot;,
&quot; -O3 -fno-ident&quot;, &quot; -Os -fno-ident&quot;, &quot;nvcc&quot;, &quot;nvcc&quot;,
&quot;-c -x cu -Xcompiler=\&quot;$options\&quot; $include -o $objfile $file&quot;, &quot; -mwindows&quot;,
&quot; -shared&quot;, &quot;ar rcs $libfile $objfiles&quot;, &quot;&quot;,
&quot;$buildgui $builddll -o $exefile $objfiles -Xcompiler=\&quot;$options\&quot;&quot;, &quot; -I&quot;,
&quot; -L&quot;, &quot; -l$1&quot;, &quot;&quot;, &quot;-fPIC&quot;, &quot;__asm__($1);$n&quot;, &quot;$1 $3 $2 &quot;,
&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;,
&quot;-std=gnu++17 -funsigned-char&quot;, {hasSwitchRange, hasComputedGoto, hasCpp,
hasGcGuard, hasGnuAsm, hasAttribute,
hasBuiltinUnreachable})]">CC</a></li>
<li><a class="reference" href="#hExt" title="hExt = &quot;.h&quot;">hExt</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">addCompileOption
<li><a class="reference" href="#addCompileOption%2CConfigRef%2Cstring" title="addCompileOption(conf: ConfigRef; option: string)">addCompileOption(conf: ConfigRef; option: string)</a></li>
</ul>
<ul class="simple nested-toc-section">addCompileOptionCmd
<li><a class="reference" href="#addCompileOptionCmd%2CConfigRef%2Cstring" title="addCompileOptionCmd(conf: ConfigRef; option: string)">addCompileOptionCmd(conf: ConfigRef; option: string)</a></li>
</ul>
<ul class="simple nested-toc-section">addExternalFileToCompile
<li><a class="reference" href="#addExternalFileToCompile%2CConfigRef%2CCfile" title="addExternalFileToCompile(conf: ConfigRef; c: var Cfile)">addExternalFileToCompile(conf: ConfigRef; c: var Cfile)</a></li>
<li><a class="reference" href="#addExternalFileToCompile%2CConfigRef%2CAbsoluteFile" title="addExternalFileToCompile(conf: ConfigRef; filename: AbsoluteFile)">addExternalFileToCompile(conf: ConfigRef; filename: AbsoluteFile)</a></li>
</ul>
<ul class="simple nested-toc-section">addExternalFileToLink
<li><a class="reference" href="#addExternalFileToLink%2CConfigRef%2CAbsoluteFile" title="addExternalFileToLink(conf: ConfigRef; filename: AbsoluteFile)">addExternalFileToLink(conf: ConfigRef; filename: AbsoluteFile)</a></li>
</ul>
<ul class="simple nested-toc-section">addFileToCompile
<li><a class="reference" href="#addFileToCompile%2CConfigRef%2CCfile" title="addFileToCompile(conf: ConfigRef; cf: Cfile)">addFileToCompile(conf: ConfigRef; cf: Cfile)</a></li>
</ul>
<ul class="simple nested-toc-section">addLinkOption
<li><a class="reference" href="#addLinkOption%2CConfigRef%2Cstring" title="addLinkOption(conf: ConfigRef; option: string)">addLinkOption(conf: ConfigRef; option: string)</a></li>
</ul>
<ul class="simple nested-toc-section">addLinkOptionCmd
<li><a class="reference" href="#addLinkOptionCmd%2CConfigRef%2Cstring" title="addLinkOptionCmd(conf: ConfigRef; option: string)">addLinkOptionCmd(conf: ConfigRef; option: string)</a></li>
</ul>
<ul class="simple nested-toc-section">addLocalCompileOption
<li><a class="reference" href="#addLocalCompileOption%2CConfigRef%2Cstring%2CAbsoluteFile" title="addLocalCompileOption(conf: ConfigRef; option: string; nimfile: AbsoluteFile)">addLocalCompileOption(conf: ConfigRef; option: string; nimfile: AbsoluteFile)</a></li>
</ul>
<ul class="simple nested-toc-section">callCCompiler
<li><a class="reference" href="#callCCompiler%2CConfigRef" title="callCCompiler(conf: ConfigRef)">callCCompiler(conf: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">ccHasSaneOverflow
<li><a class="reference" href="#ccHasSaneOverflow%2CConfigRef" title="ccHasSaneOverflow(conf: ConfigRef): bool">ccHasSaneOverflow(conf: ConfigRef): bool</a></li>
</ul>
<ul class="simple nested-toc-section">changeDetectedViaJsonBuildInstructions
<li><a class="reference" href="#changeDetectedViaJsonBuildInstructions%2CConfigRef%2CAbsoluteFile" title="changeDetectedViaJsonBuildInstructions(conf: ConfigRef; jsonFile: AbsoluteFile): bool">changeDetectedViaJsonBuildInstructions(conf: ConfigRef; jsonFile: AbsoluteFile): bool</a></li>
</ul>
<ul class="simple nested-toc-section">completeCfilePath
<li><a class="reference" href="#completeCfilePath%2CConfigRef%2CAbsoluteFile%2Cbool" title="completeCfilePath(conf: ConfigRef; cfile: AbsoluteFile;
createSubDir: bool = true): AbsoluteFile">completeCfilePath(conf: ConfigRef; cfile: AbsoluteFile;
createSubDir: bool = true): AbsoluteFile</a></li>
</ul>
<ul class="simple nested-toc-section">execExternalProgram
<li><a class="reference" href="#execExternalProgram%2CConfigRef%2Cstring" title="execExternalProgram(conf: ConfigRef; cmd: string; msg = hintExecuting)">execExternalProgram(conf: ConfigRef; cmd: string; msg = hintExecuting)</a></li>
</ul>
<ul class="simple nested-toc-section">getCompileCFileCmd
<li><a class="reference" href="#getCompileCFileCmd%2CConfigRef%2CCfile" title="getCompileCFileCmd(conf: ConfigRef; cfile: Cfile; isMainFile = false;
produceOutput = false): string">getCompileCFileCmd(conf: ConfigRef; cfile: Cfile; isMainFile = false;
produceOutput = false): string</a></li>
</ul>
<ul class="simple nested-toc-section">initVars
<li><a class="reference" href="#initVars%2CConfigRef" title="initVars(conf: ConfigRef)">initVars(conf: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">isVSCompatible
<li><a class="reference" href="#isVSCompatible%2CConfigRef" title="isVSCompatible(conf: ConfigRef): bool">isVSCompatible(conf: ConfigRef): bool</a></li>
</ul>
<ul class="simple nested-toc-section">jsonBuildInstructionsFile
<li><a class="reference" href="#jsonBuildInstructionsFile%2CConfigRef" title="jsonBuildInstructionsFile(conf: ConfigRef): AbsoluteFile">jsonBuildInstructionsFile(conf: ConfigRef): AbsoluteFile</a></li>
</ul>
<ul class="simple nested-toc-section">nameToCC
<li><a class="reference" href="#nameToCC%2Cstring" title="nameToCC(name: string): TSystemCC">nameToCC(name: string): TSystemCC</a></li>
</ul>
<ul class="simple nested-toc-section">resetCompilationLists
<li><a class="reference" href="#resetCompilationLists%2CConfigRef" title="resetCompilationLists(conf: ConfigRef)">resetCompilationLists(conf: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">runJsonBuildInstructions
<li><a class="reference" href="#runJsonBuildInstructions%2CConfigRef%2CAbsoluteFile" title="runJsonBuildInstructions(conf: ConfigRef; jsonFile: AbsoluteFile)">runJsonBuildInstructions(conf: ConfigRef; jsonFile: AbsoluteFile)</a></li>
</ul>
<ul class="simple nested-toc-section">setCC
<li><a class="reference" href="#setCC%2CConfigRef%2Cstring%2CTLineInfo" title="setCC(conf: ConfigRef; ccname: string; info: TLineInfo)">setCC(conf: ConfigRef; ccname: string; info: TLineInfo)</a></li>
</ul>
<ul class="simple nested-toc-section">toObjFile
<li><a class="reference" href="#toObjFile%2CConfigRef%2CAbsoluteFile" title="toObjFile(conf: ConfigRef; filename: AbsoluteFile): AbsoluteFile">toObjFile(conf: ConfigRef; filename: AbsoluteFile): AbsoluteFile</a></li>
</ul>
<ul class="simple nested-toc-section">writeJsonBuildInstructions
<li><a class="reference" href="#writeJsonBuildInstructions%2CConfigRef%2CStringTableRef" title="writeJsonBuildInstructions(conf: ConfigRef; deps: StringTableRef)">writeJsonBuildInstructions(conf: ConfigRef; deps: StringTableRef)</a></li>
</ul>
<ul class="simple nested-toc-section">writeMapping
<li><a class="reference" href="#writeMapping%2CConfigRef%2CRope" title="writeMapping(conf: ConfigRef; symbolMapping: Rope)">writeMapping(conf: ConfigRef; symbolMapping: Rope)</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/extccomp.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ropes.html">ropes</a>, <a class="reference external" href="platform.html">platform</a>, <a class="reference external" href="condsyms.html">condsyms</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="pathutils.html">pathutils</a>, <a class="reference external" href="modulepaths.html">modulepaths</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="TInfoCC">
<dt><pre><a href="#TInfoCC"><span class="Identifier">TInfoCC</span></a> <span class="Other">=</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">name</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">objExt</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">optSpeed</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">optSize</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span>
<span class="Identifier">compilerExe</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">cppCompiler</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">compileTmpl</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span>
<span class="Identifier">buildGui</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">buildDll</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">buildLib</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span>
<span class="Identifier">linkerExe</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">linkTmpl</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">includeCmd</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span>
<span class="Identifier">linkDirCmd</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">linkLibCmd</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">debug</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span>
<span class="Identifier">pic</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">asmStmtFrmt</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">structStmtFmt</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span>
<span class="Identifier">produceAsm</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">cppXsupport</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">props</span><span class="Other">:</span> <a href="#TInfoCCProps"><span class="Identifier">TInfoCCProps</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/extccomp.nim#L38" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L38" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TInfoCCProp">
<dt><pre><a href="#TInfoCCProp"><span class="Identifier">TInfoCCProp</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">hasSwitchRange</span><span class="Other">,</span> <span class="Identifier">hasComputedGoto</span><span class="Other">,</span> <span class="Identifier">hasCpp</span><span class="Other">,</span> <span class="Identifier">hasAssume</span><span class="Other">,</span> <span class="Identifier">hasGcGuard</span><span class="Other">,</span> <span class="Identifier">hasGnuAsm</span><span class="Other">,</span>
<span class="Identifier">hasDeclspec</span><span class="Other">,</span> <span class="Identifier">hasAttribute</span><span class="Other">,</span> <span class="Identifier">hasBuiltinUnreachable</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/extccomp.nim#L27" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L27" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TInfoCCProps">
<dt><pre><a href="#TInfoCCProps"><span class="Identifier">TInfoCCProps</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="#TInfoCCProp"><span class="Identifier">TInfoCCProp</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/extccomp.nim#L37" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L37" 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="CC">
<dt><pre><a href="#CC"><span class="Identifier">CC</span></a><span class="Other">:</span> <span class="Identifier">array</span><span class="Other">[</span><span class="Identifier">succ</span><span class="Other">(</span><span class="Identifier">low</span><span class="Other">(</span><a href="options.html#TSystemCC"><span class="Identifier">TSystemCC</span></a><span class="Other">)</span><span class="Other">)</span> <span class="Operator">..</span> <span class="Identifier">high</span><span class="Other">(</span><a href="options.html#TSystemCC"><span class="Identifier">TSystemCC</span></a><span class="Other">)</span><span class="Other">,</span> <a href="#TInfoCC"><span class="Identifier">TInfoCC</span></a><span class="Other">]</span> <span class="Other">=</span> <span class="Other">[</span><span class="Other">(</span><span class="StringLit">&quot;gcc&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;o&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; -O3 -fno-ident&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -Os -fno-ident&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;gcc&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;g++&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-c $options $include -o $objfile $file&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -mwindows&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -shared&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;ar rcs $libfile $objfiles&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$buildgui $builddll -o $exefile $objfiles $options&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -I&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -L&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -l$1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;-fPIC&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;__asm__($1);$n&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1 $3 $2 &quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-std=gnu++17 -funsigned-char&quot;</span><span class="Other">,</span> <span class="Other">{</span><span class="DecNumber">hasSwitchRange</span><span class="Other">,</span> <span class="DecNumber">hasComputedGoto</span><span class="Other">,</span> <span class="DecNumber">hasCpp</span><span class="Other">,</span>
<span class="DecNumber">hasGcGuard</span><span class="Other">,</span> <span class="DecNumber">hasGnuAsm</span><span class="Other">,</span> <span class="DecNumber">hasAttribute</span><span class="Other">,</span>
<span class="DecNumber">hasBuiltinUnreachable</span><span class="Other">}</span><span class="Other">)</span><span class="Other">,</span> <span class="Other">(</span><span class="StringLit">&quot;switch_gcc&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;o&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -O3 &quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -Os &quot;</span><span class="Other">,</span> <span class="StringLit">&quot;aarch64-none-elf-gcc&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;aarch64-none-elf-g++&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-w -MMD -MP -MF $dfile -c $options $include -o $objfile $file&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; -mwindows&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -shared&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;aarch64-none-elf-gcc-ar rcs $libfile $objfiles&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;aarch64-none-elf-gcc&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$buildgui $builddll -Wl,-Map,$mapfile -o $exefile $objfiles $options&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; -I&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -L&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -l$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;-fPIE&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;asm($1);$n&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1 $3 $2 &quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-std=gnu++17 -funsigned-char&quot;</span><span class="Other">,</span> <span class="Other">{</span><span class="DecNumber">hasSwitchRange</span><span class="Other">,</span> <span class="DecNumber">hasComputedGoto</span><span class="Other">,</span> <span class="DecNumber">hasCpp</span><span class="Other">,</span>
<span class="DecNumber">hasGcGuard</span><span class="Other">,</span> <span class="DecNumber">hasGnuAsm</span><span class="Other">,</span> <span class="DecNumber">hasAttribute</span><span class="Other">,</span>
<span class="DecNumber">hasBuiltinUnreachable</span><span class="Other">}</span><span class="Other">)</span><span class="Other">,</span> <span class="Other">(</span><span class="StringLit">&quot;llvm_gcc&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;o&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; -O3 -fno-ident&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -Os -fno-ident&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;llvm-gcc&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;llvm-g++&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-c $options $include -o $objfile $file&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -mwindows&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -shared&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;llvm-ar rcs $libfile $objfiles&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$buildgui $builddll -o $exefile $objfiles $options&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -I&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -L&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -l$1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;-fPIC&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;__asm__($1);$n&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1 $3 $2 &quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-std=gnu++17 -funsigned-char&quot;</span><span class="Other">,</span> <span class="Other">{</span><span class="DecNumber">hasSwitchRange</span><span class="Other">,</span> <span class="DecNumber">hasComputedGoto</span><span class="Other">,</span> <span class="DecNumber">hasCpp</span><span class="Other">,</span>
<span class="DecNumber">hasGcGuard</span><span class="Other">,</span> <span class="DecNumber">hasGnuAsm</span><span class="Other">,</span> <span class="DecNumber">hasAttribute</span><span class="Other">,</span>
<span class="DecNumber">hasBuiltinUnreachable</span><span class="Other">}</span><span class="Other">)</span><span class="Other">,</span> <span class="Other">(</span><span class="StringLit">&quot;clang&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;o&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; -O3 -fno-ident&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -Os -fno-ident&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;clang&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;clang++&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-c $options $include -o $objfile $file&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -mwindows&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -shared&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;llvm-ar rcs $libfile $objfiles&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$buildgui $builddll -o $exefile $objfiles $options&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -I&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -L&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -l$1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;-fPIC&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;__asm__($1);$n&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1 $3 $2 &quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-std=gnu++17 -funsigned-char&quot;</span><span class="Other">,</span> <span class="Other">{</span><span class="DecNumber">hasSwitchRange</span><span class="Other">,</span> <span class="DecNumber">hasComputedGoto</span><span class="Other">,</span> <span class="DecNumber">hasCpp</span><span class="Other">,</span>
<span class="DecNumber">hasGcGuard</span><span class="Other">,</span> <span class="DecNumber">hasGnuAsm</span><span class="Other">,</span> <span class="DecNumber">hasAttribute</span><span class="Other">,</span>
<span class="DecNumber">hasBuiltinUnreachable</span><span class="Other">}</span><span class="Other">)</span><span class="Other">,</span> <span class="Other">(</span><span class="StringLit">&quot;bcc&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;obj&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; -O3 -6 &quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -O1 -6 &quot;</span><span class="Other">,</span> <span class="StringLit">&quot;bcc32c&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;cpp32c&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-c $options $include -o$objfile $file&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -tW&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -tWD&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;bcc32&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$options $buildgui $builddll -e$exefile $objfiles&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -I&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;__asm{$n$1$n}$n&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1 $2&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span>
<span class="Other">{</span><span class="DecNumber">hasSwitchRange</span><span class="Other">,</span> <span class="DecNumber">hasComputedGoto</span><span class="Other">,</span> <span class="DecNumber">hasCpp</span><span class="Other">,</span> <span class="DecNumber">hasGcGuard</span><span class="Other">,</span> <span class="DecNumber">hasAttribute</span><span class="Other">}</span><span class="Other">)</span><span class="Other">,</span> <span class="Other">(</span>
<span class="StringLit">&quot;vcc&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;obj&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; /Ogityb2 &quot;</span><span class="Other">,</span> <span class="StringLit">&quot; /O1 &quot;</span><span class="Other">,</span> <span class="StringLit">&quot;cl&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;cl&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;/c$vccplatform $options $include /nologo /Fo$objfile $file&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; /SUBSYSTEM:WINDOWS user32.lib &quot;</span><span class="Other">,</span> <span class="StringLit">&quot; /LD&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;vccexe --command:lib$vccplatform /nologo /OUT:$libfile $objfiles&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;cl&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$builddll$vccplatform /Fe$exefile $objfiles $buildgui /nologo $options&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; /I&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; /link /LIBPATH:&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; $1.lib&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; /RTC1 /Z7 &quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;__asm{$n$1$n}$n&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$3$n$1 $2&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;/Fa$asmfile&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="Other">{</span><span class="DecNumber">hasCpp</span><span class="Other">,</span> <span class="DecNumber">hasAssume</span><span class="Other">,</span> <span class="DecNumber">hasDeclspec</span><span class="Other">}</span><span class="Other">)</span><span class="Other">,</span> <span class="Other">(</span><span class="StringLit">&quot;tcc&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;o&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;tcc&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;-c $options $include -o $objfile $file&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-Wl,-subsystem=gui&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -shared&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;tcc&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-o $exefile $options $buildgui $builddll $objfiles&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -I&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -L&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -l$1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; -g &quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;asm($1);$n&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1 $2&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span>
<span class="Other">{</span><span class="DecNumber">hasSwitchRange</span><span class="Other">,</span> <span class="DecNumber">hasComputedGoto</span><span class="Other">,</span> <span class="DecNumber">hasGnuAsm</span><span class="Other">}</span><span class="Other">)</span><span class="Other">,</span> <span class="Other">(</span><span class="StringLit">&quot;env&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;o&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -O3 &quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; -O1 &quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;-c $ccenvflags $options $include -o $objfile $file&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; -shared &quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;-o $exefile $buildgui $builddll $objfiles $options&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; -I&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;__asm{$n$1$n}$n&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1 $2&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="Other">{</span><span class="DecNumber">hasGnuAsm</span><span class="Other">}</span><span class="Other">)</span><span class="Other">,</span> <span class="Other">(</span>
<span class="StringLit">&quot;icl&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;obj&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; /Ogityb2 &quot;</span><span class="Other">,</span> <span class="StringLit">&quot; /O1 &quot;</span><span class="Other">,</span> <span class="StringLit">&quot;icl&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;cl&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;/c$vccplatform $options $include /nologo /Fo$objfile $file&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; /SUBSYSTEM:WINDOWS user32.lib &quot;</span><span class="Other">,</span> <span class="StringLit">&quot; /LD&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;vccexe --command:lib$vccplatform /nologo /OUT:$libfile $objfiles&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;icl&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$builddll$vccplatform /Fe$exefile $objfiles $buildgui /nologo $options&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; /I&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; /link /LIBPATH:&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; $1.lib&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; /RTC1 /Z7 &quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;__asm{$n$1$n}$n&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$3$n$1 $2&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;/Fa$asmfile&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="Other">{</span><span class="DecNumber">hasCpp</span><span class="Other">,</span> <span class="DecNumber">hasAssume</span><span class="Other">,</span> <span class="DecNumber">hasDeclspec</span><span class="Other">}</span><span class="Other">)</span><span class="Other">,</span> <span class="Other">(</span><span class="StringLit">&quot;icc&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;o&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -O3 -fno-ident&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -Os -fno-ident&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;icc&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;g++&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-c $options $include -o $objfile $file&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -mwindows&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -shared&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;ar rcs $libfile $objfiles&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;icc&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$buildgui $builddll -o $exefile $objfiles $options&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -I&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -L&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -l$1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;-fPIC&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;__asm__($1);$n&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1 $3 $2 &quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-std=gnu++17 -funsigned-char&quot;</span><span class="Other">,</span> <span class="Other">{</span><span class="DecNumber">hasSwitchRange</span><span class="Other">,</span> <span class="DecNumber">hasComputedGoto</span><span class="Other">,</span> <span class="DecNumber">hasCpp</span><span class="Other">,</span>
<span class="DecNumber">hasGcGuard</span><span class="Other">,</span> <span class="DecNumber">hasGnuAsm</span><span class="Other">,</span> <span class="DecNumber">hasAttribute</span><span class="Other">,</span>
<span class="DecNumber">hasBuiltinUnreachable</span><span class="Other">}</span><span class="Other">)</span><span class="Other">,</span> <span class="Other">(</span><span class="StringLit">&quot;clang_cl&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;obj&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; /Ogityb2 &quot;</span><span class="Other">,</span> <span class="StringLit">&quot; /O1 &quot;</span><span class="Other">,</span> <span class="StringLit">&quot;clang-cl&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;clang-cl&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;/c$vccplatform $options $include /nologo /Fo$objfile $file&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; /SUBSYSTEM:WINDOWS user32.lib &quot;</span><span class="Other">,</span> <span class="StringLit">&quot; /LD&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;vccexe --command:lib$vccplatform /nologo /OUT:$libfile $objfiles&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;clang-cl&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;-fuse-ld=lld $builddll$vccplatform /Fe$exefile $objfiles $buildgui /nologo $options&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; /I&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; /link /LIBPATH:&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; $1.lib&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; /RTC1 /Z7 &quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;__asm{$n$1$n}$n&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$3$n$1 $2&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;/Fa$asmfile&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="Other">{</span><span class="DecNumber">hasCpp</span><span class="Other">,</span> <span class="DecNumber">hasAssume</span><span class="Other">,</span> <span class="DecNumber">hasDeclspec</span><span class="Other">}</span><span class="Other">)</span><span class="Other">,</span> <span class="Other">(</span><span class="StringLit">&quot;hipcc&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;o&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -O3 -fno-ident&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -Os -fno-ident&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;hipcc&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;hipcc&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-c $options $include -o $objfile $file&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -mwindows&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -shared&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;llvm-ar rcs $libfile $objfiles&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$buildgui $builddll -o $exefile $objfiles $options&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -I&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -L&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -l$1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;-fPIC&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;__asm__($1);$n&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1 $3 $2 &quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-std=gnu++17 -funsigned-char&quot;</span><span class="Other">,</span> <span class="Other">{</span><span class="DecNumber">hasSwitchRange</span><span class="Other">,</span> <span class="DecNumber">hasComputedGoto</span><span class="Other">,</span> <span class="DecNumber">hasCpp</span><span class="Other">,</span>
<span class="DecNumber">hasGcGuard</span><span class="Other">,</span> <span class="DecNumber">hasGnuAsm</span><span class="Other">,</span> <span class="DecNumber">hasAttribute</span><span class="Other">,</span>
<span class="DecNumber">hasBuiltinUnreachable</span><span class="Other">}</span><span class="Other">)</span><span class="Other">,</span> <span class="Other">(</span><span class="StringLit">&quot;nvcc&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;o&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; -O3 -fno-ident&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -Os -fno-ident&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;nvcc&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;nvcc&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-c -x cu -Xcompiler=\&quot;$options\&quot; $include -o $objfile $file&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -mwindows&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; -shared&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;ar rcs $libfile $objfiles&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$buildgui $builddll -o $exefile $objfiles -Xcompiler=\&quot;$options\&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -I&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot; -L&quot;</span><span class="Other">,</span> <span class="StringLit">&quot; -l$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;-fPIC&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;__asm__($1);$n&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1 $3 $2 &quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;-std=gnu++17 -funsigned-char&quot;</span><span class="Other">,</span> <span class="Other">{</span><span class="DecNumber">hasSwitchRange</span><span class="Other">,</span> <span class="DecNumber">hasComputedGoto</span><span class="Other">,</span> <span class="DecNumber">hasCpp</span><span class="Other">,</span>
<span class="DecNumber">hasGcGuard</span><span class="Other">,</span> <span class="DecNumber">hasGnuAsm</span><span class="Other">,</span> <span class="DecNumber">hasAttribute</span><span class="Other">,</span>
<span class="DecNumber">hasBuiltinUnreachable</span><span class="Other">}</span><span class="Other">)</span><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/extccomp.nim#L297" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L297" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="hExt">
<dt><pre><a href="#hExt"><span class="Identifier">hExt</span></a> <span class="Other">=</span> <span class="StringLit">&quot;.h&quot;</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/extccomp.nim#L312" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L312" 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="addCompileOption-procs-all">
<div id="addCompileOption,ConfigRef,string">
<dt><pre><span class="Keyword">proc</span> <a href="#addCompileOption%2CConfigRef%2Cstring"><span class="Identifier">addCompileOption</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">option</span><span class="Other">:</span> <span class="Identifier">string</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/extccomp.nim#L381" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L381" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addCompileOptionCmd-procs-all">
<div id="addCompileOptionCmd,ConfigRef,string">
<dt><pre><span class="Keyword">proc</span> <a href="#addCompileOptionCmd%2CConfigRef%2Cstring"><span class="Identifier">addCompileOptionCmd</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">option</span><span class="Other">:</span> <span class="Identifier">string</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/extccomp.nim#L388" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L388" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addExternalFileToCompile-procs-all">
<div id="addExternalFileToCompile,ConfigRef,Cfile">
<dt><pre><span class="Keyword">proc</span> <a href="#addExternalFileToCompile%2CConfigRef%2CCfile"><span class="Identifier">addExternalFileToCompile</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">c</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="options.html#Cfile"><span class="Identifier">Cfile</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">OSError</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">,</span> <span class="Identifier">EOFError</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">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</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/extccomp.nim#L691" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L691" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="addExternalFileToCompile,ConfigRef,AbsoluteFile">
<dt><pre><span class="Keyword">proc</span> <a href="#addExternalFileToCompile%2CConfigRef%2CAbsoluteFile"><span class="Identifier">addExternalFileToCompile</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">filename</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</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">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">,</span>
<span class="Identifier">EOFError</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">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteDirEffect</span><span class="Other">,</span>
<span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</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/extccomp.nim#L703" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L703" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addExternalFileToLink-procs-all">
<div id="addExternalFileToLink,ConfigRef,AbsoluteFile">
<dt><pre><span class="Keyword">proc</span> <a href="#addExternalFileToLink%2CConfigRef%2CAbsoluteFile"><span class="Identifier">addExternalFileToLink</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">filename</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</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/extccomp.nim#L427" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L427" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addFileToCompile-procs-all">
<div id="addFileToCompile,ConfigRef,Cfile">
<dt><pre><span class="Keyword">proc</span> <a href="#addFileToCompile%2CConfigRef%2CCfile"><span class="Identifier">addFileToCompile</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">cf</span><span class="Other">:</span> <a href="options.html#Cfile"><span class="Identifier">Cfile</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/extccomp.nim#L409" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L409" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addLinkOption-procs-all">
<div id="addLinkOption,ConfigRef,string">
<dt><pre><span class="Keyword">proc</span> <a href="#addLinkOption%2CConfigRef%2Cstring"><span class="Identifier">addLinkOption</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">option</span><span class="Other">:</span> <span class="Identifier">string</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/extccomp.nim#L378" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L378" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addLinkOptionCmd-procs-all">
<div id="addLinkOptionCmd,ConfigRef,string">
<dt><pre><span class="Keyword">proc</span> <a href="#addLinkOptionCmd%2CConfigRef%2Cstring"><span class="Identifier">addLinkOptionCmd</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">option</span><span class="Other">:</span> <span class="Identifier">string</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/extccomp.nim#L385" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L385" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addLocalCompileOption-procs-all">
<div id="addLocalCompileOption,ConfigRef,string,AbsoluteFile">
<dt><pre><span class="Keyword">proc</span> <a href="#addLocalCompileOption%2CConfigRef%2Cstring%2CAbsoluteFile"><span class="Identifier">addLocalCompileOption</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">option</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span>
<span class="Identifier">nimfile</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</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">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ValueError</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">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</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/extccomp.nim#L412" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L412" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="callCCompiler-procs-all">
<div id="callCCompiler,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#callCCompiler%2CConfigRef"><span class="Identifier">callCCompiler</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span>
<span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">ExecIOEffect</span><span class="Other">,</span>
<span class="Identifier">TimeEffect</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/extccomp.nim#L971" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L971" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="ccHasSaneOverflow-procs-all">
<div id="ccHasSaneOverflow,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#ccHasSaneOverflow%2CConfigRef"><span class="Identifier">ccHasSaneOverflow</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><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="Identifier">ValueError</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">ExecIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</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/extccomp.nim#L561" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L561" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="changeDetectedViaJsonBuildInstructions-procs-all">
<div id="changeDetectedViaJsonBuildInstructions,ConfigRef,AbsoluteFile">
<dt><pre><span class="Keyword">proc</span> <a href="#changeDetectedViaJsonBuildInstructions%2CConfigRef%2CAbsoluteFile"><span class="Identifier">changeDetectedViaJsonBuildInstructions</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span>
<span class="Identifier">jsonFile</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</span></a><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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ValueError</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">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</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/extccomp.nim#L1122" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L1122" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="completeCfilePath-procs-all">
<div id="completeCfilePath,ConfigRef,AbsoluteFile,bool">
<dt><pre><span class="Keyword">proc</span> <a href="#completeCfilePath%2CConfigRef%2CAbsoluteFile%2Cbool"><span class="Identifier">completeCfilePath</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">cfile</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</span></a><span class="Other">;</span>
<span class="Identifier">createSubDir</span><span class="Other">:</span> <span class="Identifier">bool</span> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">)</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</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="Identifier">OSError</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">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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>
Generate the absolute file path to the generated modules.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/extccomp.nim#L400" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L400" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="execExternalProgram-procs-all">
<div id="execExternalProgram,ConfigRef,string">
<dt><pre><span class="Keyword">proc</span> <a href="#execExternalProgram%2CConfigRef%2Cstring"><span class="Identifier">execExternalProgram</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">cmd</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">msg</span> <span class="Other">=</span> <span class="Identifier">hintExecuting</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="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span>
<span class="Identifier">ExecIOEffect</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/extccomp.nim#L434" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L434" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getCompileCFileCmd-procs-all">
<div id="getCompileCFileCmd,ConfigRef,Cfile">
<dt><pre><span class="Keyword">proc</span> <a href="#getCompileCFileCmd%2CConfigRef%2CCfile"><span class="Identifier">getCompileCFileCmd</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">cfile</span><span class="Other">:</span> <a href="options.html#Cfile"><span class="Identifier">Cfile</span></a><span class="Other">;</span> <span class="Identifier">isMainFile</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">;</span>
<span class="Identifier">produceOutput</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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">Exception</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</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/extccomp.nim#L579" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L579" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initVars-procs-all">
<div id="initVars,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#initVars%2CConfigRef"><span class="Identifier">initVars</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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/extccomp.nim#L391" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L391" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isVSCompatible-procs-all">
<div id="isVSCompatible,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#isVSCompatible%2CConfigRef"><span class="Identifier">isVSCompatible</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><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/extccomp.nim#L333" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L333" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="jsonBuildInstructionsFile-procs-all">
<div id="jsonBuildInstructionsFile,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#jsonBuildInstructionsFile%2CConfigRef"><span class="Identifier">jsonBuildInstructionsFile</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">)</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</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="Identifier">OSError</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">ReadEnvEffect</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/extccomp.nim#L1063" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L1063" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="nameToCC-procs-all">
<div id="nameToCC,string">
<dt><pre><span class="Keyword">proc</span> <a href="#nameToCC%2Cstring"><span class="Identifier">nameToCC</span></a><span class="Other">(</span><span class="Identifier">name</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="options.html#TSystemCC"><span class="Identifier">TSystemCC</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>
Returns the kind of compiler referred to by <tt class="docutils literal"><span class="pre"><span class="Identifier">name</span></span></tt>, or ccNone if the name doesn't refer to any known compiler.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/extccomp.nim#L319" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L319" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="resetCompilationLists-procs-all">
<div id="resetCompilationLists,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#resetCompilationLists%2CConfigRef"><span class="Identifier">resetCompilationLists</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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/extccomp.nim#L419" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L419" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="runJsonBuildInstructions-procs-all">
<div id="runJsonBuildInstructions,ConfigRef,AbsoluteFile">
<dt><pre><span class="Keyword">proc</span> <a href="#runJsonBuildInstructions%2CConfigRef%2CAbsoluteFile"><span class="Identifier">runJsonBuildInstructions</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">jsonFile</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</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">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ExecIOEffect</span><span class="Other">,</span> <span class="Identifier">TimeEffect</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/extccomp.nim#L1142" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L1142" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setCC-procs-all">
<div id="setCC,ConfigRef,string,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#setCC%2CConfigRef%2Cstring%2CTLineInfo"><span class="Identifier">setCC</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">ccname</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</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">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/extccomp.nim#L364" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L364" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="toObjFile-procs-all">
<div id="toObjFile,ConfigRef,AbsoluteFile">
<dt><pre><span class="Keyword">proc</span> <a href="#toObjFile%2CConfigRef%2CAbsoluteFile"><span class="Identifier">toObjFile</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">filename</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</span></a><span class="Other">)</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</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/extccomp.nim#L405" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L405" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="writeJsonBuildInstructions-procs-all">
<div id="writeJsonBuildInstructions,ConfigRef,StringTableRef">
<dt><pre><span class="Keyword">proc</span> <a href="#writeJsonBuildInstructions%2CConfigRef%2CStringTableRef"><span class="Identifier">writeJsonBuildInstructions</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">deps</span><span class="Other">:</span> <span class="Identifier">StringTableRef</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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</span><span class="Other">,</span> <span class="Identifier">TimeEffect</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/extccomp.nim#L1087" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L1087" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="writeMapping-procs-all">
<div id="writeMapping,ConfigRef,Rope">
<dt><pre><span class="Keyword">proc</span> <a href="#writeMapping%2CConfigRef%2CRope"><span class="Identifier">writeMapping</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">symbolMapping</span><span class="Other">:</span> <a href="ropes.html#Rope"><span class="Identifier">Rope</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">ValueError</span><span class="Other">,</span>
<span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/extccomp.nim#L1171" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/extccomp.nim#L1171" 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: 2026-06-02 05:20:17 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

41
compiler/extccomp.idx Normal file
View File

@@ -0,0 +1,41 @@
nimTitle extccomp extccomp.html module extccomp 0
nim hasSwitchRange extccomp.html#hasSwitchRange TInfoCCProp.hasSwitchRange 27
nim hasComputedGoto extccomp.html#hasComputedGoto TInfoCCProp.hasComputedGoto 27
nim hasCpp extccomp.html#hasCpp TInfoCCProp.hasCpp 27
nim hasAssume extccomp.html#hasAssume TInfoCCProp.hasAssume 27
nim hasGcGuard extccomp.html#hasGcGuard TInfoCCProp.hasGcGuard 27
nim hasGnuAsm extccomp.html#hasGnuAsm TInfoCCProp.hasGnuAsm 27
nim hasDeclspec extccomp.html#hasDeclspec TInfoCCProp.hasDeclspec 27
nim hasAttribute extccomp.html#hasAttribute TInfoCCProp.hasAttribute 27
nim hasBuiltinUnreachable extccomp.html#hasBuiltinUnreachable TInfoCCProp.hasBuiltinUnreachable 27
nim TInfoCCProp extccomp.html#TInfoCCProp enum TInfoCCProp 27
nim TInfoCCProps extccomp.html#TInfoCCProps type TInfoCCProps 37
nim TInfoCC extccomp.html#TInfoCC tuple TInfoCC 38
nim CC extccomp.html#CC const CC 297
nim hExt extccomp.html#hExt const hExt 312
nim nameToCC extccomp.html#nameToCC,string proc nameToCC(name: string): TSystemCC 319
nim isVSCompatible extccomp.html#isVSCompatible,ConfigRef proc isVSCompatible(conf: ConfigRef): bool 333
nim setCC extccomp.html#setCC,ConfigRef,string,TLineInfo proc setCC(conf: ConfigRef; ccname: string; info: TLineInfo) 364
nim addLinkOption extccomp.html#addLinkOption,ConfigRef,string proc addLinkOption(conf: ConfigRef; option: string) 378
nim addCompileOption extccomp.html#addCompileOption,ConfigRef,string proc addCompileOption(conf: ConfigRef; option: string) 381
nim addLinkOptionCmd extccomp.html#addLinkOptionCmd,ConfigRef,string proc addLinkOptionCmd(conf: ConfigRef; option: string) 385
nim addCompileOptionCmd extccomp.html#addCompileOptionCmd,ConfigRef,string proc addCompileOptionCmd(conf: ConfigRef; option: string) 388
nim initVars extccomp.html#initVars,ConfigRef proc initVars(conf: ConfigRef) 391
nim completeCfilePath extccomp.html#completeCfilePath,ConfigRef,AbsoluteFile,bool proc completeCfilePath(conf: ConfigRef; cfile: AbsoluteFile;\n createSubDir: bool = true): AbsoluteFile 400
nim toObjFile extccomp.html#toObjFile,ConfigRef,AbsoluteFile proc toObjFile(conf: ConfigRef; filename: AbsoluteFile): AbsoluteFile 405
nim addFileToCompile extccomp.html#addFileToCompile,ConfigRef,Cfile proc addFileToCompile(conf: ConfigRef; cf: Cfile) 409
nim addLocalCompileOption extccomp.html#addLocalCompileOption,ConfigRef,string,AbsoluteFile proc addLocalCompileOption(conf: ConfigRef; option: string; nimfile: AbsoluteFile) 412
nim resetCompilationLists extccomp.html#resetCompilationLists,ConfigRef proc resetCompilationLists(conf: ConfigRef) 419
nim addExternalFileToLink extccomp.html#addExternalFileToLink,ConfigRef,AbsoluteFile proc addExternalFileToLink(conf: ConfigRef; filename: AbsoluteFile) 427
nim execExternalProgram extccomp.html#execExternalProgram,ConfigRef,string proc execExternalProgram(conf: ConfigRef; cmd: string; msg = hintExecuting) 434
nim ccHasSaneOverflow extccomp.html#ccHasSaneOverflow,ConfigRef proc ccHasSaneOverflow(conf: ConfigRef): bool 561
nim getCompileCFileCmd extccomp.html#getCompileCFileCmd,ConfigRef,Cfile proc getCompileCFileCmd(conf: ConfigRef; cfile: Cfile; isMainFile = false;\n produceOutput = false): string 579
nim addExternalFileToCompile extccomp.html#addExternalFileToCompile,ConfigRef,Cfile proc addExternalFileToCompile(conf: ConfigRef; c: var Cfile) 691
nim addExternalFileToCompile extccomp.html#addExternalFileToCompile,ConfigRef,AbsoluteFile proc addExternalFileToCompile(conf: ConfigRef; filename: AbsoluteFile) 703
nim callCCompiler extccomp.html#callCCompiler,ConfigRef proc callCCompiler(conf: ConfigRef) 971
nim jsonBuildInstructionsFile extccomp.html#jsonBuildInstructionsFile,ConfigRef proc jsonBuildInstructionsFile(conf: ConfigRef): AbsoluteFile 1063
nim writeJsonBuildInstructions extccomp.html#writeJsonBuildInstructions,ConfigRef,StringTableRef proc writeJsonBuildInstructions(conf: ConfigRef; deps: StringTableRef) 1087
nim changeDetectedViaJsonBuildInstructions extccomp.html#changeDetectedViaJsonBuildInstructions,ConfigRef,AbsoluteFile proc changeDetectedViaJsonBuildInstructions(conf: ConfigRef; jsonFile: AbsoluteFile): bool 1122
nim runJsonBuildInstructions extccomp.html#runJsonBuildInstructions,ConfigRef,AbsoluteFile proc runJsonBuildInstructions(conf: ConfigRef; jsonFile: AbsoluteFile) 1142
nim writeMapping extccomp.html#writeMapping,ConfigRef,Rope proc writeMapping(conf: ConfigRef; symbolMapping: Rope) 1171
nimgrp addexternalfiletocompile extccomp.html#addExternalFileToCompile-procs-all proc 691

127
compiler/filter_tmpl.html Normal file
View File

@@ -0,0 +1,127 @@
<?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>filter_tmpl</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">filter_tmpl</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">filterTmpl
<li><a class="reference" href="#filterTmpl%2CConfigRef%2CPLLStream%2CAbsoluteFile%2CPNode" title="filterTmpl(conf: ConfigRef; stdin: PLLStream; filename: AbsoluteFile;
call: PNode): PLLStream">filterTmpl(conf: ConfigRef; stdin: PLLStream; filename: AbsoluteFile;
call: PNode): PLLStream</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/filter_tmpl.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/filter_tmpl.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="llstream.html">llstream</a>, <a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="filters.html">filters</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="pathutils.html">pathutils</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="filterTmpl-procs-all">
<div id="filterTmpl,ConfigRef,PLLStream,AbsoluteFile,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#filterTmpl%2CConfigRef%2CPLLStream%2CAbsoluteFile%2CPNode"><span class="Identifier">filterTmpl</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">stdin</span><span class="Other">:</span> <a href="llstream.html#PLLStream"><span class="Identifier">PLLStream</span></a><span class="Other">;</span> <span class="Identifier">filename</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</span></a><span class="Other">;</span>
<span class="Identifier">call</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="llstream.html#PLLStream"><span class="Identifier">PLLStream</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">ReadDirEffect</span><span class="Other">,</span>
<span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/filter_tmpl.nim#L204" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/filter_tmpl.nim#L204" 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: 2026-06-02 05:20:18 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

2
compiler/filter_tmpl.idx Normal file
View File

@@ -0,0 +1,2 @@
nimTitle filter_tmpl filter_tmpl.html module filter_tmpl 0
nim filterTmpl filter_tmpl.html#filterTmpl,ConfigRef,PLLStream,AbsoluteFile,PNode proc filterTmpl(conf: ConfigRef; stdin: PLLStream; filename: AbsoluteFile;\n call: PNode): PLLStream 204

209
compiler/filters.html Normal file
View File

@@ -0,0 +1,209 @@
<?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>filters</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">filters</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">boolArg
<li><a class="reference" href="#boolArg%2CConfigRef%2CPNode%2Cstring%2Cint%2Cbool" title="boolArg(conf: ConfigRef; n: PNode; name: string; pos: int; default: bool): bool">boolArg(conf: ConfigRef; n: PNode; name: string; pos: int; default: bool): bool</a></li>
</ul>
<ul class="simple nested-toc-section">charArg
<li><a class="reference" href="#charArg%2CConfigRef%2CPNode%2Cstring%2Cint%2Cchar" title="charArg(conf: ConfigRef; n: PNode; name: string; pos: int; default: char): char">charArg(conf: ConfigRef; n: PNode; name: string; pos: int; default: char): char</a></li>
</ul>
<ul class="simple nested-toc-section">filterReplace
<li><a class="reference" href="#filterReplace%2CConfigRef%2CPLLStream%2CAbsoluteFile%2CPNode" title="filterReplace(conf: ConfigRef; stdin: PLLStream; filename: AbsoluteFile;
call: PNode): PLLStream">filterReplace(conf: ConfigRef; stdin: PLLStream; filename: AbsoluteFile;
call: PNode): PLLStream</a></li>
</ul>
<ul class="simple nested-toc-section">filterStrip
<li><a class="reference" href="#filterStrip%2CConfigRef%2CPLLStream%2CAbsoluteFile%2CPNode" title="filterStrip(conf: ConfigRef; stdin: PLLStream; filename: AbsoluteFile;
call: PNode): PLLStream">filterStrip(conf: ConfigRef; stdin: PLLStream; filename: AbsoluteFile;
call: PNode): PLLStream</a></li>
</ul>
<ul class="simple nested-toc-section">strArg
<li><a class="reference" href="#strArg%2CConfigRef%2CPNode%2Cstring%2Cint%2Cstring" title="strArg(conf: ConfigRef; n: PNode; name: string; pos: int; default: string): string">strArg(conf: ConfigRef; n: PNode; name: string; pos: int; default: string): string</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/filters.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/filters.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="llstream.html">llstream</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="renderer.html">renderer</a>, <a class="reference external" href="pathutils.html">pathutils</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="boolArg-procs-all">
<div id="boolArg,ConfigRef,PNode,string,int,bool">
<dt><pre><span class="Keyword">proc</span> <a href="#boolArg%2CConfigRef%2CPNode%2Cstring%2Cint%2Cbool"><span class="Identifier">boolArg</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">name</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">default</span><span class="Other">:</span> <span class="Identifier">bool</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="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/filters.nim#L50" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/filters.nim#L50" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="charArg-procs-all">
<div id="charArg,ConfigRef,PNode,string,int,char">
<dt><pre><span class="Keyword">proc</span> <a href="#charArg%2CConfigRef%2CPNode%2Cstring%2Cint%2Cchar"><span class="Identifier">charArg</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">name</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">default</span><span class="Other">:</span> <span class="Identifier">char</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">char</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">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/filters.nim#L33" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/filters.nim#L33" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="filterReplace-procs-all">
<div id="filterReplace,ConfigRef,PLLStream,AbsoluteFile,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#filterReplace%2CConfigRef%2CPLLStream%2CAbsoluteFile%2CPNode"><span class="Identifier">filterReplace</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">stdin</span><span class="Other">:</span> <a href="llstream.html#PLLStream"><span class="Identifier">PLLStream</span></a><span class="Other">;</span> <span class="Identifier">filename</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</span></a><span class="Other">;</span>
<span class="Identifier">call</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="llstream.html#PLLStream"><span class="Identifier">PLLStream</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="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/filters.nim#L73" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/filters.nim#L73" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="filterStrip-procs-all">
<div id="filterStrip,ConfigRef,PLLStream,AbsoluteFile,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#filterStrip%2CConfigRef%2CPLLStream%2CAbsoluteFile%2CPNode"><span class="Identifier">filterStrip</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">stdin</span><span class="Other">:</span> <a href="llstream.html#PLLStream"><span class="Identifier">PLLStream</span></a><span class="Other">;</span> <span class="Identifier">filename</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</span></a><span class="Other">;</span>
<span class="Identifier">call</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="llstream.html#PLLStream"><span class="Identifier">PLLStream</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="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/filters.nim#L59" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/filters.nim#L59" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="strArg-procs-all">
<div id="strArg,ConfigRef,PNode,string,int,string">
<dt><pre><span class="Keyword">proc</span> <a href="#strArg%2CConfigRef%2CPNode%2Cstring%2Cint%2Cstring"><span class="Identifier">strArg</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">name</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">default</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/filters.nim#L42" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/filters.nim#L42" 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: 2026-06-02 05:20:17 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

6
compiler/filters.idx Normal file
View File

@@ -0,0 +1,6 @@
nimTitle filters filters.html module filters 0
nim charArg filters.html#charArg,ConfigRef,PNode,string,int,char proc charArg(conf: ConfigRef; n: PNode; name: string; pos: int; default: char): char 33
nim strArg filters.html#strArg,ConfigRef,PNode,string,int,string proc strArg(conf: ConfigRef; n: PNode; name: string; pos: int; default: string): string 42
nim boolArg filters.html#boolArg,ConfigRef,PNode,string,int,bool proc boolArg(conf: ConfigRef; n: PNode; name: string; pos: int; default: bool): bool 50
nim filterStrip filters.html#filterStrip,ConfigRef,PLLStream,AbsoluteFile,PNode proc filterStrip(conf: ConfigRef; stdin: PLLStream; filename: AbsoluteFile;\n call: PNode): PLLStream 59
nim filterReplace filters.html#filterReplace,ConfigRef,PLLStream,AbsoluteFile,PNode proc filterReplace(conf: ConfigRef; stdin: PLLStream; filename: AbsoluteFile;\n call: PNode): PLLStream 73

127
compiler/gorgeimpl.html Normal file
View File

@@ -0,0 +1,127 @@
<?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>gorgeimpl</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">gorgeimpl</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">opGorge
<li><a class="reference" href="#opGorge%2Cstring%2Cstring%2Cstring%2CTLineInfo%2CConfigRef" title="opGorge(cmd, input, cache: string; info: TLineInfo; conf: ConfigRef): (string,
int)">opGorge(cmd, input, cache: string; info: TLineInfo; conf: ConfigRef): (string,
int)</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/gorgeimpl.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/gorgeimpl.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">Module that implements <tt class="docutils literal"><span class="pre">gorge</span></tt> for the compiler.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="pathutils.html">pathutils</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="opGorge-procs-all">
<div id="opGorge,string,string,string,TLineInfo,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#opGorge%2Cstring%2Cstring%2Cstring%2CTLineInfo%2CConfigRef"><span class="Identifier">opGorge</span></a><span class="Other">(</span><span class="Identifier">cmd</span><span class="Other">,</span> <span class="Identifier">input</span><span class="Other">,</span> <span class="Identifier">cache</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span>
<span class="Identifier">string</span><span class="Other">,</span> <span class="Identifier">int</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="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">ValueError</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">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ExecIOEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span>
<span class="Identifier">TimeEffect</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/gorgeimpl.nim#L31" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/gorgeimpl.nim#L31" 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: 2026-06-02 05:20:22 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

2
compiler/gorgeimpl.idx Normal file
View File

@@ -0,0 +1,2 @@
nimTitle gorgeimpl gorgeimpl.html module gorgeimpl 0
nim opGorge gorgeimpl.html#opGorge,string,string,string,TLineInfo,ConfigRef proc opGorge(cmd, input, cache: string; info: TLineInfo; conf: ConfigRef): (string,\n int) 31

585
compiler/guards.html Normal file
View File

@@ -0,0 +1,585 @@
<?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>guards</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">guards</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="#TModel" title="TModel = object
s*: seq[PNode]
g*: ModuleGraph
beSmart*: bool">TModel</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">addAsgnFact
<li><a class="reference" href="#addAsgnFact%2CTModel%2CPNode%2CPNode" title="addAsgnFact(m: var TModel; key, value: PNode)">addAsgnFact(m: var TModel; key, value: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">addCaseBranchFacts
<li><a class="reference" href="#addCaseBranchFacts%2CTModel%2CPNode%2Cint" title="addCaseBranchFacts(m: var TModel; n: PNode; i: int)">addCaseBranchFacts(m: var TModel; n: PNode; i: int)</a></li>
</ul>
<ul class="simple nested-toc-section">addDiscriminantFact
<li><a class="reference" href="#addDiscriminantFact%2CTModel%2CPNode" title="addDiscriminantFact(m: var TModel; n: PNode)">addDiscriminantFact(m: var TModel; n: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">addFact
<li><a class="reference" href="#addFact%2CTModel%2CPNode" title="addFact(m: var TModel; nn: PNode)">addFact(m: var TModel; nn: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">addFactLe
<li><a class="reference" href="#addFactLe%2CTModel%2CPNode%2CPNode" title="addFactLe(m: var TModel; a, b: PNode)">addFactLe(m: var TModel; a, b: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">addFactLt
<li><a class="reference" href="#addFactLt%2CTModel%2CPNode%2CPNode" title="addFactLt(m: var TModel; a, b: PNode)">addFactLt(m: var TModel; a, b: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">addFactNeg
<li><a class="reference" href="#addFactNeg%2CTModel%2CPNode" title="addFactNeg(m: var TModel; n: PNode)">addFactNeg(m: var TModel; n: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">buildAdd
<li><a class="reference" href="#buildAdd%2CPNode%2CBiggestInt%2COperators" title="buildAdd(a: PNode; b: BiggestInt; o: Operators): PNode">buildAdd(a: PNode; b: BiggestInt; o: Operators): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">buildCall
<li><a class="reference" href="#buildCall%2CPSym%2CPNode%2CPNode" title="buildCall(op: PSym; a, b: PNode): PNode">buildCall(op: PSym; a, b: PNode): PNode</a></li>
<li><a class="reference" href="#buildCall%2CPSym%2CPNode" title="buildCall(op: PSym; a: PNode): PNode">buildCall(op: PSym; a: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">buildLe
<li><a class="reference" href="#buildLe%2COperators%2CPNode%2CPNode" title="buildLe(o: Operators; a, b: PNode): PNode">buildLe(o: Operators; a, b: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">canon
<li><a class="reference" href="#canon%2CPNode%2COperators" title="canon(n: PNode; o: Operators): PNode">canon(n: PNode; o: Operators): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">checkFieldAccess
<li><a class="reference" href="#checkFieldAccess%2CTModel%2CPNode%2CConfigRef%2Cbool" title="checkFieldAccess(m: TModel; n: PNode; conf: ConfigRef; produceError: bool)">checkFieldAccess(m: TModel; n: PNode; conf: ConfigRef; produceError: bool)</a></li>
</ul>
<ul class="simple nested-toc-section">doesImply
<li><a class="reference" href="#doesImply%2CTModel%2CPNode" title="doesImply(facts: TModel; prop: PNode): TImplication">doesImply(facts: TModel; prop: PNode): TImplication</a></li>
</ul>
<ul class="simple nested-toc-section">highBound
<li><a class="reference" href="#highBound%2CConfigRef%2CPNode%2COperators" title="highBound(conf: ConfigRef; x: PNode; o: Operators): PNode">highBound(conf: ConfigRef; x: PNode; o: Operators): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">impliesNotNil
<li><a class="reference" href="#impliesNotNil%2CTModel%2CPNode" title="impliesNotNil(m: TModel; arg: PNode): TImplication">impliesNotNil(m: TModel; arg: PNode): TImplication</a></li>
</ul>
<ul class="simple nested-toc-section">interestingCaseExpr
<li><a class="reference" href="#interestingCaseExpr%2CPNode" title="interestingCaseExpr(m: PNode): bool">interestingCaseExpr(m: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">invalidateFacts
<li><a class="reference" href="#invalidateFacts%2CTModel%2CPNode" title="invalidateFacts(m: var TModel; n: PNode)">invalidateFacts(m: var TModel; n: PNode)</a></li>
<li><a class="reference" href="#invalidateFacts%2Cseq%5BPNode%5D%2CPNode" title="invalidateFacts(s: var seq[PNode]; n: PNode)">invalidateFacts(s: var seq[PNode]; n: PNode)</a></li>
</ul>
<ul class="simple nested-toc-section">lowBound
<li><a class="reference" href="#lowBound%2CConfigRef%2CPNode" title="lowBound(conf: ConfigRef; x: PNode): PNode">lowBound(conf: ConfigRef; x: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">proveLe
<li><a class="reference" href="#proveLe%2CTModel%2CPNode%2CPNode" title="proveLe(m: TModel; a, b: PNode): TImplication">proveLe(m: TModel; a, b: PNode): TImplication</a></li>
</ul>
<ul class="simple nested-toc-section">sameSubexprs
<li><a class="reference" href="#sameSubexprs%2CTModel%2CPNode%2CPNode" title="sameSubexprs(m: TModel; a, b: PNode): bool">sameSubexprs(m: TModel; a, b: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">sameTree
<li><a class="reference" href="#sameTree%2CPNode%2CPNode" title="sameTree(a, b: PNode): bool">sameTree(a, b: PNode): bool</a></li>
</ul>
<ul class="simple nested-toc-section">simpleSlice
<li><a class="reference" href="#simpleSlice%2CPNode%2CPNode" title="simpleSlice(a, b: PNode): BiggestInt">simpleSlice(a, b: PNode): BiggestInt</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/guards.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">This module implements the 'implies' relation for guards.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="astalgo.html">astalgo</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="magicsys.html">magicsys</a>, <a class="reference external" href="nimsets.html">nimsets</a>, <a class="reference external" href="trees.html">trees</a>, <a class="reference external" href="types.html">types</a>, <a class="reference external" href="renderer.html">renderer</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="saturate.html">saturate</a>, <a class="reference external" href="modulegraphs.html">modulegraphs</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="int128.html">int128</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="TModel">
<dt><pre><a href="#TModel"><span class="Identifier">TModel</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">s</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span>
<span class="Identifier">g</span><span class="Operator">*</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a>
<span class="Identifier">beSmart</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/guards.nim#L415" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L415" 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="addAsgnFact-procs-all">
<div id="addAsgnFact,TModel,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#addAsgnFact%2CTModel%2CPNode%2CPNode"><span class="Identifier">addAsgnFact</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TModel"><span class="Identifier">TModel</span></a><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">,</span> <span class="Identifier">value</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L1134" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L1134" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addCaseBranchFacts-procs-all">
<div id="addCaseBranchFacts,TModel,PNode,int">
<dt><pre><span class="Keyword">proc</span> <a href="#addCaseBranchFacts%2CTModel%2CPNode%2Cint"><span class="Identifier">addCaseBranchFacts</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TModel"><span class="Identifier">TModel</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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><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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L1157" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L1157" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addDiscriminantFact-procs-all">
<div id="addDiscriminantFact,TModel,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#addDiscriminantFact%2CTModel%2CPNode"><span class="Identifier">addDiscriminantFact</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TModel"><span class="Identifier">TModel</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L1127" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L1127" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addFact-procs-all">
<div id="addFact,TModel,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#addFact%2CTModel%2CPNode"><span class="Identifier">addFact</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TModel"><span class="Identifier">TModel</span></a><span class="Other">;</span> <span class="Identifier">nn</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L420" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L420" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addFactLe-procs-all">
<div id="addFactLe,TModel,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#addFactLe%2CTModel%2CPNode%2CPNode"><span class="Identifier">addFactLe</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TModel"><span class="Identifier">TModel</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="astdef.html#PNode"><span class="Identifier">PNode</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L1093" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L1093" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addFactLt-procs-all">
<div id="addFactLt,TModel,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#addFactLt%2CTModel%2CPNode%2CPNode"><span class="Identifier">addFactLt</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TModel"><span class="Identifier">TModel</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="astdef.html#PNode"><span class="Identifier">PNode</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L1096" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L1096" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="addFactNeg-procs-all">
<div id="addFactNeg,TModel,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#addFactNeg%2CTModel%2CPNode"><span class="Identifier">addFactNeg</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TModel"><span class="Identifier">TModel</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L433" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L433" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="buildAdd-procs-all">
<div id="buildAdd,PNode,BiggestInt,Operators">
<dt><pre><span class="Keyword">proc</span> <a href="#buildAdd%2CPNode%2CBiggestInt%2COperators"><span class="Identifier">buildAdd</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">b</span><span class="Other">:</span> <span class="Identifier">BiggestInt</span><span class="Other">;</span> <span class="Identifier">o</span><span class="Other">:</span> <a href="modulegraphs.html#Operators"><span class="Identifier">Operators</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L324" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L324" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="buildCall-procs-all">
<div id="buildCall,PSym,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#buildCall%2CPSym%2CPNode%2CPNode"><span class="Identifier">buildCall</span></a><span class="Other">(</span><span class="Identifier">op</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L156" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L156" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="buildCall,PSym,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#buildCall%2CPSym%2CPNode"><span class="Identifier">buildCall</span></a><span class="Other">(</span><span class="Identifier">op</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">a</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L151" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L151" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="buildLe-procs-all">
<div id="buildLe,Operators,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#buildLe%2COperators%2CPNode%2CPNode"><span class="Identifier">buildLe</span></a><span class="Other">(</span><span class="Identifier">o</span><span class="Other">:</span> <a href="modulegraphs.html#Operators"><span class="Identifier">Operators</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="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L244" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L244" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="canon-procs-all">
<div id="canon,PNode,Operators">
<dt><pre><span class="Keyword">proc</span> <a href="#canon%2CPNode%2COperators"><span class="Identifier">canon</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">o</span><span class="Other">:</span> <a href="modulegraphs.html#Operators"><span class="Identifier">Operators</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L247" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L247" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="checkFieldAccess-procs-all">
<div id="checkFieldAccess,TModel,PNode,ConfigRef,bool">
<dt><pre><span class="Keyword">proc</span> <a href="#checkFieldAccess%2CTModel%2CPNode%2CConfigRef%2Cbool"><span class="Identifier">checkFieldAccess</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <a href="#TModel"><span class="Identifier">TModel</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">produceError</span><span class="Other">:</span> <span class="Identifier">bool</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L1182" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L1182" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="doesImply-procs-all">
<div id="doesImply,TModel,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#doesImply%2CTModel%2CPNode"><span class="Identifier">doesImply</span></a><span class="Other">(</span><span class="Identifier">facts</span><span class="Other">:</span> <a href="#TModel"><span class="Identifier">TModel</span></a><span class="Other">;</span> <span class="Identifier">prop</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#TImplication"><span class="Identifier">TImplication</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="Identifier">KeyError</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L842" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L842" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="highBound-procs-all">
<div id="highBound,ConfigRef,PNode,Operators">
<dt><pre><span class="Keyword">proc</span> <a href="#highBound%2CConfigRef%2CPNode%2COperators"><span class="Identifier">highBound</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">o</span><span class="Other">:</span> <a href="modulegraphs.html#Operators"><span class="Identifier">Operators</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L206" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L206" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="impliesNotNil-procs-all">
<div id="impliesNotNil,TModel,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#impliesNotNil%2CTModel%2CPNode"><span class="Identifier">impliesNotNil</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <a href="#TModel"><span class="Identifier">TModel</span></a><span class="Other">;</span> <span class="Identifier">arg</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#TImplication"><span class="Identifier">TImplication</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="Identifier">KeyError</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L851" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L851" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="interestingCaseExpr-procs-all">
<div id="interestingCaseExpr,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#interestingCaseExpr%2CPNode"><span class="Identifier">interestingCaseExpr</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L93" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L93" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="invalidateFacts-procs-all">
<div id="invalidateFacts,TModel,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#invalidateFacts%2CTModel%2CPNode"><span class="Identifier">invalidateFacts</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#TModel"><span class="Identifier">TModel</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L505" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L505" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="invalidateFacts,seq[PNode],PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#invalidateFacts%2Cseq%5BPNode%5D%2CPNode"><span class="Identifier">invalidateFacts</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L484" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L484" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="lowBound-procs-all">
<div id="lowBound,ConfigRef,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#lowBound%2CConfigRef%2CPNode"><span class="Identifier">lowBound</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L202" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L202" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="proveLe-procs-all">
<div id="proveLe,TModel,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#proveLe%2CTModel%2CPNode%2CPNode"><span class="Identifier">proveLe</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <a href="#TModel"><span class="Identifier">TModel</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="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#TImplication"><span class="Identifier">TImplication</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="Identifier">KeyError</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L1084" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L1084" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="sameSubexprs-procs-all">
<div id="sameSubexprs,TModel,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#sameSubexprs%2CTModel%2CPNode%2CPNode"><span class="Identifier">sameSubexprs</span></a><span class="Other">(</span><span class="Identifier">m</span><span class="Other">:</span> <a href="#TModel"><span class="Identifier">TModel</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="astdef.html#PNode"><span class="Identifier">PNode</span></a><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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L1141" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L1141" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="sameTree-procs-all">
<div id="sameTree,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#sameTree%2CPNode%2CPNode"><span class="Identifier">sameTree</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="astdef.html#PNode"><span class="Identifier">PNode</span></a><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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span>
<span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L449" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L449" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="simpleSlice-procs-all">
<div id="simpleSlice,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#simpleSlice%2CPNode%2CPNode"><span class="Identifier">simpleSlice</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="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">BiggestInt</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/guards.nim#L854" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/guards.nim#L854" 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: 2026-06-02 05:20:18 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

28
compiler/guards.idx Normal file
View File

@@ -0,0 +1,28 @@
nimTitle guards guards.html module guards 0
nim interestingCaseExpr guards.html#interestingCaseExpr,PNode proc interestingCaseExpr(m: PNode): bool 93
nim buildCall guards.html#buildCall,PSym,PNode proc buildCall(op: PSym; a: PNode): PNode 151
nim buildCall guards.html#buildCall,PSym,PNode,PNode proc buildCall(op: PSym; a, b: PNode): PNode 156
nim lowBound guards.html#lowBound,ConfigRef,PNode proc lowBound(conf: ConfigRef; x: PNode): PNode 202
nim highBound guards.html#highBound,ConfigRef,PNode,Operators proc highBound(conf: ConfigRef; x: PNode; o: Operators): PNode 206
nim buildLe guards.html#buildLe,Operators,PNode,PNode proc buildLe(o: Operators; a, b: PNode): PNode 244
nim canon guards.html#canon,PNode,Operators proc canon(n: PNode; o: Operators): PNode 247
nim buildAdd guards.html#buildAdd,PNode,BiggestInt,Operators proc buildAdd(a: PNode; b: BiggestInt; o: Operators): PNode 324
nim TModel guards.html#TModel object TModel 415
nim addFact guards.html#addFact,TModel,PNode proc addFact(m: var TModel; nn: PNode) 420
nim addFactNeg guards.html#addFactNeg,TModel,PNode proc addFactNeg(m: var TModel; n: PNode) 433
nim sameTree guards.html#sameTree,PNode,PNode proc sameTree(a, b: PNode): bool 449
nim invalidateFacts guards.html#invalidateFacts,seq[PNode],PNode proc invalidateFacts(s: var seq[PNode]; n: PNode) 484
nim invalidateFacts guards.html#invalidateFacts,TModel,PNode proc invalidateFacts(m: var TModel; n: PNode) 505
nim doesImply guards.html#doesImply,TModel,PNode proc doesImply(facts: TModel; prop: PNode): TImplication 842
nim impliesNotNil guards.html#impliesNotNil,TModel,PNode proc impliesNotNil(m: TModel; arg: PNode): TImplication 851
nim simpleSlice guards.html#simpleSlice,PNode,PNode proc simpleSlice(a, b: PNode): BiggestInt 854
nim proveLe guards.html#proveLe,TModel,PNode,PNode proc proveLe(m: TModel; a, b: PNode): TImplication 1084
nim addFactLe guards.html#addFactLe,TModel,PNode,PNode proc addFactLe(m: var TModel; a, b: PNode) 1093
nim addFactLt guards.html#addFactLt,TModel,PNode,PNode proc addFactLt(m: var TModel; a, b: PNode) 1096
nim addDiscriminantFact guards.html#addDiscriminantFact,TModel,PNode proc addDiscriminantFact(m: var TModel; n: PNode) 1127
nim addAsgnFact guards.html#addAsgnFact,TModel,PNode,PNode proc addAsgnFact(m: var TModel; key, value: PNode) 1134
nim sameSubexprs guards.html#sameSubexprs,TModel,PNode,PNode proc sameSubexprs(m: TModel; a, b: PNode): bool 1141
nim addCaseBranchFacts guards.html#addCaseBranchFacts,TModel,PNode,int proc addCaseBranchFacts(m: var TModel; n: PNode; i: int) 1157
nim checkFieldAccess guards.html#checkFieldAccess,TModel,PNode,ConfigRef,bool proc checkFieldAccess(m: TModel; n: PNode; conf: ConfigRef; produceError: bool) 1182
nimgrp buildcall guards.html#buildCall-procs-all proc 151
nimgrp invalidatefacts guards.html#invalidateFacts-procs-all proc 484

414
compiler/ic/enum2nif.html Normal file
View File

@@ -0,0 +1,414 @@
<?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/enum2nif</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">ic/enum2nif</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">genFlags
<li><a class="reference" href="#genFlags%2Cset%5BTLocFlag%5D%2Cstring" title="genFlags(s: set[TLocFlag]; dest: var string)">genFlags(s: set[TLocFlag]; dest: var string)</a></li>
<li><a class="reference" href="#genFlags%2Cset%5BTNodeFlag%5D%2Cstring" title="genFlags(s: set[TNodeFlag]; dest: var string)">genFlags(s: set[TNodeFlag]; dest: var string)</a></li>
<li><a class="reference" href="#genFlags%2Cset%5BTOption%5D%2Cstring" title="genFlags(s: set[TOption]; dest: var string)">genFlags(s: set[TOption]; dest: var string)</a></li>
<li><a class="reference" href="#genFlags%2Cset%5BTSymFlag%5D%2Cstring" title="genFlags(s: set[TSymFlag]; dest: var string)">genFlags(s: set[TSymFlag]; dest: var string)</a></li>
<li><a class="reference" href="#genFlags%2Cset%5BTTypeFlag%5D%2Cstring" title="genFlags(s: set[TTypeFlag]; dest: var string)">genFlags(s: set[TTypeFlag]; dest: var string)</a></li>
</ul>
<ul class="simple nested-toc-section">parse
<li><a class="reference" href="#parse%2Ctypedesc%5BTCallingConvention%5D%2Cstring" title="parse(t: typedesc[TCallingConvention]; s: string): TCallingConvention">parse(t: typedesc[TCallingConvention]; s: string): TCallingConvention</a></li>
<li><a class="reference" href="#parse%2Ctypedesc%5BTLibKind%5D%2Cstring" title="parse(t: typedesc[TLibKind]; s: string): TLibKind">parse(t: typedesc[TLibKind]; s: string): TLibKind</a></li>
<li><a class="reference" href="#parse%2Ctypedesc%5BTLocFlag%5D%2Cstring" title="parse(t: typedesc[TLocFlag]; s: string): set[TLocFlag]">parse(t: typedesc[TLocFlag]; s: string): set[TLocFlag]</a></li>
<li><a class="reference" href="#parse%2Ctypedesc%5BTLocKind%5D%2Cstring" title="parse(t: typedesc[TLocKind]; s: string): TLocKind">parse(t: typedesc[TLocKind]; s: string): TLocKind</a></li>
<li><a class="reference" href="#parse%2Ctypedesc%5BTMagic%5D%2Cstring" title="parse(t: typedesc[TMagic]; s: string): TMagic">parse(t: typedesc[TMagic]; s: string): TMagic</a></li>
<li><a class="reference" href="#parse%2Ctypedesc%5BTNodeFlag%5D%2Cstring" title="parse(t: typedesc[TNodeFlag]; s: string): set[TNodeFlag]">parse(t: typedesc[TNodeFlag]; s: string): set[TNodeFlag]</a></li>
<li><a class="reference" href="#parse%2Ctypedesc%5BTNodeKind%5D%2Cstring" title="parse(t: typedesc[TNodeKind]; s: string): TNodeKind">parse(t: typedesc[TNodeKind]; s: string): TNodeKind</a></li>
<li><a class="reference" href="#parse%2Ctypedesc%5BTOption%5D%2Cstring" title="parse(t: typedesc[TOption]; s: string): set[TOption]">parse(t: typedesc[TOption]; s: string): set[TOption]</a></li>
<li><a class="reference" href="#parse%2Ctypedesc%5BTStorageLoc%5D%2Cstring" title="parse(t: typedesc[TStorageLoc]; s: string): TStorageLoc">parse(t: typedesc[TStorageLoc]; s: string): TStorageLoc</a></li>
<li><a class="reference" href="#parse%2Ctypedesc%5BTSymFlag%5D%2Cstring" title="parse(t: typedesc[TSymFlag]; s: string): set[TSymFlag]">parse(t: typedesc[TSymFlag]; s: string): set[TSymFlag]</a></li>
<li><a class="reference" href="#parse%2Ctypedesc%5BTSymKind%5D%2Cstring" title="parse(t: typedesc[TSymKind]; s: string): TSymKind">parse(t: typedesc[TSymKind]; s: string): TSymKind</a></li>
<li><a class="reference" href="#parse%2Ctypedesc%5BTTypeFlag%5D%2Cstring" title="parse(t: typedesc[TTypeFlag]; s: string): set[TTypeFlag]">parse(t: typedesc[TTypeFlag]; s: string): set[TTypeFlag]</a></li>
<li><a class="reference" href="#parse%2Ctypedesc%5BTTypeKind%5D%2Cstring" title="parse(t: typedesc[TTypeKind]; s: string): TTypeKind">parse(t: typedesc[TTypeKind]; s: string): TTypeKind</a></li>
</ul>
<ul class="simple nested-toc-section">toNifTag
<li><a class="reference" href="#toNifTag%2CTCallingConvention" title="toNifTag(s: TCallingConvention): string">toNifTag(s: TCallingConvention): string</a></li>
<li><a class="reference" href="#toNifTag%2CTLibKind" title="toNifTag(s: TLibKind): string">toNifTag(s: TLibKind): string</a></li>
<li><a class="reference" href="#toNifTag%2CTLocKind" title="toNifTag(s: TLocKind): string">toNifTag(s: TLocKind): string</a></li>
<li><a class="reference" href="#toNifTag%2CTMagic" title="toNifTag(s: TMagic): string">toNifTag(s: TMagic): string</a></li>
<li><a class="reference" href="#toNifTag%2CTNodeKind" title="toNifTag(s: TNodeKind): string">toNifTag(s: TNodeKind): string</a></li>
<li><a class="reference" href="#toNifTag%2CTStorageLoc" title="toNifTag(s: TStorageLoc): string">toNifTag(s: TStorageLoc): string</a></li>
<li><a class="reference" href="#toNifTag%2CTSymKind" title="toNifTag(s: TSymKind): string">toNifTag(s: TSymKind): string</a></li>
<li><a class="reference" href="#toNifTag%2CTTypeKind" title="toNifTag(s: TTypeKind): string">toNifTag(s: TTypeKind): string</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/enum2nif.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="../ast.html">../ast</a>, <a class="reference external" href="../options.html">../options</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="genFlags-procs-all">
<div id="genFlags,set[TLocFlag],string">
<dt><pre><span class="Keyword">proc</span> <a href="#genFlags%2Cset%5BTLocFlag%5D%2Cstring"><span class="Identifier">genFlags</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="../astdef.html#TLocFlag"><span class="Identifier">TLocFlag</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">dest</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">string</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/enum2nif.nim#L1721" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L1721" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="genFlags,set[TNodeFlag],string">
<dt><pre><span class="Keyword">proc</span> <a href="#genFlags%2Cset%5BTNodeFlag%5D%2Cstring"><span class="Identifier">genFlags</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="../astdef.html#TNodeFlag"><span class="Identifier">TNodeFlag</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">dest</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">string</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/enum2nif.nim#L1446" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L1446" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="genFlags,set[TOption],string">
<dt><pre><span class="Keyword">proc</span> <a href="#genFlags%2Cset%5BTOption%5D%2Cstring"><span class="Identifier">genFlags</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="../options.html#TOption"><span class="Identifier">TOption</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">dest</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">string</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/enum2nif.nim#L1757" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L1757" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="genFlags,set[TSymFlag],string">
<dt><pre><span class="Keyword">proc</span> <a href="#genFlags%2Cset%5BTSymFlag%5D%2Cstring"><span class="Identifier">genFlags</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="../astdef.html#TSymFlag"><span class="Identifier">TSymFlag</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">dest</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">string</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/enum2nif.nim#L1203" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L1203" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="genFlags,set[TTypeFlag],string">
<dt><pre><span class="Keyword">proc</span> <a href="#genFlags%2Cset%5BTTypeFlag%5D%2Cstring"><span class="Identifier">genFlags</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="../astdef.html#TTypeFlag"><span class="Identifier">TTypeFlag</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">dest</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">string</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/enum2nif.nim#L1540" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L1540" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="parse-procs-all">
<div id="parse,typedesc[TCallingConvention],string">
<dt><pre><span class="Keyword">proc</span> <a href="#parse%2Ctypedesc%5BTCallingConvention%5D%2Cstring"><span class="Identifier">parse</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">typedesc</span><span class="Other">[</span><a href="../astdef.html#TCallingConvention"><span class="Identifier">TCallingConvention</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="../astdef.html#TCallingConvention"><span class="Identifier">TCallingConvention</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/enum2nif.nim#L591" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L591" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="parse,typedesc[TLibKind],string">
<dt><pre><span class="Keyword">proc</span> <a href="#parse%2Ctypedesc%5BTLibKind%5D%2Cstring"><span class="Identifier">parse</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">typedesc</span><span class="Other">[</span><a href="../astdef.html#TLibKind"><span class="Identifier">TLibKind</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="../astdef.html#TLibKind"><span class="Identifier">TLibKind</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/enum2nif.nim#L1196" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L1196" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="parse,typedesc[TLocFlag],string">
<dt><pre><span class="Keyword">proc</span> <a href="#parse%2Ctypedesc%5BTLocFlag%5D%2Cstring"><span class="Identifier">parse</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">typedesc</span><span class="Other">[</span><a href="../astdef.html#TLocFlag"><span class="Identifier">TLocFlag</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="../astdef.html#TLocFlag"><span class="Identifier">TLocFlag</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/enum2nif.nim#L1736" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L1736" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="parse,typedesc[TLocKind],string">
<dt><pre><span class="Keyword">proc</span> <a href="#parse%2Ctypedesc%5BTLocKind%5D%2Cstring"><span class="Identifier">parse</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">typedesc</span><span class="Other">[</span><a href="../astdef.html#TLocKind"><span class="Identifier">TLocKind</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="../astdef.html#TLocKind"><span class="Identifier">TLocKind</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/enum2nif.nim#L559" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L559" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="parse,typedesc[TMagic],string">
<dt><pre><span class="Keyword">proc</span> <a href="#parse%2Ctypedesc%5BTMagic%5D%2Cstring"><span class="Identifier">parse</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">typedesc</span><span class="Other">[</span><a href="../astdef.html#TMagic"><span class="Identifier">TMagic</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="../astdef.html#TMagic"><span class="Identifier">TMagic</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/enum2nif.nim#L890" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L890" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="parse,typedesc[TNodeFlag],string">
<dt><pre><span class="Keyword">proc</span> <a href="#parse%2Ctypedesc%5BTNodeFlag%5D%2Cstring"><span class="Identifier">parse</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">typedesc</span><span class="Other">[</span><a href="../astdef.html#TNodeFlag"><span class="Identifier">TNodeFlag</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="../astdef.html#TNodeFlag"><span class="Identifier">TNodeFlag</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/enum2nif.nim#L1478" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L1478" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="parse,typedesc[TNodeKind],string">
<dt><pre><span class="Keyword">proc</span> <a href="#parse%2Ctypedesc%5BTNodeKind%5D%2Cstring"><span class="Identifier">parse</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">typedesc</span><span class="Other">[</span><a href="../nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><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/enum2nif.nim#L175" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L175" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="parse,typedesc[TOption],string">
<dt><pre><span class="Keyword">proc</span> <a href="#parse%2Ctypedesc%5BTOption%5D%2Cstring"><span class="Identifier">parse</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">typedesc</span><span class="Other">[</span><a href="../options.html#TOption"><span class="Identifier">TOption</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="../options.html#TOption"><span class="Identifier">TOption</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/enum2nif.nim#L1791" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L1791" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="parse,typedesc[TStorageLoc],string">
<dt><pre><span class="Keyword">proc</span> <a href="#parse%2Ctypedesc%5BTStorageLoc%5D%2Cstring"><span class="Identifier">parse</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">typedesc</span><span class="Other">[</span><a href="../astdef.html#TStorageLoc"><span class="Identifier">TStorageLoc</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="../astdef.html#TStorageLoc"><span class="Identifier">TStorageLoc</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/enum2nif.nim#L1181" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L1181" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="parse,typedesc[TSymFlag],string">
<dt><pre><span class="Keyword">proc</span> <a href="#parse%2Ctypedesc%5BTSymFlag%5D%2Cstring"><span class="Identifier">parse</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">typedesc</span><span class="Other">[</span><a href="../astdef.html#TSymFlag"><span class="Identifier">TSymFlag</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="../astdef.html#TSymFlag"><span class="Identifier">TSymFlag</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/enum2nif.nim#L1271" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L1271" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="parse,typedesc[TSymKind],string">
<dt><pre><span class="Keyword">proc</span> <a href="#parse%2Ctypedesc%5BTSymKind%5D%2Cstring"><span class="Identifier">parse</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">typedesc</span><span class="Other">[</span><a href="../astdef.html#TSymKind"><span class="Identifier">TSymKind</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="../astdef.html#TSymKind"><span class="Identifier">TSymKind</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/enum2nif.nim#L375" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L375" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="parse,typedesc[TTypeFlag],string">
<dt><pre><span class="Keyword">proc</span> <a href="#parse%2Ctypedesc%5BTTypeFlag%5D%2Cstring"><span class="Identifier">parse</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">typedesc</span><span class="Other">[</span><a href="../astdef.html#TTypeFlag"><span class="Identifier">TTypeFlag</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="../astdef.html#TTypeFlag"><span class="Identifier">TTypeFlag</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/enum2nif.nim#L1593" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L1593" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="parse,typedesc[TTypeKind],string">
<dt><pre><span class="Keyword">proc</span> <a href="#parse%2Ctypedesc%5BTTypeKind%5D%2Cstring"><span class="Identifier">parse</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Identifier">typedesc</span><span class="Other">[</span><a href="../astdef.html#TTypeKind"><span class="Identifier">TTypeKind</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="../astdef.html#TTypeKind"><span class="Identifier">TTypeKind</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/ic/enum2nif.nim#L474" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L474" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="toNifTag-procs-all">
<div id="toNifTag,TCallingConvention">
<dt><pre><span class="Keyword">proc</span> <a href="#toNifTag%2CTCallingConvention"><span class="Identifier">toNifTag</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="../astdef.html#TCallingConvention"><span class="Identifier">TCallingConvention</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/enum2nif.nim#L575" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L575" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="toNifTag,TLibKind">
<dt><pre><span class="Keyword">proc</span> <a href="#toNifTag%2CTLibKind"><span class="Identifier">toNifTag</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="../astdef.html#TLibKind"><span class="Identifier">TLibKind</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/enum2nif.nim#L1190" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L1190" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="toNifTag,TLocKind">
<dt><pre><span class="Keyword">proc</span> <a href="#toNifTag%2CTLocKind"><span class="Identifier">toNifTag</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="../astdef.html#TLocKind"><span class="Identifier">TLocKind</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/enum2nif.nim#L544" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L544" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="toNifTag,TMagic">
<dt><pre><span class="Keyword">proc</span> <a href="#toNifTag%2CTMagic"><span class="Identifier">toNifTag</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="../astdef.html#TMagic"><span class="Identifier">TMagic</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/enum2nif.nim#L608" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L608" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="toNifTag,TNodeKind">
<dt><pre><span class="Keyword">proc</span> <a href="#toNifTag%2CTNodeKind"><span class="Identifier">toNifTag</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="../nodekinds.html#TNodeKind"><span class="Identifier">TNodeKind</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/enum2nif.nim#L5" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L5" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="toNifTag,TStorageLoc">
<dt><pre><span class="Keyword">proc</span> <a href="#toNifTag%2CTStorageLoc"><span class="Identifier">toNifTag</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="../astdef.html#TStorageLoc"><span class="Identifier">TStorageLoc</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/enum2nif.nim#L1173" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L1173" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="toNifTag,TSymKind">
<dt><pre><span class="Keyword">proc</span> <a href="#toNifTag%2CTSymKind"><span class="Identifier">toNifTag</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="../astdef.html#TSymKind"><span class="Identifier">TSymKind</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/enum2nif.nim#L346" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L346" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="toNifTag,TTypeKind">
<dt><pre><span class="Keyword">proc</span> <a href="#toNifTag%2CTTypeKind"><span class="Identifier">toNifTag</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="../astdef.html#TTypeKind"><span class="Identifier">TTypeKind</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/enum2nif.nim#L405" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/enum2nif.nim#L405" 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: 2026-06-02 05:20:16 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

30
compiler/ic/enum2nif.idx Normal file
View File

@@ -0,0 +1,30 @@
nimTitle enum2nif ic/enum2nif.html module ic/enum2nif 0
nim toNifTag ic/enum2nif.html#toNifTag,TNodeKind proc toNifTag(s: TNodeKind): string 5
nim parse ic/enum2nif.html#parse,typedesc[TNodeKind],string proc parse(t: typedesc[TNodeKind]; s: string): TNodeKind 175
nim toNifTag ic/enum2nif.html#toNifTag,TSymKind proc toNifTag(s: TSymKind): string 346
nim parse ic/enum2nif.html#parse,typedesc[TSymKind],string proc parse(t: typedesc[TSymKind]; s: string): TSymKind 375
nim toNifTag ic/enum2nif.html#toNifTag,TTypeKind proc toNifTag(s: TTypeKind): string 405
nim parse ic/enum2nif.html#parse,typedesc[TTypeKind],string proc parse(t: typedesc[TTypeKind]; s: string): TTypeKind 474
nim toNifTag ic/enum2nif.html#toNifTag,TLocKind proc toNifTag(s: TLocKind): string 544
nim parse ic/enum2nif.html#parse,typedesc[TLocKind],string proc parse(t: typedesc[TLocKind]; s: string): TLocKind 559
nim toNifTag ic/enum2nif.html#toNifTag,TCallingConvention proc toNifTag(s: TCallingConvention): string 575
nim parse ic/enum2nif.html#parse,typedesc[TCallingConvention],string proc parse(t: typedesc[TCallingConvention]; s: string): TCallingConvention 591
nim toNifTag ic/enum2nif.html#toNifTag,TMagic proc toNifTag(s: TMagic): string 608
nim parse ic/enum2nif.html#parse,typedesc[TMagic],string proc parse(t: typedesc[TMagic]; s: string): TMagic 890
nim toNifTag ic/enum2nif.html#toNifTag,TStorageLoc proc toNifTag(s: TStorageLoc): string 1173
nim parse ic/enum2nif.html#parse,typedesc[TStorageLoc],string proc parse(t: typedesc[TStorageLoc]; s: string): TStorageLoc 1181
nim toNifTag ic/enum2nif.html#toNifTag,TLibKind proc toNifTag(s: TLibKind): string 1190
nim parse ic/enum2nif.html#parse,typedesc[TLibKind],string proc parse(t: typedesc[TLibKind]; s: string): TLibKind 1196
nim genFlags ic/enum2nif.html#genFlags,set[TSymFlag],string proc genFlags(s: set[TSymFlag]; dest: var string) 1203
nim parse ic/enum2nif.html#parse,typedesc[TSymFlag],string proc parse(t: typedesc[TSymFlag]; s: string): set[TSymFlag] 1271
nim genFlags ic/enum2nif.html#genFlags,set[TNodeFlag],string proc genFlags(s: set[TNodeFlag]; dest: var string) 1446
nim parse ic/enum2nif.html#parse,typedesc[TNodeFlag],string proc parse(t: typedesc[TNodeFlag]; s: string): set[TNodeFlag] 1478
nim genFlags ic/enum2nif.html#genFlags,set[TTypeFlag],string proc genFlags(s: set[TTypeFlag]; dest: var string) 1540
nim parse ic/enum2nif.html#parse,typedesc[TTypeFlag],string proc parse(t: typedesc[TTypeFlag]; s: string): set[TTypeFlag] 1593
nim genFlags ic/enum2nif.html#genFlags,set[TLocFlag],string proc genFlags(s: set[TLocFlag]; dest: var string) 1721
nim parse ic/enum2nif.html#parse,typedesc[TLocFlag],string proc parse(t: typedesc[TLocFlag]; s: string): set[TLocFlag] 1736
nim genFlags ic/enum2nif.html#genFlags,set[TOption],string proc genFlags(s: set[TOption]; dest: var string) 1757
nim parse ic/enum2nif.html#parse,typedesc[TOption],string proc parse(t: typedesc[TOption]; s: string): set[TOption] 1791
nimgrp parse ic/enum2nif.html#parse-procs-all proc 175
nimgrp genflags ic/enum2nif.html#genFlags-procs-all proc 1203
nimgrp toniftag ic/enum2nif.html#toNifTag-procs-all proc 5

125
compiler/ic/replayer.html Normal file
View File

@@ -0,0 +1,125 @@
<?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/replayer</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">ic/replayer</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">replayStateChanges
<li><a class="reference" href="#replayStateChanges%2CPSym%2CModuleGraph" title="replayStateChanges(module: PSym; g: ModuleGraph)">replayStateChanges(module: PSym; g: ModuleGraph)</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/replayer.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/replayer.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">Module that contains code to replay global VM state changes and pragma state like <tt class="docutils literal"><span class="pre">{.compile: &quot;foo.c&quot;.}</span></tt>. For IC (= Incremental compilation) support.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="../ast.html">../ast</a>, <a class="reference external" href="../modulegraphs.html">../modulegraphs</a>, <a class="reference external" href="../trees.html">../trees</a>, <a class="reference external" href="../extccomp.html">../extccomp</a>, <a class="reference external" href="../btrees.html">../btrees</a>, <a class="reference external" href="../msgs.html">../msgs</a>, <a class="reference external" href="../lineinfos.html">../lineinfos</a>, <a class="reference external" href="../pathutils.html">../pathutils</a>, <a class="reference external" href="../options.html">../options</a>, <a class="reference external" href="../cgmeth.html">../cgmeth</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="replayStateChanges-procs-all">
<div id="replayStateChanges,PSym,ModuleGraph">
<dt><pre><span class="Keyword">proc</span> <a href="#replayStateChanges%2CPSym%2CModuleGraph"><span class="Identifier">replayStateChanges</span></a><span class="Other">(</span><span class="Identifier">module</span><span class="Other">:</span> <a href="../astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">g</span><span class="Other">:</span> <a href="../modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</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">KeyError</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</span><span class="Other">,</span> <span class="Identifier">EOFError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span>
<span class="Identifier">WriteDirEffect</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/replayer.nim#L22" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/ic/replayer.nim#L22" 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: 2026-06-02 05:20:25 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

2
compiler/ic/replayer.idx Normal file
View File

@@ -0,0 +1,2 @@
nimTitle replayer ic/replayer.html module ic/replayer 0
nim replayStateChanges ic/replayer.html#replayStateChanges,PSym,ModuleGraph proc replayStateChanges(module: PSym; g: ModuleGraph) 22

307
compiler/idents.html Normal file
View File

@@ -0,0 +1,307 @@
<?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>idents</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">idents</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="#IdentCache" title="IdentCache = ref object
idAnon*, idDelegator*, emptyIdent*: PIdent">IdentCache</a></li>
<li><a class="reference" href="#PIdent" title="PIdent = ref TIdent">PIdent</a></li>
<li><a class="reference" href="#TIdent" title="TIdent {.acyclic.} = object
id*: int
s*: string
next*: PIdent
h*: Hash">TIdent</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%2CPIdent%2CPIdent" title="`==`(a, b: PIdent): bool">`==`(a, b: PIdent): bool</a></li>
</ul>
<ul class="simple nested-toc-section">cmpIgnoreStyle
<li><a class="reference" href="#cmpIgnoreStyle%2Ccstring%2Ccstring%2Cint" title="cmpIgnoreStyle(a, b: cstring; blen: int): int">cmpIgnoreStyle(a, b: cstring; blen: int): int</a></li>
</ul>
<ul class="simple nested-toc-section">getIdent
<li><a class="reference" href="#getIdent%2CIdentCache%2Ccstring%2Cint%2CHash" title="getIdent(ic: IdentCache; identifier: cstring; length: int; h: Hash): PIdent">getIdent(ic: IdentCache; identifier: cstring; length: int; h: Hash): PIdent</a></li>
<li><a class="reference" href="#getIdent%2CIdentCache%2Cstring" title="getIdent(ic: IdentCache; identifier: string): PIdent">getIdent(ic: IdentCache; identifier: string): PIdent</a></li>
<li><a class="reference" href="#getIdent%2CIdentCache%2Cstring%2CHash" title="getIdent(ic: IdentCache; identifier: string; h: Hash): PIdent">getIdent(ic: IdentCache; identifier: string; h: Hash): PIdent</a></li>
</ul>
<ul class="simple nested-toc-section">hash
<li><a class="reference" href="#hash%2CPIdent" title="hash(x: PIdent): Hash">hash(x: PIdent): Hash</a></li>
</ul>
<ul class="simple nested-toc-section">newIdentCache
<li><a class="reference" href="#newIdentCache" title="newIdentCache(): IdentCache">newIdentCache(): IdentCache</a></li>
</ul>
<ul class="simple nested-toc-section">resetIdentCache
<li><a class="reference" href="#resetIdentCache" title="resetIdentCache()">resetIdentCache()</a></li>
</ul>
<ul class="simple nested-toc-section">whichKeyword
<li><a class="reference" href="#whichKeyword%2CPIdent" title="whichKeyword(id: PIdent): TSpecialWord">whichKeyword(id: PIdent): TSpecialWord</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/idents.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/idents.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="wordrecg.html">wordrecg</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="IdentCache">
<dt><pre><a href="#IdentCache"><span class="Identifier">IdentCache</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <span class="Keyword">object</span>
<span class="Identifier">idAnon</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">idDelegator</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">emptyIdent</span><span class="Operator">*</span><span class="Other">:</span> <a href="#PIdent"><span class="Identifier">PIdent</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/idents.nim#L28" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/idents.nim#L28" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="PIdent">
<dt><pre><a href="#PIdent"><span class="Identifier">PIdent</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="#TIdent"><span class="Identifier">TIdent</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/idents.nim#L21" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/idents.nim#L21" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TIdent">
<dt><pre><a href="#TIdent"><span class="Identifier">TIdent</span></a> {.<span class="Identifier">acyclic</span>.} <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">int</span>
<span class="Identifier">s</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">string</span>
<span class="Identifier">next</span><span class="Operator">*</span><span class="Other">:</span> <a href="#PIdent"><span class="Identifier">PIdent</span></a>
<span class="Identifier">h</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Hash</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/idents.nim#L22" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/idents.nim#L22" 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="==,PIdent,PIdent">
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CPIdent%2CPIdent"><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="#PIdent"><span class="Identifier">PIdent</span></a><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/idents.nim#L121" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/idents.nim#L121" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="cmpIgnoreStyle-procs-all">
<div id="cmpIgnoreStyle,cstring,cstring,int">
<dt><pre><span class="Keyword">proc</span> <a href="#cmpIgnoreStyle%2Ccstring%2Ccstring%2Cint"><span class="Identifier">cmpIgnoreStyle</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">;</span> <span class="Identifier">blen</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</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/idents.nim#L35" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/idents.nim#L35" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getIdent-procs-all">
<div id="getIdent,IdentCache,cstring,int,Hash">
<dt><pre><span class="Keyword">proc</span> <a href="#getIdent%2CIdentCache%2Ccstring%2Cint%2CHash"><span class="Identifier">getIdent</span></a><span class="Other">(</span><span class="Identifier">ic</span><span class="Other">:</span> <a href="#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span> <span class="Identifier">identifier</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">;</span> <span class="Identifier">length</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">h</span><span class="Other">:</span> <span class="Identifier">Hash</span><span class="Other">)</span><span class="Other">:</span> <a href="#PIdent"><span class="Identifier">PIdent</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/idents.nim#L69" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/idents.nim#L69" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="getIdent,IdentCache,string">
<dt><pre><span class="Keyword">proc</span> <a href="#getIdent%2CIdentCache%2Cstring"><span class="Identifier">getIdent</span></a><span class="Other">(</span><span class="Identifier">ic</span><span class="Other">:</span> <a href="#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span> <span class="Identifier">identifier</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="#PIdent"><span class="Identifier">PIdent</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/idents.nim#L99" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/idents.nim#L99" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="getIdent,IdentCache,string,Hash">
<dt><pre><span class="Keyword">proc</span> <a href="#getIdent%2CIdentCache%2Cstring%2CHash"><span class="Identifier">getIdent</span></a><span class="Other">(</span><span class="Identifier">ic</span><span class="Other">:</span> <a href="#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span> <span class="Identifier">identifier</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">h</span><span class="Other">:</span> <span class="Identifier">Hash</span><span class="Other">)</span><span class="Other">:</span> <a href="#PIdent"><span class="Identifier">PIdent</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/idents.nim#L103" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/idents.nim#L103" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hash-procs-all">
<div id="hash,PIdent">
<dt><pre><span class="Keyword">proc</span> <a href="#hash%2CPIdent"><span class="Identifier">hash</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Hash</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/idents.nim#L120" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/idents.nim#L120" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newIdentCache-procs-all">
<div id="newIdentCache">
<dt><pre><span class="Keyword">proc</span> <a href="#newIdentCache"><span class="Identifier">newIdentCache</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="#IdentCache"><span class="Identifier">IdentCache</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/idents.nim#L106" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/idents.nim#L106" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="resetIdentCache-procs-all">
<div id="resetIdentCache">
<dt><pre><span class="Keyword">proc</span> <a href="#resetIdentCache"><span class="Identifier">resetIdentCache</span></a><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/idents.nim#L33" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/idents.nim#L33" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="whichKeyword-procs-all">
<div id="whichKeyword,PIdent">
<dt><pre><span class="Keyword">proc</span> <a href="#whichKeyword%2CPIdent"><span class="Identifier">whichKeyword</span></a><span class="Other">(</span><span class="Identifier">id</span><span class="Other">:</span> <a href="#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">)</span><span class="Other">:</span> <a href="wordrecg.html#TSpecialWord"><span class="Identifier">TSpecialWord</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/idents.nim#L116" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/idents.nim#L116" 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: 2026-06-02 05:20:16 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

14
compiler/idents.idx Normal file
View File

@@ -0,0 +1,14 @@
nimTitle idents idents.html module idents 0
nim PIdent idents.html#PIdent type PIdent 21
nim TIdent idents.html#TIdent object TIdent 22
nim IdentCache idents.html#IdentCache type IdentCache 28
nim resetIdentCache idents.html#resetIdentCache proc resetIdentCache() 33
nim cmpIgnoreStyle idents.html#cmpIgnoreStyle,cstring,cstring,int proc cmpIgnoreStyle(a, b: cstring; blen: int): int 35
nim getIdent idents.html#getIdent,IdentCache,cstring,int,Hash proc getIdent(ic: IdentCache; identifier: cstring; length: int; h: Hash): PIdent 69
nim getIdent idents.html#getIdent,IdentCache,string proc getIdent(ic: IdentCache; identifier: string): PIdent 99
nim getIdent idents.html#getIdent,IdentCache,string,Hash proc getIdent(ic: IdentCache; identifier: string; h: Hash): PIdent 103
nim newIdentCache idents.html#newIdentCache proc newIdentCache(): IdentCache 106
nim whichKeyword idents.html#whichKeyword,PIdent proc whichKeyword(id: PIdent): TSpecialWord 116
nim hash idents.html#hash,PIdent proc hash(x: PIdent): Hash 120
nim `==` idents.html#==,PIdent,PIdent proc `==`(a, b: PIdent): bool 121
nimgrp getident idents.html#getIdent-procs-all proc 69

222
compiler/importer.html Normal file
View File

@@ -0,0 +1,222 @@
<?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>importer</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">importer</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">declarePureEnumField
<li><a class="reference" href="#declarePureEnumField%2CPContext%2CPSym" title="declarePureEnumField(c: PContext; s: PSym)">declarePureEnumField(c: PContext; s: PSym)</a></li>
</ul>
<ul class="simple nested-toc-section">evalFrom
<li><a class="reference" href="#evalFrom%2CPContext%2CPNode" title="evalFrom(c: PContext; n: PNode): PNode">evalFrom(c: PContext; n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">evalImport
<li><a class="reference" href="#evalImport%2CPContext%2CPNode" title="evalImport(c: PContext; n: PNode): PNode">evalImport(c: PContext; n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">evalImportExcept
<li><a class="reference" href="#evalImportExcept%2CPContext%2CPNode" title="evalImportExcept(c: PContext; n: PNode): PNode">evalImportExcept(c: PContext; n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">importAllSymbols
<li><a class="reference" href="#importAllSymbols%2CPContext%2CPSym" title="importAllSymbols(c: PContext; fromMod: PSym)">importAllSymbols(c: PContext; fromMod: PSym)</a></li>
</ul>
<ul class="simple nested-toc-section">readExceptSet
<li><a class="reference" href="#readExceptSet%2CPContext%2CPNode" title="readExceptSet(c: PContext; n: PNode): IntSet">readExceptSet(c: PContext; n: PNode): IntSet</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/importer.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/importer.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">This module implements the symbol importing mechanism.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="lookups.html">lookups</a>, <a class="reference external" href="semdata.html">semdata</a>, <a class="reference external" href="modulepaths.html">modulepaths</a>, <a class="reference external" href="sigmatch.html">sigmatch</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="modulegraphs.html">modulegraphs</a>, <a class="reference external" href="wordrecg.html">wordrecg</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="declarePureEnumField-procs-all">
<div id="declarePureEnumField,PContext,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#declarePureEnumField%2CPContext%2CPSym"><span class="Identifier">declarePureEnumField</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="semdata.html#PContext"><span class="Identifier">PContext</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/importer.nim#L30" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/importer.nim#L30" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="evalFrom-procs-all">
<div id="evalFrom,PContext,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#evalFrom%2CPContext%2CPNode"><span class="Identifier">evalFrom</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="semdata.html#PContext"><span class="Identifier">PContext</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/importer.nim#L369" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/importer.nim#L369" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="evalImport-procs-all">
<div id="evalImport,PContext,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#evalImport%2CPContext%2CPNode"><span class="Identifier">evalImport</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="semdata.html#PContext"><span class="Identifier">PContext</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/importer.nim#L343" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/importer.nim#L343" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="evalImportExcept-procs-all">
<div id="evalImportExcept,PContext,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#evalImportExcept%2CPContext%2CPNode"><span class="Identifier">evalImportExcept</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="semdata.html#PContext"><span class="Identifier">PContext</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">Exception</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/importer.nim#L384" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/importer.nim#L384" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="importAllSymbols-procs-all">
<div id="importAllSymbols,PContext,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#importAllSymbols%2CPContext%2CPSym"><span class="Identifier">importAllSymbols</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="semdata.html#PContext"><span class="Identifier">PContext</span></a><span class="Other">;</span> <span class="Identifier">fromMod</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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">KeyError</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/importer.nim#L207" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/importer.nim#L207" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="readExceptSet-procs-all">
<div id="readExceptSet,PContext,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#readExceptSet%2CPContext%2CPNode"><span class="Identifier">readExceptSet</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="semdata.html#PContext"><span class="Identifier">PContext</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">IntSet</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">Exception</span><span class="Other">,</span>
<span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/importer.nim#L23" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/importer.nim#L23" 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: 2026-06-02 05:20:22 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

7
compiler/importer.idx Normal file
View File

@@ -0,0 +1,7 @@
nimTitle importer importer.html module importer 0
nim readExceptSet importer.html#readExceptSet,PContext,PNode proc readExceptSet(c: PContext; n: PNode): IntSet 23
nim declarePureEnumField importer.html#declarePureEnumField,PContext,PSym proc declarePureEnumField(c: PContext; s: PSym) 30
nim importAllSymbols importer.html#importAllSymbols,PContext,PSym proc importAllSymbols(c: PContext; fromMod: PSym) 207
nim evalImport importer.html#evalImport,PContext,PNode proc evalImport(c: PContext; n: PNode): PNode 343
nim evalFrom importer.html#evalFrom,PContext,PNode proc evalFrom(c: PContext; n: PNode): PNode 369
nim evalImportExcept importer.html#evalImportExcept,PContext,PNode proc evalImportExcept(c: PContext; n: PNode): PNode 384

97
compiler/index.html Normal file
View File

@@ -0,0 +1,97 @@
<?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>index</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">index</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">
<ul class="simple"><li><a class="reference" id="links_toc" href="#links">links</a></li>
</ul><li>
<a class="reference reference-toplevel" href="#6" id="56">Imports</a>
</li>
</ul>
</div>
<div class="nine columns" id="content">
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/index.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/index.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">This module only exists to generate docs for the compiler.
<h2><a class="toc-backref" id="links" href="#links">links</a></h2><ul class="simple"><li><a class="reference external" href="../lib.html">main docs</a></li>
<li><a class="reference external" href="../nimc.html">compiler user guide</a></li>
<li><a class="reference external" href="../intern.html">Internals of the Nim Compiler</a></li>
</ul>
</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="nim.html">nim</a>
</dl>
</div>
</div>
</div>
<div class="twelve-columns footer">
<span class="nim-sprite"></span>
<br>
<small style="color: var(--hint);">Made with Nim. Generated: 2026-06-02 05:20:25 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

2
compiler/index.idx Normal file
View File

@@ -0,0 +1,2 @@
nimTitle index index.html module index 0
heading links index.html#links links 0

View File

@@ -0,0 +1,142 @@
<?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>injectdestructors</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">injectdestructors</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">injectDestructorCalls
<li><a class="reference" href="#injectDestructorCalls%2CModuleGraph%2CIdGenerator%2CPSym%2CPNode" title="injectDestructorCalls(g: ModuleGraph; idgen: IdGenerator; owner: PSym; n: PNode): PNode">injectDestructorCalls(g: ModuleGraph; idgen: IdGenerator; owner: PSym; n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">sameLocation
<li><a class="reference" href="#sameLocation%2CPNode%2CPNode" title="sameLocation(a, b: PNode): bool">sameLocation(a, b: PNode): bool</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/injectdestructors.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/injectdestructors.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">Injects destructor calls into Nim code as well as an optimizer that optimizes copies to moves. This is implemented as an AST to AST transformation so that every backend benefits from it.See doc/destructors.rst for a spec of the implemented rewrite rules</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="astalgo.html">astalgo</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="renderer.html">renderer</a>, <a class="reference external" href="magicsys.html">magicsys</a>, <a class="reference external" href="types.html">types</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="lowerings.html">lowerings</a>, <a class="reference external" href="modulegraphs.html">modulegraphs</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="parampatterns.html">parampatterns</a>, <a class="reference external" href="sighashes.html">sighashes</a>, <a class="reference external" href="liftdestructors.html">liftdestructors</a>, <a class="reference external" href="optimizer.html">optimizer</a>, <a class="reference external" href="varpartitions.html">varpartitions</a>, <a class="reference external" href="aliasanalysis.html">aliasanalysis</a>, <a class="reference external" href="dfa.html">dfa</a>, <a class="reference external" href="wordrecg.html">wordrecg</a>, <a class="reference external" href="trees.html">trees</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="injectDestructorCalls-procs-all">
<div id="injectDestructorCalls,ModuleGraph,IdGenerator,PSym,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#injectDestructorCalls%2CModuleGraph%2CIdGenerator%2CPSym%2CPNode"><span class="Identifier">injectDestructorCalls</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">;</span> <span class="Identifier">owner</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span>
<span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/injectdestructors.nim#L1354" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/injectdestructors.nim#L1354" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="sameLocation-procs-all">
<div id="sameLocation,PNode,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#sameLocation%2CPNode%2CPNode"><span class="Identifier">sameLocation</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="astdef.html#PNode"><span class="Identifier">PNode</span></a><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/injectdestructors.nim#L1111" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/injectdestructors.nim#L1111" 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: 2026-06-02 05:20:20 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

View File

@@ -0,0 +1,3 @@
nimTitle injectdestructors injectdestructors.html module injectdestructors 0
nim sameLocation injectdestructors.html#sameLocation,PNode,PNode proc sameLocation(a, b: PNode): bool 1111
nim injectDestructorCalls injectdestructors.html#injectDestructorCalls,ModuleGraph,IdGenerator,PSym,PNode proc injectDestructorCalls(g: ModuleGraph; idgen: IdGenerator; owner: PSym; n: PNode): PNode 1354

1179
compiler/int128.html Normal file

File diff suppressed because it is too large Load Diff

75
compiler/int128.idx Normal file
View File

@@ -0,0 +1,75 @@
nimTitle int128 int128.html module int128 0
nim Int128 int128.html#Int128 object Int128 12
nim Zero int128.html#Zero const Zero 23
nim One int128.html#One const One 24
nim Ten int128.html#Ten const Ten 25
nim NegOne int128.html#NegOne const NegOne 28
nim low int128.html#low.t,typedesc[Int128] template low(t: typedesc[Int128]): Int128 30
nim high int128.html#high.t,typedesc[Int128] template high(t: typedesc[Int128]): Int128 31
nim `$` int128.html#$,Int128 proc `$`(a: Int128): string 33
nim toInt128 int128.html#toInt128,T proc toInt128[T: SomeInteger | bool](arg: T): Int128 35
nim toInt64 int128.html#toInt64,Int128 proc toInt64(arg: Int128): int64 65
nim toInt64Checked int128.html#toInt64Checked,Int128,int64 proc toInt64Checked(arg: Int128; onError: int64): int64 75
nim toInt32 int128.html#toInt32,Int128 proc toInt32(arg: Int128): int32 84
nim toInt16 int128.html#toInt16,Int128 proc toInt16(arg: Int128): int16 96
nim toInt8 int128.html#toInt8,Int128 proc toInt8(arg: Int128): int8 108
nim toInt int128.html#toInt,Int128 proc toInt(arg: Int128): int 120
nim toUInt64 int128.html#toUInt64,Int128 proc toUInt64(arg: Int128): uint64 126
nim toUInt32 int128.html#toUInt32,Int128 proc toUInt32(arg: Int128): uint32 131
nim toUInt16 int128.html#toUInt16,Int128 proc toUInt16(arg: Int128): uint16 137
nim toUInt8 int128.html#toUInt8,Int128 proc toUInt8(arg: Int128): uint8 143
nim toUInt int128.html#toUInt,Int128 proc toUInt(arg: Int128): uint 149
nim castToInt64 int128.html#castToInt64,Int128 proc castToInt64(arg: Int128): int64 155
nim castToUInt64 int128.html#castToUInt64,Int128 proc castToUInt64(arg: Int128): uint64 159
nim addToHex int128.html#addToHex,string,Int128 proc addToHex(result: var string; arg: Int128) 168
nim toHex int128.html#toHex,Int128 proc toHex(arg: Int128): string 174
nim inc int128.html#inc,Int128,uint32 proc inc(a: var Int128; y: uint32 = 1) 178
nim cmp int128.html#cmp,Int128,Int128 proc cmp(a, b: Int128): int 188
nim `<` int128.html#<,Int128,Int128 proc `<`(a, b: Int128): bool 198
nim `<=` int128.html#<=,Int128,Int128 proc `<=`(a, b: Int128): bool 201
nim `==` int128.html#==,Int128,Int128 proc `==`(a, b: Int128): bool 204
nim bitnot int128.html#bitnot,Int128 proc bitnot(a: Int128): Int128 211
nim bitand int128.html#bitand,Int128,Int128 proc bitand(a, b: Int128): Int128 218
nim bitor int128.html#bitor,Int128,Int128 proc bitor(a, b: Int128): Int128 225
nim bitxor int128.html#bitxor,Int128,Int128 proc bitxor(a, b: Int128): Int128 232
nim `shr` int128.html#shr,Int128,int proc `shr`(a: Int128; b: int): Int128 239
nim `shl` int128.html#shl,Int128,int proc `shl`(a: Int128; b: int): Int128 266
nim `+` int128.html#+,Int128,Int128 proc `+`(a, b: Int128): Int128 290
nim `+=` int128.html#+=,Int128,Int128 proc `+=`(a: var Int128; b: Int128) 301
nim `-` int128.html#-,Int128 proc `-`(a: Int128): Int128 304
nim `-` int128.html#-,Int128,Int128 proc `-`(a, b: Int128): Int128 308
nim `-=` int128.html#-=,Int128,Int128 proc `-=`(a: var Int128; b: Int128) 311
nim abs int128.html#abs,Int128 proc abs(a: Int128): Int128 314
nim `*` int128.html#*,Int128,int32 proc `*`(a: Int128; b: int32): Int128 338
nim `*` int128.html#*,Int128,Int128 proc `*`(lhs, rhs: Int128): Int128 359
nim `*=` int128.html#*=,Int128,Int128 proc `*=`(a: var Int128; b: Int128) 368
nim fastLog2 int128.html#fastLog2,Int128 proc fastLog2(a: Int128): int 373
nim divMod int128.html#divMod,Int128,Int128 proc divMod(dividend, divisor: Int128): tuple[quotient, remainder: Int128] 384
nim `div` int128.html#div,Int128,Int128 proc `div`(a, b: Int128): Int128 436
nim `mod` int128.html#mod,Int128,Int128 proc `mod`(a, b: Int128): Int128 440
nim addInt128 int128.html#addInt128,string,Int128 proc addInt128(result: var string; value: Int128) 444
nim parseDecimalInt128 int128.html#parseDecimalInt128,string,int proc parseDecimalInt128(arg: string; pos: int = 0): Int128 474
nim `<` int128.html#<,Int128,BiggestInt proc `<`(a: Int128; b: BiggestInt): bool 495
nim `<` int128.html#<,BiggestInt,Int128 proc `<`(a: BiggestInt; b: Int128): bool 498
nim `<=` int128.html#<=,Int128,BiggestInt proc `<=`(a: Int128; b: BiggestInt): bool 501
nim `<=` int128.html#<=,BiggestInt,Int128 proc `<=`(a: BiggestInt; b: Int128): bool 504
nim `==` int128.html#==,Int128,BiggestInt proc `==`(a: Int128; b: BiggestInt): bool 507
nim `==` int128.html#==,BiggestInt,Int128 proc `==`(a: BiggestInt; b: Int128): bool 510
nim `-` int128.html#-,BiggestInt,Int128 proc `-`(a: BiggestInt; b: Int128): Int128 513
nim `-` int128.html#-,Int128,BiggestInt proc `-`(a: Int128; b: BiggestInt): Int128 516
nim `+` int128.html#+,BiggestInt,Int128 proc `+`(a: BiggestInt; b: Int128): Int128 519
nim `+` int128.html#+,Int128,BiggestInt proc `+`(a: Int128; b: BiggestInt): Int128 522
nim toFloat64 int128.html#toFloat64,Int128 proc toFloat64(arg: Int128): float64 525
nim toInt128 int128.html#toInt128,float64 proc toInt128(arg: float64): Int128 540
nim maskUInt64 int128.html#maskUInt64,Int128 proc maskUInt64(arg: Int128): Int128 555
nim maskUInt32 int128.html#maskUInt32,Int128 proc maskUInt32(arg: Int128): Int128 562
nim maskUInt16 int128.html#maskUInt16,Int128 proc maskUInt16(arg: Int128): Int128 569
nim maskUInt8 int128.html#maskUInt8,Int128 proc maskUInt8(arg: Int128): Int128 576
nim maskBytes int128.html#maskBytes,Int128,int proc maskBytes(arg: Int128; numbytes: int): Int128 583
nimgrp - int128.html#--procs-all proc 304
nimgrp toint128 int128.html#toInt128-procs-all proc 35
nimgrp <= int128.html#<=-procs-all proc 201
nimgrp < int128.html#<-procs-all proc 198
nimgrp == int128.html#==-procs-all proc 204
nimgrp + int128.html#+-procs-all proc 290
nimgrp * int128.html#*-procs-all proc 338

View File

@@ -0,0 +1,143 @@
<?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>isolation_check</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">isolation_check</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">canAlias
<li><a class="reference" href="#canAlias%2CPType%2CPType" title="canAlias(arg, ret: PType): bool">canAlias(arg, ret: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">checkIsolate
<li><a class="reference" href="#checkIsolate%2CPNode" title="checkIsolate(n: PNode): bool">checkIsolate(n: PNode): bool</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/isolation_check.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/isolation_check.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">Implementation of the check that <tt class="docutils literal"><span class="pre"><span class="Identifier">recover</span></span></tt> needs, see <a class="reference external" href="https://github.com/nim-lang/RFCs/issues/244">https://github.com/nim-lang/RFCs/issues/244</a> for more details.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="types.html">types</a>, <a class="reference external" href="renderer.html">renderer</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="canAlias-procs-all">
<div id="canAlias,PType,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#canAlias%2CPType%2CPType"><span class="Identifier">canAlias</span></a><span class="Other">(</span><span class="Identifier">arg</span><span class="Other">,</span> <span class="Identifier">ret</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><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="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">ReadDirEffect</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/isolation_check.nim#L144" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/isolation_check.nim#L144" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="checkIsolate-procs-all">
<div id="checkIsolate,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#checkIsolate%2CPNode"><span class="Identifier">checkIsolate</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><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="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">ReadDirEffect</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/isolation_check.nim#L166" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/isolation_check.nim#L166" 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: 2026-06-02 05:20:18 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

View File

@@ -0,0 +1,3 @@
nimTitle isolation_check isolation_check.html module isolation_check 0
nim canAlias isolation_check.html#canAlias,PType,PType proc canAlias(arg, ret: PType): bool 144
nim checkIsolate isolation_check.html#checkIsolate,PNode proc checkIsolate(n: PNode): bool 166

195
compiler/jsgen.html Normal file
View File

@@ -0,0 +1,195 @@
<?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>jsgen</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">jsgen</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">finalJSCodeGen
<li><a class="reference" href="#finalJSCodeGen%2CModuleGraph%2CPPassContext%2CPNode" title="finalJSCodeGen(graph: ModuleGraph; b: PPassContext; n: PNode): PNode">finalJSCodeGen(graph: ModuleGraph; b: PPassContext; n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">processJSCodeGen
<li><a class="reference" href="#processJSCodeGen%2CPPassContext%2CPNode" title="processJSCodeGen(b: PPassContext; n: PNode): PNode">processJSCodeGen(b: PPassContext; n: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">setupJSgen
<li><a class="reference" href="#setupJSgen%2CModuleGraph%2CPSym%2CIdGenerator" title="setupJSgen(graph: ModuleGraph; s: PSym; idgen: IdGenerator): PPassContext">setupJSgen(graph: ModuleGraph; s: PSym; idgen: IdGenerator): PPassContext</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">config
<li><a class="reference" href="#config.t%2CPProc" title="config(p: PProc): ConfigRef">config(p: PProc): ConfigRef</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/jsgen.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/jsgen.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">Type info generation for the JS backend.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="trees.html">trees</a>, <a class="reference external" href="magicsys.html">magicsys</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="nversion.html">nversion</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="types.html">types</a>, <a class="reference external" href="ropes.html">ropes</a>, <a class="reference external" href="wordrecg.html">wordrecg</a>, <a class="reference external" href="renderer.html">renderer</a>, <a class="reference external" href="cgmeth.html">cgmeth</a>, <a class="reference external" href="lowerings.html">lowerings</a>, <a class="reference external" href="sighashes.html">sighashes</a>, <a class="reference external" href="modulegraphs.html">modulegraphs</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="transf.html">transf</a>, <a class="reference external" href="injectdestructors.html">injectdestructors</a>, <a class="reference external" href="sourcemap.html">sourcemap</a>, <a class="reference external" href="astmsgs.html">astmsgs</a>, <a class="reference external" href="pushpoppragmas.html">pushpoppragmas</a>, <a class="reference external" href="mangleutils.html">mangleutils</a>, <a class="reference external" href="pipelineutils.html">pipelineutils</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="finalJSCodeGen-procs-all">
<div id="finalJSCodeGen,ModuleGraph,PPassContext,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#finalJSCodeGen%2CModuleGraph%2CPPassContext%2CPNode"><span class="Identifier">finalJSCodeGen</span></a><span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="modulegraphs.html#PPassContext"><span class="Identifier">PPassContext</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span>
<span class="Identifier">TimeEffect</span><span class="Other">,</span> <span class="Identifier">WriteDirEffect</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>
Finalize JS code generation of a Nim module. Param <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> may contain nodes returned from the last module close call.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/jsgen.nim#L3199" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/jsgen.nim#L3199" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="processJSCodeGen-procs-all">
<div id="processJSCodeGen,PPassContext,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#processJSCodeGen%2CPPassContext%2CPNode"><span class="Identifier">processJSCodeGen</span></a><span class="Other">(</span><span class="Identifier">b</span><span class="Other">:</span> <a href="modulegraphs.html#PPassContext"><span class="Identifier">PPassContext</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">Exception</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span>
<span class="Identifier">TimeEffect</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>
Generate JS code for a node.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/jsgen.nim#L3169" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/jsgen.nim#L3169" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setupJSgen-procs-all">
<div id="setupJSgen,ModuleGraph,PSym,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#setupJSgen%2CModuleGraph%2CPSym%2CIdGenerator"><span class="Identifier">setupJSgen</span></a><span class="Other">(</span><span class="Identifier">graph</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="modulegraphs.html#PPassContext"><span class="Identifier">PPassContext</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/jsgen.nim#L3234" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/jsgen.nim#L3234" 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="config-templates-all">
<div id="config.t,PProc">
<dt><pre><span class="Keyword">template</span> <a href="#config.t%2CPProc"><span class="Identifier">config</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <span class="Identifier">PProc</span><span class="Other">)</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/jsgen.nim#L118" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/jsgen.nim#L118" 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: 2026-06-02 05:20:24 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

5
compiler/jsgen.idx Normal file
View File

@@ -0,0 +1,5 @@
nimTitle jsgen jsgen.html module jsgen 0
nim config jsgen.html#config.t,PProc template config(p: PProc): ConfigRef 118
nim processJSCodeGen jsgen.html#processJSCodeGen,PPassContext,PNode proc processJSCodeGen(b: PPassContext; n: PNode): PNode 3169
nim finalJSCodeGen jsgen.html#finalJSCodeGen,ModuleGraph,PPassContext,PNode proc finalJSCodeGen(graph: ModuleGraph; b: PPassContext; n: PNode): PNode 3199
nim setupJSgen jsgen.html#setupJSgen,ModuleGraph,PSym,IdGenerator proc setupJSgen(graph: ModuleGraph; s: PSym; idgen: IdGenerator): PPassContext 3234

423
compiler/lambdalifting.html Normal file
View File

@@ -0,0 +1,423 @@
<?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>lambdalifting</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">lambdalifting</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="#10" id="60">Consts</a></summary>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#envName" title="envName = &quot;:env&quot;">envName</a></li>
<li><a class="reference" href="#paramName" title="paramName = &quot;:envP&quot;">paramName</a></li>
<li><a class="reference" href="#upName" title="upName = &quot;:up&quot;">upName</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">createClosureIterStateType
<li><a class="reference" href="#createClosureIterStateType%2CModuleGraph%2CPSym%2CIdGenerator" title="createClosureIterStateType(g: ModuleGraph; iter: PSym; idgen: IdGenerator): PType">createClosureIterStateType(g: ModuleGraph; iter: PSym; idgen: IdGenerator): PType</a></li>
</ul>
<ul class="simple nested-toc-section">getClosureIterResult
<li><a class="reference" href="#getClosureIterResult%2CModuleGraph%2CPSym%2CIdGenerator" title="getClosureIterResult(g: ModuleGraph; iter: PSym; idgen: IdGenerator): PSym">getClosureIterResult(g: ModuleGraph; iter: PSym; idgen: IdGenerator): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">getEnvParam
<li><a class="reference" href="#getEnvParam%2CPSym" title="getEnvParam(routine: PSym): PSym">getEnvParam(routine: PSym): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">getStateField
<li><a class="reference" href="#getStateField%2CModuleGraph%2CPSym" title="getStateField(g: ModuleGraph; owner: PSym): PSym">getStateField(g: ModuleGraph; owner: PSym): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">isInnerProc
<li><a class="reference" href="#isInnerProc%2CPSym" title="isInnerProc(s: PSym): bool">isInnerProc(s: PSym): bool</a></li>
</ul>
<ul class="simple nested-toc-section">liftForLoop
<li><a class="reference" href="#liftForLoop%2CModuleGraph%2CPNode%2CIdGenerator%2CPSym" title="liftForLoop(g: ModuleGraph; body: PNode; idgen: IdGenerator; owner: PSym): PNode">liftForLoop(g: ModuleGraph; body: PNode; idgen: IdGenerator; owner: PSym): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">liftIterSym
<li><a class="reference" href="#liftIterSym%2CModuleGraph%2CPNode%2CIdGenerator%2CPSym" title="liftIterSym(g: ModuleGraph; n: PNode; idgen: IdGenerator; owner: PSym): PNode">liftIterSym(g: ModuleGraph; n: PNode; idgen: IdGenerator; owner: PSym): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">liftIterToProc
<li><a class="reference" href="#liftIterToProc%2CModuleGraph%2CPSym%2CPNode%2CPType%2CIdGenerator" title="liftIterToProc(g: ModuleGraph; fn: PSym; body: PNode; ptrType: PType;
idgen: IdGenerator): PNode">liftIterToProc(g: ModuleGraph; fn: PSym; body: PNode; ptrType: PType;
idgen: IdGenerator): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">liftLambdas
<li><a class="reference" href="#liftLambdas%2CModuleGraph%2CPSym%2CPNode%2Cbool%2CIdGenerator%2CTransformFlags" title="liftLambdas(g: ModuleGraph; fn: PSym; body: PNode; tooEarly: var bool;
idgen: IdGenerator; flags: TransformFlags): PNode">liftLambdas(g: ModuleGraph; fn: PSym; body: PNode; tooEarly: var bool;
idgen: IdGenerator; flags: TransformFlags): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">liftLambdasForTopLevel
<li><a class="reference" href="#liftLambdasForTopLevel%2CPSym%2CPNode" title="liftLambdasForTopLevel(module: PSym; body: PNode): PNode">liftLambdasForTopLevel(module: PSym; body: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">makeClosure
<li><a class="reference" href="#makeClosure%2CModuleGraph%2CIdGenerator%2CPSym%2CPNode%2CTLineInfo" title="makeClosure(g: ModuleGraph; idgen: IdGenerator; prc: PSym; env: PNode;
info: TLineInfo): PNode">makeClosure(g: ModuleGraph; idgen: IdGenerator; prc: PSym; env: PNode;
info: TLineInfo): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">semCaptureSym
<li><a class="reference" href="#semCaptureSym%2CPSym%2CPSym" title="semCaptureSym(s, owner: PSym)">semCaptureSym(s, owner: PSym)</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">isIterator
<li><a class="reference" href="#isIterator.t%2CPSym" title="isIterator(owner: PSym): bool">isIterator(owner: PSym): bool</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/lambdalifting.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="options.html">options</a>, <a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="astalgo.html">astalgo</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="renderer.html">renderer</a>, <a class="reference external" href="types.html">types</a>, <a class="reference external" href="magicsys.html">magicsys</a>, <a class="reference external" href="lowerings.html">lowerings</a>, <a class="reference external" href="modulegraphs.html">modulegraphs</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="transf.html">transf</a>, <a class="reference external" href="liftdestructors.html">liftdestructors</a>, <a class="reference external" href="typeallowed.html">typeallowed</a>
</dl>
</div>
<div class="section" id="10">
<h1><a class="toc-backref" href="#10">Consts</a></h1>
<dl class="item">
<div id="envName">
<dt><pre><a href="#envName"><span class="Identifier">envName</span></a> <span class="Other">=</span> <span class="StringLit">&quot;:env&quot;</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lambdalifting.nim#L127" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L127" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="paramName">
<dt><pre><a href="#paramName"><span class="Identifier">paramName</span></a> <span class="Other">=</span> <span class="StringLit">&quot;:envP&quot;</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lambdalifting.nim#L126" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L126" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="upName">
<dt><pre><a href="#upName"><span class="Identifier">upName</span></a> <span class="Other">=</span> <span class="StringLit">&quot;:up&quot;</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lambdalifting.nim#L125" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L125" 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="createClosureIterStateType-procs-all">
<div id="createClosureIterStateType,ModuleGraph,PSym,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#createClosureIterStateType%2CModuleGraph%2CPSym%2CIdGenerator"><span class="Identifier">createClosureIterStateType</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">iter</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/lambdalifting.nim#L134" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L134" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getClosureIterResult-procs-all">
<div id="getClosureIterResult,ModuleGraph,PSym,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#getClosureIterResult%2CModuleGraph%2CPSym%2CIdGenerator"><span class="Identifier">getClosureIterResult</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">iter</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/lambdalifting.nim#L157" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L157" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getEnvParam-procs-all">
<div id="getEnvParam,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#getEnvParam%2CPSym"><span class="Identifier">getEnvParam</span></a><span class="Other">(</span><span class="Identifier">routine</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">ReadDirEffect</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/lambdalifting.nim#L178" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L178" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getStateField-procs-all">
<div id="getStateField,ModuleGraph,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#getStateField%2CModuleGraph%2CPSym"><span class="Identifier">getStateField</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">owner</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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="Identifier">KeyError</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/lambdalifting.nim#L725" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L725" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isInnerProc-procs-all">
<div id="isInnerProc,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#isInnerProc%2CPSym"><span class="Identifier">isInnerProc</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span>
<span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/lambdalifting.nim#L203" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L203" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="liftForLoop-procs-all">
<div id="liftForLoop,ModuleGraph,PNode,IdGenerator,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#liftForLoop%2CModuleGraph%2CPNode%2CIdGenerator%2CPSym"><span class="Identifier">liftForLoop</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">body</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">;</span> <span class="Identifier">owner</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/lambdalifting.nim#L931" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L931" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="liftIterSym-procs-all">
<div id="liftIterSym,ModuleGraph,PNode,IdGenerator,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#liftIterSym%2CModuleGraph%2CPNode%2CIdGenerator%2CPSym"><span class="Identifier">liftIterSym</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">;</span> <span class="Identifier">owner</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/lambdalifting.nim#L256" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L256" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="liftIterToProc-procs-all">
<div id="liftIterToProc,ModuleGraph,PSym,PNode,PType,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#liftIterToProc%2CModuleGraph%2CPSym%2CPNode%2CPType%2CIdGenerator"><span class="Identifier">liftIterToProc</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">fn</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">body</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">ptrType</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span>
<span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/lambdalifting.nim#L877" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L877" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="liftLambdas-procs-all">
<div id="liftLambdas,ModuleGraph,PSym,PNode,bool,IdGenerator,TransformFlags">
<dt><pre><span class="Keyword">proc</span> <a href="#liftLambdas%2CModuleGraph%2CPSym%2CPNode%2Cbool%2CIdGenerator%2CTransformFlags"><span class="Identifier">liftLambdas</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">fn</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">body</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">tooEarly</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">bool</span><span class="Other">;</span>
<span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">;</span> <span class="Identifier">flags</span><span class="Other">:</span> <a href="transf.html#TransformFlags"><span class="Identifier">TransformFlags</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/lambdalifting.nim#L892" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L892" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="liftLambdasForTopLevel-procs-all">
<div id="liftLambdasForTopLevel,PSym,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#liftLambdasForTopLevel%2CPSym%2CPNode"><span class="Identifier">liftLambdasForTopLevel</span></a><span class="Other">(</span><span class="Identifier">module</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">body</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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/lambdalifting.nim#L925" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L925" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="makeClosure-procs-all">
<div id="makeClosure,ModuleGraph,IdGenerator,PSym,PNode,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#makeClosure%2CModuleGraph%2CIdGenerator%2CPSym%2CPNode%2CTLineInfo"><span class="Identifier">makeClosure</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">;</span> <span class="Identifier">prc</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">env</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span>
<span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/lambdalifting.nim#L223" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L223" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="semCaptureSym-procs-all">
<div id="semCaptureSym,PSym,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#semCaptureSym%2CPSym%2CPSym"><span class="Identifier">semCaptureSym</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">owner</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span>
<span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/lambdalifting.nim#L840" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L840" 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="isIterator-templates-all">
<div id="isIterator.t,PSym">
<dt><pre><span class="Keyword">template</span> <a href="#isIterator.t%2CPSym"><span class="Identifier">isIterator</span></a><span class="Other">(</span><span class="Identifier">owner</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">bool</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lambdalifting.nim#L148" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lambdalifting.nim#L148" 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: 2026-06-02 05:20:20 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

View File

@@ -0,0 +1,17 @@
nimTitle lambdalifting lambdalifting.html module lambdalifting 0
nim upName lambdalifting.html#upName const upName 125
nim paramName lambdalifting.html#paramName const paramName 126
nim envName lambdalifting.html#envName const envName 127
nim createClosureIterStateType lambdalifting.html#createClosureIterStateType,ModuleGraph,PSym,IdGenerator proc createClosureIterStateType(g: ModuleGraph; iter: PSym; idgen: IdGenerator): PType 134
nim isIterator lambdalifting.html#isIterator.t,PSym template isIterator(owner: PSym): bool 148
nim getClosureIterResult lambdalifting.html#getClosureIterResult,ModuleGraph,PSym,IdGenerator proc getClosureIterResult(g: ModuleGraph; iter: PSym; idgen: IdGenerator): PSym 157
nim getEnvParam lambdalifting.html#getEnvParam,PSym proc getEnvParam(routine: PSym): PSym 178
nim isInnerProc lambdalifting.html#isInnerProc,PSym proc isInnerProc(s: PSym): bool 203
nim makeClosure lambdalifting.html#makeClosure,ModuleGraph,IdGenerator,PSym,PNode,TLineInfo proc makeClosure(g: ModuleGraph; idgen: IdGenerator; prc: PSym; env: PNode;\n info: TLineInfo): PNode 223
nim liftIterSym lambdalifting.html#liftIterSym,ModuleGraph,PNode,IdGenerator,PSym proc liftIterSym(g: ModuleGraph; n: PNode; idgen: IdGenerator; owner: PSym): PNode 256
nim getStateField lambdalifting.html#getStateField,ModuleGraph,PSym proc getStateField(g: ModuleGraph; owner: PSym): PSym 725
nim semCaptureSym lambdalifting.html#semCaptureSym,PSym,PSym proc semCaptureSym(s, owner: PSym) 840
nim liftIterToProc lambdalifting.html#liftIterToProc,ModuleGraph,PSym,PNode,PType,IdGenerator proc liftIterToProc(g: ModuleGraph; fn: PSym; body: PNode; ptrType: PType;\n idgen: IdGenerator): PNode 877
nim liftLambdas lambdalifting.html#liftLambdas,ModuleGraph,PSym,PNode,bool,IdGenerator,TransformFlags proc liftLambdas(g: ModuleGraph; fn: PSym; body: PNode; tooEarly: var bool;\n idgen: IdGenerator; flags: TransformFlags): PNode 892
nim liftLambdasForTopLevel lambdalifting.html#liftLambdasForTopLevel,PSym,PNode proc liftLambdasForTopLevel(module: PSym; body: PNode): PNode 925
nim liftForLoop lambdalifting.html#liftForLoop,ModuleGraph,PNode,IdGenerator,PSym proc liftForLoop(g: ModuleGraph; body: PNode; idgen: IdGenerator; owner: PSym): PNode 931

329
compiler/layeredtable.html Normal file
View File

@@ -0,0 +1,329 @@
<?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>layeredtable</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">layeredtable</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="#LayeredIdTable" title="LayeredIdTable = LayeredIdTableObj">LayeredIdTable</a></li>
<li><a class="reference" href="#LayeredIdTableObj" title="LayeredIdTableObj {.acyclic.} = object
topLayer*: TypeMapping ## the mappings on the current layer
nextLayer*: ref LayeredIdTableObj ## the parent type binding context, possibly `nil`
previousLen*: int ## total length of the bindings up to the parent layer,
## used to track if new bindings were added">LayeredIdTableObj</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">currentLen
<li><a class="reference" href="#currentLen%2CLayeredIdTableObj" title="currentLen(pt: LayeredIdTable): int">currentLen(pt: LayeredIdTable): int</a></li>
</ul>
<ul class="simple nested-toc-section">initLayeredTypeMap
<li><a class="reference" href="#initLayeredTypeMap%2CsinkTypeMapping" title="initLayeredTypeMap(pt: sink TypeMapping = initTypeMapping()): LayeredIdTable">initLayeredTypeMap(pt: sink TypeMapping = initTypeMapping()): LayeredIdTable</a></li>
</ul>
<ul class="simple nested-toc-section">newTypeMapLayer
<li><a class="reference" href="#newTypeMapLayer%2CLayeredIdTableObj" title="newTypeMapLayer(pt: LayeredIdTable): LayeredIdTable">newTypeMapLayer(pt: LayeredIdTable): LayeredIdTable</a></li>
</ul>
<ul class="simple nested-toc-section">setToPreviousLayer
<li><a class="reference" href="#setToPreviousLayer%2CLayeredIdTableObj" title="setToPreviousLayer(pt: var LayeredIdTable)">setToPreviousLayer(pt: var LayeredIdTable)</a></li>
</ul>
<ul class="simple nested-toc-section">shallowCopy
<li><a class="reference" href="#shallowCopy%2CLayeredIdTableObj" title="shallowCopy(pt: LayeredIdTable): LayeredIdTable">shallowCopy(pt: LayeredIdTable): LayeredIdTable</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">pairs
<li><a class="reference" href="#pairs.i%2CLayeredIdTableObj" title="pairs(pt: LayeredIdTable): (ItemId, PType)">pairs(pt: LayeredIdTable): (ItemId, PType)</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">lookup
<li><a class="reference" href="#lookup.t%2CLayeredIdTableObj%2CPType" title="lookup(typeMap: LayeredIdTableObj; key: PType): PType">lookup(typeMap: LayeredIdTableObj; key: PType): PType</a></li>
<li><a class="reference" href="#lookup.t%2Cref.LayeredIdTableObj%2CPType" title="lookup(typeMap: ref LayeredIdTableObj; key: PType): PType">lookup(typeMap: ref LayeredIdTableObj; key: PType): PType</a></li>
</ul>
<ul class="simple nested-toc-section">put
<li><a class="reference" href="#put.t%2CLayeredIdTableObj%2CPType%2CPType" title="put(typeMap: var LayeredIdTable; key, value: PType)">put(typeMap: var LayeredIdTable; key, value: PType)</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/layeredtable.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/layeredtable.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="astalgo.html">astalgo</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="LayeredIdTable">
<dt><pre><a href="#LayeredIdTable"><span class="Identifier">LayeredIdTable</span></a> <span class="Other">=</span> <a href="#LayeredIdTableObj"><span class="Identifier">LayeredIdTableObj</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/layeredtable.nim#L21" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/layeredtable.nim#L21" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="LayeredIdTableObj">
<dt><pre><a href="#LayeredIdTableObj"><span class="Identifier">LayeredIdTableObj</span></a> {.<span class="Identifier">acyclic</span>.} <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">topLayer</span><span class="Operator">*</span><span class="Other">:</span> <a href="ast.html#TypeMapping"><span class="Identifier">TypeMapping</span></a> <span class="Comment">## the mappings on the current layer</span>
<span class="Identifier">nextLayer</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="#LayeredIdTableObj"><span class="Identifier">LayeredIdTableObj</span></a> <span class="Comment">## the parent type binding context, possibly `nil`</span>
<span class="Identifier">previousLen</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span> <span class="Comment">## total length of the bindings up to the parent layer,</span>
<span class="Comment">## used to track if new bindings were added</span></pre></dt>
<dd>
stack of type binding contexts implemented as a linked list
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/layeredtable.nim#L4" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/layeredtable.nim#L4" 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="currentLen-procs-all">
<div id="currentLen,LayeredIdTableObj">
<dt><pre><span class="Keyword">proc</span> <a href="#currentLen%2CLayeredIdTableObj"><span class="Identifier">currentLen</span></a><span class="Other">(</span><span class="Identifier">pt</span><span class="Other">:</span> <a href="#LayeredIdTable"><span class="Identifier">LayeredIdTable</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</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>
the sum of the cached total binding count of the parents and the current binding count, just used to track if bindings were added
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/layeredtable.nim#L32" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/layeredtable.nim#L32" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initLayeredTypeMap-procs-all">
<div id="initLayeredTypeMap,sinkTypeMapping">
<dt><pre><span class="Keyword">proc</span> <a href="#initLayeredTypeMap%2CsinkTypeMapping"><span class="Identifier">initLayeredTypeMap</span></a><span class="Other">(</span><span class="Identifier">pt</span><span class="Other">:</span> <span class="Identifier">sink</span> <a href="ast.html#TypeMapping"><span class="Identifier">TypeMapping</span></a> <span class="Other">=</span> <span class="Identifier">initTypeMapping</span><span class="Other">(</span><span class="Other">)</span><span class="Other">)</span><span class="Other">:</span> <a href="#LayeredIdTable"><span class="Identifier">LayeredIdTable</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/layeredtable.nim#L23" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/layeredtable.nim#L23" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="newTypeMapLayer-procs-all">
<div id="newTypeMapLayer,LayeredIdTableObj">
<dt><pre><span class="Keyword">proc</span> <a href="#newTypeMapLayer%2CLayeredIdTableObj"><span class="Identifier">newTypeMapLayer</span></a><span class="Other">(</span><span class="Identifier">pt</span><span class="Other">:</span> <a href="#LayeredIdTable"><span class="Identifier">LayeredIdTable</span></a><span class="Other">)</span><span class="Other">:</span> <a href="#LayeredIdTable"><span class="Identifier">LayeredIdTable</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/layeredtable.nim#L37" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/layeredtable.nim#L37" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="setToPreviousLayer-procs-all">
<div id="setToPreviousLayer,LayeredIdTableObj">
<dt><pre><span class="Keyword">proc</span> <a href="#setToPreviousLayer%2CLayeredIdTableObj"><span class="Identifier">setToPreviousLayer</span></a><span class="Other">(</span><span class="Identifier">pt</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#LayeredIdTable"><span class="Identifier">LayeredIdTable</span></a><span class="Other">)</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/layeredtable.nim#L45" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/layeredtable.nim#L45" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="shallowCopy-procs-all">
<div id="shallowCopy,LayeredIdTableObj">
<dt><pre><span class="Keyword">proc</span> <a href="#shallowCopy%2CLayeredIdTableObj"><span class="Identifier">shallowCopy</span></a><span class="Other">(</span><span class="Identifier">pt</span><span class="Other">:</span> <a href="#LayeredIdTable"><span class="Identifier">LayeredIdTable</span></a><span class="Other">)</span><span class="Other">:</span> <a href="#LayeredIdTable"><span class="Identifier">LayeredIdTable</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>
copies only the type bindings of the current layer, but not any parent layers, useful for write-only bindings
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/layeredtable.nim#L26" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/layeredtable.nim#L26" 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="pairs-iterators-all">
<div id="pairs.i,LayeredIdTableObj">
<dt><pre><span class="Keyword">iterator</span> <a href="#pairs.i%2CLayeredIdTableObj"><span class="Identifier">pairs</span></a><span class="Other">(</span><span class="Identifier">pt</span><span class="Other">:</span> <a href="#LayeredIdTable"><span class="Identifier">LayeredIdTable</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><a href="astdef.html#ItemId"><span class="Identifier">ItemId</span></a><span class="Other">,</span> <a href="astdef.html#PType"><span class="Identifier">PType</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/layeredtable.nim#L55" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/layeredtable.nim#L55" 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="lookup-templates-all">
<div id="lookup.t,LayeredIdTableObj,PType">
<dt><pre><span class="Keyword">template</span> <a href="#lookup.t%2CLayeredIdTableObj%2CPType"><span class="Identifier">lookup</span></a><span class="Other">(</span><span class="Identifier">typeMap</span><span class="Other">:</span> <a href="#LayeredIdTableObj"><span class="Identifier">LayeredIdTableObj</span></a><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/layeredtable.nim#L82" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/layeredtable.nim#L82" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="lookup.t,ref.LayeredIdTableObj,PType">
<dt><pre><span class="Keyword">template</span> <a href="#lookup.t%2Cref.LayeredIdTableObj%2CPType"><span class="Identifier">lookup</span></a><span class="Other">(</span><span class="Identifier">typeMap</span><span class="Other">:</span> <span class="Keyword">ref</span> <a href="#LayeredIdTableObj"><span class="Identifier">LayeredIdTableObj</span></a><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a></pre></dt>
<dd>
recursively looks up binding of <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> in all parent layers
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/layeredtable.nim#L72" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/layeredtable.nim#L72" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="put-templates-all">
<div id="put.t,LayeredIdTableObj,PType,PType">
<dt><pre><span class="Keyword">template</span> <a href="#put.t%2CLayeredIdTableObj%2CPType%2CPType"><span class="Identifier">put</span></a><span class="Other">(</span><span class="Identifier">typeMap</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#LayeredIdTable"><span class="Identifier">LayeredIdTable</span></a><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">,</span> <span class="Identifier">value</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span></pre></dt>
<dd>
binds <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">value</span></span></tt> only in current layer
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/layeredtable.nim#L88" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/layeredtable.nim#L88" 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: 2026-06-02 05:20:18 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

13
compiler/layeredtable.idx Normal file
View File

@@ -0,0 +1,13 @@
nimTitle layeredtable layeredtable.html module layeredtable 0
nim LayeredIdTableObj layeredtable.html#LayeredIdTableObj object LayeredIdTableObj 4
nim LayeredIdTable layeredtable.html#LayeredIdTable type LayeredIdTable 21
nim initLayeredTypeMap layeredtable.html#initLayeredTypeMap,sinkTypeMapping proc initLayeredTypeMap(pt: sink TypeMapping = initTypeMapping()): LayeredIdTable 23
nim shallowCopy layeredtable.html#shallowCopy,LayeredIdTableObj proc shallowCopy(pt: LayeredIdTable): LayeredIdTable 26
nim currentLen layeredtable.html#currentLen,LayeredIdTableObj proc currentLen(pt: LayeredIdTable): int 32
nim newTypeMapLayer layeredtable.html#newTypeMapLayer,LayeredIdTableObj proc newTypeMapLayer(pt: LayeredIdTable): LayeredIdTable 37
nim setToPreviousLayer layeredtable.html#setToPreviousLayer,LayeredIdTableObj proc setToPreviousLayer(pt: var LayeredIdTable) 45
nim pairs layeredtable.html#pairs.i,LayeredIdTableObj iterator pairs(pt: LayeredIdTable): (ItemId, PType) 55
nim lookup layeredtable.html#lookup.t,ref.LayeredIdTableObj,PType template lookup(typeMap: ref LayeredIdTableObj; key: PType): PType 72
nim lookup layeredtable.html#lookup.t,LayeredIdTableObj,PType template lookup(typeMap: LayeredIdTableObj; key: PType): PType 82
nim put layeredtable.html#put.t,LayeredIdTableObj,PType,PType template put(typeMap: var LayeredIdTable; key, value: PType) 88
nimgrp lookup layeredtable.html#lookup-templates-all template 72

664
compiler/lexer.html Normal file
View File

@@ -0,0 +1,664 @@
<?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>lexer</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">lexer</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="#ErrorHandler" title="ErrorHandler = proc (conf: ConfigRef; info: TLineInfo; msg: TMsgKind;
arg: string)">ErrorHandler</a></li>
<li><a class="reference" href="#Lexer" title="Lexer = object of TBaseLexer
fileIdx*: FileIndex
indentAhead*: int
currLineIndent*: int
errorHandler*: ErrorHandler
cache*: IdentCache
when defined(nimsuggest):
tokenEnd*: TLineInfo
previousTokenEnd*: TLineInfo
config*: ConfigRef">Lexer</a></li>
<li><a class="reference" href="#NumericalBase" title="NumericalBase = enum
base10, base2, base8, base16">NumericalBase</a></li>
<li><a class="reference" href="#Token" title="Token = object
tokType*: TokType
base*: NumericalBase
spacing*: set[TokenSpacing]
indent*: int
ident*: PIdent
iNumber*: BiggestInt
fNumber*: BiggestFloat
literal*: string
line*, col*: int
when defined(nimpretty):
offsetA*, offsetB*: int
commentOffsetA*, commentOffsetB*: int">Token</a></li>
<li><a class="reference" href="#TokenSpacing" title="TokenSpacing = enum
tsLeading, tsTrailing, tsEof">TokenSpacing</a></li>
<li><a class="reference" href="#TokType" title="TokType = enum
tkInvalid = &quot;tkInvalid&quot;, tkEof = &quot;[EOF]&quot;, tkSymbol = &quot;tkSymbol&quot;,
tkAddr = &quot;addr&quot;, tkAnd = &quot;and&quot;, tkAs = &quot;as&quot;, tkAsm = &quot;asm&quot;, tkBind = &quot;bind&quot;,
tkBlock = &quot;block&quot;, tkBreak = &quot;break&quot;, tkCase = &quot;case&quot;, tkCast = &quot;cast&quot;,
tkConcept = &quot;concept&quot;, tkConst = &quot;const&quot;, tkContinue = &quot;continue&quot;,
tkConverter = &quot;converter&quot;, tkDefer = &quot;defer&quot;, tkDiscard = &quot;discard&quot;,
tkDistinct = &quot;distinct&quot;, tkDiv = &quot;div&quot;, tkDo = &quot;do&quot;, tkElif = &quot;elif&quot;,
tkElse = &quot;else&quot;, tkEnd = &quot;end&quot;, tkEnum = &quot;enum&quot;, tkExcept = &quot;except&quot;,
tkExport = &quot;export&quot;, tkFinally = &quot;finally&quot;, tkFor = &quot;for&quot;, tkFrom = &quot;from&quot;,
tkFunc = &quot;func&quot;, tkIf = &quot;if&quot;, tkImport = &quot;import&quot;, tkIn = &quot;in&quot;,
tkInclude = &quot;include&quot;, tkInterface = &quot;interface&quot;, tkIs = &quot;is&quot;,
tkIsnot = &quot;isnot&quot;, tkIterator = &quot;iterator&quot;, tkLet = &quot;let&quot;, tkMacro = &quot;macro&quot;,
tkMethod = &quot;method&quot;, tkMixin = &quot;mixin&quot;, tkMod = &quot;mod&quot;, tkNil = &quot;nil&quot;,
tkNot = &quot;not&quot;, tkNotin = &quot;notin&quot;, tkObject = &quot;object&quot;, tkOf = &quot;of&quot;,
tkOr = &quot;or&quot;, tkOut = &quot;out&quot;, tkProc = &quot;proc&quot;, tkPtr = &quot;ptr&quot;, tkRaise = &quot;raise&quot;,
tkRef = &quot;ref&quot;, tkReturn = &quot;return&quot;, tkShl = &quot;shl&quot;, tkShr = &quot;shr&quot;,
tkStatic = &quot;static&quot;, tkTemplate = &quot;template&quot;, tkTry = &quot;try&quot;,
tkTuple = &quot;tuple&quot;, tkType = &quot;type&quot;, tkUsing = &quot;using&quot;, tkVar = &quot;var&quot;,
tkWhen = &quot;when&quot;, tkWhile = &quot;while&quot;, tkXor = &quot;xor&quot;, tkYield = &quot;yield&quot;,
tkIntLit = &quot;tkIntLit&quot;, tkInt8Lit = &quot;tkInt8Lit&quot;, tkInt16Lit = &quot;tkInt16Lit&quot;,
tkInt32Lit = &quot;tkInt32Lit&quot;, tkInt64Lit = &quot;tkInt64Lit&quot;, tkUIntLit = &quot;tkUIntLit&quot;,
tkUInt8Lit = &quot;tkUInt8Lit&quot;, tkUInt16Lit = &quot;tkUInt16Lit&quot;,
tkUInt32Lit = &quot;tkUInt32Lit&quot;, tkUInt64Lit = &quot;tkUInt64Lit&quot;,
tkFloatLit = &quot;tkFloatLit&quot;, tkFloat32Lit = &quot;tkFloat32Lit&quot;,
tkFloat64Lit = &quot;tkFloat64Lit&quot;, tkFloat128Lit = &quot;tkFloat128Lit&quot;,
tkStrLit = &quot;tkStrLit&quot;, tkRStrLit = &quot;tkRStrLit&quot;,
tkTripleStrLit = &quot;tkTripleStrLit&quot;, tkGStrLit = &quot;tkGStrLit&quot;,
tkGTripleStrLit = &quot;tkGTripleStrLit&quot;, tkCharLit = &quot;tkCharLit&quot;,
tkCustomLit = &quot;tkCustomLit&quot;, tkParLe = &quot;(&quot;, tkParRi = &quot;)&quot;, tkBracketLe = &quot;[&quot;,
tkBracketRi = &quot;]&quot;, tkCurlyLe = &quot;{&quot;, tkCurlyRi = &quot;}&quot;, tkBracketDotLe = &quot;[.&quot;,
tkBracketDotRi = &quot;.]&quot;, tkCurlyDotLe = &quot;{.&quot;, tkCurlyDotRi = &quot;.}&quot;,
tkParDotLe = &quot;(.&quot;, tkParDotRi = &quot;.)&quot;, tkComma = &quot;,&quot;, tkSemiColon = &quot;;&quot;,
tkColon = &quot;:&quot;, tkColonColon = &quot;::&quot;, tkEquals = &quot;=&quot;, tkDot = &quot;.&quot;,
tkDotDot = &quot;..&quot;, tkBracketLeColon = &quot;[:&quot;, tkOpr, tkComment, tkAccent = &quot;`&quot;,
tkSpaces, tkInfixOpr, tkPrefixOpr, tkPostfixOpr, tkHideableStart,
tkHideableEnd">TokType</a></li>
<li><a class="reference" href="#TokTypes" title="TokTypes = set[TokType]">TokTypes</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="#numChars" title="numChars: set[char] = {'0'..'9', 'a'..'z', 'A'..'Z'}">numChars</a></li>
<li><a class="reference" href="#OpChars" title="OpChars: set[char] = {'+', '-', '*', '/', '\\', '&lt;', '&gt;', '!', '?', '^', '.',
'|', '=', '%', '&amp;', '$', '@', '~', ':'}">OpChars</a></li>
<li><a class="reference" href="#SymChars" title="SymChars: set[char] = {'a'..'z', 'A'..'Z', '0'..'9', '\x80'..'\xFF'}">SymChars</a></li>
<li><a class="reference" href="#SymStartChars" title="SymStartChars: set[char] = {'a'..'z', 'A'..'Z', '\x80'..'\xFF'}">SymStartChars</a></li>
<li><a class="reference" href="#tokKeywordHigh" title="tokKeywordHigh = tkYield">tokKeywordHigh</a></li>
<li><a class="reference" href="#tokKeywordLow" title="tokKeywordLow = tkAddr">tokKeywordLow</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="#%24%2CToken" title="`$`(tok: Token): string">`$`(tok: Token): string</a></li>
</ul>
<ul class="simple nested-toc-section">closeLexer
<li><a class="reference" href="#closeLexer%2CLexer" title="closeLexer(lex: var Lexer)">closeLexer(lex: var Lexer)</a></li>
</ul>
<ul class="simple nested-toc-section">getIndentWidth
<li><a class="reference" href="#getIndentWidth%2CFileIndex%2CPLLStream%2CIdentCache%2CConfigRef" title="getIndentWidth(fileIdx: FileIndex; inputstream: PLLStream; cache: IdentCache;
config: ConfigRef): int">getIndentWidth(fileIdx: FileIndex; inputstream: PLLStream; cache: IdentCache;
config: ConfigRef): int</a></li>
</ul>
<ul class="simple nested-toc-section">getLineInfo
<li><a class="reference" href="#getLineInfo%2CLexer%2CToken" title="getLineInfo(L: Lexer; tok: Token): TLineInfo">getLineInfo(L: Lexer; tok: Token): TLineInfo</a></li>
</ul>
<ul class="simple nested-toc-section">getPrecedence
<li><a class="reference" href="#getPrecedence%2CPIdent" title="getPrecedence(ident: PIdent): int">getPrecedence(ident: PIdent): int</a></li>
<li><a class="reference" href="#getPrecedence%2CToken" title="getPrecedence(tok: Token): int">getPrecedence(tok: Token): int</a></li>
</ul>
<ul class="simple nested-toc-section">isKeyword
<li><a class="reference" href="#isKeyword%2CTokType" title="isKeyword(kind: TokType): bool">isKeyword(kind: TokType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">isNimIdentifier
<li><a class="reference" href="#isNimIdentifier%2Cstring" title="isNimIdentifier(s: string): bool">isNimIdentifier(s: string): bool</a></li>
</ul>
<ul class="simple nested-toc-section">lexMessage
<li><a class="reference" href="#lexMessage%2CLexer%2CTMsgKind%2Cstring" title="lexMessage(L: Lexer; msg: TMsgKind; arg = &quot;&quot;)">lexMessage(L: Lexer; msg: TMsgKind; arg = &quot;&quot;)</a></li>
</ul>
<ul class="simple nested-toc-section">lexMessageTok
<li><a class="reference" href="#lexMessageTok%2CLexer%2CTMsgKind%2CToken%2Cstring" title="lexMessageTok(L: Lexer; msg: TMsgKind; tok: Token; arg = &quot;&quot;)">lexMessageTok(L: Lexer; msg: TMsgKind; tok: Token; arg = &quot;&quot;)</a></li>
</ul>
<ul class="simple nested-toc-section">openLexer
<li><a class="reference" href="#openLexer%2CLexer%2CFileIndex%2CPLLStream%2CIdentCache%2CConfigRef" title="openLexer(lex: var Lexer; fileIdx: FileIndex; inputstream: PLLStream;
cache: IdentCache; config: ConfigRef)">openLexer(lex: var Lexer; fileIdx: FileIndex; inputstream: PLLStream;
cache: IdentCache; config: ConfigRef)</a></li>
<li><a class="reference" href="#openLexer%2CLexer%2CAbsoluteFile%2CPLLStream%2CIdentCache%2CConfigRef" title="openLexer(lex: var Lexer; filename: AbsoluteFile; inputstream: PLLStream;
cache: IdentCache; config: ConfigRef)">openLexer(lex: var Lexer; filename: AbsoluteFile; inputstream: PLLStream;
cache: IdentCache; config: ConfigRef)</a></li>
</ul>
<ul class="simple nested-toc-section">prettyTok
<li><a class="reference" href="#prettyTok%2CToken" title="prettyTok(tok: Token): string">prettyTok(tok: Token): string</a></li>
</ul>
<ul class="simple nested-toc-section">printTok
<li><a class="reference" href="#printTok%2CConfigRef%2CToken" title="printTok(conf: ConfigRef; tok: Token)">printTok(conf: ConfigRef; tok: Token)</a></li>
</ul>
<ul class="simple nested-toc-section">rawGetTok
<li><a class="reference" href="#rawGetTok%2CLexer%2CToken" title="rawGetTok(L: var Lexer; tok: var Token)">rawGetTok(L: var Lexer; tok: var Token)</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/lexer.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="options.html">options</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="platform.html">platform</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="nimlexbase.html">nimlexbase</a>, <a class="reference external" href="llstream.html">llstream</a>, <a class="reference external" href="wordrecg.html">wordrecg</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="pathutils.html">pathutils</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="ErrorHandler">
<dt><pre><a href="#ErrorHandler"><span class="Identifier">ErrorHandler</span></a> <span class="Other">=</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">msg</span><span class="Other">:</span> <a href="lineinfos.html#TMsgKind"><span class="Identifier">TMsgKind</span></a><span class="Other">;</span>
<span class="Identifier">arg</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lexer.nim#L118" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L118" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="Lexer">
<dt><pre><a href="#Lexer"><span class="Identifier">Lexer</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="nimlexbase.html#TBaseLexer"><span class="Identifier">TBaseLexer</span></a>
<span class="Identifier">fileIdx</span><span class="Operator">*</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a>
<span class="Identifier">indentAhead</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">currLineIndent</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">errorHandler</span><span class="Operator">*</span><span class="Other">:</span> <a href="#ErrorHandler"><span class="Identifier">ErrorHandler</span></a>
<span class="Identifier">cache</span><span class="Operator">*</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a>
<span class="Keyword">when</span> <span class="Identifier">defined</span><span class="Other">(</span><span class="Identifier">nimsuggest</span><span class="Other">)</span><span class="Other">:</span>
<span class="Identifier">tokenEnd</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">TLineInfo</span>
<span class="Identifier">previousTokenEnd</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">TLineInfo</span>
<span class="Identifier">config</span><span class="Operator">*</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lexer.nim#L119" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L119" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="NumericalBase">
<dt><pre><a href="#NumericalBase"><span class="Identifier">NumericalBase</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">base10</span><span class="Other">,</span> <span class="Identifier">base2</span><span class="Other">,</span> <span class="Identifier">base8</span><span class="Other">,</span> <span class="Identifier">base16</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lexer.nim#L92" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L92" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="Token">
<dt><pre><a href="#Token"><span class="Identifier">Token</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">tokType</span><span class="Operator">*</span><span class="Other">:</span> <a href="#TokType"><span class="Identifier">TokType</span></a>
<span class="Identifier">base</span><span class="Operator">*</span><span class="Other">:</span> <a href="#NumericalBase"><span class="Identifier">NumericalBase</span></a>
<span class="Identifier">spacing</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><a href="#TokenSpacing"><span class="Identifier">TokenSpacing</span></a><span class="Other">]</span>
<span class="Identifier">indent</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">ident</span><span class="Operator">*</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a>
<span class="Identifier">iNumber</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">BiggestInt</span>
<span class="Identifier">fNumber</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">BiggestFloat</span>
<span class="Identifier">literal</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">string</span>
<span class="Identifier">line</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">col</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Keyword">when</span> <span class="Identifier">defined</span><span class="Other">(</span><span class="Identifier">nimpretty</span><span class="Other">)</span><span class="Other">:</span>
<span class="Identifier">offsetA</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">offsetB</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">commentOffsetA</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">commentOffsetB</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lexer.nim#L100" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L100" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TokenSpacing">
<dt><pre><a href="#TokenSpacing"><span class="Identifier">TokenSpacing</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">tsLeading</span><span class="Other">,</span> <span class="Identifier">tsTrailing</span><span class="Other">,</span> <span class="Identifier">tsEof</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lexer.nim#L97" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L97" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TokType">
<dt><pre><a href="#TokType"><span class="Identifier">TokType</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">tkInvalid</span> <span class="Other">=</span> <span class="StringLit">&quot;tkInvalid&quot;</span><span class="Other">,</span> <span class="Identifier">tkEof</span> <span class="Other">=</span> <span class="StringLit">&quot;[EOF]&quot;</span><span class="Other">,</span> <span class="Identifier">tkSymbol</span> <span class="Other">=</span> <span class="StringLit">&quot;tkSymbol&quot;</span><span class="Other">,</span>
<span class="Identifier">tkAddr</span> <span class="Other">=</span> <span class="StringLit">&quot;addr&quot;</span><span class="Other">,</span> <span class="Identifier">tkAnd</span> <span class="Other">=</span> <span class="StringLit">&quot;and&quot;</span><span class="Other">,</span> <span class="Identifier">tkAs</span> <span class="Other">=</span> <span class="StringLit">&quot;as&quot;</span><span class="Other">,</span> <span class="Identifier">tkAsm</span> <span class="Other">=</span> <span class="StringLit">&quot;asm&quot;</span><span class="Other">,</span> <span class="Identifier">tkBind</span> <span class="Other">=</span> <span class="StringLit">&quot;bind&quot;</span><span class="Other">,</span>
<span class="Identifier">tkBlock</span> <span class="Other">=</span> <span class="StringLit">&quot;block&quot;</span><span class="Other">,</span> <span class="Identifier">tkBreak</span> <span class="Other">=</span> <span class="StringLit">&quot;break&quot;</span><span class="Other">,</span> <span class="Identifier">tkCase</span> <span class="Other">=</span> <span class="StringLit">&quot;case&quot;</span><span class="Other">,</span> <span class="Identifier">tkCast</span> <span class="Other">=</span> <span class="StringLit">&quot;cast&quot;</span><span class="Other">,</span>
<span class="Identifier">tkConcept</span> <span class="Other">=</span> <span class="StringLit">&quot;concept&quot;</span><span class="Other">,</span> <span class="Identifier">tkConst</span> <span class="Other">=</span> <span class="StringLit">&quot;const&quot;</span><span class="Other">,</span> <span class="Identifier">tkContinue</span> <span class="Other">=</span> <span class="StringLit">&quot;continue&quot;</span><span class="Other">,</span>
<span class="Identifier">tkConverter</span> <span class="Other">=</span> <span class="StringLit">&quot;converter&quot;</span><span class="Other">,</span> <span class="Identifier">tkDefer</span> <span class="Other">=</span> <span class="StringLit">&quot;defer&quot;</span><span class="Other">,</span> <span class="Identifier">tkDiscard</span> <span class="Other">=</span> <span class="StringLit">&quot;discard&quot;</span><span class="Other">,</span>
<span class="Identifier">tkDistinct</span> <span class="Other">=</span> <span class="StringLit">&quot;distinct&quot;</span><span class="Other">,</span> <span class="Identifier">tkDiv</span> <span class="Other">=</span> <span class="StringLit">&quot;div&quot;</span><span class="Other">,</span> <span class="Identifier">tkDo</span> <span class="Other">=</span> <span class="StringLit">&quot;do&quot;</span><span class="Other">,</span> <span class="Identifier">tkElif</span> <span class="Other">=</span> <span class="StringLit">&quot;elif&quot;</span><span class="Other">,</span>
<span class="Identifier">tkElse</span> <span class="Other">=</span> <span class="StringLit">&quot;else&quot;</span><span class="Other">,</span> <span class="Identifier">tkEnd</span> <span class="Other">=</span> <span class="StringLit">&quot;end&quot;</span><span class="Other">,</span> <span class="Identifier">tkEnum</span> <span class="Other">=</span> <span class="StringLit">&quot;enum&quot;</span><span class="Other">,</span> <span class="Identifier">tkExcept</span> <span class="Other">=</span> <span class="StringLit">&quot;except&quot;</span><span class="Other">,</span>
<span class="Identifier">tkExport</span> <span class="Other">=</span> <span class="StringLit">&quot;export&quot;</span><span class="Other">,</span> <span class="Identifier">tkFinally</span> <span class="Other">=</span> <span class="StringLit">&quot;finally&quot;</span><span class="Other">,</span> <span class="Identifier">tkFor</span> <span class="Other">=</span> <span class="StringLit">&quot;for&quot;</span><span class="Other">,</span> <span class="Identifier">tkFrom</span> <span class="Other">=</span> <span class="StringLit">&quot;from&quot;</span><span class="Other">,</span>
<span class="Identifier">tkFunc</span> <span class="Other">=</span> <span class="StringLit">&quot;func&quot;</span><span class="Other">,</span> <span class="Identifier">tkIf</span> <span class="Other">=</span> <span class="StringLit">&quot;if&quot;</span><span class="Other">,</span> <span class="Identifier">tkImport</span> <span class="Other">=</span> <span class="StringLit">&quot;import&quot;</span><span class="Other">,</span> <span class="Identifier">tkIn</span> <span class="Other">=</span> <span class="StringLit">&quot;in&quot;</span><span class="Other">,</span>
<span class="Identifier">tkInclude</span> <span class="Other">=</span> <span class="StringLit">&quot;include&quot;</span><span class="Other">,</span> <span class="Identifier">tkInterface</span> <span class="Other">=</span> <span class="StringLit">&quot;interface&quot;</span><span class="Other">,</span> <span class="Identifier">tkIs</span> <span class="Other">=</span> <span class="StringLit">&quot;is&quot;</span><span class="Other">,</span>
<span class="Identifier">tkIsnot</span> <span class="Other">=</span> <span class="StringLit">&quot;isnot&quot;</span><span class="Other">,</span> <span class="Identifier">tkIterator</span> <span class="Other">=</span> <span class="StringLit">&quot;iterator&quot;</span><span class="Other">,</span> <span class="Identifier">tkLet</span> <span class="Other">=</span> <span class="StringLit">&quot;let&quot;</span><span class="Other">,</span> <span class="Identifier">tkMacro</span> <span class="Other">=</span> <span class="StringLit">&quot;macro&quot;</span><span class="Other">,</span>
<span class="Identifier">tkMethod</span> <span class="Other">=</span> <span class="StringLit">&quot;method&quot;</span><span class="Other">,</span> <span class="Identifier">tkMixin</span> <span class="Other">=</span> <span class="StringLit">&quot;mixin&quot;</span><span class="Other">,</span> <span class="Identifier">tkMod</span> <span class="Other">=</span> <span class="StringLit">&quot;mod&quot;</span><span class="Other">,</span> <span class="Identifier">tkNil</span> <span class="Other">=</span> <span class="StringLit">&quot;nil&quot;</span><span class="Other">,</span>
<span class="Identifier">tkNot</span> <span class="Other">=</span> <span class="StringLit">&quot;not&quot;</span><span class="Other">,</span> <span class="Identifier">tkNotin</span> <span class="Other">=</span> <span class="StringLit">&quot;notin&quot;</span><span class="Other">,</span> <span class="Identifier">tkObject</span> <span class="Other">=</span> <span class="StringLit">&quot;object&quot;</span><span class="Other">,</span> <span class="Identifier">tkOf</span> <span class="Other">=</span> <span class="StringLit">&quot;of&quot;</span><span class="Other">,</span>
<span class="Identifier">tkOr</span> <span class="Other">=</span> <span class="StringLit">&quot;or&quot;</span><span class="Other">,</span> <span class="Identifier">tkOut</span> <span class="Other">=</span> <span class="StringLit">&quot;out&quot;</span><span class="Other">,</span> <span class="Identifier">tkProc</span> <span class="Other">=</span> <span class="StringLit">&quot;proc&quot;</span><span class="Other">,</span> <span class="Identifier">tkPtr</span> <span class="Other">=</span> <span class="StringLit">&quot;ptr&quot;</span><span class="Other">,</span> <span class="Identifier">tkRaise</span> <span class="Other">=</span> <span class="StringLit">&quot;raise&quot;</span><span class="Other">,</span>
<span class="Identifier">tkRef</span> <span class="Other">=</span> <span class="StringLit">&quot;ref&quot;</span><span class="Other">,</span> <span class="Identifier">tkReturn</span> <span class="Other">=</span> <span class="StringLit">&quot;return&quot;</span><span class="Other">,</span> <span class="Identifier">tkShl</span> <span class="Other">=</span> <span class="StringLit">&quot;shl&quot;</span><span class="Other">,</span> <span class="Identifier">tkShr</span> <span class="Other">=</span> <span class="StringLit">&quot;shr&quot;</span><span class="Other">,</span>
<span class="Identifier">tkStatic</span> <span class="Other">=</span> <span class="StringLit">&quot;static&quot;</span><span class="Other">,</span> <span class="Identifier">tkTemplate</span> <span class="Other">=</span> <span class="StringLit">&quot;template&quot;</span><span class="Other">,</span> <span class="Identifier">tkTry</span> <span class="Other">=</span> <span class="StringLit">&quot;try&quot;</span><span class="Other">,</span>
<span class="Identifier">tkTuple</span> <span class="Other">=</span> <span class="StringLit">&quot;tuple&quot;</span><span class="Other">,</span> <span class="Identifier">tkType</span> <span class="Other">=</span> <span class="StringLit">&quot;type&quot;</span><span class="Other">,</span> <span class="Identifier">tkUsing</span> <span class="Other">=</span> <span class="StringLit">&quot;using&quot;</span><span class="Other">,</span> <span class="Identifier">tkVar</span> <span class="Other">=</span> <span class="StringLit">&quot;var&quot;</span><span class="Other">,</span>
<span class="Identifier">tkWhen</span> <span class="Other">=</span> <span class="StringLit">&quot;when&quot;</span><span class="Other">,</span> <span class="Identifier">tkWhile</span> <span class="Other">=</span> <span class="StringLit">&quot;while&quot;</span><span class="Other">,</span> <span class="Identifier">tkXor</span> <span class="Other">=</span> <span class="StringLit">&quot;xor&quot;</span><span class="Other">,</span> <span class="Identifier">tkYield</span> <span class="Other">=</span> <span class="StringLit">&quot;yield&quot;</span><span class="Other">,</span>
<span class="Identifier">tkIntLit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkIntLit&quot;</span><span class="Other">,</span> <span class="Identifier">tkInt8Lit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkInt8Lit&quot;</span><span class="Other">,</span> <span class="Identifier">tkInt16Lit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkInt16Lit&quot;</span><span class="Other">,</span>
<span class="Identifier">tkInt32Lit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkInt32Lit&quot;</span><span class="Other">,</span> <span class="Identifier">tkInt64Lit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkInt64Lit&quot;</span><span class="Other">,</span> <span class="Identifier">tkUIntLit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkUIntLit&quot;</span><span class="Other">,</span>
<span class="Identifier">tkUInt8Lit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkUInt8Lit&quot;</span><span class="Other">,</span> <span class="Identifier">tkUInt16Lit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkUInt16Lit&quot;</span><span class="Other">,</span>
<span class="Identifier">tkUInt32Lit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkUInt32Lit&quot;</span><span class="Other">,</span> <span class="Identifier">tkUInt64Lit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkUInt64Lit&quot;</span><span class="Other">,</span>
<span class="Identifier">tkFloatLit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkFloatLit&quot;</span><span class="Other">,</span> <span class="Identifier">tkFloat32Lit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkFloat32Lit&quot;</span><span class="Other">,</span>
<span class="Identifier">tkFloat64Lit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkFloat64Lit&quot;</span><span class="Other">,</span> <span class="Identifier">tkFloat128Lit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkFloat128Lit&quot;</span><span class="Other">,</span>
<span class="Identifier">tkStrLit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkStrLit&quot;</span><span class="Other">,</span> <span class="Identifier">tkRStrLit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkRStrLit&quot;</span><span class="Other">,</span>
<span class="Identifier">tkTripleStrLit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkTripleStrLit&quot;</span><span class="Other">,</span> <span class="Identifier">tkGStrLit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkGStrLit&quot;</span><span class="Other">,</span>
<span class="Identifier">tkGTripleStrLit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkGTripleStrLit&quot;</span><span class="Other">,</span> <span class="Identifier">tkCharLit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkCharLit&quot;</span><span class="Other">,</span>
<span class="Identifier">tkCustomLit</span> <span class="Other">=</span> <span class="StringLit">&quot;tkCustomLit&quot;</span><span class="Other">,</span> <span class="Identifier">tkParLe</span> <span class="Other">=</span> <span class="StringLit">&quot;(&quot;</span><span class="Other">,</span> <span class="Identifier">tkParRi</span> <span class="Other">=</span> <span class="StringLit">&quot;)&quot;</span><span class="Other">,</span> <span class="Identifier">tkBracketLe</span> <span class="Other">=</span> <span class="StringLit">&quot;[&quot;</span><span class="Other">,</span>
<span class="Identifier">tkBracketRi</span> <span class="Other">=</span> <span class="StringLit">&quot;]&quot;</span><span class="Other">,</span> <span class="Identifier">tkCurlyLe</span> <span class="Other">=</span> <span class="StringLit">&quot;{&quot;</span><span class="Other">,</span> <span class="Identifier">tkCurlyRi</span> <span class="Other">=</span> <span class="StringLit">&quot;}&quot;</span><span class="Other">,</span> <span class="Identifier">tkBracketDotLe</span> <span class="Other">=</span> <span class="StringLit">&quot;[.&quot;</span><span class="Other">,</span>
<span class="Identifier">tkBracketDotRi</span> <span class="Other">=</span> <span class="StringLit">&quot;.]&quot;</span><span class="Other">,</span> <span class="Identifier">tkCurlyDotLe</span> <span class="Other">=</span> <span class="StringLit">&quot;{.&quot;</span><span class="Other">,</span> <span class="Identifier">tkCurlyDotRi</span> <span class="Other">=</span> <span class="StringLit">&quot;.}&quot;</span><span class="Other">,</span>
<span class="Identifier">tkParDotLe</span> <span class="Other">=</span> <span class="StringLit">&quot;(.&quot;</span><span class="Other">,</span> <span class="Identifier">tkParDotRi</span> <span class="Other">=</span> <span class="StringLit">&quot;.)&quot;</span><span class="Other">,</span> <span class="Identifier">tkComma</span> <span class="Other">=</span> <span class="StringLit">&quot;,&quot;</span><span class="Other">,</span> <span class="Identifier">tkSemiColon</span> <span class="Other">=</span> <span class="StringLit">&quot;;&quot;</span><span class="Other">,</span>
<span class="Identifier">tkColon</span> <span class="Other">=</span> <span class="StringLit">&quot;:&quot;</span><span class="Other">,</span> <span class="Identifier">tkColonColon</span> <span class="Other">=</span> <span class="StringLit">&quot;::&quot;</span><span class="Other">,</span> <span class="Identifier">tkEquals</span> <span class="Other">=</span> <span class="StringLit">&quot;=&quot;</span><span class="Other">,</span> <span class="Identifier">tkDot</span> <span class="Other">=</span> <span class="StringLit">&quot;.&quot;</span><span class="Other">,</span>
<span class="Identifier">tkDotDot</span> <span class="Other">=</span> <span class="StringLit">&quot;..&quot;</span><span class="Other">,</span> <span class="Identifier">tkBracketLeColon</span> <span class="Other">=</span> <span class="StringLit">&quot;[:&quot;</span><span class="Other">,</span> <span class="Identifier">tkOpr</span><span class="Other">,</span> <span class="Identifier">tkComment</span><span class="Other">,</span> <span class="Identifier">tkAccent</span> <span class="Other">=</span> <span class="StringLit">&quot;`&quot;</span><span class="Other">,</span>
<span class="Identifier">tkSpaces</span><span class="Other">,</span> <span class="Identifier">tkInfixOpr</span><span class="Other">,</span> <span class="Identifier">tkPrefixOpr</span><span class="Other">,</span> <span class="Identifier">tkPostfixOpr</span><span class="Other">,</span> <span class="Identifier">tkHideableStart</span><span class="Other">,</span>
<span class="Identifier">tkHideableEnd</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lexer.nim#L38" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L38" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TokTypes">
<dt><pre><a href="#TokTypes"><span class="Identifier">TokTypes</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="#TokType"><span class="Identifier">TokType</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lexer.nim#L81" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L81" 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="numChars">
<dt><pre><a href="#numChars"><span class="Identifier">numChars</span></a><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><span class="Identifier">char</span><span class="Other">]</span> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'0'</span><span class="Other">..</span><span class="CharLit">'9'</span><span class="Other">,</span> <span class="CharLit">'a'</span><span class="Other">..</span><span class="CharLit">'z'</span><span class="Other">,</span> <span class="CharLit">'A'</span><span class="Other">..</span><span class="CharLit">'Z'</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lexer.nim#L28" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L28" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="OpChars">
<dt><pre><a href="#OpChars"><span class="Identifier">OpChars</span></a><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><span class="Identifier">char</span><span class="Other">]</span> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'+'</span><span class="Other">,</span> <span class="CharLit">'-'</span><span class="Other">,</span> <span class="CharLit">'*'</span><span class="Other">,</span> <span class="CharLit">'/'</span><span class="Other">,</span> <span class="CharLit">'\\'</span><span class="Other">,</span> <span class="CharLit">'&lt;'</span><span class="Other">,</span> <span class="CharLit">'&gt;'</span><span class="Other">,</span> <span class="CharLit">'!'</span><span class="Other">,</span> <span class="CharLit">'?'</span><span class="Other">,</span> <span class="CharLit">'^'</span><span class="Other">,</span> <span class="CharLit">'.'</span><span class="Other">,</span>
<span class="CharLit">'|'</span><span class="Other">,</span> <span class="CharLit">'='</span><span class="Other">,</span> <span class="CharLit">'%'</span><span class="Other">,</span> <span class="CharLit">'&amp;'</span><span class="Other">,</span> <span class="CharLit">'$'</span><span class="Other">,</span> <span class="CharLit">'@'</span><span class="Other">,</span> <span class="CharLit">'~'</span><span class="Other">,</span> <span class="CharLit">':'</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lexer.nim#L31" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L31" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="SymChars">
<dt><pre><a href="#SymChars"><span class="Identifier">SymChars</span></a><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><span class="Identifier">char</span><span class="Other">]</span> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'a'</span><span class="Other">..</span><span class="CharLit">'z'</span><span class="Other">,</span> <span class="CharLit">'A'</span><span class="Other">..</span><span class="CharLit">'Z'</span><span class="Other">,</span> <span class="CharLit">'0'</span><span class="Other">..</span><span class="CharLit">'9'</span><span class="Other">,</span> <span class="CharLit">'\x80'</span><span class="Other">..</span><span class="CharLit">'\xFF'</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lexer.nim#L29" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L29" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="SymStartChars">
<dt><pre><a href="#SymStartChars"><span class="Identifier">SymStartChars</span></a><span class="Other">:</span> <span class="Identifier">set</span><span class="Other">[</span><span class="Identifier">char</span><span class="Other">]</span> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'a'</span><span class="Other">..</span><span class="CharLit">'z'</span><span class="Other">,</span> <span class="CharLit">'A'</span><span class="Other">..</span><span class="CharLit">'Z'</span><span class="Other">,</span> <span class="CharLit">'\x80'</span><span class="Other">..</span><span class="CharLit">'\xFF'</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lexer.nim#L30" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L30" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tokKeywordHigh">
<dt><pre><a href="#tokKeywordHigh"><span class="Identifier">tokKeywordHigh</span></a> <span class="Other">=</span> <span class="DecNumber">tkYield</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lexer.nim#L89" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L89" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="tokKeywordLow">
<dt><pre><a href="#tokKeywordLow"><span class="Identifier">tokKeywordLow</span></a> <span class="Other">=</span> <span class="DecNumber">tkAddr</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lexer.nim#L88" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L88" 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="$,Token">
<dt><pre><span class="Keyword">proc</span> <a href="#%24%2CToken"><span class="Identifier">`$`</span></a><span class="Other">(</span><span class="Identifier">tok</span><span class="Other">:</span> <a href="#Token"><span class="Identifier">Token</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/lexer.nim#L158" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L158" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="closeLexer-procs-all">
<div id="closeLexer,Lexer">
<dt><pre><span class="Keyword">proc</span> <a href="#closeLexer%2CLexer"><span class="Identifier">closeLexer</span></a><span class="Other">(</span><span class="Identifier">lex</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#Lexer"><span class="Identifier">Lexer</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="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/lexer.nim#L194" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L194" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getIndentWidth-procs-all">
<div id="getIndentWidth,FileIndex,PLLStream,IdentCache,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#getIndentWidth%2CFileIndex%2CPLLStream%2CIdentCache%2CConfigRef"><span class="Identifier">getIndentWidth</span></a><span class="Other">(</span><span class="Identifier">fileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">;</span> <span class="Identifier">inputstream</span><span class="Other">:</span> <a href="llstream.html#PLLStream"><span class="Identifier">PLLStream</span></a><span class="Other">;</span>
<span class="Identifier">cache</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span> <span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</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="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/lexer.nim#L1380" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L1380" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getLineInfo-procs-all">
<div id="getLineInfo,Lexer,Token">
<dt><pre><span class="Keyword">proc</span> <a href="#getLineInfo%2CLexer%2CToken"><span class="Identifier">getLineInfo</span></a><span class="Other">(</span><span class="Identifier">L</span><span class="Other">:</span> <a href="#Lexer"><span class="Identifier">Lexer</span></a><span class="Other">;</span> <span class="Identifier">tok</span><span class="Other">:</span> <a href="#Token"><span class="Identifier">Token</span></a><span class="Other">)</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</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/lexer.nim#L133" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L133" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="getPrecedence-procs-all">
<div id="getPrecedence,PIdent">
<dt><pre><span class="Keyword">proc</span> <a href="#getPrecedence%2CPIdent"><span class="Identifier">getPrecedence</span></a><span class="Other">(</span><span class="Identifier">ident</span><span class="Other">:</span> <a href="idents.html#PIdent"><span class="Identifier">PIdent</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</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>
assumes ident is binary operator already
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lexer.nim#L1395" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L1395" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="getPrecedence,Token">
<dt><pre><span class="Keyword">proc</span> <a href="#getPrecedence%2CToken"><span class="Identifier">getPrecedence</span></a><span class="Other">(</span><span class="Identifier">tok</span><span class="Other">:</span> <a href="#Token"><span class="Identifier">Token</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</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>
Calculates the precedence of the given token.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lexer.nim#L970" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L970" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isKeyword-procs-all">
<div id="isKeyword,TokType">
<dt><pre><span class="Keyword">proc</span> <a href="#isKeyword%2CTokType"><span class="Identifier">isKeyword</span></a><span class="Other">(</span><span class="Identifier">kind</span><span class="Other">:</span> <a href="#TokType"><span class="Identifier">TokType</span></a><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/lexer.nim#L141" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L141" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isNimIdentifier-procs-all">
<div id="isNimIdentifier,string">
<dt><pre><span class="Keyword">proc</span> <a href="#isNimIdentifier%2Cstring"><span class="Identifier">isNimIdentifier</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Identifier">string</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/lexer.nim#L146" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L146" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="lexMessage-procs-all">
<div id="lexMessage,Lexer,TMsgKind,string">
<dt><pre><span class="Keyword">proc</span> <a href="#lexMessage%2CLexer%2CTMsgKind%2Cstring"><span class="Identifier">lexMessage</span></a><span class="Other">(</span><span class="Identifier">L</span><span class="Other">:</span> <a href="#Lexer"><span class="Identifier">Lexer</span></a><span class="Other">;</span> <span class="Identifier">msg</span><span class="Other">:</span> <a href="lineinfos.html#TMsgKind"><span class="Identifier">TMsgKind</span></a><span class="Other">;</span> <span class="Identifier">arg</span> <span class="Other">=</span> <span class="StringLit">&quot;&quot;</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="Identifier">Exception</span><span class="Other">,</span>
<span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/lexer.nim#L208" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L208" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="lexMessageTok-procs-all">
<div id="lexMessageTok,Lexer,TMsgKind,Token,string">
<dt><pre><span class="Keyword">proc</span> <a href="#lexMessageTok%2CLexer%2CTMsgKind%2CToken%2Cstring"><span class="Identifier">lexMessageTok</span></a><span class="Other">(</span><span class="Identifier">L</span><span class="Other">:</span> <a href="#Lexer"><span class="Identifier">Lexer</span></a><span class="Other">;</span> <span class="Identifier">msg</span><span class="Other">:</span> <a href="lineinfos.html#TMsgKind"><span class="Identifier">TMsgKind</span></a><span class="Other">;</span> <span class="Identifier">tok</span><span class="Other">:</span> <a href="#Token"><span class="Identifier">Token</span></a><span class="Other">;</span> <span class="Identifier">arg</span> <span class="Other">=</span> <span class="StringLit">&quot;&quot;</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="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/lexer.nim#L211" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L211" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="openLexer-procs-all">
<div id="openLexer,Lexer,FileIndex,PLLStream,IdentCache,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#openLexer%2CLexer%2CFileIndex%2CPLLStream%2CIdentCache%2CConfigRef"><span class="Identifier">openLexer</span></a><span class="Other">(</span><span class="Identifier">lex</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#Lexer"><span class="Identifier">Lexer</span></a><span class="Other">;</span> <span class="Identifier">fileIdx</span><span class="Other">:</span> <a href="lineinfos.html#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">;</span> <span class="Identifier">inputstream</span><span class="Other">:</span> <a href="llstream.html#PLLStream"><span class="Identifier">PLLStream</span></a><span class="Other">;</span>
<span class="Identifier">cache</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span> <span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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="Identifier">Exception</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="Identifier">RootEffect</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/lexer.nim#L178" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L178" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="openLexer,Lexer,AbsoluteFile,PLLStream,IdentCache,ConfigRef">
<dt><pre><span class="Keyword">proc</span> <a href="#openLexer%2CLexer%2CAbsoluteFile%2CPLLStream%2CIdentCache%2CConfigRef"><span class="Identifier">openLexer</span></a><span class="Other">(</span><span class="Identifier">lex</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#Lexer"><span class="Identifier">Lexer</span></a><span class="Other">;</span> <span class="Identifier">filename</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</span></a><span class="Other">;</span> <span class="Identifier">inputstream</span><span class="Other">:</span> <a href="llstream.html#PLLStream"><span class="Identifier">PLLStream</span></a><span class="Other">;</span>
<span class="Identifier">cache</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span> <span class="Identifier">config</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</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="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">OSError</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="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/lexer.nim#L190" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L190" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="prettyTok-procs-all">
<div id="prettyTok,Token">
<dt><pre><span class="Keyword">proc</span> <a href="#prettyTok%2CToken"><span class="Identifier">prettyTok</span></a><span class="Other">(</span><span class="Identifier">tok</span><span class="Other">:</span> <a href="#Token"><span class="Identifier">Token</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/lexer.nim#L170" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L170" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="printTok-procs-all">
<div id="printTok,ConfigRef,Token">
<dt><pre><span class="Keyword">proc</span> <a href="#printTok%2CConfigRef%2CToken"><span class="Identifier">printTok</span></a><span class="Other">(</span><span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">tok</span><span class="Other">:</span> <a href="#Token"><span class="Identifier">Token</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">Exception</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">RootEffect</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/lexer.nim#L174" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L174" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="rawGetTok-procs-all">
<div id="rawGetTok,Lexer,Token">
<dt><pre><span class="Keyword">proc</span> <a href="#rawGetTok%2CLexer%2CToken"><span class="Identifier">rawGetTok</span></a><span class="Other">(</span><span class="Identifier">L</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#Lexer"><span class="Identifier">Lexer</span></a><span class="Other">;</span> <span class="Identifier">tok</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="#Token"><span class="Identifier">Token</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">Exception</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span>
<span class="Identifier">ReadDirEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</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/lexer.nim#L1202" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L1202" 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: 2026-06-02 05:20:17 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

157
compiler/lexer.idx Normal file
View File

@@ -0,0 +1,157 @@
nimTitle lexer lexer.html module lexer 0
nim numChars lexer.html#numChars const numChars 28
nim SymChars lexer.html#SymChars const SymChars 29
nim SymStartChars lexer.html#SymStartChars const SymStartChars 30
nim OpChars lexer.html#OpChars const OpChars 31
nim tkInvalid lexer.html#tkInvalid TokType.tkInvalid 38
nim tkEof lexer.html#tkEof TokType.tkEof 38
nim tkSymbol lexer.html#tkSymbol TokType.tkSymbol 38
nim tkAddr lexer.html#tkAddr TokType.tkAddr 38
nim tkAnd lexer.html#tkAnd TokType.tkAnd 38
nim tkAs lexer.html#tkAs TokType.tkAs 38
nim tkAsm lexer.html#tkAsm TokType.tkAsm 38
nim tkBind lexer.html#tkBind TokType.tkBind 38
nim tkBlock lexer.html#tkBlock TokType.tkBlock 38
nim tkBreak lexer.html#tkBreak TokType.tkBreak 38
nim tkCase lexer.html#tkCase TokType.tkCase 38
nim tkCast lexer.html#tkCast TokType.tkCast 38
nim tkConcept lexer.html#tkConcept TokType.tkConcept 38
nim tkConst lexer.html#tkConst TokType.tkConst 38
nim tkContinue lexer.html#tkContinue TokType.tkContinue 38
nim tkConverter lexer.html#tkConverter TokType.tkConverter 38
nim tkDefer lexer.html#tkDefer TokType.tkDefer 38
nim tkDiscard lexer.html#tkDiscard TokType.tkDiscard 38
nim tkDistinct lexer.html#tkDistinct TokType.tkDistinct 38
nim tkDiv lexer.html#tkDiv TokType.tkDiv 38
nim tkDo lexer.html#tkDo TokType.tkDo 38
nim tkElif lexer.html#tkElif TokType.tkElif 38
nim tkElse lexer.html#tkElse TokType.tkElse 38
nim tkEnd lexer.html#tkEnd TokType.tkEnd 38
nim tkEnum lexer.html#tkEnum TokType.tkEnum 38
nim tkExcept lexer.html#tkExcept TokType.tkExcept 38
nim tkExport lexer.html#tkExport TokType.tkExport 38
nim tkFinally lexer.html#tkFinally TokType.tkFinally 38
nim tkFor lexer.html#tkFor TokType.tkFor 38
nim tkFrom lexer.html#tkFrom TokType.tkFrom 38
nim tkFunc lexer.html#tkFunc TokType.tkFunc 38
nim tkIf lexer.html#tkIf TokType.tkIf 38
nim tkImport lexer.html#tkImport TokType.tkImport 38
nim tkIn lexer.html#tkIn TokType.tkIn 38
nim tkInclude lexer.html#tkInclude TokType.tkInclude 38
nim tkInterface lexer.html#tkInterface TokType.tkInterface 38
nim tkIs lexer.html#tkIs TokType.tkIs 38
nim tkIsnot lexer.html#tkIsnot TokType.tkIsnot 38
nim tkIterator lexer.html#tkIterator TokType.tkIterator 38
nim tkLet lexer.html#tkLet TokType.tkLet 38
nim tkMacro lexer.html#tkMacro TokType.tkMacro 38
nim tkMethod lexer.html#tkMethod TokType.tkMethod 38
nim tkMixin lexer.html#tkMixin TokType.tkMixin 38
nim tkMod lexer.html#tkMod TokType.tkMod 38
nim tkNil lexer.html#tkNil TokType.tkNil 38
nim tkNot lexer.html#tkNot TokType.tkNot 38
nim tkNotin lexer.html#tkNotin TokType.tkNotin 38
nim tkObject lexer.html#tkObject TokType.tkObject 38
nim tkOf lexer.html#tkOf TokType.tkOf 38
nim tkOr lexer.html#tkOr TokType.tkOr 38
nim tkOut lexer.html#tkOut TokType.tkOut 38
nim tkProc lexer.html#tkProc TokType.tkProc 38
nim tkPtr lexer.html#tkPtr TokType.tkPtr 38
nim tkRaise lexer.html#tkRaise TokType.tkRaise 38
nim tkRef lexer.html#tkRef TokType.tkRef 38
nim tkReturn lexer.html#tkReturn TokType.tkReturn 38
nim tkShl lexer.html#tkShl TokType.tkShl 38
nim tkShr lexer.html#tkShr TokType.tkShr 38
nim tkStatic lexer.html#tkStatic TokType.tkStatic 38
nim tkTemplate lexer.html#tkTemplate TokType.tkTemplate 38
nim tkTry lexer.html#tkTry TokType.tkTry 38
nim tkTuple lexer.html#tkTuple TokType.tkTuple 38
nim tkType lexer.html#tkType TokType.tkType 38
nim tkUsing lexer.html#tkUsing TokType.tkUsing 38
nim tkVar lexer.html#tkVar TokType.tkVar 38
nim tkWhen lexer.html#tkWhen TokType.tkWhen 38
nim tkWhile lexer.html#tkWhile TokType.tkWhile 38
nim tkXor lexer.html#tkXor TokType.tkXor 38
nim tkYield lexer.html#tkYield TokType.tkYield 38
nim tkIntLit lexer.html#tkIntLit TokType.tkIntLit 38
nim tkInt8Lit lexer.html#tkInt8Lit TokType.tkInt8Lit 38
nim tkInt16Lit lexer.html#tkInt16Lit TokType.tkInt16Lit 38
nim tkInt32Lit lexer.html#tkInt32Lit TokType.tkInt32Lit 38
nim tkInt64Lit lexer.html#tkInt64Lit TokType.tkInt64Lit 38
nim tkUIntLit lexer.html#tkUIntLit TokType.tkUIntLit 38
nim tkUInt8Lit lexer.html#tkUInt8Lit TokType.tkUInt8Lit 38
nim tkUInt16Lit lexer.html#tkUInt16Lit TokType.tkUInt16Lit 38
nim tkUInt32Lit lexer.html#tkUInt32Lit TokType.tkUInt32Lit 38
nim tkUInt64Lit lexer.html#tkUInt64Lit TokType.tkUInt64Lit 38
nim tkFloatLit lexer.html#tkFloatLit TokType.tkFloatLit 38
nim tkFloat32Lit lexer.html#tkFloat32Lit TokType.tkFloat32Lit 38
nim tkFloat64Lit lexer.html#tkFloat64Lit TokType.tkFloat64Lit 38
nim tkFloat128Lit lexer.html#tkFloat128Lit TokType.tkFloat128Lit 38
nim tkStrLit lexer.html#tkStrLit TokType.tkStrLit 38
nim tkRStrLit lexer.html#tkRStrLit TokType.tkRStrLit 38
nim tkTripleStrLit lexer.html#tkTripleStrLit TokType.tkTripleStrLit 38
nim tkGStrLit lexer.html#tkGStrLit TokType.tkGStrLit 38
nim tkGTripleStrLit lexer.html#tkGTripleStrLit TokType.tkGTripleStrLit 38
nim tkCharLit lexer.html#tkCharLit TokType.tkCharLit 38
nim tkCustomLit lexer.html#tkCustomLit TokType.tkCustomLit 38
nim tkParLe lexer.html#tkParLe TokType.tkParLe 38
nim tkParRi lexer.html#tkParRi TokType.tkParRi 38
nim tkBracketLe lexer.html#tkBracketLe TokType.tkBracketLe 38
nim tkBracketRi lexer.html#tkBracketRi TokType.tkBracketRi 38
nim tkCurlyLe lexer.html#tkCurlyLe TokType.tkCurlyLe 38
nim tkCurlyRi lexer.html#tkCurlyRi TokType.tkCurlyRi 38
nim tkBracketDotLe lexer.html#tkBracketDotLe TokType.tkBracketDotLe 38
nim tkBracketDotRi lexer.html#tkBracketDotRi TokType.tkBracketDotRi 38
nim tkCurlyDotLe lexer.html#tkCurlyDotLe TokType.tkCurlyDotLe 38
nim tkCurlyDotRi lexer.html#tkCurlyDotRi TokType.tkCurlyDotRi 38
nim tkParDotLe lexer.html#tkParDotLe TokType.tkParDotLe 38
nim tkParDotRi lexer.html#tkParDotRi TokType.tkParDotRi 38
nim tkComma lexer.html#tkComma TokType.tkComma 38
nim tkSemiColon lexer.html#tkSemiColon TokType.tkSemiColon 38
nim tkColon lexer.html#tkColon TokType.tkColon 38
nim tkColonColon lexer.html#tkColonColon TokType.tkColonColon 38
nim tkEquals lexer.html#tkEquals TokType.tkEquals 38
nim tkDot lexer.html#tkDot TokType.tkDot 38
nim tkDotDot lexer.html#tkDotDot TokType.tkDotDot 38
nim tkBracketLeColon lexer.html#tkBracketLeColon TokType.tkBracketLeColon 38
nim tkOpr lexer.html#tkOpr TokType.tkOpr 38
nim tkComment lexer.html#tkComment TokType.tkComment 38
nim tkAccent lexer.html#tkAccent TokType.tkAccent 38
nim tkSpaces lexer.html#tkSpaces TokType.tkSpaces 38
nim tkInfixOpr lexer.html#tkInfixOpr TokType.tkInfixOpr 38
nim tkPrefixOpr lexer.html#tkPrefixOpr TokType.tkPrefixOpr 38
nim tkPostfixOpr lexer.html#tkPostfixOpr TokType.tkPostfixOpr 38
nim tkHideableStart lexer.html#tkHideableStart TokType.tkHideableStart 38
nim tkHideableEnd lexer.html#tkHideableEnd TokType.tkHideableEnd 38
nim TokType lexer.html#TokType enum TokType 38
nim TokTypes lexer.html#TokTypes type TokTypes 81
nim tokKeywordLow lexer.html#tokKeywordLow const tokKeywordLow 88
nim tokKeywordHigh lexer.html#tokKeywordHigh const tokKeywordHigh 89
nim base10 lexer.html#base10 NumericalBase.base10 92
nim base2 lexer.html#base2 NumericalBase.base2 92
nim base8 lexer.html#base8 NumericalBase.base8 92
nim base16 lexer.html#base16 NumericalBase.base16 92
nim NumericalBase lexer.html#NumericalBase enum NumericalBase 92
nim tsLeading lexer.html#tsLeading TokenSpacing.tsLeading 97
nim tsTrailing lexer.html#tsTrailing TokenSpacing.tsTrailing 97
nim tsEof lexer.html#tsEof TokenSpacing.tsEof 97
nim TokenSpacing lexer.html#TokenSpacing enum TokenSpacing 97
nim Token lexer.html#Token object Token 100
nim ErrorHandler lexer.html#ErrorHandler type ErrorHandler 118
nim Lexer lexer.html#Lexer object Lexer 119
nim getLineInfo lexer.html#getLineInfo,Lexer,Token proc getLineInfo(L: Lexer; tok: Token): TLineInfo 133
nim isKeyword lexer.html#isKeyword,TokType proc isKeyword(kind: TokType): bool 141
nim isNimIdentifier lexer.html#isNimIdentifier,string proc isNimIdentifier(s: string): bool 146
nim `$` lexer.html#$,Token proc `$`(tok: Token): string 158
nim prettyTok lexer.html#prettyTok,Token proc prettyTok(tok: Token): string 170
nim printTok lexer.html#printTok,ConfigRef,Token proc printTok(conf: ConfigRef; tok: Token) 174
nim openLexer lexer.html#openLexer,Lexer,FileIndex,PLLStream,IdentCache,ConfigRef proc openLexer(lex: var Lexer; fileIdx: FileIndex; inputstream: PLLStream;\n cache: IdentCache; config: ConfigRef) 178
nim openLexer lexer.html#openLexer,Lexer,AbsoluteFile,PLLStream,IdentCache,ConfigRef proc openLexer(lex: var Lexer; filename: AbsoluteFile; inputstream: PLLStream;\n cache: IdentCache; config: ConfigRef) 190
nim closeLexer lexer.html#closeLexer,Lexer proc closeLexer(lex: var Lexer) 194
nim lexMessage lexer.html#lexMessage,Lexer,TMsgKind,string proc lexMessage(L: Lexer; msg: TMsgKind; arg = "") 208
nim lexMessageTok lexer.html#lexMessageTok,Lexer,TMsgKind,Token,string proc lexMessageTok(L: Lexer; msg: TMsgKind; tok: Token; arg = "") 211
nim getPrecedence lexer.html#getPrecedence,Token proc getPrecedence(tok: Token): int 970
nim rawGetTok lexer.html#rawGetTok,Lexer,Token proc rawGetTok(L: var Lexer; tok: var Token) 1202
nim getIndentWidth lexer.html#getIndentWidth,FileIndex,PLLStream,IdentCache,ConfigRef proc getIndentWidth(fileIdx: FileIndex; inputstream: PLLStream; cache: IdentCache;\n config: ConfigRef): int 1380
nim getPrecedence lexer.html#getPrecedence,PIdent proc getPrecedence(ident: PIdent): int 1395
nimgrp openlexer lexer.html#openLexer-procs-all proc 178
nimgrp getprecedence lexer.html#getPrecedence-procs-all proc 970

View File

@@ -0,0 +1,330 @@
<?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>liftdestructors</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">liftdestructors</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">boolLit
<li><a class="reference" href="#boolLit%2CModuleGraph%2CTLineInfo%2Cbool" title="boolLit(g: ModuleGraph; info: TLineInfo; value: bool): PNode">boolLit(g: ModuleGraph; info: TLineInfo; value: bool): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">createTypeBoundOps
<li><a class="reference" href="#createTypeBoundOps%2CModuleGraph%2CPContext%2CPType%2CTLineInfo%2CIdGenerator" title="createTypeBoundOps(g: ModuleGraph; c: PContext; orig: PType; info: TLineInfo;
idgen: IdGenerator)">createTypeBoundOps(g: ModuleGraph; c: PContext; orig: PType; info: TLineInfo;
idgen: IdGenerator)</a></li>
</ul>
<ul class="simple nested-toc-section">cyclicType
<li><a class="reference" href="#cyclicType%2CModuleGraph%2CPType" title="cyclicType(g: ModuleGraph; t: PType): bool">cyclicType(g: ModuleGraph; t: PType): bool</a></li>
</ul>
<ul class="simple nested-toc-section">genBuiltin
<li><a class="reference" href="#genBuiltin%2CModuleGraph%2CIdGenerator%2CTMagic%2Cstring%2CPNode" title="genBuiltin(g: ModuleGraph; idgen: IdGenerator; magic: TMagic; name: string;
i: PNode): PNode">genBuiltin(g: ModuleGraph; idgen: IdGenerator; magic: TMagic; name: string;
i: PNode): PNode</a></li>
</ul>
<ul class="simple nested-toc-section">isTrivial
<li><a class="reference" href="#isTrivial%2CPSym" title="isTrivial(s: PSym): bool">isTrivial(s: PSym): bool</a></li>
</ul>
<ul class="simple nested-toc-section">produceDestructorForDiscriminator
<li><a class="reference" href="#produceDestructorForDiscriminator%2CModuleGraph%2CPType%2CPSym%2CTLineInfo%2CIdGenerator" title="produceDestructorForDiscriminator(g: ModuleGraph; typ: PType; field: PSym;
info: TLineInfo; idgen: IdGenerator): PSym">produceDestructorForDiscriminator(g: ModuleGraph; typ: PType; field: PSym;
info: TLineInfo; idgen: IdGenerator): PSym</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">asink
<li><a class="reference" href="#asink.t%2CPType" title="asink(t: PType): PSym">asink(t: PType): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">assignment
<li><a class="reference" href="#assignment.t%2CPType" title="assignment(t: PType): PSym">assignment(t: PType): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">destructor
<li><a class="reference" href="#destructor.t%2CPType" title="destructor(t: PType): PSym">destructor(t: PType): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">dup
<li><a class="reference" href="#dup.t%2CPType" title="dup(t: PType): PSym">dup(t: PType): PSym</a></li>
</ul>
<ul class="simple nested-toc-section">liftTypeBoundOps
<li><a class="reference" href="#liftTypeBoundOps.t%2CPContext%2CPType%2CTLineInfo" title="liftTypeBoundOps(c: PContext; typ: PType; info: TLineInfo)">liftTypeBoundOps(c: PContext; typ: PType; info: TLineInfo)</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/liftdestructors.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/liftdestructors.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">This module implements lifting for type-bound operations (<tt class="docutils literal"><span class="pre"><span class="Operator">=</span><span class="Identifier">sink</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Operator">=</span><span class="Identifier">copy</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Operator">=</span><span class="Identifier">destroy</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Operator">=</span><span class="Identifier">deepCopy</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Operator">=</span><span class="Identifier">wasMoved</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Operator">=</span><span class="Identifier">dup</span></span></tt>).</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="modulegraphs.html">modulegraphs</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="renderer.html">renderer</a>, <a class="reference external" href="semdata.html">semdata</a>, <a class="reference external" href="sighashes.html">sighashes</a>, <a class="reference external" href="lowerings.html">lowerings</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="types.html">types</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="magicsys.html">magicsys</a>, <a class="reference external" href="ccgutils.html">ccgutils</a>, <a class="reference external" href="trees.html">trees</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="boolLit-procs-all">
<div id="boolLit,ModuleGraph,TLineInfo,bool">
<dt><pre><span class="Keyword">proc</span> <a href="#boolLit%2CModuleGraph%2CTLineInfo%2Cbool"><span class="Identifier">boolLit</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <span class="Identifier">bool</span><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/liftdestructors.nim#L313" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/liftdestructors.nim#L313" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="createTypeBoundOps-procs-all">
<div id="createTypeBoundOps,ModuleGraph,PContext,PType,TLineInfo,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#createTypeBoundOps%2CModuleGraph%2CPContext%2CPType%2CTLineInfo%2CIdGenerator"><span class="Identifier">createTypeBoundOps</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">c</span><span class="Other">:</span> <a href="semdata.html#PContext"><span class="Identifier">PContext</span></a><span class="Other">;</span> <span class="Identifier">orig</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span>
<span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</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">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/liftdestructors.nim#L45" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/liftdestructors.nim#L45" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="cyclicType-procs-all">
<div id="cyclicType,ModuleGraph,PType">
<dt><pre><span class="Keyword">proc</span> <a href="#cyclicType%2CModuleGraph%2CPType"><span class="Identifier">cyclicType</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/liftdestructors.nim#L753" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/liftdestructors.nim#L753" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="genBuiltin-procs-all">
<div id="genBuiltin,ModuleGraph,IdGenerator,TMagic,string,PNode">
<dt><pre><span class="Keyword">proc</span> <a href="#genBuiltin%2CModuleGraph%2CIdGenerator%2CTMagic%2Cstring%2CPNode"><span class="Identifier">genBuiltin</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">;</span> <span class="Identifier">magic</span><span class="Other">:</span> <a href="astdef.html#TMagic"><span class="Identifier">TMagic</span></a><span class="Other">;</span> <span class="Identifier">name</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span>
<span class="Identifier">i</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span>
<span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/liftdestructors.nim#L78" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/liftdestructors.nim#L78" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="isTrivial-procs-all">
<div id="isTrivial,PSym">
<dt><pre><span class="Keyword">proc</span> <a href="#isTrivial%2CPSym"><span class="Identifier">isTrivial</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span>
<span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span>
<span class="Identifier">ReadDirEffect</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/liftdestructors.nim#L1415" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/liftdestructors.nim#L1415" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="produceDestructorForDiscriminator-procs-all">
<div id="produceDestructorForDiscriminator,ModuleGraph,PType,PSym,TLineInfo,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#produceDestructorForDiscriminator%2CModuleGraph%2CPType%2CPSym%2CTLineInfo%2CIdGenerator"><span class="Identifier">produceDestructorForDiscriminator</span></a><span class="Other">(</span><span class="Identifier">g</span><span class="Other">:</span> <a href="modulegraphs.html#ModuleGraph"><span class="Identifier">ModuleGraph</span></a><span class="Other">;</span> <span class="Identifier">typ</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span>
<span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/liftdestructors.nim#L1357" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/liftdestructors.nim#L1357" 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="asink-templates-all">
<div id="asink.t,PType">
<dt><pre><span class="Keyword">template</span> <a href="#asink.t%2CPType"><span class="Identifier">asink</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/liftdestructors.nim#L39" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/liftdestructors.nim#L39" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="assignment-templates-all">
<div id="assignment.t,PType">
<dt><pre><span class="Keyword">template</span> <a href="#assignment.t%2CPType"><span class="Identifier">assignment</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/liftdestructors.nim#L37" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/liftdestructors.nim#L37" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="destructor-templates-all">
<div id="destructor.t,PType">
<dt><pre><span class="Keyword">template</span> <a href="#destructor.t%2CPType"><span class="Identifier">destructor</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/liftdestructors.nim#L36" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/liftdestructors.nim#L36" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="dup-templates-all">
<div id="dup.t,PType">
<dt><pre><span class="Keyword">template</span> <a href="#dup.t%2CPType"><span class="Identifier">dup</span></a><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/liftdestructors.nim#L38" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/liftdestructors.nim#L38" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="liftTypeBoundOps-templates-all">
<div id="liftTypeBoundOps.t,PContext,PType,TLineInfo">
<dt><pre><span class="Keyword">template</span> <a href="#liftTypeBoundOps.t%2CPContext%2CPType%2CTLineInfo"><span class="Identifier">liftTypeBoundOps</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="semdata.html#PContext"><span class="Identifier">PContext</span></a><span class="Other">;</span> <span class="Identifier">typ</span><span class="Other">:</span> <a href="astdef.html#PType"><span class="Identifier">PType</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/liftdestructors.nim#L1383" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/liftdestructors.nim#L1383" 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: 2026-06-02 05:20:20 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

View File

@@ -0,0 +1,12 @@
nimTitle liftdestructors liftdestructors.html module liftdestructors 0
nim destructor liftdestructors.html#destructor.t,PType template destructor(t: PType): PSym 36
nim assignment liftdestructors.html#assignment.t,PType template assignment(t: PType): PSym 37
nim dup liftdestructors.html#dup.t,PType template dup(t: PType): PSym 38
nim asink liftdestructors.html#asink.t,PType template asink(t: PType): PSym 39
nim createTypeBoundOps liftdestructors.html#createTypeBoundOps,ModuleGraph,PContext,PType,TLineInfo,IdGenerator proc createTypeBoundOps(g: ModuleGraph; c: PContext; orig: PType; info: TLineInfo;\n idgen: IdGenerator) 45
nim genBuiltin liftdestructors.html#genBuiltin,ModuleGraph,IdGenerator,TMagic,string,PNode proc genBuiltin(g: ModuleGraph; idgen: IdGenerator; magic: TMagic; name: string;\n i: PNode): PNode 78
nim boolLit liftdestructors.html#boolLit,ModuleGraph,TLineInfo,bool proc boolLit(g: ModuleGraph; info: TLineInfo; value: bool): PNode 313
nim cyclicType liftdestructors.html#cyclicType,ModuleGraph,PType proc cyclicType(g: ModuleGraph; t: PType): bool 753
nim produceDestructorForDiscriminator liftdestructors.html#produceDestructorForDiscriminator,ModuleGraph,PType,PSym,TLineInfo,IdGenerator proc produceDestructorForDiscriminator(g: ModuleGraph; typ: PType; field: PSym;\n info: TLineInfo; idgen: IdGenerator): PSym 1357
nim liftTypeBoundOps liftdestructors.html#liftTypeBoundOps.t,PContext,PType,TLineInfo template liftTypeBoundOps(c: PContext; typ: PType; info: TLineInfo) 1383
nim isTrivial liftdestructors.html#isTrivial,PSym proc isTrivial(s: PSym): bool 1415

128
compiler/liftlocals.html Normal file
View File

@@ -0,0 +1,128 @@
<?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>liftlocals</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">liftlocals</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="#12" id="62">Procs</a></summary>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">liftLocalsIfRequested
<li><a class="reference" href="#liftLocalsIfRequested%2CPSym%2CPNode%2CIdentCache%2CConfigRef%2CIdGenerator" title="liftLocalsIfRequested(prc: PSym; n: PNode; cache: IdentCache; conf: ConfigRef;
idgen: IdGenerator): PNode">liftLocalsIfRequested(prc: PSym; n: PNode; cache: IdentCache; conf: ConfigRef;
idgen: IdGenerator): PNode</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/liftlocals.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/liftlocals.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">This module implements the '.liftLocals' pragma.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="options.html">options</a>, <a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="renderer.html">renderer</a>, <a class="reference external" href="types.html">types</a>, <a class="reference external" href="lowerings.html">lowerings</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="pragmas.html">pragmas</a>, <a class="reference external" href="wordrecg.html">wordrecg</a>
</dl>
</div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="liftLocalsIfRequested-procs-all">
<div id="liftLocalsIfRequested,PSym,PNode,IdentCache,ConfigRef,IdGenerator">
<dt><pre><span class="Keyword">proc</span> <a href="#liftLocalsIfRequested%2CPSym%2CPNode%2CIdentCache%2CConfigRef%2CIdGenerator"><span class="Identifier">liftLocalsIfRequested</span></a><span class="Other">(</span><span class="Identifier">prc</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">n</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</span></a><span class="Other">;</span> <span class="Identifier">cache</span><span class="Other">:</span> <a href="idents.html#IdentCache"><span class="Identifier">IdentCache</span></a><span class="Other">;</span>
<span class="Identifier">conf</span><span class="Other">:</span> <a href="options.html#ConfigRef"><span class="Identifier">ConfigRef</span></a><span class="Other">;</span> <span class="Identifier">idgen</span><span class="Other">:</span> <a href="ast.html#IdGenerator"><span class="Identifier">IdGenerator</span></a><span class="Other">)</span><span class="Other">:</span> <a href="astdef.html#PNode"><span class="Identifier">PNode</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="Identifier">KeyError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">ERecoverableError</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">RootEffect</span><span class="Other">,</span> <span class="Identifier">ReadEnvEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadDirEffect</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/liftlocals.nim#L60" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/liftlocals.nim#L60" 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: 2026-06-02 05:20:20 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

2
compiler/liftlocals.idx Normal file
View File

@@ -0,0 +1,2 @@
nimTitle liftlocals liftlocals.html module liftlocals 0
nim liftLocalsIfRequested liftlocals.html#liftLocalsIfRequested,PSym,PNode,IdentCache,ConfigRef,IdGenerator proc liftLocalsIfRequested(prc: PSym; n: PNode; cache: IdentCache; conf: ConfigRef;\n idgen: IdGenerator): PNode 60

911
compiler/lineinfos.html Normal file
View File

@@ -0,0 +1,911 @@
<?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>lineinfos</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">lineinfos</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="#ERecoverableError" title="ERecoverableError = object of ValueError">ERecoverableError</a></li>
<li><a class="reference" href="#ESuggestDone" title="ESuggestDone = object of ValueError">ESuggestDone</a></li>
<li><a class="reference" href="#FileIndex" title="FileIndex = distinct int32">FileIndex</a></li>
<li><a class="reference" href="#FileInfoKind" title="FileInfoKind = enum
fikSource, ## A real source file path
fikNifModule ## A NIF module suffix (not a real path)">FileInfoKind</a></li>
<li><a class="reference" href="#MsgConfig" title="MsgConfig = object
trackPos*: TLineInfo
trackPosAttached*: bool ## whether the tracking position was attached to
## some close token.
errorOutputs*: TErrorOutputs
msgContext*: seq[tuple[info: TLineInfo, detail: string]]
lastError*: TLineInfo
filenameToIndexTbl*: Table[string, FileIndex]
fileInfos*: seq[TFileInfo]
systemFileIdx*: FileIndex">MsgConfig</a></li>
<li><a class="reference" href="#Severity" title="Severity {.pure.} = enum
Hint, Warning, Error">Severity</a></li>
<li><a class="reference" href="#TErrorOutput" title="TErrorOutput = enum
eStdOut, eStdErr">TErrorOutput</a></li>
<li><a class="reference" href="#TErrorOutputs" title="TErrorOutputs = set[TErrorOutput]">TErrorOutputs</a></li>
<li><a class="reference" href="#TFileInfo" title="TFileInfo = object
fullPath*: AbsoluteFile
projPath*: RelativeFile
shortName*: string
quotedName*: Rope
quotedFullName*: Rope
lines*: seq[string]
dirtyFile*: AbsoluteFile
hash*: string
dirty*: bool
kind*: FileInfoKind
when defined(nimpretty):
fullContent*: string">TFileInfo</a></li>
<li><a class="reference" href="#TLineInfo" title="TLineInfo = object
line*: uint16
col*: int16
fileIndex*: FileIndex
when defined(nimpretty):
offsetA*, offsetB*: int
commentOffsetA*, commentOffsetB*: int">TLineInfo</a></li>
<li><a class="reference" href="#TMsgKind" title="TMsgKind = enum
errUnknown, errFatal, errInternal, errIllFormedAstX, errCannotOpenFile,
errXExpected, errRstMissingClosing, errRstGridTableNotImplemented,
errRstMarkdownIllformedTable, errRstIllformedTable, errRstNewSectionExpected,
errRstGeneralParseError, errRstInvalidDirectiveX, errRstInvalidField,
errRstFootnoteMismatch, errRstSandboxedDirective, errProveInit, errGenerated,
errFailedMove, errUser, warnCannotOpenFile = &quot;CannotOpenFile&quot;,
warnOctalEscape = &quot;OctalEscape&quot;, warnXIsNeverRead = &quot;XIsNeverRead&quot;,
warnXmightNotBeenInit = &quot;XmightNotBeenInit&quot;, warnDeprecated = &quot;Deprecated&quot;,
warnConfigDeprecated = &quot;ConfigDeprecated&quot;, warnDotLikeOps = &quot;DotLikeOps&quot;,
warnSmallLshouldNotBeUsed = &quot;SmallLshouldNotBeUsed&quot;,
warnUnknownMagic = &quot;UnknownMagic&quot;,
warnRstRedefinitionOfLabel = &quot;RedefinitionOfLabel&quot;,
warnRstUnknownSubstitutionX = &quot;UnknownSubstitutionX&quot;,
warnRstAmbiguousLink = &quot;AmbiguousLink&quot;, warnRstBrokenLink = &quot;BrokenLink&quot;,
warnRstLanguageXNotSupported = &quot;LanguageXNotSupported&quot;,
warnRstFieldXNotSupported = &quot;FieldXNotSupported&quot;,
warnRstUnusedImportdoc = &quot;UnusedImportdoc&quot;, warnRstStyle = &quot;warnRstStyle&quot;,
warnCommentXIgnored = &quot;CommentXIgnored&quot;, warnTypelessParam = &quot;TypelessParam&quot;,
warnUseBase = &quot;UseBase&quot;, warnWriteToForeignHeap = &quot;WriteToForeignHeap&quot;,
warnUnsafeCode = &quot;UnsafeCode&quot;, warnUnusedImportX = &quot;UnusedImport&quot;,
warnInheritFromException = &quot;InheritFromException&quot;,
warnEachIdentIsTuple = &quot;EachIdentIsTuple&quot;, warnUnsafeSetLen = &quot;UnsafeSetLen&quot;,
warnUnsafeDefault = &quot;UnsafeDefault&quot;, warnProveInit = &quot;ProveInit&quot;,
warnProveField = &quot;ProveField&quot;, warnProveIndex = &quot;ProveIndex&quot;,
warnUnreachableElse = &quot;UnreachableElse&quot;,
warnUnreachableCode = &quot;UnreachableCode&quot;, warnStaticIndexCheck = &quot;IndexCheck&quot;,
warnGcUnsafe = &quot;GcUnsafe&quot;, warnGcUnsafe2 = &quot;GcUnsafe2&quot;, warnUninit = &quot;Uninit&quot;,
warnGcMem = &quot;GcMem&quot;, warnDestructor = &quot;Destructor&quot;,
warnLockLevel = &quot;LockLevel&quot;, warnResultShadowed = &quot;ResultShadowed&quot;,
warnInconsistentSpacing = &quot;Spacing&quot;, warnCaseTransition = &quot;CaseTransition&quot;,
warnCycleCreated = &quot;CycleCreated&quot;, warnObservableStores = &quot;ObservableStores&quot;,
warnStrictNotNil = &quot;StrictNotNil&quot;, warnResultUsed = &quot;ResultUsed&quot;,
warnCannotOpen = &quot;CannotOpen&quot;, warnFileChanged = &quot;FileChanged&quot;,
warnSuspiciousEnumConv = &quot;EnumConv&quot;, warnAnyEnumConv = &quot;AnyEnumConv&quot;,
warnHoleEnumConv = &quot;HoleEnumConv&quot;, warnCstringConv = &quot;CStringConv&quot;,
warnPtrToCstringConv = &quot;PtrToCstringConv&quot;, warnEffect = &quot;Effect&quot;,
warnCastSizes = &quot;CastSizes&quot;, warnAboveMaxSizeSet = &quot;AboveMaxSizeSet&quot;,
warnImplicitTemplateRedefinition = &quot;ImplicitTemplateRedefinition&quot;,
warnUnnamedBreak = &quot;UnnamedBreak&quot;, warnStmtListLambda = &quot;StmtListLambda&quot;,
warnBareExcept = &quot;BareExcept&quot;,
warnImplicitDefaultValue = &quot;ImplicitDefaultValue&quot;,
warnIgnoredSymbolInjection = &quot;IgnoredSymbolInjection&quot;,
warnStdPrefix = &quot;StdPrefix&quot;, warnUnknownNotes = &quot;UnknownNotes&quot;,
warnLongLiterals = &quot;LongLiterals&quot;, warnUser = &quot;User&quot;,
warnGlobalVarConstructorTemporary = &quot;GlobalVarConstructorTemporary&quot;,
warnImplicitRangeConversion = &quot;ImplicitRangeConversion&quot;,
warnSystemRangeConversion = &quot;SystemRangeConversion&quot;, hintSuccess = &quot;Success&quot;,
hintSuccessX = &quot;SuccessX&quot;, hintCC = &quot;CC&quot;,
hintXDeclaredButNotUsed = &quot;XDeclaredButNotUsed&quot;,
hintDuplicateModuleImport = &quot;DuplicateModuleImport&quot;,
hintXCannotRaiseY = &quot;XCannotRaiseY&quot;,
hintConvToBaseNotNeeded = &quot;ConvToBaseNotNeeded&quot;,
hintConvFromXtoItselfNotNeeded = &quot;ConvFromXtoItselfNotNeeded&quot;,
hintExprAlwaysX = &quot;ExprAlwaysX&quot;, hintQuitCalled = &quot;QuitCalled&quot;,
hintProcessing = &quot;Processing&quot;, hintProcessingStmt = &quot;ProcessingStmt&quot;,
hintCodeBegin = &quot;CodeBegin&quot;, hintCodeEnd = &quot;CodeEnd&quot;, hintConf = &quot;Conf&quot;,
hintPath = &quot;Path&quot;, hintConditionAlwaysTrue = &quot;CondTrue&quot;,
hintConditionAlwaysFalse = &quot;CondFalse&quot;, hintName = &quot;Name&quot;,
hintPattern = &quot;Pattern&quot;, hintExecuting = &quot;Exec&quot;, hintLinking = &quot;Link&quot;,
hintDependency = &quot;Dependency&quot;, hintSource = &quot;Source&quot;,
hintPerformance = &quot;Performance&quot;, hintStackTrace = &quot;StackTrace&quot;,
hintGCStats = &quot;GCStats&quot;, hintGlobalVar = &quot;GlobalVar&quot;,
hintExpandMacro = &quot;ExpandMacro&quot;, hintUser = &quot;User&quot;, hintUserRaw = &quot;UserRaw&quot;,
hintExtendedContext = &quot;ExtendedContext&quot;, hintUnknownRaises = &quot;UnknownRaises&quot;,
hintMsgOrigin = &quot;MsgOrigin&quot;, hintDeclaredLoc = &quot;DeclaredLoc&quot;">TMsgKind</a></li>
<li><a class="reference" href="#TNoteKind" title="TNoteKind = range[warnMin .. hintMax]">TNoteKind</a></li>
<li><a class="reference" href="#TNoteKinds" title="TNoteKinds = set[TNoteKind]">TNoteKinds</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="#commandLineIdx" title="commandLineIdx = -3'i32">commandLineIdx</a></li>
<li><a class="reference" href="#errArgsNeedRunOption" title="errArgsNeedRunOption = &quot;arguments can only be given if the \'--run\' option is selected&quot;">errArgsNeedRunOption</a></li>
<li><a class="reference" href="#errFloatToString" title="errFloatToString = &quot;cannot convert \'$1\' to \'$2\'&quot;">errFloatToString</a></li>
<li><a class="reference" href="#errMax" title="errMax = errUser">errMax</a></li>
<li><a class="reference" href="#errMin" title="errMin = errUnknown">errMin</a></li>
<li><a class="reference" href="#errXMustBeCompileTime" title="errXMustBeCompileTime = &quot;\'$1\' can only be used in compile-time context&quot;">errXMustBeCompileTime</a></li>
<li><a class="reference" href="#explanationsBaseUrl" title="explanationsBaseUrl = &quot;https://nim-lang.github.io/Nim&quot;">explanationsBaseUrl</a></li>
<li><a class="reference" href="#fatalMsgs" title="fatalMsgs = {errUnknown..errInternal}">fatalMsgs</a></li>
<li><a class="reference" href="#hintMax" title="hintMax = hintDeclaredLoc">hintMax</a></li>
<li><a class="reference" href="#hintMin" title="hintMin = hintSuccess">hintMin</a></li>
<li><a class="reference" href="#InvalidFileIdx" title="InvalidFileIdx = -1'i32">InvalidFileIdx</a></li>
<li><a class="reference" href="#MsgKindToStr" title="MsgKindToStr: array[TMsgKind, string] = [&quot;unknown error&quot;, &quot;fatal error: $1&quot;,
&quot;internal error: $1&quot;, &quot;illformed AST: $1&quot;, &quot;cannot open \'$1\'&quot;,
&quot;\'$1\' expected&quot;, &quot;$1&quot;, &quot;grid table is not implemented&quot;,
&quot;illformed delimiter row of a markdown table&quot;, &quot;Illformed table: $1&quot;,
&quot;new section expected $1&quot;, &quot;general parse error&quot;,
&quot;invalid directive: \'$1\'&quot;, &quot;invalid field: $1&quot;,
&quot;number of footnotes and their references don\'t match: $1&quot;,
&quot;disabled directive: \'$1\'&quot;, &quot;Cannot prove that \'$1\' is initialized.&quot;,
&quot;$1&quot;, &quot;$1&quot;, &quot;$1&quot;, &quot;cannot open \'$1\'&quot;,
&quot;octal escape sequences do not exist; leading zero is ignored&quot;,
&quot;\'$1\' is never read&quot;, &quot;\'$1\' might not have been initialized&quot;, &quot;$1&quot;,
&quot;config file \'$1\' is deprecated&quot;, &quot;$1&quot;,
&quot;\'l\' should not be used as an identifier; may look like \'1\' (one)&quot;,
&quot;unknown magic \'$1\' might crash the compiler&quot;,
&quot;redefinition of label \'$1\'&quot;, &quot;unknown substitution \'$1\'&quot;,
&quot;ambiguous doc link $1&quot;, &quot;broken link \'$1\'&quot;,
&quot;language \'$1\' not supported&quot;, &quot;field \'$1\' not supported&quot;,
&quot;importdoc for \'$1\' is not used&quot;, &quot;RST style: $1&quot;,
&quot;comment \'$1\' ignored&quot;, &quot;&quot;,
&quot;use {.base.} for base methods; baseless methods are deprecated&quot;,
&quot;write to foreign heap&quot;, &quot;unsafe code: \'$1\'&quot;,
&quot;imported and not used: \'$1\'&quot;, &quot;inherit from a more precise exception type like ValueError, IOError or OSError. If these don\'t suit, inherit from CatchableError or Defect.&quot;,
&quot;each identifier is a tuple&quot;, &quot;setLen can potentially expand the sequence, but the element type \'$1\' doesn\'t have a valid default value&quot;,
&quot;The \'$1\' type doesn\'t have a valid default value&quot;, &quot;Cannot prove that \'$1\' is initialized. This will become a compile time error in the future.&quot;,
&quot;cannot prove that field \'$1\' is accessible&quot;,
&quot;cannot prove index \'$1\' is valid&quot;,
&quot;unreachable else, all cases are already covered&quot;,
&quot;unreachable code after \'return\' statement or \'{.noReturn.}\' proc&quot;,
&quot;$1&quot;, &quot;not GC-safe: \'$1\'&quot;, &quot;$1&quot;,
&quot;use explicit initialization of \'$1\' for clarity&quot;,
&quot;\'$1\' uses GC\'ed memory&quot;, &quot;usage of a type with a destructor in a non destructible context. This will become a compile time error in the future.&quot;,
&quot;$1&quot;, &quot;Special variable \'result\' is shadowed.&quot;,
&quot;Number of spaces around \'$#\' is not consistent&quot;,
&quot;Potential object case transition, instantiate new object instead&quot;, &quot;$1&quot;,
&quot;observable stores to \'$1\'&quot;, &quot;$1&quot;, &quot;used \'result\' variable&quot;,
&quot;cannot open: $1&quot;, &quot;file changed: $1&quot;, &quot;$1&quot;, &quot;$1&quot;, &quot;$1&quot;, &quot;$1&quot;, &quot;unsafe conversion to \'cstring\' from \'$1\'; Use a `cast` operation like `cast[cstring](x)`; this will become a compile time error in the future&quot;,
&quot;$1&quot;, &quot;$1&quot;, &quot;$1&quot;, &quot;template \'$1\' is implicitly redefined; this is deprecated, add an explicit .redefine pragma&quot;, &quot;Using an unnamed break in a block is deprecated; Use a named block with a named break instead&quot;, &quot;statement list expression assumed to be anonymous proc; this is deprecated, use `do (): ...` or `proc () = ...` instead&quot;,
&quot;$1&quot;, &quot;$1&quot;, &quot;$1&quot;, &quot;$1 needs the \'std\' prefix&quot;, &quot;$1&quot;, &quot;$1&quot;, &quot;$1&quot;,
&quot;global variable \'$1\' initialization requires a temporary variable&quot;,
&quot;implicit range conversion $1&quot;, &quot;implicit range conversion $1&quot;,
&quot;operation successful: $#&quot;,
&quot;$build\n$loc lines; ${sec}s; $mem; proj: $project; out: $output&quot;, &quot;CC: $1&quot;,
&quot;\'$1\' is declared but not used&quot;, &quot;$1&quot;, &quot;$1&quot;,
&quot;conversion to base object is not needed&quot;,
&quot;conversion from $1 to itself is pointless&quot;,
&quot;expression evaluates always to \'$1\'&quot;, &quot;quit() called&quot;, &quot;$1&quot;, &quot;$1&quot;,
&quot;generated code listing:&quot;, &quot;end of listing&quot;, &quot;used config file \'$1\'&quot;,
&quot;added path: \'$1\'&quot;, &quot;condition is always true: \'$1\'&quot;,
&quot;condition is always false: \'$1\'&quot;, &quot;$1&quot;, &quot;$1&quot;, &quot;$1&quot;, &quot;$1&quot;, &quot;$1&quot;, &quot;$1&quot;,
&quot;$1&quot;, &quot;$1&quot;, &quot;$1&quot;, &quot;global variable declared here&quot;, &quot;expanded macro: $1&quot;,
&quot;$1&quot;, &quot;$1&quot;, &quot;$1&quot;, &quot;$1 is a forward declaration without explicit .raises, assuming it can raise anything&quot;,
&quot;$1&quot;, &quot;$1&quot;]">MsgKindToStr</a></li>
<li><a class="reference" href="#NotesVerbosity" title="NotesVerbosity = [{warnCannotOpenFile..warnProveInit,
warnUnreachableElse..warnStaticIndexCheck,
warnGcUnsafe2..warnCycleCreated, warnStrictNotNil,
warnCannotOpen..warnSuspiciousEnumConv,
warnHoleEnumConv..warnStmtListLambda,
warnImplicitDefaultValue..warnIgnoredSymbolInjection,
warnUnknownNotes..warnGlobalVarConstructorTemporary,
hintXDeclaredButNotUsed..hintQuitCalled,
hintConditionAlwaysTrue..hintName,
hintExpandMacro..hintUserRaw, hintUnknownRaises}, {
warnCannotOpenFile..warnProveInit,
warnUnreachableElse..warnStaticIndexCheck, warnGcUnsafe2..warnCycleCreated,
warnStrictNotNil, warnCannotOpen..warnSuspiciousEnumConv,
warnHoleEnumConv..warnStmtListLambda,
warnImplicitDefaultValue..warnIgnoredSymbolInjection,
warnUnknownNotes..warnGlobalVarConstructorTemporary,
hintSuccess..hintProcessing, hintConf, hintConditionAlwaysTrue..hintLinking,
hintExpandMacro..hintUserRaw, hintUnknownRaises}, {
warnCannotOpenFile..warnCycleCreated, warnStrictNotNil,
warnCannotOpen..warnSuspiciousEnumConv,
warnHoleEnumConv..warnStmtListLambda,
warnImplicitDefaultValue..warnIgnoredSymbolInjection,
warnUnknownNotes..warnImplicitRangeConversion, hintSuccess..hintProcessing,
hintCodeBegin..hintPerformance, hintGCStats..hintUserRaw,
hintUnknownRaises..hintMsgOrigin}, {warnCannotOpenFile..warnCycleCreated,
warnStrictNotNil,
warnCannotOpen..warnSuspiciousEnumConv,
warnHoleEnumConv..warnStmtListLambda, warnImplicitDefaultValue..warnIgnoredSymbolInjection, warnUnknownNotes..warnImplicitRangeConversion,
hintSuccess..hintDeclaredLoc}]">NotesVerbosity</a></li>
<li><a class="reference" href="#rstWarnings" title="rstWarnings = {warnRstRedefinitionOfLabel..warnRstStyle}">rstWarnings</a></li>
<li><a class="reference" href="#trackPosInvalidFileIdx" title="trackPosInvalidFileIdx = -2'i32">trackPosInvalidFileIdx</a></li>
<li><a class="reference" href="#unknownLineInfo" title="unknownLineInfo = (line: 0'u, col: -1, fileIndex: -1)">unknownLineInfo</a></li>
<li><a class="reference" href="#warnMax" title="warnMax = warnSystemRangeConversion">warnMax</a></li>
<li><a class="reference" href="#warnMin" title="warnMin = warnCannotOpenFile">warnMin</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%2CFileIndex%2CFileIndex" title="`==`(a, b: FileIndex): bool">`==`(a, b: FileIndex): bool</a></li>
</ul>
<ul class="simple nested-toc-section">createDocLink
<li><a class="reference" href="#createDocLink%2Cstring" title="createDocLink(urlSuffix: string): string">createDocLink(urlSuffix: string): string</a></li>
</ul>
<ul class="simple nested-toc-section">hash
<li><a class="reference" href="#hash%2CTLineInfo" title="hash(i: TLineInfo): Hash">hash(i: TLineInfo): Hash</a></li>
</ul>
<ul class="simple nested-toc-section">initMsgConfig
<li><a class="reference" href="#initMsgConfig" title="initMsgConfig(): MsgConfig">initMsgConfig(): MsgConfig</a></li>
</ul>
<ul class="simple nested-toc-section">raiseRecoverableError
<li><a class="reference" href="#raiseRecoverableError%2Cstring" title="raiseRecoverableError(msg: string)">raiseRecoverableError(msg: string)</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/lineinfos.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">This module contains the <tt class="docutils literal"><span class="pre"><span class="Identifier">TMsgKind</span></span></tt> enum as well as the <tt class="docutils literal"><span class="pre"><span class="Identifier">TLineInfo</span></span></tt> object.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="ropes.html">ropes</a>, <a class="reference external" href="pathutils.html">pathutils</a>
</dl>
</div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="ERecoverableError">
<dt><pre><a href="#ERecoverableError"><span class="Identifier">ERecoverableError</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <span class="Identifier">ValueError</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L327" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L327" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="ESuggestDone">
<dt><pre><a href="#ESuggestDone"><span class="Identifier">ESuggestDone</span></a> <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <span class="Identifier">ValueError</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L328" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L328" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="FileIndex">
<dt><pre><a href="#FileIndex"><span class="Identifier">FileIndex</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/lineinfos.nim#L307" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L307" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="FileInfoKind">
<dt><pre><a href="#FileInfoKind"><span class="Identifier">FileInfoKind</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">fikSource</span><span class="Other">,</span> <span class="Comment">## A real source file path</span>
<span class="Identifier">fikNifModule</span> <span class="Comment">## A NIF module suffix (not a real path)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L282" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L282" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="MsgConfig">
<dt><pre><a href="#MsgConfig"><span class="Identifier">MsgConfig</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">trackPos</span><span class="Operator">*</span><span class="Other">:</span> <a href="#TLineInfo"><span class="Identifier">TLineInfo</span></a>
<span class="Identifier">trackPosAttached</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span> <span class="Comment">## whether the tracking position was attached to</span>
<span class="Comment">## some close token.</span>
<span class="Identifier">errorOutputs</span><span class="Operator">*</span><span class="Other">:</span> <a href="#TErrorOutputs"><span class="Identifier">TErrorOutputs</span></a>
<span class="Identifier">msgContext</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">info</span><span class="Other">:</span> <a href="#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">,</span> <span class="Identifier">detail</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">]</span><span class="Other">]</span>
<span class="Identifier">lastError</span><span class="Operator">*</span><span class="Other">:</span> <a href="#TLineInfo"><span class="Identifier">TLineInfo</span></a>
<span class="Identifier">filenameToIndexTbl</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">Table</span><span class="Other">[</span><span class="Identifier">string</span><span class="Other">,</span> <a href="#FileIndex"><span class="Identifier">FileIndex</span></a><span class="Other">]</span>
<span class="Identifier">fileInfos</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="#TFileInfo"><span class="Identifier">TFileInfo</span></a><span class="Other">]</span>
<span class="Identifier">systemFileIdx</span><span class="Operator">*</span><span class="Other">:</span> <a href="#FileIndex"><span class="Identifier">FileIndex</span></a></pre></dt>
<dd>
does not need to be stored in the incremental cache
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L352" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L352" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="Severity">
<dt><pre><a href="#Severity"><span class="Identifier">Severity</span></a> {.<span class="Identifier">pure</span>.} <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">Hint</span><span class="Other">,</span> <span class="Identifier">Warning</span><span class="Other">,</span> <span class="Identifier">Error</span></pre></dt>
<dd>
VS Code only supports these three
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L343" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L343" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TErrorOutput">
<dt><pre><a href="#TErrorOutput"><span class="Identifier">TErrorOutput</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">eStdOut</span><span class="Other">,</span> <span class="Identifier">eStdErr</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L321" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L321" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TErrorOutputs">
<dt><pre><a href="#TErrorOutputs"><span class="Identifier">TErrorOutputs</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="#TErrorOutput"><span class="Identifier">TErrorOutput</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L325" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L325" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TFileInfo">
<dt><pre><a href="#TFileInfo"><span class="Identifier">TFileInfo</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">fullPath</span><span class="Operator">*</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</span></a>
<span class="Identifier">projPath</span><span class="Operator">*</span><span class="Other">:</span> <a href="pathutils.html#RelativeFile"><span class="Identifier">RelativeFile</span></a>
<span class="Identifier">shortName</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">string</span>
<span class="Identifier">quotedName</span><span class="Operator">*</span><span class="Other">:</span> <a href="ropes.html#Rope"><span class="Identifier">Rope</span></a>
<span class="Identifier">quotedFullName</span><span class="Operator">*</span><span class="Other">:</span> <a href="ropes.html#Rope"><span class="Identifier">Rope</span></a>
<span class="Identifier">lines</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Identifier">string</span><span class="Other">]</span>
<span class="Identifier">dirtyFile</span><span class="Operator">*</span><span class="Other">:</span> <a href="pathutils.html#AbsoluteFile"><span class="Identifier">AbsoluteFile</span></a>
<span class="Identifier">hash</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">string</span>
<span class="Identifier">dirty</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">bool</span>
<span class="Identifier">kind</span><span class="Operator">*</span><span class="Other">:</span> <a href="#FileInfoKind"><span class="Identifier">FileInfoKind</span></a>
<span class="Keyword">when</span> <span class="Identifier">defined</span><span class="Other">(</span><span class="Identifier">nimpretty</span><span class="Other">)</span><span class="Other">:</span>
<span class="Identifier">fullContent</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">string</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L286" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L286" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TLineInfo">
<dt><pre><a href="#TLineInfo"><span class="Identifier">TLineInfo</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">line</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">uint16</span>
<span class="Identifier">col</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int16</span>
<span class="Identifier">fileIndex</span><span class="Operator">*</span><span class="Other">:</span> <a href="#FileIndex"><span class="Identifier">FileIndex</span></a>
<span class="Keyword">when</span> <span class="Identifier">defined</span><span class="Other">(</span><span class="Identifier">nimpretty</span><span class="Other">)</span><span class="Other">:</span>
<span class="Identifier">offsetA</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">offsetB</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span>
<span class="Identifier">commentOffsetA</span><span class="Operator">*</span><span class="Other">,</span> <span class="Identifier">commentOffsetB</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">int</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L308" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L308" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TMsgKind">
<dt><pre><a href="#TMsgKind"><span class="Identifier">TMsgKind</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">errUnknown</span><span class="Other">,</span> <span class="Identifier">errFatal</span><span class="Other">,</span> <span class="Identifier">errInternal</span><span class="Other">,</span> <span class="Identifier">errIllFormedAstX</span><span class="Other">,</span> <span class="Identifier">errCannotOpenFile</span><span class="Other">,</span>
<span class="Identifier">errXExpected</span><span class="Other">,</span> <span class="Identifier">errRstMissingClosing</span><span class="Other">,</span> <span class="Identifier">errRstGridTableNotImplemented</span><span class="Other">,</span>
<span class="Identifier">errRstMarkdownIllformedTable</span><span class="Other">,</span> <span class="Identifier">errRstIllformedTable</span><span class="Other">,</span> <span class="Identifier">errRstNewSectionExpected</span><span class="Other">,</span>
<span class="Identifier">errRstGeneralParseError</span><span class="Other">,</span> <span class="Identifier">errRstInvalidDirectiveX</span><span class="Other">,</span> <span class="Identifier">errRstInvalidField</span><span class="Other">,</span>
<span class="Identifier">errRstFootnoteMismatch</span><span class="Other">,</span> <span class="Identifier">errRstSandboxedDirective</span><span class="Other">,</span> <span class="Identifier">errProveInit</span><span class="Other">,</span> <span class="Identifier">errGenerated</span><span class="Other">,</span>
<span class="Identifier">errFailedMove</span><span class="Other">,</span> <span class="Identifier">errUser</span><span class="Other">,</span> <span class="Identifier">warnCannotOpenFile</span> <span class="Other">=</span> <span class="StringLit">&quot;CannotOpenFile&quot;</span><span class="Other">,</span>
<span class="Identifier">warnOctalEscape</span> <span class="Other">=</span> <span class="StringLit">&quot;OctalEscape&quot;</span><span class="Other">,</span> <span class="Identifier">warnXIsNeverRead</span> <span class="Other">=</span> <span class="StringLit">&quot;XIsNeverRead&quot;</span><span class="Other">,</span>
<span class="Identifier">warnXmightNotBeenInit</span> <span class="Other">=</span> <span class="StringLit">&quot;XmightNotBeenInit&quot;</span><span class="Other">,</span> <span class="Identifier">warnDeprecated</span> <span class="Other">=</span> <span class="StringLit">&quot;Deprecated&quot;</span><span class="Other">,</span>
<span class="Identifier">warnConfigDeprecated</span> <span class="Other">=</span> <span class="StringLit">&quot;ConfigDeprecated&quot;</span><span class="Other">,</span> <span class="Identifier">warnDotLikeOps</span> <span class="Other">=</span> <span class="StringLit">&quot;DotLikeOps&quot;</span><span class="Other">,</span>
<span class="Identifier">warnSmallLshouldNotBeUsed</span> <span class="Other">=</span> <span class="StringLit">&quot;SmallLshouldNotBeUsed&quot;</span><span class="Other">,</span>
<span class="Identifier">warnUnknownMagic</span> <span class="Other">=</span> <span class="StringLit">&quot;UnknownMagic&quot;</span><span class="Other">,</span>
<span class="Identifier">warnRstRedefinitionOfLabel</span> <span class="Other">=</span> <span class="StringLit">&quot;RedefinitionOfLabel&quot;</span><span class="Other">,</span>
<span class="Identifier">warnRstUnknownSubstitutionX</span> <span class="Other">=</span> <span class="StringLit">&quot;UnknownSubstitutionX&quot;</span><span class="Other">,</span>
<span class="Identifier">warnRstAmbiguousLink</span> <span class="Other">=</span> <span class="StringLit">&quot;AmbiguousLink&quot;</span><span class="Other">,</span> <span class="Identifier">warnRstBrokenLink</span> <span class="Other">=</span> <span class="StringLit">&quot;BrokenLink&quot;</span><span class="Other">,</span>
<span class="Identifier">warnRstLanguageXNotSupported</span> <span class="Other">=</span> <span class="StringLit">&quot;LanguageXNotSupported&quot;</span><span class="Other">,</span>
<span class="Identifier">warnRstFieldXNotSupported</span> <span class="Other">=</span> <span class="StringLit">&quot;FieldXNotSupported&quot;</span><span class="Other">,</span>
<span class="Identifier">warnRstUnusedImportdoc</span> <span class="Other">=</span> <span class="StringLit">&quot;UnusedImportdoc&quot;</span><span class="Other">,</span> <span class="Identifier">warnRstStyle</span> <span class="Other">=</span> <span class="StringLit">&quot;warnRstStyle&quot;</span><span class="Other">,</span>
<span class="Identifier">warnCommentXIgnored</span> <span class="Other">=</span> <span class="StringLit">&quot;CommentXIgnored&quot;</span><span class="Other">,</span> <span class="Identifier">warnTypelessParam</span> <span class="Other">=</span> <span class="StringLit">&quot;TypelessParam&quot;</span><span class="Other">,</span>
<span class="Identifier">warnUseBase</span> <span class="Other">=</span> <span class="StringLit">&quot;UseBase&quot;</span><span class="Other">,</span> <span class="Identifier">warnWriteToForeignHeap</span> <span class="Other">=</span> <span class="StringLit">&quot;WriteToForeignHeap&quot;</span><span class="Other">,</span>
<span class="Identifier">warnUnsafeCode</span> <span class="Other">=</span> <span class="StringLit">&quot;UnsafeCode&quot;</span><span class="Other">,</span> <span class="Identifier">warnUnusedImportX</span> <span class="Other">=</span> <span class="StringLit">&quot;UnusedImport&quot;</span><span class="Other">,</span>
<span class="Identifier">warnInheritFromException</span> <span class="Other">=</span> <span class="StringLit">&quot;InheritFromException&quot;</span><span class="Other">,</span>
<span class="Identifier">warnEachIdentIsTuple</span> <span class="Other">=</span> <span class="StringLit">&quot;EachIdentIsTuple&quot;</span><span class="Other">,</span> <span class="Identifier">warnUnsafeSetLen</span> <span class="Other">=</span> <span class="StringLit">&quot;UnsafeSetLen&quot;</span><span class="Other">,</span>
<span class="Identifier">warnUnsafeDefault</span> <span class="Other">=</span> <span class="StringLit">&quot;UnsafeDefault&quot;</span><span class="Other">,</span> <span class="Identifier">warnProveInit</span> <span class="Other">=</span> <span class="StringLit">&quot;ProveInit&quot;</span><span class="Other">,</span>
<span class="Identifier">warnProveField</span> <span class="Other">=</span> <span class="StringLit">&quot;ProveField&quot;</span><span class="Other">,</span> <span class="Identifier">warnProveIndex</span> <span class="Other">=</span> <span class="StringLit">&quot;ProveIndex&quot;</span><span class="Other">,</span>
<span class="Identifier">warnUnreachableElse</span> <span class="Other">=</span> <span class="StringLit">&quot;UnreachableElse&quot;</span><span class="Other">,</span>
<span class="Identifier">warnUnreachableCode</span> <span class="Other">=</span> <span class="StringLit">&quot;UnreachableCode&quot;</span><span class="Other">,</span> <span class="Identifier">warnStaticIndexCheck</span> <span class="Other">=</span> <span class="StringLit">&quot;IndexCheck&quot;</span><span class="Other">,</span>
<span class="Identifier">warnGcUnsafe</span> <span class="Other">=</span> <span class="StringLit">&quot;GcUnsafe&quot;</span><span class="Other">,</span> <span class="Identifier">warnGcUnsafe2</span> <span class="Other">=</span> <span class="StringLit">&quot;GcUnsafe2&quot;</span><span class="Other">,</span> <span class="Identifier">warnUninit</span> <span class="Other">=</span> <span class="StringLit">&quot;Uninit&quot;</span><span class="Other">,</span>
<span class="Identifier">warnGcMem</span> <span class="Other">=</span> <span class="StringLit">&quot;GcMem&quot;</span><span class="Other">,</span> <span class="Identifier">warnDestructor</span> <span class="Other">=</span> <span class="StringLit">&quot;Destructor&quot;</span><span class="Other">,</span>
<span class="Identifier">warnLockLevel</span> <span class="Other">=</span> <span class="StringLit">&quot;LockLevel&quot;</span><span class="Other">,</span> <span class="Identifier">warnResultShadowed</span> <span class="Other">=</span> <span class="StringLit">&quot;ResultShadowed&quot;</span><span class="Other">,</span>
<span class="Identifier">warnInconsistentSpacing</span> <span class="Other">=</span> <span class="StringLit">&quot;Spacing&quot;</span><span class="Other">,</span> <span class="Identifier">warnCaseTransition</span> <span class="Other">=</span> <span class="StringLit">&quot;CaseTransition&quot;</span><span class="Other">,</span>
<span class="Identifier">warnCycleCreated</span> <span class="Other">=</span> <span class="StringLit">&quot;CycleCreated&quot;</span><span class="Other">,</span> <span class="Identifier">warnObservableStores</span> <span class="Other">=</span> <span class="StringLit">&quot;ObservableStores&quot;</span><span class="Other">,</span>
<span class="Identifier">warnStrictNotNil</span> <span class="Other">=</span> <span class="StringLit">&quot;StrictNotNil&quot;</span><span class="Other">,</span> <span class="Identifier">warnResultUsed</span> <span class="Other">=</span> <span class="StringLit">&quot;ResultUsed&quot;</span><span class="Other">,</span>
<span class="Identifier">warnCannotOpen</span> <span class="Other">=</span> <span class="StringLit">&quot;CannotOpen&quot;</span><span class="Other">,</span> <span class="Identifier">warnFileChanged</span> <span class="Other">=</span> <span class="StringLit">&quot;FileChanged&quot;</span><span class="Other">,</span>
<span class="Identifier">warnSuspiciousEnumConv</span> <span class="Other">=</span> <span class="StringLit">&quot;EnumConv&quot;</span><span class="Other">,</span> <span class="Identifier">warnAnyEnumConv</span> <span class="Other">=</span> <span class="StringLit">&quot;AnyEnumConv&quot;</span><span class="Other">,</span>
<span class="Identifier">warnHoleEnumConv</span> <span class="Other">=</span> <span class="StringLit">&quot;HoleEnumConv&quot;</span><span class="Other">,</span> <span class="Identifier">warnCstringConv</span> <span class="Other">=</span> <span class="StringLit">&quot;CStringConv&quot;</span><span class="Other">,</span>
<span class="Identifier">warnPtrToCstringConv</span> <span class="Other">=</span> <span class="StringLit">&quot;PtrToCstringConv&quot;</span><span class="Other">,</span> <span class="Identifier">warnEffect</span> <span class="Other">=</span> <span class="StringLit">&quot;Effect&quot;</span><span class="Other">,</span>
<span class="Identifier">warnCastSizes</span> <span class="Other">=</span> <span class="StringLit">&quot;CastSizes&quot;</span><span class="Other">,</span> <span class="Identifier">warnAboveMaxSizeSet</span> <span class="Other">=</span> <span class="StringLit">&quot;AboveMaxSizeSet&quot;</span><span class="Other">,</span>
<span class="Identifier">warnImplicitTemplateRedefinition</span> <span class="Other">=</span> <span class="StringLit">&quot;ImplicitTemplateRedefinition&quot;</span><span class="Other">,</span>
<span class="Identifier">warnUnnamedBreak</span> <span class="Other">=</span> <span class="StringLit">&quot;UnnamedBreak&quot;</span><span class="Other">,</span> <span class="Identifier">warnStmtListLambda</span> <span class="Other">=</span> <span class="StringLit">&quot;StmtListLambda&quot;</span><span class="Other">,</span>
<span class="Identifier">warnBareExcept</span> <span class="Other">=</span> <span class="StringLit">&quot;BareExcept&quot;</span><span class="Other">,</span>
<span class="Identifier">warnImplicitDefaultValue</span> <span class="Other">=</span> <span class="StringLit">&quot;ImplicitDefaultValue&quot;</span><span class="Other">,</span>
<span class="Identifier">warnIgnoredSymbolInjection</span> <span class="Other">=</span> <span class="StringLit">&quot;IgnoredSymbolInjection&quot;</span><span class="Other">,</span>
<span class="Identifier">warnStdPrefix</span> <span class="Other">=</span> <span class="StringLit">&quot;StdPrefix&quot;</span><span class="Other">,</span> <span class="Identifier">warnUnknownNotes</span> <span class="Other">=</span> <span class="StringLit">&quot;UnknownNotes&quot;</span><span class="Other">,</span>
<span class="Identifier">warnLongLiterals</span> <span class="Other">=</span> <span class="StringLit">&quot;LongLiterals&quot;</span><span class="Other">,</span> <span class="Identifier">warnUser</span> <span class="Other">=</span> <span class="StringLit">&quot;User&quot;</span><span class="Other">,</span>
<span class="Identifier">warnGlobalVarConstructorTemporary</span> <span class="Other">=</span> <span class="StringLit">&quot;GlobalVarConstructorTemporary&quot;</span><span class="Other">,</span>
<span class="Identifier">warnImplicitRangeConversion</span> <span class="Other">=</span> <span class="StringLit">&quot;ImplicitRangeConversion&quot;</span><span class="Other">,</span>
<span class="Identifier">warnSystemRangeConversion</span> <span class="Other">=</span> <span class="StringLit">&quot;SystemRangeConversion&quot;</span><span class="Other">,</span> <span class="Identifier">hintSuccess</span> <span class="Other">=</span> <span class="StringLit">&quot;Success&quot;</span><span class="Other">,</span>
<span class="Identifier">hintSuccessX</span> <span class="Other">=</span> <span class="StringLit">&quot;SuccessX&quot;</span><span class="Other">,</span> <span class="Identifier">hintCC</span> <span class="Other">=</span> <span class="StringLit">&quot;CC&quot;</span><span class="Other">,</span>
<span class="Identifier">hintXDeclaredButNotUsed</span> <span class="Other">=</span> <span class="StringLit">&quot;XDeclaredButNotUsed&quot;</span><span class="Other">,</span>
<span class="Identifier">hintDuplicateModuleImport</span> <span class="Other">=</span> <span class="StringLit">&quot;DuplicateModuleImport&quot;</span><span class="Other">,</span>
<span class="Identifier">hintXCannotRaiseY</span> <span class="Other">=</span> <span class="StringLit">&quot;XCannotRaiseY&quot;</span><span class="Other">,</span>
<span class="Identifier">hintConvToBaseNotNeeded</span> <span class="Other">=</span> <span class="StringLit">&quot;ConvToBaseNotNeeded&quot;</span><span class="Other">,</span>
<span class="Identifier">hintConvFromXtoItselfNotNeeded</span> <span class="Other">=</span> <span class="StringLit">&quot;ConvFromXtoItselfNotNeeded&quot;</span><span class="Other">,</span>
<span class="Identifier">hintExprAlwaysX</span> <span class="Other">=</span> <span class="StringLit">&quot;ExprAlwaysX&quot;</span><span class="Other">,</span> <span class="Identifier">hintQuitCalled</span> <span class="Other">=</span> <span class="StringLit">&quot;QuitCalled&quot;</span><span class="Other">,</span>
<span class="Identifier">hintProcessing</span> <span class="Other">=</span> <span class="StringLit">&quot;Processing&quot;</span><span class="Other">,</span> <span class="Identifier">hintProcessingStmt</span> <span class="Other">=</span> <span class="StringLit">&quot;ProcessingStmt&quot;</span><span class="Other">,</span>
<span class="Identifier">hintCodeBegin</span> <span class="Other">=</span> <span class="StringLit">&quot;CodeBegin&quot;</span><span class="Other">,</span> <span class="Identifier">hintCodeEnd</span> <span class="Other">=</span> <span class="StringLit">&quot;CodeEnd&quot;</span><span class="Other">,</span> <span class="Identifier">hintConf</span> <span class="Other">=</span> <span class="StringLit">&quot;Conf&quot;</span><span class="Other">,</span>
<span class="Identifier">hintPath</span> <span class="Other">=</span> <span class="StringLit">&quot;Path&quot;</span><span class="Other">,</span> <span class="Identifier">hintConditionAlwaysTrue</span> <span class="Other">=</span> <span class="StringLit">&quot;CondTrue&quot;</span><span class="Other">,</span>
<span class="Identifier">hintConditionAlwaysFalse</span> <span class="Other">=</span> <span class="StringLit">&quot;CondFalse&quot;</span><span class="Other">,</span> <span class="Identifier">hintName</span> <span class="Other">=</span> <span class="StringLit">&quot;Name&quot;</span><span class="Other">,</span>
<span class="Identifier">hintPattern</span> <span class="Other">=</span> <span class="StringLit">&quot;Pattern&quot;</span><span class="Other">,</span> <span class="Identifier">hintExecuting</span> <span class="Other">=</span> <span class="StringLit">&quot;Exec&quot;</span><span class="Other">,</span> <span class="Identifier">hintLinking</span> <span class="Other">=</span> <span class="StringLit">&quot;Link&quot;</span><span class="Other">,</span>
<span class="Identifier">hintDependency</span> <span class="Other">=</span> <span class="StringLit">&quot;Dependency&quot;</span><span class="Other">,</span> <span class="Identifier">hintSource</span> <span class="Other">=</span> <span class="StringLit">&quot;Source&quot;</span><span class="Other">,</span>
<span class="Identifier">hintPerformance</span> <span class="Other">=</span> <span class="StringLit">&quot;Performance&quot;</span><span class="Other">,</span> <span class="Identifier">hintStackTrace</span> <span class="Other">=</span> <span class="StringLit">&quot;StackTrace&quot;</span><span class="Other">,</span>
<span class="Identifier">hintGCStats</span> <span class="Other">=</span> <span class="StringLit">&quot;GCStats&quot;</span><span class="Other">,</span> <span class="Identifier">hintGlobalVar</span> <span class="Other">=</span> <span class="StringLit">&quot;GlobalVar&quot;</span><span class="Other">,</span>
<span class="Identifier">hintExpandMacro</span> <span class="Other">=</span> <span class="StringLit">&quot;ExpandMacro&quot;</span><span class="Other">,</span> <span class="Identifier">hintUser</span> <span class="Other">=</span> <span class="StringLit">&quot;User&quot;</span><span class="Other">,</span> <span class="Identifier">hintUserRaw</span> <span class="Other">=</span> <span class="StringLit">&quot;UserRaw&quot;</span><span class="Other">,</span>
<span class="Identifier">hintExtendedContext</span> <span class="Other">=</span> <span class="StringLit">&quot;ExtendedContext&quot;</span><span class="Other">,</span> <span class="Identifier">hintUnknownRaises</span> <span class="Other">=</span> <span class="StringLit">&quot;UnknownRaises&quot;</span><span class="Other">,</span>
<span class="Identifier">hintMsgOrigin</span> <span class="Other">=</span> <span class="StringLit">&quot;MsgOrigin&quot;</span><span class="Other">,</span> <span class="Identifier">hintDeclaredLoc</span> <span class="Other">=</span> <span class="StringLit">&quot;DeclaredLoc&quot;</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L30" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L30" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNoteKind">
<dt><pre><a href="#TNoteKind"><span class="Identifier">TNoteKind</span></a> <span class="Other">=</span> <span class="Identifier">range</span><span class="Other">[</span><span class="Identifier">warnMin</span> <span class="Operator">..</span> <span class="Identifier">hintMax</span><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L262" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L262" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="TNoteKinds">
<dt><pre><a href="#TNoteKinds"><span class="Identifier">TNoteKinds</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="#TNoteKind"><span class="Identifier">TNoteKind</span></a><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L263" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L263" 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="commandLineIdx">
<dt><pre><a href="#commandLineIdx"><span class="Identifier">commandLineIdx</span></a> <span class="Other">=</span> <span class="DecNumber">-3'i32</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L349" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L349" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="errArgsNeedRunOption">
<dt><pre><a href="#errArgsNeedRunOption"><span class="Identifier">errArgsNeedRunOption</span></a> <span class="Other">=</span> <span class="StringLit">&quot;arguments can only be given if the \'--run\' option is selected&quot;</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L278" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L278" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="errFloatToString">
<dt><pre><a href="#errFloatToString"><span class="Identifier">errFloatToString</span></a> <span class="Other">=</span> <span class="StringLit">&quot;cannot convert \'$1\' to \'$2\'&quot;</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L279" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L279" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="errMax">
<dt><pre><a href="#errMax"><span class="Identifier">errMax</span></a> <span class="Other">=</span> <span class="DecNumber">errUser</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L254" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L254" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="errMin">
<dt><pre><a href="#errMin"><span class="Identifier">errMin</span></a> <span class="Other">=</span> <span class="DecNumber">errUnknown</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L253" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L253" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="errXMustBeCompileTime">
<dt><pre><a href="#errXMustBeCompileTime"><span class="Identifier">errXMustBeCompileTime</span></a> <span class="Other">=</span> <span class="StringLit">&quot;\'$1\' can only be used in compile-time context&quot;</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L277" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L277" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="explanationsBaseUrl">
<dt><pre><a href="#explanationsBaseUrl"><span class="Identifier">explanationsBaseUrl</span></a> <span class="Other">=</span> <span class="StringLit">&quot;https://nim-lang.github.io/Nim&quot;</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L17" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L17" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="fatalMsgs">
<dt><pre><a href="#fatalMsgs"><span class="Identifier">fatalMsgs</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">errUnknown</span><span class="Other">..</span><span class="DecNumber">errInternal</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L252" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L252" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="hintMax">
<dt><pre><a href="#hintMax"><span class="Identifier">hintMax</span></a> <span class="Other">=</span> <span class="DecNumber">hintDeclaredLoc</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L258" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L258" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="hintMin">
<dt><pre><a href="#hintMin"><span class="Identifier">hintMin</span></a> <span class="Other">=</span> <span class="DecNumber">hintSuccess</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L257" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L257" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="InvalidFileIdx">
<dt><pre><a href="#InvalidFileIdx"><span class="Identifier">InvalidFileIdx</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/lineinfos.nim#L339" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L339" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="MsgKindToStr">
<dt><pre><a href="#MsgKindToStr"><span class="Identifier">MsgKindToStr</span></a><span class="Other">:</span> <span class="Identifier">array</span><span class="Other">[</span><span class="Identifier">TMsgKind</span><span class="Other">,</span> <span class="Identifier">string</span><span class="Other">]</span> <span class="Other">=</span> <span class="Other">[</span><span class="StringLit">&quot;unknown error&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;fatal error: $1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;internal error: $1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;illformed AST: $1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;cannot open \'$1\'&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;\'$1\' expected&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;grid table is not implemented&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;illformed delimiter row of a markdown table&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;Illformed table: $1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;new section expected $1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;general parse error&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;invalid directive: \'$1\'&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;invalid field: $1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;number of footnotes and their references don\'t match: $1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;disabled directive: \'$1\'&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;Cannot prove that \'$1\' is initialized.&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;cannot open \'$1\'&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;octal escape sequences do not exist; leading zero is ignored&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;\'$1\' is never read&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;\'$1\' might not have been initialized&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;config file \'$1\' is deprecated&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;\'l\' should not be used as an identifier; may look like \'1\' (one)&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;unknown magic \'$1\' might crash the compiler&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;redefinition of label \'$1\'&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;unknown substitution \'$1\'&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;ambiguous doc link $1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;broken link \'$1\'&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;language \'$1\' not supported&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;field \'$1\' not supported&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;importdoc for \'$1\' is not used&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;RST style: $1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;comment \'$1\' ignored&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;use {.base.} for base methods; baseless methods are deprecated&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;write to foreign heap&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;unsafe code: \'$1\'&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;imported and not used: \'$1\'&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;inherit from a more precise exception type like ValueError, IOError or OSError. If these don\'t suit, inherit from CatchableError or Defect.&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;each identifier is a tuple&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;setLen can potentially expand the sequence, but the element type \'$1\' doesn\'t have a valid default value&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;The \'$1\' type doesn\'t have a valid default value&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;Cannot prove that \'$1\' is initialized. This will become a compile time error in the future.&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;cannot prove that field \'$1\' is accessible&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;cannot prove index \'$1\' is valid&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;unreachable else, all cases are already covered&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;unreachable code after \'return\' statement or \'{.noReturn.}\' proc&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;not GC-safe: \'$1\'&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;use explicit initialization of \'$1\' for clarity&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;\'$1\' uses GC\'ed memory&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;usage of a type with a destructor in a non destructible context. This will become a compile time error in the future.&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;Special variable \'result\' is shadowed.&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;Number of spaces around \'$#\' is not consistent&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;Potential object case transition, instantiate new object instead&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;observable stores to \'$1\'&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;used \'result\' variable&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;cannot open: $1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;file changed: $1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;unsafe conversion to \'cstring\' from \'$1\'; Use a `cast` operation like `cast[cstring](x)`; this will become a compile time error in the future&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;template \'$1\' is implicitly redefined; this is deprecated, add an explicit .redefine pragma&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;Using an unnamed break in a block is deprecated; Use a named block with a named break instead&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;statement list expression assumed to be anonymous proc; this is deprecated, use `do (): ...` or `proc () = ...` instead&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1 needs the \'std\' prefix&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;global variable \'$1\' initialization requires a temporary variable&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;implicit range conversion $1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;implicit range conversion $1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;operation successful: $#&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$build\n$loc lines; ${sec}s; $mem; proj: $project; out: $output&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;CC: $1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;\'$1\' is declared but not used&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;conversion to base object is not needed&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;conversion from $1 to itself is pointless&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;expression evaluates always to \'$1\'&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;quit() called&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;generated code listing:&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;end of listing&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;used config file \'$1\'&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;added path: \'$1\'&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;condition is always true: \'$1\'&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;condition is always false: \'$1\'&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;global variable declared here&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;expanded macro: $1&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1 is a forward declaration without explicit .raises, assuming it can raise anything&quot;</span><span class="Other">,</span>
<span class="StringLit">&quot;$1&quot;</span><span class="Other">,</span> <span class="StringLit">&quot;$1&quot;</span><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L121" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L121" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="NotesVerbosity">
<dt><pre><a href="#NotesVerbosity"><span class="Identifier">NotesVerbosity</span></a> <span class="Other">=</span> <span class="Other">[</span><span class="Other">{</span><span class="DecNumber">warnCannotOpenFile</span><span class="Other">..</span><span class="DecNumber">warnProveInit</span><span class="Other">,</span>
<span class="DecNumber">warnUnreachableElse</span><span class="Other">..</span><span class="DecNumber">warnStaticIndexCheck</span><span class="Other">,</span>
<span class="DecNumber">warnGcUnsafe2</span><span class="Other">..</span><span class="DecNumber">warnCycleCreated</span><span class="Other">,</span> <span class="DecNumber">warnStrictNotNil</span><span class="Other">,</span>
<span class="DecNumber">warnCannotOpen</span><span class="Other">..</span><span class="DecNumber">warnSuspiciousEnumConv</span><span class="Other">,</span>
<span class="DecNumber">warnHoleEnumConv</span><span class="Other">..</span><span class="DecNumber">warnStmtListLambda</span><span class="Other">,</span>
<span class="DecNumber">warnImplicitDefaultValue</span><span class="Other">..</span><span class="DecNumber">warnIgnoredSymbolInjection</span><span class="Other">,</span>
<span class="DecNumber">warnUnknownNotes</span><span class="Other">..</span><span class="DecNumber">warnGlobalVarConstructorTemporary</span><span class="Other">,</span>
<span class="DecNumber">hintXDeclaredButNotUsed</span><span class="Other">..</span><span class="DecNumber">hintQuitCalled</span><span class="Other">,</span>
<span class="DecNumber">hintConditionAlwaysTrue</span><span class="Other">..</span><span class="DecNumber">hintName</span><span class="Other">,</span>
<span class="DecNumber">hintExpandMacro</span><span class="Other">..</span><span class="DecNumber">hintUserRaw</span><span class="Other">,</span> <span class="DecNumber">hintUnknownRaises</span><span class="Other">}</span><span class="Other">,</span> <span class="Other">{</span>
<span class="DecNumber">warnCannotOpenFile</span><span class="Other">..</span><span class="DecNumber">warnProveInit</span><span class="Other">,</span>
<span class="DecNumber">warnUnreachableElse</span><span class="Other">..</span><span class="DecNumber">warnStaticIndexCheck</span><span class="Other">,</span> <span class="DecNumber">warnGcUnsafe2</span><span class="Other">..</span><span class="DecNumber">warnCycleCreated</span><span class="Other">,</span>
<span class="DecNumber">warnStrictNotNil</span><span class="Other">,</span> <span class="DecNumber">warnCannotOpen</span><span class="Other">..</span><span class="DecNumber">warnSuspiciousEnumConv</span><span class="Other">,</span>
<span class="DecNumber">warnHoleEnumConv</span><span class="Other">..</span><span class="DecNumber">warnStmtListLambda</span><span class="Other">,</span>
<span class="DecNumber">warnImplicitDefaultValue</span><span class="Other">..</span><span class="DecNumber">warnIgnoredSymbolInjection</span><span class="Other">,</span>
<span class="DecNumber">warnUnknownNotes</span><span class="Other">..</span><span class="DecNumber">warnGlobalVarConstructorTemporary</span><span class="Other">,</span>
<span class="DecNumber">hintSuccess</span><span class="Other">..</span><span class="DecNumber">hintProcessing</span><span class="Other">,</span> <span class="DecNumber">hintConf</span><span class="Other">,</span> <span class="DecNumber">hintConditionAlwaysTrue</span><span class="Other">..</span><span class="DecNumber">hintLinking</span><span class="Other">,</span>
<span class="DecNumber">hintExpandMacro</span><span class="Other">..</span><span class="DecNumber">hintUserRaw</span><span class="Other">,</span> <span class="DecNumber">hintUnknownRaises</span><span class="Other">}</span><span class="Other">,</span> <span class="Other">{</span>
<span class="DecNumber">warnCannotOpenFile</span><span class="Other">..</span><span class="DecNumber">warnCycleCreated</span><span class="Other">,</span> <span class="DecNumber">warnStrictNotNil</span><span class="Other">,</span>
<span class="DecNumber">warnCannotOpen</span><span class="Other">..</span><span class="DecNumber">warnSuspiciousEnumConv</span><span class="Other">,</span>
<span class="DecNumber">warnHoleEnumConv</span><span class="Other">..</span><span class="DecNumber">warnStmtListLambda</span><span class="Other">,</span>
<span class="DecNumber">warnImplicitDefaultValue</span><span class="Other">..</span><span class="DecNumber">warnIgnoredSymbolInjection</span><span class="Other">,</span>
<span class="DecNumber">warnUnknownNotes</span><span class="Other">..</span><span class="DecNumber">warnImplicitRangeConversion</span><span class="Other">,</span> <span class="DecNumber">hintSuccess</span><span class="Other">..</span><span class="DecNumber">hintProcessing</span><span class="Other">,</span>
<span class="DecNumber">hintCodeBegin</span><span class="Other">..</span><span class="DecNumber">hintPerformance</span><span class="Other">,</span> <span class="DecNumber">hintGCStats</span><span class="Other">..</span><span class="DecNumber">hintUserRaw</span><span class="Other">,</span>
<span class="DecNumber">hintUnknownRaises</span><span class="Other">..</span><span class="DecNumber">hintMsgOrigin</span><span class="Other">}</span><span class="Other">,</span> <span class="Other">{</span><span class="DecNumber">warnCannotOpenFile</span><span class="Other">..</span><span class="DecNumber">warnCycleCreated</span><span class="Other">,</span>
<span class="DecNumber">warnStrictNotNil</span><span class="Other">,</span>
<span class="DecNumber">warnCannotOpen</span><span class="Other">..</span><span class="DecNumber">warnSuspiciousEnumConv</span><span class="Other">,</span>
<span class="DecNumber">warnHoleEnumConv</span><span class="Other">..</span><span class="DecNumber">warnStmtListLambda</span><span class="Other">,</span> <span class="DecNumber">warnImplicitDefaultValue</span><span class="Other">..</span><span class="DecNumber">warnIgnoredSymbolInjection</span><span class="Other">,</span> <span class="DecNumber">warnUnknownNotes</span><span class="Other">..</span><span class="DecNumber">warnImplicitRangeConversion</span><span class="Other">,</span>
<span class="DecNumber">hintSuccess</span><span class="Other">..</span><span class="DecNumber">hintDeclaredLoc</span><span class="Other">}</span><span class="Other">]</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L276" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L276" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="rstWarnings">
<dt><pre><a href="#rstWarnings"><span class="Identifier">rstWarnings</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="DecNumber">warnRstRedefinitionOfLabel</span><span class="Other">..</span><span class="DecNumber">warnRstStyle</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L259" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L259" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="trackPosInvalidFileIdx">
<dt><pre><a href="#trackPosInvalidFileIdx"><span class="Identifier">trackPosInvalidFileIdx</span></a> <span class="Other">=</span> <span class="DecNumber">-2'i32</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L347" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L347" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="unknownLineInfo">
<dt><pre><a href="#unknownLineInfo"><span class="Identifier">unknownLineInfo</span></a> <span class="Other">=</span> <span class="Other">(</span><span class="Identifier">line</span><span class="Other">:</span> <span class="DecNumber">0'u</span><span class="Other">,</span> <span class="Identifier">col</span><span class="Other">:</span> <span class="DecNumber">-1</span><span class="Other">,</span> <span class="Identifier">fileIndex</span><span class="Other">:</span> <span class="DecNumber">-1</span><span class="Other">)</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L340" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L340" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="warnMax">
<dt><pre><a href="#warnMax"><span class="Identifier">warnMax</span></a> <span class="Other">=</span> <span class="DecNumber">warnSystemRangeConversion</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L256" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L256" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="warnMin">
<dt><pre><a href="#warnMin"><span class="Identifier">warnMin</span></a> <span class="Other">=</span> <span class="DecNumber">warnCannotOpenFile</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/lineinfos.nim#L255" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L255" 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="==,FileIndex,FileIndex">
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CFileIndex%2CFileIndex"><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="#FileIndex"><span class="Identifier">FileIndex</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/lineinfos.nim#L330" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L330" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="createDocLink-procs-all">
<div id="createDocLink,string">
<dt><pre><span class="Keyword">proc</span> <a href="#createDocLink%2Cstring"><span class="Identifier">createDocLink</span></a><span class="Other">(</span><span class="Identifier">urlSuffix</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/lineinfos.nim#L21" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L21" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="hash-procs-all">
<div id="hash,TLineInfo">
<dt><pre><span class="Keyword">proc</span> <a href="#hash%2CTLineInfo"><span class="Identifier">hash</span></a><span class="Other">(</span><span class="Identifier">i</span><span class="Other">:</span> <a href="#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Hash</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/lineinfos.nim#L332" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L332" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="initMsgConfig-procs-all">
<div id="initMsgConfig">
<dt><pre><span class="Keyword">proc</span> <a href="#initMsgConfig"><span class="Identifier">initMsgConfig</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="#MsgConfig"><span class="Identifier">MsgConfig</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/lineinfos.nim#L365" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L365" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="raiseRecoverableError-procs-all">
<div id="raiseRecoverableError,string">
<dt><pre><span class="Keyword">proc</span> <a href="#raiseRecoverableError%2Cstring"><span class="Identifier">raiseRecoverableError</span></a><span class="Other">(</span><span class="Identifier">msg</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span> {.<span class="Identifier">noinline</span><span class="Other">,</span> <span class="Identifier">noreturn</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="Identifier">ERecoverableError</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/lineinfos.nim#L335" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lineinfos.nim#L335" 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: 2026-06-02 05:20:16 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

165
compiler/lineinfos.idx Normal file
View File

@@ -0,0 +1,165 @@
nimTitle lineinfos lineinfos.html module lineinfos 0
nim explanationsBaseUrl lineinfos.html#explanationsBaseUrl const explanationsBaseUrl 17
nim createDocLink lineinfos.html#createDocLink,string proc createDocLink(urlSuffix: string): string 21
nim errUnknown lineinfos.html#errUnknown TMsgKind.errUnknown 30
nim errFatal lineinfos.html#errFatal TMsgKind.errFatal 30
nim errInternal lineinfos.html#errInternal TMsgKind.errInternal 30
nim errIllFormedAstX lineinfos.html#errIllFormedAstX TMsgKind.errIllFormedAstX 30
nim errCannotOpenFile lineinfos.html#errCannotOpenFile TMsgKind.errCannotOpenFile 30
nim errXExpected lineinfos.html#errXExpected TMsgKind.errXExpected 30
nim errRstMissingClosing lineinfos.html#errRstMissingClosing TMsgKind.errRstMissingClosing 30
nim errRstGridTableNotImplemented lineinfos.html#errRstGridTableNotImplemented TMsgKind.errRstGridTableNotImplemented 30
nim errRstMarkdownIllformedTable lineinfos.html#errRstMarkdownIllformedTable TMsgKind.errRstMarkdownIllformedTable 30
nim errRstIllformedTable lineinfos.html#errRstIllformedTable TMsgKind.errRstIllformedTable 30
nim errRstNewSectionExpected lineinfos.html#errRstNewSectionExpected TMsgKind.errRstNewSectionExpected 30
nim errRstGeneralParseError lineinfos.html#errRstGeneralParseError TMsgKind.errRstGeneralParseError 30
nim errRstInvalidDirectiveX lineinfos.html#errRstInvalidDirectiveX TMsgKind.errRstInvalidDirectiveX 30
nim errRstInvalidField lineinfos.html#errRstInvalidField TMsgKind.errRstInvalidField 30
nim errRstFootnoteMismatch lineinfos.html#errRstFootnoteMismatch TMsgKind.errRstFootnoteMismatch 30
nim errRstSandboxedDirective lineinfos.html#errRstSandboxedDirective TMsgKind.errRstSandboxedDirective 30
nim errProveInit lineinfos.html#errProveInit TMsgKind.errProveInit 30
nim errGenerated lineinfos.html#errGenerated TMsgKind.errGenerated 30
nim errFailedMove lineinfos.html#errFailedMove TMsgKind.errFailedMove 30
nim errUser lineinfos.html#errUser TMsgKind.errUser 30
nim warnCannotOpenFile lineinfos.html#warnCannotOpenFile TMsgKind.warnCannotOpenFile 30
nim warnOctalEscape lineinfos.html#warnOctalEscape TMsgKind.warnOctalEscape 30
nim warnXIsNeverRead lineinfos.html#warnXIsNeverRead TMsgKind.warnXIsNeverRead 30
nim warnXmightNotBeenInit lineinfos.html#warnXmightNotBeenInit TMsgKind.warnXmightNotBeenInit 30
nim warnDeprecated lineinfos.html#warnDeprecated TMsgKind.warnDeprecated 30
nim warnConfigDeprecated lineinfos.html#warnConfigDeprecated TMsgKind.warnConfigDeprecated 30
nim warnDotLikeOps lineinfos.html#warnDotLikeOps TMsgKind.warnDotLikeOps 30
nim warnSmallLshouldNotBeUsed lineinfos.html#warnSmallLshouldNotBeUsed TMsgKind.warnSmallLshouldNotBeUsed 30
nim warnUnknownMagic lineinfos.html#warnUnknownMagic TMsgKind.warnUnknownMagic 30
nim warnRstRedefinitionOfLabel lineinfos.html#warnRstRedefinitionOfLabel TMsgKind.warnRstRedefinitionOfLabel 30
nim warnRstUnknownSubstitutionX lineinfos.html#warnRstUnknownSubstitutionX TMsgKind.warnRstUnknownSubstitutionX 30
nim warnRstAmbiguousLink lineinfos.html#warnRstAmbiguousLink TMsgKind.warnRstAmbiguousLink 30
nim warnRstBrokenLink lineinfos.html#warnRstBrokenLink TMsgKind.warnRstBrokenLink 30
nim warnRstLanguageXNotSupported lineinfos.html#warnRstLanguageXNotSupported TMsgKind.warnRstLanguageXNotSupported 30
nim warnRstFieldXNotSupported lineinfos.html#warnRstFieldXNotSupported TMsgKind.warnRstFieldXNotSupported 30
nim warnRstUnusedImportdoc lineinfos.html#warnRstUnusedImportdoc TMsgKind.warnRstUnusedImportdoc 30
nim warnRstStyle lineinfos.html#warnRstStyle TMsgKind.warnRstStyle 30
nim warnCommentXIgnored lineinfos.html#warnCommentXIgnored TMsgKind.warnCommentXIgnored 30
nim warnTypelessParam lineinfos.html#warnTypelessParam TMsgKind.warnTypelessParam 30
nim warnUseBase lineinfos.html#warnUseBase TMsgKind.warnUseBase 30
nim warnWriteToForeignHeap lineinfos.html#warnWriteToForeignHeap TMsgKind.warnWriteToForeignHeap 30
nim warnUnsafeCode lineinfos.html#warnUnsafeCode TMsgKind.warnUnsafeCode 30
nim warnUnusedImportX lineinfos.html#warnUnusedImportX TMsgKind.warnUnusedImportX 30
nim warnInheritFromException lineinfos.html#warnInheritFromException TMsgKind.warnInheritFromException 30
nim warnEachIdentIsTuple lineinfos.html#warnEachIdentIsTuple TMsgKind.warnEachIdentIsTuple 30
nim warnUnsafeSetLen lineinfos.html#warnUnsafeSetLen TMsgKind.warnUnsafeSetLen 30
nim warnUnsafeDefault lineinfos.html#warnUnsafeDefault TMsgKind.warnUnsafeDefault 30
nim warnProveInit lineinfos.html#warnProveInit TMsgKind.warnProveInit 30
nim warnProveField lineinfos.html#warnProveField TMsgKind.warnProveField 30
nim warnProveIndex lineinfos.html#warnProveIndex TMsgKind.warnProveIndex 30
nim warnUnreachableElse lineinfos.html#warnUnreachableElse TMsgKind.warnUnreachableElse 30
nim warnUnreachableCode lineinfos.html#warnUnreachableCode TMsgKind.warnUnreachableCode 30
nim warnStaticIndexCheck lineinfos.html#warnStaticIndexCheck TMsgKind.warnStaticIndexCheck 30
nim warnGcUnsafe lineinfos.html#warnGcUnsafe TMsgKind.warnGcUnsafe 30
nim warnGcUnsafe2 lineinfos.html#warnGcUnsafe2 TMsgKind.warnGcUnsafe2 30
nim warnUninit lineinfos.html#warnUninit TMsgKind.warnUninit 30
nim warnGcMem lineinfos.html#warnGcMem TMsgKind.warnGcMem 30
nim warnDestructor lineinfos.html#warnDestructor TMsgKind.warnDestructor 30
nim warnLockLevel lineinfos.html#warnLockLevel TMsgKind.warnLockLevel 30
nim warnResultShadowed lineinfos.html#warnResultShadowed TMsgKind.warnResultShadowed 30
nim warnInconsistentSpacing lineinfos.html#warnInconsistentSpacing TMsgKind.warnInconsistentSpacing 30
nim warnCaseTransition lineinfos.html#warnCaseTransition TMsgKind.warnCaseTransition 30
nim warnCycleCreated lineinfos.html#warnCycleCreated TMsgKind.warnCycleCreated 30
nim warnObservableStores lineinfos.html#warnObservableStores TMsgKind.warnObservableStores 30
nim warnStrictNotNil lineinfos.html#warnStrictNotNil TMsgKind.warnStrictNotNil 30
nim warnResultUsed lineinfos.html#warnResultUsed TMsgKind.warnResultUsed 30
nim warnCannotOpen lineinfos.html#warnCannotOpen TMsgKind.warnCannotOpen 30
nim warnFileChanged lineinfos.html#warnFileChanged TMsgKind.warnFileChanged 30
nim warnSuspiciousEnumConv lineinfos.html#warnSuspiciousEnumConv TMsgKind.warnSuspiciousEnumConv 30
nim warnAnyEnumConv lineinfos.html#warnAnyEnumConv TMsgKind.warnAnyEnumConv 30
nim warnHoleEnumConv lineinfos.html#warnHoleEnumConv TMsgKind.warnHoleEnumConv 30
nim warnCstringConv lineinfos.html#warnCstringConv TMsgKind.warnCstringConv 30
nim warnPtrToCstringConv lineinfos.html#warnPtrToCstringConv TMsgKind.warnPtrToCstringConv 30
nim warnEffect lineinfos.html#warnEffect TMsgKind.warnEffect 30
nim warnCastSizes lineinfos.html#warnCastSizes TMsgKind.warnCastSizes 30
nim warnAboveMaxSizeSet lineinfos.html#warnAboveMaxSizeSet TMsgKind.warnAboveMaxSizeSet 30
nim warnImplicitTemplateRedefinition lineinfos.html#warnImplicitTemplateRedefinition TMsgKind.warnImplicitTemplateRedefinition 30
nim warnUnnamedBreak lineinfos.html#warnUnnamedBreak TMsgKind.warnUnnamedBreak 30
nim warnStmtListLambda lineinfos.html#warnStmtListLambda TMsgKind.warnStmtListLambda 30
nim warnBareExcept lineinfos.html#warnBareExcept TMsgKind.warnBareExcept 30
nim warnImplicitDefaultValue lineinfos.html#warnImplicitDefaultValue TMsgKind.warnImplicitDefaultValue 30
nim warnIgnoredSymbolInjection lineinfos.html#warnIgnoredSymbolInjection TMsgKind.warnIgnoredSymbolInjection 30
nim warnStdPrefix lineinfos.html#warnStdPrefix TMsgKind.warnStdPrefix 30
nim warnUnknownNotes lineinfos.html#warnUnknownNotes TMsgKind.warnUnknownNotes 30
nim warnLongLiterals lineinfos.html#warnLongLiterals TMsgKind.warnLongLiterals 30
nim warnUser lineinfos.html#warnUser TMsgKind.warnUser 30
nim warnGlobalVarConstructorTemporary lineinfos.html#warnGlobalVarConstructorTemporary TMsgKind.warnGlobalVarConstructorTemporary 30
nim warnImplicitRangeConversion lineinfos.html#warnImplicitRangeConversion TMsgKind.warnImplicitRangeConversion 30
nim warnSystemRangeConversion lineinfos.html#warnSystemRangeConversion TMsgKind.warnSystemRangeConversion 30
nim hintSuccess lineinfos.html#hintSuccess TMsgKind.hintSuccess 30
nim hintSuccessX lineinfos.html#hintSuccessX TMsgKind.hintSuccessX 30
nim hintCC lineinfos.html#hintCC TMsgKind.hintCC 30
nim hintXDeclaredButNotUsed lineinfos.html#hintXDeclaredButNotUsed TMsgKind.hintXDeclaredButNotUsed 30
nim hintDuplicateModuleImport lineinfos.html#hintDuplicateModuleImport TMsgKind.hintDuplicateModuleImport 30
nim hintXCannotRaiseY lineinfos.html#hintXCannotRaiseY TMsgKind.hintXCannotRaiseY 30
nim hintConvToBaseNotNeeded lineinfos.html#hintConvToBaseNotNeeded TMsgKind.hintConvToBaseNotNeeded 30
nim hintConvFromXtoItselfNotNeeded lineinfos.html#hintConvFromXtoItselfNotNeeded TMsgKind.hintConvFromXtoItselfNotNeeded 30
nim hintExprAlwaysX lineinfos.html#hintExprAlwaysX TMsgKind.hintExprAlwaysX 30
nim hintQuitCalled lineinfos.html#hintQuitCalled TMsgKind.hintQuitCalled 30
nim hintProcessing lineinfos.html#hintProcessing TMsgKind.hintProcessing 30
nim hintProcessingStmt lineinfos.html#hintProcessingStmt TMsgKind.hintProcessingStmt 30
nim hintCodeBegin lineinfos.html#hintCodeBegin TMsgKind.hintCodeBegin 30
nim hintCodeEnd lineinfos.html#hintCodeEnd TMsgKind.hintCodeEnd 30
nim hintConf lineinfos.html#hintConf TMsgKind.hintConf 30
nim hintPath lineinfos.html#hintPath TMsgKind.hintPath 30
nim hintConditionAlwaysTrue lineinfos.html#hintConditionAlwaysTrue TMsgKind.hintConditionAlwaysTrue 30
nim hintConditionAlwaysFalse lineinfos.html#hintConditionAlwaysFalse TMsgKind.hintConditionAlwaysFalse 30
nim hintName lineinfos.html#hintName TMsgKind.hintName 30
nim hintPattern lineinfos.html#hintPattern TMsgKind.hintPattern 30
nim hintExecuting lineinfos.html#hintExecuting TMsgKind.hintExecuting 30
nim hintLinking lineinfos.html#hintLinking TMsgKind.hintLinking 30
nim hintDependency lineinfos.html#hintDependency TMsgKind.hintDependency 30
nim hintSource lineinfos.html#hintSource TMsgKind.hintSource 30
nim hintPerformance lineinfos.html#hintPerformance TMsgKind.hintPerformance 30
nim hintStackTrace lineinfos.html#hintStackTrace TMsgKind.hintStackTrace 30
nim hintGCStats lineinfos.html#hintGCStats TMsgKind.hintGCStats 30
nim hintGlobalVar lineinfos.html#hintGlobalVar TMsgKind.hintGlobalVar 30
nim hintExpandMacro lineinfos.html#hintExpandMacro TMsgKind.hintExpandMacro 30
nim hintUser lineinfos.html#hintUser TMsgKind.hintUser 30
nim hintUserRaw lineinfos.html#hintUserRaw TMsgKind.hintUserRaw 30
nim hintExtendedContext lineinfos.html#hintExtendedContext TMsgKind.hintExtendedContext 30
nim hintUnknownRaises lineinfos.html#hintUnknownRaises TMsgKind.hintUnknownRaises 30
nim hintMsgOrigin lineinfos.html#hintMsgOrigin TMsgKind.hintMsgOrigin 30
nim hintDeclaredLoc lineinfos.html#hintDeclaredLoc TMsgKind.hintDeclaredLoc 30
nim TMsgKind lineinfos.html#TMsgKind enum TMsgKind 30
nim MsgKindToStr lineinfos.html#MsgKindToStr const MsgKindToStr 121
nim fatalMsgs lineinfos.html#fatalMsgs const fatalMsgs 252
nim errMin lineinfos.html#errMin const errMin 253
nim errMax lineinfos.html#errMax const errMax 254
nim warnMin lineinfos.html#warnMin const warnMin 255
nim warnMax lineinfos.html#warnMax const warnMax 256
nim hintMin lineinfos.html#hintMin const hintMin 257
nim hintMax lineinfos.html#hintMax const hintMax 258
nim rstWarnings lineinfos.html#rstWarnings const rstWarnings 259
nim TNoteKind lineinfos.html#TNoteKind type TNoteKind 262
nim TNoteKinds lineinfos.html#TNoteKinds type TNoteKinds 263
nim NotesVerbosity lineinfos.html#NotesVerbosity const NotesVerbosity 276
nim errXMustBeCompileTime lineinfos.html#errXMustBeCompileTime const errXMustBeCompileTime 277
nim errArgsNeedRunOption lineinfos.html#errArgsNeedRunOption const errArgsNeedRunOption 278
nim errFloatToString lineinfos.html#errFloatToString const errFloatToString 279
nim fikSource lineinfos.html#fikSource FileInfoKind.fikSource 282
nim fikNifModule lineinfos.html#fikNifModule FileInfoKind.fikNifModule 282
nim FileInfoKind lineinfos.html#FileInfoKind enum FileInfoKind 282
nim TFileInfo lineinfos.html#TFileInfo object TFileInfo 286
nim FileIndex lineinfos.html#FileIndex type FileIndex 307
nim TLineInfo lineinfos.html#TLineInfo object TLineInfo 308
nim eStdOut lineinfos.html#eStdOut TErrorOutput.eStdOut 321
nim eStdErr lineinfos.html#eStdErr TErrorOutput.eStdErr 321
nim TErrorOutput lineinfos.html#TErrorOutput enum TErrorOutput 321
nim TErrorOutputs lineinfos.html#TErrorOutputs type TErrorOutputs 325
nim ERecoverableError lineinfos.html#ERecoverableError object ERecoverableError 327
nim ESuggestDone lineinfos.html#ESuggestDone object ESuggestDone 328
nim `==` lineinfos.html#==,FileIndex,FileIndex proc `==`(a, b: FileIndex): bool 330
nim hash lineinfos.html#hash,TLineInfo proc hash(i: TLineInfo): Hash 332
nim raiseRecoverableError lineinfos.html#raiseRecoverableError,string proc raiseRecoverableError(msg: string) 335
nim InvalidFileIdx lineinfos.html#InvalidFileIdx const InvalidFileIdx 339
nim unknownLineInfo lineinfos.html#unknownLineInfo const unknownLineInfo 340
nim Severity lineinfos.html#Severity enum Severity 343
nim trackPosInvalidFileIdx lineinfos.html#trackPosInvalidFileIdx const trackPosInvalidFileIdx 347
nim commandLineIdx lineinfos.html#commandLineIdx const commandLineIdx 349
nim MsgConfig lineinfos.html#MsgConfig object MsgConfig 352
nim initMsgConfig lineinfos.html#initMsgConfig proc initMsgConfig(): MsgConfig 365

264
compiler/linter.html Normal file
View File

@@ -0,0 +1,264 @@
<?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>linter</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">
<input type="checkbox" id="nav-toggle" hidden>
<label for="nav-toggle" id="nav-burger">&#9776;</label>
<label for="nav-toggle" id="nav-overlay"></label>
<div class="container">
<h1 class="title">linter</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="#10" id="60">Consts</a></summary>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#Letters" title="Letters = {'a'..'z', 'A'..'Z', '0'..'9', '\x80'..'\xFF', '_'}">Letters</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">differ
<li><a class="reference" href="#differ%2Cstring%2Cint%2Cint%2Cstring" title="differ(line: string; a, b: int; x: string): string">differ(line: string; a, b: int; x: string): string</a></li>
</ul>
<ul class="simple nested-toc-section">identLen
<li><a class="reference" href="#identLen%2Cstring%2Cint" title="identLen(line: string; start: int): int">identLen(line: string; start: int): int</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">checkPragmaUse
<li><a class="reference" href="#checkPragmaUse.t%2CPContext%2CTLineInfo%2CTSpecialWord%2Cstring%2CPSym" title="checkPragmaUse(ctx: PContext; info: TLineInfo; w: TSpecialWord;
pragmaName: string; sym: PSym)">checkPragmaUse(ctx: PContext; info: TLineInfo; w: TSpecialWord;
pragmaName: string; sym: PSym)</a></li>
</ul>
<ul class="simple nested-toc-section">styleCheckDef
<li><a class="reference" href="#styleCheckDef.t%2CPContext%2CTLineInfo%2CPSym" title="styleCheckDef(ctx: PContext; info: TLineInfo; s: PSym)">styleCheckDef(ctx: PContext; info: TLineInfo; s: PSym)</a></li>
<li><a class="reference" href="#styleCheckDef.t%2CPContext%2CTLineInfo%2CPSym%2CTSymKind" title="styleCheckDef(ctx: PContext; info: TLineInfo; sym: PSym; k: TSymKind)">styleCheckDef(ctx: PContext; info: TLineInfo; sym: PSym; k: TSymKind)</a></li>
<li><a class="reference" href="#styleCheckDef.t%2CPContext%2CPSym" title="styleCheckDef(ctx: PContext; s: PSym)">styleCheckDef(ctx: PContext; s: PSym)</a></li>
</ul>
<ul class="simple nested-toc-section">styleCheckUse
<li><a class="reference" href="#styleCheckUse.t%2CPContext%2CTLineInfo%2CPSym" title="styleCheckUse(ctx: PContext; info: TLineInfo; sym: PSym)">styleCheckUse(ctx: PContext; info: TLineInfo; sym: PSym)</a></li>
</ul>
</ul>
</details>
</li>
<li>
<a class="reference reference-toplevel" href="#19" id="69">Exports</a>
</li>
</ul>
</div>
<div class="nine columns" id="content">
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/linter.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/linter.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
<div id="tocRoot"></div>
<p class="module-desc">This module implements the style checker.</p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="options.html">options</a>, <a class="reference external" href="ast.html">ast</a>, <a class="reference external" href="msgs.html">msgs</a>, <a class="reference external" href="idents.html">idents</a>, <a class="reference external" href="lineinfos.html">lineinfos</a>, <a class="reference external" href="wordrecg.html">wordrecg</a>, <a class="reference external" href="astmsgs.html">astmsgs</a>, <a class="reference external" href="semdata.html">semdata</a>, <a class="reference external" href="packages.html">packages</a>, <a class="reference external" href="modulegraphs.html">modulegraphs</a>
</dl>
</div>
<div class="section" id="10">
<h1><a class="toc-backref" href="#10">Consts</a></h1>
<dl class="item">
<div id="Letters">
<dt><pre><a href="#Letters"><span class="Identifier">Letters</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'a'</span><span class="Other">..</span><span class="CharLit">'z'</span><span class="Other">,</span> <span class="CharLit">'A'</span><span class="Other">..</span><span class="CharLit">'Z'</span><span class="Other">,</span> <span class="CharLit">'0'</span><span class="Other">..</span><span class="CharLit">'9'</span><span class="Other">,</span> <span class="CharLit">'\x80'</span><span class="Other">..</span><span class="CharLit">'\xFF'</span><span class="Other">,</span> <span class="CharLit">'_'</span><span class="Other">}</span></pre></dt>
<dd>
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/linter.nim#L19" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/linter.nim#L19" 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="differ-procs-all">
<div id="differ,string,int,int,string">
<dt><pre><span class="Keyword">proc</span> <a href="#differ%2Cstring%2Cint%2Cint%2Cstring"><span class="Identifier">differ</span></a><span class="Other">(</span><span class="Identifier">line</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</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/linter.nim#L78" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/linter.nim#L78" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="identLen-procs-all">
<div id="identLen,string,int">
<dt><pre><span class="Keyword">proc</span> <a href="#identLen%2Cstring%2Cint"><span class="Identifier">identLen</span></a><span class="Other">(</span><span class="Identifier">line</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">start</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">int</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/linter.nim#L21" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/linter.nim#L21" 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="checkPragmaUse-templates-all">
<div id="checkPragmaUse.t,PContext,TLineInfo,TSpecialWord,string,PSym">
<dt><pre><span class="Keyword">template</span> <a href="#checkPragmaUse.t%2CPContext%2CTLineInfo%2CTSpecialWord%2Cstring%2CPSym"><span class="Identifier">checkPragmaUse</span></a><span class="Other">(</span><span class="Identifier">ctx</span><span class="Other">:</span> <a href="semdata.html#PContext"><span class="Identifier">PContext</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">w</span><span class="Other">:</span> <a href="wordrecg.html#TSpecialWord"><span class="Identifier">TSpecialWord</span></a><span class="Other">;</span>
<span class="Identifier">pragmaName</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">sym</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span></pre></dt>
<dd>
Check builtin pragma uses match their definition's style. Note: This only applies to builtin pragmas, not user pragmas.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/linter.nim#L152" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/linter.nim#L152" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="styleCheckDef-templates-all">
<div id="styleCheckDef.t,PContext,TLineInfo,PSym">
<dt><pre><span class="Keyword">template</span> <a href="#styleCheckDef.t%2CPContext%2CTLineInfo%2CPSym"><span class="Identifier">styleCheckDef</span></a><span class="Other">(</span><span class="Identifier">ctx</span><span class="Other">:</span> <a href="semdata.html#PContext"><span class="Identifier">PContext</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span></pre></dt>
<dd>
Check symbol definitions adhere to NEP1 style rules.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/linter.nim#L111" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/linter.nim#L111" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="styleCheckDef.t,PContext,TLineInfo,PSym,TSymKind">
<dt><pre><span class="Keyword">template</span> <a href="#styleCheckDef.t%2CPContext%2CTLineInfo%2CPSym%2CTSymKind"><span class="Identifier">styleCheckDef</span></a><span class="Other">(</span><span class="Identifier">ctx</span><span class="Other">:</span> <a href="semdata.html#PContext"><span class="Identifier">PContext</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">sym</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">;</span> <span class="Identifier">k</span><span class="Other">:</span> <a href="astdef.html#TSymKind"><span class="Identifier">TSymKind</span></a><span class="Other">)</span></pre></dt>
<dd>
Check symbol definitions adhere to NEP1 style rules.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/linter.nim#L95" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/linter.nim#L95" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
<div id="styleCheckDef.t,PContext,PSym">
<dt><pre><span class="Keyword">template</span> <a href="#styleCheckDef.t%2CPContext%2CPSym"><span class="Identifier">styleCheckDef</span></a><span class="Other">(</span><span class="Identifier">ctx</span><span class="Other">:</span> <a href="semdata.html#PContext"><span class="Identifier">PContext</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span></pre></dt>
<dd>
Check symbol definitions adhere to NEP1 style rules.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/linter.nim#L115" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/linter.nim#L115" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
<div id="styleCheckUse-templates-all">
<div id="styleCheckUse.t,PContext,TLineInfo,PSym">
<dt><pre><span class="Keyword">template</span> <a href="#styleCheckUse.t%2CPContext%2CTLineInfo%2CPSym"><span class="Identifier">styleCheckUse</span></a><span class="Other">(</span><span class="Identifier">ctx</span><span class="Other">:</span> <a href="semdata.html#PContext"><span class="Identifier">PContext</span></a><span class="Other">;</span> <span class="Identifier">info</span><span class="Other">:</span> <a href="lineinfos.html#TLineInfo"><span class="Identifier">TLineInfo</span></a><span class="Other">;</span> <span class="Identifier">sym</span><span class="Other">:</span> <a href="astdef.html#PSym"><span class="Identifier">PSym</span></a><span class="Other">)</span></pre></dt>
<dd>
Check symbol uses match their definition's style.
<a href="https://github.com/nim-lang/Nim/tree/devel/compiler/linter.nim#L137" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/linter.nim#L137" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
</dl>
</div>
<div class="section" id="19">
<h1><a class="toc-backref" href="#19">Exports</a></h1>
<dl class="item">
<a href="packages.html#belongsToProjectPackageMaybeNil,ConfigRef,PSym"><span class="Identifier">belongsToProjectPackageMaybeNil</span></a>, <a href="packages.html#belongsToProjectPackage,ConfigRef,PSym"><span class="Identifier">belongsToProjectPackage</span></a>, <a href="packages.html#getPackageId,PSym"><span class="Identifier">getPackageId</span></a>, <a href="packages.html#getPackageSymbol,PSym"><span class="Identifier">getPackageSymbol</span></a>, <a href="packages.html#getPackage,ConfigRef,IdentCache,FileIndex"><span class="Identifier">getPackage</span></a>
</dl>
</div>
</div>
</div>
<div class="twelve-columns footer">
<span class="nim-sprite"></span>
<br>
<small style="color: var(--hint);">Made with Nim. Generated: 2026-06-02 05:20:19 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More