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
@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class NcExpressionEvaluator | HiAPI-C# 2025 ">
<meta name="description" content="Walks an AST and produces an . Resolves #nnn via an ; built-in function names are matched case-insensitively against a fixed table. Phase-1 supports: SIN COS TAN ASIN ACOS ATAN SQRT ABS ROUND FIX FUP LN EXP POW. Trigonometric arguments and results are in degrees, matching Fanuc Custom Macro B convention. Unknown function names surface as ; arity mismatches as ; division / MOD by zero and domain errors (e.g. SQRT[-1]) as ; vacant operands as .">
<meta name="description" content="Walks an AST and produces an . Resolves #nnn via an ; built-in function names are matched case-insensitively against a fixed table. Phase-1 supports: SIN COS TAN ASIN ACOS ATAN SQRT ABS ROUND FIX FUP LN EXP POW. Trigonometric arguments and results are in degrees, matching Fanuc Custom Macro B convention. Unknown function names surface as ; arity mismatches as ; division / MOD by zero and domain errors (e.g. SQRT[-1]) as ; vacant operands as . Numeric domain &amp;amp; type conventions. All values are IEEE 754 — there is no separate bool / int type at runtime. Comparison ops (EQ NE GT GE LT LE) yield 1.0 (true) or 0.0 (false), using strict double equality / ordering (NaN compares as IEEE specifies — NaN EQ NaN is 0.0). Logical ops (AND OR XOR) truncate each operand to a 64-bit signed integer ( then cast to ) before applying the bitwise operation; non-finite or out-of-range operands surface rather than silently wrapping. Truthiness at caller-side IF / WHILE gates is value != 0 — any non-zero value (bit, float, comparator result) is true.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -109,6 +109,20 @@ Fanuc Custom Macro B convention. Unknown function names surface as
errors (e.g. <code>SQRT[-1]</code>) as <a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator.html#Hi_NcParsers_EvaluationSyntaxs_Evaluation_NcExpressionEvaluator_MathErrorCode">MathErrorCode</a>; vacant
operands as <a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator.html#Hi_NcParsers_EvaluationSyntaxs_Evaluation_NcExpressionEvaluator_VacantErrorCode">VacantErrorCode</a>.
</p>
<p>
<b>Numeric domain &amp; type conventions.</b> All values are IEEE 754
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a> — there is no separate bool / int type at runtime.
Comparison ops (<code>EQ NE GT GE LT LE</code>) yield <code>1.0</code> (true) or
<code>0.0</code> (false), using strict double equality / ordering (NaN
compares as IEEE specifies — <code>NaN EQ NaN</code> is <code>0.0</code>). Logical
ops (<code>AND OR XOR</code>) truncate each operand to a 64-bit signed
integer (<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.math.truncate#system-math-truncate(system-double)">Truncate(double)</a> then cast to
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int64">long</a>) before applying the bitwise operation; non-finite
or out-of-range operands surface <a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator.html#Hi_NcParsers_EvaluationSyntaxs_Evaluation_NcExpressionEvaluator_MathErrorCode">MathErrorCode</a> rather
than silently wrapping. Truthiness at caller-side <code>IF / WHILE</code>
gates is <code>value != 0</code> — any non-zero value (bit, float, comparator
result) is true.
</p>
</div>
<div class="markdown conceptual"></div>