Table of Contents

Namespace Hi.NcParsers.Syntaxs

Classes

BundleSyntax

Depth-First Sequential Syntaxes management. It saves space by save the LazyLinkedLists from each syntax to only one LazyLinkedLists in SoftNcRunner to get better performance. If the INcSyntax only edit the current node itself, those self-editing INcSyntax without looks-forward is suitable to put into the BundleSyntax.

FanucSyntaxUtil

Pre-built ParameterizedFlagSyntax / flag patterns for Fanuc-style NC text.

GenericSyntaxKit

Generic/ISO standard syntax kit. Involve G code. Contains syntax definitions for common G codes used across multiple NC systems.

HeidenhainSyntaxUtil

Pre-built parsing syntax fragments for Heidenhain-style programs (Q variables, FMAX/FAUTO, etc.).

MazakSyntaxUtil

Mazak-specific NC syntax utilities.

NcSyntaxUtil

JSON serialization settings and grab/set helpers for NC block JsonObject trees.

SiemensSyntaxUtil

Pre-built parsing syntax fragments for Siemens-style programs (R parameters, TRAORI, etc.).

SyntaxPiece

One NC block's source line paired with its parsed JSON payload during soft-NC processing.

SyntaxStageKeys

Shared JSON key constants written by post-Logic and Inspection stage syntaxes. Central registry so the string literals do not drift across syntax files; readers of cache dumps can reference these constants directly rather than hard-coding the raw strings.

SyntecSyntaxUtil

Syntec-specific NC syntax utilities.

TagValue
TransformationUtil

Utilities for the ProgramToMcTransform chain. Each entry is {Source, Kind, Mat4d}; entries are composed in order with pure matrix multiplication (GetComposedTransform(JsonObject)).

KindKey partitions the entries by contour validity:

  • KindStatic — the matrix is valid across the whole block, applicable to any interpolated point along the contour.
  • KindDynamic — the matrix is a block-endpoint snapshot of a rotary-state-dependent transform (RTCP rotary-dynamic). Composing it produces a correct endpoint MC, but interpolated points along the contour must be derived per-step by motion semantics (ClLinearMotionSemantic); do not apply it to interpolated ProgramXyz.
Both kinds carry a real Mat4d so composition stays a pure matrix product — no entry has a missing matrix. Use HasDynamicEntry(JsonObject) to detect the dynamic-rotary state without consulting a sibling section flag.

Interfaces

IExpandingNcSyntax

Expanding syntax: transforms one SyntaxPiece node into zero or more output pieces (e.g., subprogram inlining, macro expansion, conditional branching).

INcSyntax

Base interface for syntax-level data transformation on SyntaxPiece.JsonObject. Unlike INcSemantic which produces IAct, INcSyntax only restructures or enriches parsed data without producing actions.

ISituNcSyntax

In-situ syntax: mutates the JsonObject of the given node in-place without changing the node count. Most parsing and logic syntaxes implement this interface.