Archived
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:
+106
-12
@@ -181,19 +181,33 @@ rather than {prefix}{digits}.</p>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
<h2 id="Hi_NcParsers_ParsingSyntaxs_NamedVarAssignmentSyntax_examples">Examples</h2>
|
||||
<p>#BeforeBuild.UnparsedText: <code>_X_HOME=500.0</code>
|
||||
#AfterBuild:</p>
|
||||
<pre><code class="lang-csharp">{
|
||||
"Parsing": { "Assignments": { "_X_HOME": "500.0" } }
|
||||
}</code></pre>
|
||||
<p>#BeforeBuild.UnparsedText: <code>_A=5 X=100</code> (the RHS stops at the next assignment-looking token; single-letter <code>X=</code> is not an identifier here and is left for the tag-value syntaxes)
|
||||
#AfterBuild:</p>
|
||||
<pre><code class="lang-csharp">{
|
||||
"UnparsedText": "X=100",
|
||||
"Parsing": { "Assignments": { "_A": "5" } }
|
||||
}</code></pre>
|
||||
|
||||
|
||||
<h2 id="Hi_NcParsers_ParsingSyntaxs_NamedVarAssignmentSyntax_remarks">Remarks</h2>
|
||||
<div class="markdown level0 remarks"><ul><li>Siemens GUD: _X_HOME = 100, _MY_VAR = R1 + R2</li><li>Siemens LUD: DEF REAL MY_LOCAL; MY_LOCAL = 50</li></ul>
|
||||
Unlike <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.html">TagAssignmentSyntax</a> which handles
|
||||
{prefix}{digits} variables (e.g., #1, R1, Q5),
|
||||
this class handles multi-character identifier variables.
|
||||
Identifiers must be at least 2 characters to avoid overlap with
|
||||
single-letter axis tags (X, Y, Z, etc.).
|
||||
<p>
|
||||
<b>Ordering:</b> Must be placed before <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.html">TagAssignmentSyntax</a>
|
||||
in syntax lists so that multi-char identifiers (e.g., _X_HOME) are consumed
|
||||
before {prefix}{digits} patterns (e.g., R1) attempt to match.
|
||||
</p>
|
||||
Unlike <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.html">TagAssignmentSyntax</a> which captures only the numbered
|
||||
{prefix}{digits} family (#1, R1, Q5), this identifier grammar is broader
|
||||
and also matches letter+digits tokens such as <code>R1</code>. The overlap is
|
||||
benign by construction: both assignment syntaxes route to the same
|
||||
<code>Parsing.Assignments</code> subtree with the same JSON shape, and a preset
|
||||
must give both the same <code>TerminateWords</code>; their RHS boundary rules are
|
||||
likewise aligned (any following <code>token=</code> stops the expression). A
|
||||
token captured by either therefore lands as the exact same JSON, so the
|
||||
relative ordering of the two syntaxes does not affect output.
|
||||
Identifiers must be at least 2 characters so single-letter axis addresses
|
||||
(<code>X=100</code>) stay with the tag-value syntaxes.
|
||||
</div>
|
||||
|
||||
|
||||
@@ -220,7 +234,9 @@ keywords, and an identifier regex pattern.</p>
|
||||
<h4 class="section">Parameters</h4>
|
||||
<dl class="parameters">
|
||||
<dt><code>categoryPath</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a><<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>></dt>
|
||||
<dd><p>JSON path under <code>Parsing</code> where assignments are written.</p>
|
||||
<dd><p>JSON path under <code>Parsing</code> where assignments are written.
|
||||
Pass <code>null</code> to use <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.html#Hi_NcParsers_ParsingSyntaxs_NamedVarAssignmentSyntax_DefaultCategoryPath">DefaultCategoryPath</a> (<code>Parsing.Assignments</code>).
|
||||
Pass an empty collection only if assignments should land at the <code>Parsing</code> root.</p>
|
||||
</dd>
|
||||
<dt><code>terminateWords</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a><<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>></dt>
|
||||
<dd><p>Optional keywords that end the right-hand expression.</p>
|
||||
@@ -284,7 +300,11 @@ keywords, and an identifier regex pattern.</p>
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Default identifier regex (at least 2 characters; first char letter or underscore).
|
||||
<div class="markdown level1 summary"><p>Default identifier regex (at least 2 characters; first char letter or
|
||||
underscore). The 2-character minimum keeps single-letter axis addresses
|
||||
(<code>X=100</code>) with the tag-value syntaxes. Letter+digits tokens (R1)
|
||||
also match — that overlap with <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.html">TagAssignmentSyntax</a> is
|
||||
benign by construction (see the class remarks).
|
||||
Used when <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.html#Hi_NcParsers_ParsingSyntaxs_NamedVarAssignmentSyntax_IdentPattern">IdentPattern</a> is not overridden.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
@@ -346,6 +366,42 @@ Used when <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSy
|
||||
|
||||
|
||||
|
||||
<a id="Hi_NcParsers_ParsingSyntaxs_NamedVarAssignmentSyntax_DefaultCategoryPath_" data-uid="Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.DefaultCategoryPath*"></a>
|
||||
|
||||
<h3 id="Hi_NcParsers_ParsingSyntaxs_NamedVarAssignmentSyntax_DefaultCategoryPath" data-uid="Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.DefaultCategoryPath">
|
||||
DefaultCategoryPath
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Default <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.html#Hi_NcParsers_ParsingSyntaxs_NamedVarAssignmentSyntax_CategoryPath">CategoryPath</a> assigned when the caller passes <code>null</code>
|
||||
(or omits the <code><CategoryPath></code> element in saved XML).
|
||||
Routes assignment outputs into <code>Parsing.Assignments</code> — the same subtree
|
||||
as <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.html#Hi_NcParsers_ParsingSyntaxs_TagAssignmentSyntax_DefaultCategoryPath">DefaultCategoryPath</a> — so variable-reading
|
||||
syntaxes can target a single well-defined location.</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public static IReadOnlyList<string> DefaultCategoryPath { get; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist-1">IReadOnlyList</a><<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_NcParsers_ParsingSyntaxs_NamedVarAssignmentSyntax_IdentPattern_" data-uid="Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.IdentPattern*"></a>
|
||||
|
||||
<h3 id="Hi_NcParsers_ParsingSyntaxs_NamedVarAssignmentSyntax_IdentPattern" data-uid="Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.IdentPattern">
|
||||
@@ -411,6 +467,44 @@ Default: <code>[A-Za-z_]\w+</code> (at least 2 characters).</p>
|
||||
|
||||
|
||||
|
||||
<a id="Hi_NcParsers_ParsingSyntaxs_NamedVarAssignmentSyntax_RhsDialect_" data-uid="Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.RhsDialect*"></a>
|
||||
|
||||
<h3 id="Hi_NcParsers_ParsingSyntaxs_NamedVarAssignmentSyntax_RhsDialect" data-uid="Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.RhsDialect">
|
||||
RhsDialect
|
||||
|
||||
</h3>
|
||||
|
||||
<div class="markdown level1 summary"><p>Expression grammar delimiting the RHS (parser-delimited capture):
|
||||
when set, the longest valid expression prefix ends the RHS —
|
||||
superseding <a class="xref" href="Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.html#Hi_NcParsers_ParsingSyntaxs_NamedVarAssignmentSyntax_TerminateWords">TerminateWords</a> on matches where a prefix
|
||||
parses. Default <a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionDialect.html#Hi_NcParsers_EvaluationSyntaxs_Evaluation_NcExpressionDialect_None">None</a> keeps the
|
||||
legacy lexical boundary. Must stay in sync with the value on
|
||||
<a class="xref" href="Hi.NcParsers.ParsingSyntaxs.TagAssignmentSyntax.html#Hi_NcParsers_ParsingSyntaxs_TagAssignmentSyntax_RhsDialect">RhsDialect</a> in the same preset
|
||||
(the P0 behavior-alignment contract).</p>
|
||||
</div>
|
||||
<div class="markdown level1 conceptual"></div>
|
||||
|
||||
<div class="codewrapper">
|
||||
<pre><code class="lang-csharp hljs">public NcExpressionDialect RhsDialect { get; set; }</code></pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="section">Property Value</h4>
|
||||
<dl class="parameters">
|
||||
<dt><a class="xref" href="Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionDialect.html">NcExpressionDialect</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a id="Hi_NcParsers_ParsingSyntaxs_NamedVarAssignmentSyntax_TerminateWords_" data-uid="Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.TerminateWords*"></a>
|
||||
|
||||
<h3 id="Hi_NcParsers_ParsingSyntaxs_NamedVarAssignmentSyntax_TerminateWords" data-uid="Hi.NcParsers.ParsingSyntaxs.NamedVarAssignmentSyntax.TerminateWords">
|
||||
|
||||
Reference in New Issue
Block a user