HiNC-2025-win-desktop-Deploy/App/wwwroot/HiAPI-docsite/api/Hi.NcParsers.Keywords.FanucGoto.html

416 lines
17 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class FanucGoto | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class FanucGoto | HiAPI-C# 2025 ">
<meta name="description" content="Fanuc Custom Macro B GOTO record. Stamped on the host block by after the control-flow decision has been made; produced earlier by as a parsing-stage sub-section (Parsing.FanucGoto) carrying the raw captured fields. Two source forms map to the same shape: GOTO &amp;lt;n&amp;gt; — unconditional jump. is null.IF [&amp;lt;bool-expr&amp;gt;] GOTO &amp;lt;n&amp;gt; — conditional jump. holds the expression text from inside the brackets. At parsing time is a raw token from the source — it may be a literal (&quot;100&quot;), a variable reference (&quot;#1&quot;), or a bracketed expression (&quot;#[#2+5]&quot;). substitutes a resolved literal back into the same field in the Evaluation bundle; then int.TryParses the final string to produce an int target. Lifecycle of the condition fields. is written at Parsing time as the raw expression text and substituted in place by pass-2 — the original text is preserved at Formula.FanucGoto.Condition when substitution succeeds. is the host-level stamp written by carrying the tri-state truthy outcome.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.NcParsers.Keywords.FanucGoto">
<h1 id="Hi_NcParsers_Keywords_FanucGoto" data-uid="Hi.NcParsers.Keywords.FanucGoto" class="text-break">
Class FanucGoto
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.NcParsers.html">NcParsers</a>.<a class="xref" href="Hi.NcParsers.Keywords.html">Keywords</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiMech.dll</dd></dl>
</div>
<div class="markdown summary"><p>Fanuc Custom Macro B GOTO record. Stamped on the host block by
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html">FanucGotoSyntax</a> after the control-flow
decision has been made; produced earlier by
<a class="xref" href="Hi.NcParsers.ParsingSyntaxs.Fanuc.FanucGotoParsingSyntax.html">FanucGotoParsingSyntax</a> as a parsing-stage
sub-section (<code>Parsing.FanucGoto</code>) carrying the raw captured fields.</p>
<p>
Two source forms map to the same shape:
<ul><li><code>GOTO &lt;n&gt;</code> — unconditional jump. <a class="xref" href="Hi.NcParsers.Keywords.FanucGoto.html#Hi_NcParsers_Keywords_FanucGoto_Condition">Condition</a> is null.</li><li><code>IF [&lt;bool-expr&gt;] GOTO &lt;n&gt;</code> — conditional jump.
<a class="xref" href="Hi.NcParsers.Keywords.FanucGoto.html#Hi_NcParsers_Keywords_FanucGoto_Condition">Condition</a> holds the expression text from inside the
brackets.</li></ul>
<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>). <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.
</p>
<p>
<b>Lifecycle of the condition fields.</b>
<ul><li><a class="xref" href="Hi.NcParsers.Keywords.FanucGoto.html#Hi_NcParsers_Keywords_FanucGoto_Condition">Condition</a> is written at Parsing time as the raw
expression text and substituted in place by
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html">VariableEvaluatorSyntax</a> pass-2 — the
original text is preserved at <code>Formula.FanucGoto.Condition</code>
when substitution succeeds.</li><li><a class="xref" href="Hi.NcParsers.Keywords.FanucGoto.html#Hi_NcParsers_Keywords_FanucGoto_ConditionEvaluated">ConditionEvaluated</a> is the host-level stamp
written by <a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html">FanucGotoSyntax</a>
carrying the tri-state truthy outcome.</li></ul>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class FanucGoto</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">FanucGoto</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_NcParsers_Keywords_FanucGoto_Condition_" data-uid="Hi.NcParsers.Keywords.FanucGoto.Condition*"></a>
<h3 id="Hi_NcParsers_Keywords_FanucGoto_Condition" data-uid="Hi.NcParsers.Keywords.FanucGoto.Condition">
Condition
</h3>
<div class="markdown level1 summary"><p>Raw boolean expression text from inside the <code>IF [...]</code>
brackets at Parsing time; substituted to a numeric
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.text.json.nodes.jsonvalue">JsonValue</a> in place by
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html">VariableEvaluatorSyntax</a> when the
expression evaluates successfully. The original text survives at
<code>Formula.FanucGoto.Condition</code>. Null for the unconditional
form. Note: not written on the host-level stamp; the gate
outcome lives at <a class="xref" href="Hi.NcParsers.Keywords.FanucGoto.html#Hi_NcParsers_Keywords_FanucGoto_ConditionEvaluated">ConditionEvaluated</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string Condition { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_NcParsers_Keywords_FanucGoto_ConditionEvaluated_" data-uid="Hi.NcParsers.Keywords.FanucGoto.ConditionEvaluated*"></a>
<h3 id="Hi_NcParsers_Keywords_FanucGoto_ConditionEvaluated" data-uid="Hi.NcParsers.Keywords.FanucGoto.ConditionEvaluated">
ConditionEvaluated
</h3>
<div class="markdown level1 summary"><p>Tri-state outcome of evaluating the IF-form's boolean condition,
stamped on the host block by
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html">FanucGotoSyntax</a>:</p>
<ul><li><code>true</code> — condition met (gate fires).</li><li><code>false</code> — condition not met (gate falls through silently).</li><li><code>null</code> — evaluator could not produce a finite truth
value (vacant variable, parse error, NaN / ±∞), or the host
block is the unconditional <code>GOTO</code> form.</li></ul>
The original expression text is preserved at
<code>Formula.FanucGoto.Condition</code> by
<a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html">VariableEvaluatorSyntax</a>.
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool? ConditionEvaluated { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a>?</dt>
<dd></dd>
</dl>
<a id="Hi_NcParsers_Keywords_FanucGoto_Fired_" data-uid="Hi.NcParsers.Keywords.FanucGoto.Fired*"></a>
<h3 id="Hi_NcParsers_Keywords_FanucGoto_Fired" data-uid="Hi.NcParsers.Keywords.FanucGoto.Fired">
Fired
</h3>
<div class="markdown level1 summary"><p>Whether the GOTO actually redirected control flow on this block.
False on conditional GOTOs whose condition evaluated to false, on
conditional GOTOs whose condition was not evaluable, and on
iteration-limit-exceeded blocks. The host block is preserved in
either case so diagnostic readers can still see the call.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool Fired { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<a id="Hi_NcParsers_Keywords_FanucGoto_N_" data-uid="Hi.NcParsers.Keywords.FanucGoto.N*"></a>
<h3 id="Hi_NcParsers_Keywords_FanucGoto_N" data-uid="Hi.NcParsers.Keywords.FanucGoto.N">
N
</h3>
<div class="markdown level1 summary"><p>Target sequence-number expression — kept as a string so the
in-place evaluator can substitute <code>&quot;#1&quot;</code><code>&ldquo;3&rdquo;</code> before
the Evaluation stage parses it as an int.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string N { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="Hi_NcParsers_Keywords_FanucGoto_Term_" data-uid="Hi.NcParsers.Keywords.FanucGoto.Term*"></a>
<h3 id="Hi_NcParsers_Keywords_FanucGoto_Term" data-uid="Hi.NcParsers.Keywords.FanucGoto.Term">
Term
</h3>
<div class="markdown level1 summary"><p>Triggering phrase: <code>&ldquo;GOTO&rdquo;</code> for the unconditional form,
<code>&ldquo;IF...GOTO&rdquo;</code> for the conditional form.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string Term { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
</div>
</div>
</footer>
</body>
</html>