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
@@ -105,6 +105,28 @@ inside the cloned section. Lets every block stand alone with its full
modal context, so downstream readers (cache-file dumps, semantics, UI
jumping to a single block) do not need
<a class="xref" href="Hi.Common.Collections.LazyLinkedListNode-1.html#Hi_Common_Collections_LazyLinkedListNode_1_EnumerateBack">EnumerateBack()</a> to resolve modal state.</p>
<p>
A JSON section is a candidate for <a class="xref" href="Hi.NcParsers.PostLogicSyntaxs.ModalCarrySyntax.html#Hi_NcParsers_PostLogicSyntaxs_ModalCarrySyntax_TrackedKeys">TrackedKeys</a> when ALL
four criteria hold:
<ol><li><b>Writers concentrated</b> — one or two syntaxes own the
section (e.g. <a class="xref" href="Hi.NcParsers.LogicSyntaxs.LinearMotionSyntax.html">LinearMotionSyntax</a> /
<a class="xref" href="Hi.NcParsers.LogicSyntaxs.CircularMotionSyntax.html">CircularMotionSyntax</a> own
<code>MotionState</code>; the call/return pair own
<code>SubProgramCall</code>-derived state).</li><li><b>Readers distributed</b> — multiple downstream consumers
each need the value, and none of them should walk back to find it.
Single-reader sections do not benefit from blanket carry.</li><li><b>Every block must see the section</b> — cache-dump readers
landing randomly, single-block UI views, and look-ahead syntaxes
all require the section to be present on every block.</li><li><b>Carry is unconditional</b> — no frame-gating or other
per-block veto. Sections that need conditional carry (e.g.
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html">FanucLocalVariableReadingSyntax</a>'s
frame-aware <code>Vars.Local</code> dict-merge — carry only when
<code>MacroFrame</code> matches) belong in the owning syntax's own
carry logic, not here.</li></ol>
A section failing any criterion should be carried through its owning
syntax's own logic (single-step <code>node.Previous</code> read, or no carry
at all if absence is meaningful — e.g. <code>MacroFrame</code> absent = main
frame).
<p>
This replaces the earlier <code>CacheSyntax</code> design (which sampled
every <code>Pace</code> blocks). The legacy <code>CacheSyntax</code> XName is still