update XML IO pattern.

This commit is contained in:
2026-05-24 14:06:51 +08:00
parent 058003f395
commit d7836db45f
314 changed files with 13376 additions and 573 deletions
@@ -212,7 +212,7 @@ Two source forms map to the same shape:
<p>
At parsing time <a class="xref" href="Hi.NcParsers.Keywords.FanucGoto.html#Hi_NcParsers_Keywords_FanucGoto_N">N</a> is a raw token from the source — it may
be a literal (<code>"100"</code>), a variable reference (<code>"#1"</code>), or a
bracketed expression (<code>"#[#2+5]"</code>). VariableEvaluatorSyntax
bracketed expression (<code>"#[#2+5]"</code>). <a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html">VariableEvaluatorSyntax</a>
substitutes a resolved literal back into the same field in the
Evaluation bundle; <a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html">FanucGotoSyntax</a> then
<code>int.TryParse</code>s the final string to produce an int target.
@@ -240,7 +240,7 @@ accepted and lifted together.
</p>
<p>
<a class="xref" href="Hi.NcParsers.Keywords.FanucIfThen.html#Hi_NcParsers_Keywords_FanucIfThen_Condition">Condition</a> is held as a string at parsing time so
VariableEvaluatorSyntax's pass-2 tree walk can substitute
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html">VariableEvaluatorSyntax</a>'s pass-2 tree walk can substitute
it to a numeric <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonvalue">JsonValue</a> in place;
the FanucIfThenSyntax tail then reads the resolved node polymorphically
via the same <code>ReadCondition</code> shape used by
@@ -255,7 +255,7 @@ via the same <code>ReadCondition</code> shape used by
<code>G65</code> host block (the caller) and every inlined block of the
macro body — so a cache-dump reader can land on any block inside the
macro and immediately see &ldquo;this block belongs to a G65 call of
File with these argument bindings&rdquo; without back-walking
<a class="xref" href="Hi.NcParsers.Keywords.FanucMacroCall.html#Hi_NcParsers_Keywords_FanucMacroCall_FileName">FileName</a> with these argument bindings&rdquo; without back-walking
to find the host.</p>
<p>
Each inlined block additionally carries the resolved
@@ -340,7 +340,7 @@ do not share this key, because their data shapes are richer.
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.NcParsers.Keywords.MacroFrame.html">MacroFrame</a></dt>
<dd><p>Top-level integer marker stamped onto a SyntaxPiece's JSON
<dd><p>Top-level integer marker stamped onto a <a class="xref" href="Hi.NcParsers.Syntaxs.SyntaxPiece.html">SyntaxPiece</a>'s JSON
to identify which call frame the block belongs to. Brand-agnostic by
design — written by <a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax.html">FanucMacroCallSyntax</a>
today, reusable by any future call-inlining syntax (Fanuc <code>G66</code>