rename XFactory.Regs to XFactory.Generators.

This commit is contained in:
2026-05-23 21:23:06 +08:00
parent 8b285cc863
commit 058003f395
155 changed files with 16416 additions and 1261 deletions
@@ -632,6 +632,59 @@ materialization in lock-step with syntax/semantic processing).</p>
<a id="Hi_Common_Collections_LazyLinkedList_1_ReplaceSource_" data-uid="Hi.Common.Collections.LazyLinkedList`1.ReplaceSource*"></a>
<h3 id="Hi_Common_Collections_LazyLinkedList_1_ReplaceSource_System_Collections_Generic_IEnumerable__0__" data-uid="Hi.Common.Collections.LazyLinkedList`1.ReplaceSource(System.Collections.Generic.IEnumerable{`0})">
ReplaceSource(IEnumerable&lt;T&gt;)
</h3>
<div class="markdown level1 summary"><p>Replaces the current source's remaining items with <code class="paramref">src</code>.
Discards anything the old source had queued (it is disposed); the next
on-demand materialization (triggered by <a class="xref" href="Hi.Common.Collections.LazyLinkedListNode-1.html#Hi_Common_Collections_LazyLinkedListNode_1_Next">Next</a>
on the present tail or <a class="xref" href="Hi.Common.Collections.LazyLinkedList-1.html#Hi_Common_Collections_LazyLinkedList_1_First">First</a> on an empty list) yields from
<code class="paramref">src</code> only. Already-materialized nodes — including the
present tail — are unaffected, so this is the natural way to redirect
future execution from the current tail onwards (for example, a GOTO
that re-segments the file from the target N{seq} line: the GOTO host
block stays materialized as the predecessor, and the post-target
re-segmentation becomes the new source while the original between-here-
and-EOF source is dropped).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ReplaceSource(IEnumerable&lt;T&gt; src)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>src</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T&gt;</dt>
<dd><p>The new source. Yielded from on the next materialization.</p>
</dd>
</dl>
<h4 class="section" id="Hi_Common_Collections_LazyLinkedList_1_ReplaceSource_System_Collections_Generic_IEnumerable__0___remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>Constraint: same as <a class="xref" href="Hi.Common.Collections.LazyLinkedList-1.html#Hi_Common_Collections_LazyLinkedList_1_PrependSource_System_Collections_Generic_IEnumerable__0__">PrependSource(IEnumerable&lt;T&gt;)</a> — the present tail is
the splice point. Differs from <a class="xref" href="Hi.Common.Collections.LazyLinkedList-1.html#Hi_Common_Collections_LazyLinkedList_1_PrependSource_System_Collections_Generic_IEnumerable__0__">PrependSource(IEnumerable&lt;T&gt;)</a> in that the
old source's untouched tail is NOT preserved after <code class="paramref">src</code>
runs out; <a class="xref" href="Hi.Common.Collections.LazyLinkedList-1.html#Hi_Common_Collections_LazyLinkedList_1_ReplaceSource_System_Collections_Generic_IEnumerable__0__">ReplaceSource(IEnumerable&lt;T&gt;)</a> drops it. Use <a class="xref" href="Hi.Common.Collections.LazyLinkedList-1.html#Hi_Common_Collections_LazyLinkedList_1_PrependSource_System_Collections_Generic_IEnumerable__0__">PrependSource(IEnumerable&lt;T&gt;)</a>
for inline expansion (M98 / G65) where the caller's tail must resume
after the inlined body; use <a class="xref" href="Hi.Common.Collections.LazyLinkedList-1.html#Hi_Common_Collections_LazyLinkedList_1_ReplaceSource_System_Collections_Generic_IEnumerable__0__">ReplaceSource(IEnumerable&lt;T&gt;)</a> for control-flow
redirection (GOTO, M99 P{seq}) where the original tail is no longer
reachable.</p>
</div>
</article>