Files
Nim/compiler/lexer.html
github-actions[bot] ef3d9e7b38 Deploy to GitHub pages
2025-12-28 15:55:52 +00:00

663 lines
72 KiB
HTML

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- This file is generated by Nim. -->
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-theme="auto">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>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">
<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="lexer.html#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.html#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="lexer.html#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="lexer.html#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="lexer.html#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="lexer.html#TokType"><span class="Identifier">TokType</span></a>
<span class="Identifier">base</span><span class="Operator">*</span><span class="Other">:</span> <a href="lexer.html#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="lexer.html#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="lexer.html#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="lexer.html#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="lexer.html#TokTypes"><span class="Identifier">TokTypes</span></a> <span class="Other">=</span> <span class="Identifier">set</span><span class="Other">[</span><a href="lexer.html#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="lexer.html#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="lexer.html#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="lexer.html#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="lexer.html#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="lexer.html#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="lexer.html#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="lexer.html#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.html#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">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#L1353" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L1353" 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.html#Lexer"><span class="Identifier">Lexer</span></a><span class="Other">;</span> <span class="Identifier">tok</span><span class="Other">:</span> <a href="lexer.html#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#L1368" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L1368" 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="lexer.html#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#L943" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L943" 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="lexer.html#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.html#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">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.html#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="lexer.html#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">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.html#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.html#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="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="lexer.html#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="lexer.html#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.html#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="lexer.html#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">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#L1175" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
<a href="https://github.com/nim-lang/Nim/edit/devel/compiler/lexer.nim#L1175" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
</dd>
</div>
</div>
</dl>
</div>
</div>
</div>
<div class="twelve-columns footer">
<span class="nim-sprite"></span>
<br>
<small style="color: var(--hint);">Made with Nim. Generated: 2025-12-28 15:55:43 UTC</small>
</div>
</div>
</div>
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
</body>
</html>