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.
- 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.
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.