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.
- CleanupSyntax
Removes indicated JSON keys from JsonObject after upstream syntaxes have consumed them. Useful for cleaning up runtime-derived intermediate data (e.g., ProgramToMcTransform) that should not persist in the final output.
Place at the end of the syntax list, after all consumers have read the keys.
- GenericSyntaxKit
Generic/ISO standard syntax kit. Involve G code. Contains syntax definitions for common G codes used across multiple NC systems.
- MazakSyntaxUtil
Mazak-specific NC syntax utilities.
- SyntecSyntaxUtil
Syntec-specific NC syntax utilities.
- TransformationUtil
Utilities for the ProgramToMcTransform chain. Each entry has “Source” (string) and “Mat4d” (16-element JsonArray). AddOrReplaceTransform(JsonObject, string, Mat4d) inserts or replaces an entry by source name. GetComposedTransform(JsonObject) composes all entries into a single Mat4d.
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.