deploy webservice static-file routing for docsite folder URLs, per-instance step-cache db, and constant-height panel title bars.

This commit is contained in:
2026-08-27 14:51:37 +08:00
parent 1fc510af5e
commit 2a98ae7556
1468 changed files with 182837 additions and 18888 deletions
@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class FanucWhileDoSyntax | HiAPI-C# 2025 ">
<meta name="description" content="Resolves Fanuc Custom Macro B WHILE [..] DO m ... END m bounded loops. Two phrases dispatched by : WHILE [..] DO m — entry: reads the resolved condition via , manages the per-LoopId frame in the top-level WhileFrames dict, and either falls through (truthy) or forward-jumps past the matching END m (falsy / unresolved).END m — terminator: unconditionally reverse-jumps to the WHILE block recorded in WhileFrames[LoopId].BeginLineNo so the next iteration re-evaluates the entry condition. Increments the per-loop iteration counter on ; suppresses the redirect above . WhileFrames carrier. The top-level WhileFrames JSON section is a keyed by LoopId-as-string whose values are { BeginLineNo: int }. Frames are pushed when a WHILE block first encounters a truthy condition with no existing frame for that LoopId; popped when the condition becomes falsy or unresolved; otherwise carried forward unchanged by &#39;s tracked-key list. Nested loops with distinct LoopIds coexist in the same dict; same-LoopId nesting (spec-undefined) overwrites and is not given special handling. Pipeline placement. Evaluation bundle, after the variable readers (defensive — WHILE/END blocks per spec do not carry assignments, but the placement is consistent with GOTO). Must run after so the condition string has been substituted to numeric. Forward scan to matching END m uses the predicate overload — probe runs the brand-default on each candidate, predicate matches on Parsing.FanucWhileDo.Term == &quot;END&quot; &amp;amp;&amp;amp; LoopId == target. Reverse scan to WHILE BeginLineNo does not need a label predicate — the BeginLineNo is a known file-line index recorded in the active frame, so the END side re-segments the file from the top and returns the slice starting at the first piece whose .Begin.LineIndex matches.">
<meta name="description" content="Resolves Fanuc Custom Macro B WHILE [..] DO m ... END m bounded loops. Two phrases dispatched by : WHILE [..] DO m — entry: reads the resolved condition via , manages the per-LoopId frame in the top-level WhileFrames dict, and either falls through (truthy) or forward-jumps past the matching END m (falsy / unresolved).END m — terminator: unconditionally reverse-jumps to the WHILE block recorded in WhileFrames[LoopId].BeginLineNo so the next iteration re-evaluates the entry condition. Increments the per-loop iteration counter on ; suppresses the redirect above . WhileFrames carrier. The top-level WhileFrames JSON section is a keyed by LoopId-as-string whose values are { BeginLineNo: int }. Frames are pushed when a WHILE block first encounters a truthy condition with no existing frame for that LoopId; popped when the condition becomes falsy or unresolved; otherwise carried forward unchanged by &#39;s tracked-key list. Nested loops with distinct LoopIds coexist in the same dict; same-LoopId nesting (spec-undefined) overwrites and is not given special handling. Pipeline placement. Evaluation bundle, after the variable readers (defensive — WHILE/END blocks per spec do not carry assignments, but the placement is consistent with GOTO). Must run after so the condition string has been substituted to numeric. Forward scan to matching END m uses the anchored overload with from the WHILE host line — sequential loops reuse LoopIds, so only candidates below the host line may match. The probe runs the brand-default on each candidate, predicate matches on Parsing.FanucWhileDo.Term == &quot;END&quot; &amp;amp;&amp;amp; LoopId == target. Reverse scan to WHILE BeginLineNo does not need a label predicate — the BeginLineNo is a known file-line index recorded in the active frame, so the END side re-segments the file from the top and returns the slice starting at the first piece whose .Begin.LineIndex matches.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -131,10 +131,13 @@ after <a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSynt
has been substituted to numeric.
</p>
<p>
<b>Forward scan to matching END m</b> uses the
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html">LabelScanUtil</a> predicate overload — probe runs the
brand-default <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html">FanucWhileDoParsingSyntax</a> on each
candidate, predicate matches on
<b>Forward scan to matching END m</b> uses the anchored
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html">LabelScanUtil</a> overload with
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.LabelScanDirection.html#Hi_NcParsers_EvaluationSyntaxs_LabelScanDirection_ForwardFromAnchor">ForwardFromAnchor</a> from the WHILE
host line — sequential loops reuse LoopIds, so only candidates below
the host line may match. The probe runs the brand-default
<a class="xref" href="Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucWhileDoParsingSyntax.html">FanucWhileDoParsingSyntax</a> on each candidate, predicate
matches on
<code>Parsing.FanucWhileDo.Term == "END" &amp;&amp; LoopId == target</code>.
</p>
<p>