Table of Contents

Namespace Hi.NcParsers.PostSyntaxs

Classes

CacheSyntax

Periodic modal-section snapshot. For each key in TrackedKeys, if the current block has no section for that key and no prior block within the last Pace-1 blocks does either, walk further back to the nearest defined value, deep-clone it into the current block, and set AddedByKey = AddedByValue inside the cloned section. Bounds every EnumerateBack()-based modal lookup in the LogicSyntaxs layer to O(Pace) instead of O(N).

CleanupSyntax

Removes indicated JSON keys from JsonObject after upstream syntaxes have consumed them. Useful for cleaning up runtime-derived intermediate data (e.g., EndPointProgramToMcTransform) that should not persist in the final output.

Place at the end of the syntax list, after all consumers have read the keys.

PostSyntaxsKeys

Shared JSON key constants written by PostSyntaxs-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.

ProgramXyzSnapshotSyntax

Debug / observability snapshot: writes ProgramXyz onto blocks that did not have it written by upstream logic syntaxes (e.g. HomeMcInitializer block, chain-change blocks that only updated MC via a rotary-only path), only when the effective program position has changed from the last block that stored a ProgramXyz.

Skips the block entirely when either of these holds:

Only snapshots the root block; ItemsKey items are intentionally skipped (they are managed by Hi.NcParsers.LogicSyntaxs.CompoundMotionSyntaxUtil and per-cycle syntaxes that already write the right per-item ProgramXyz).

Placement: end of NcSyntaxList, after UnconsumedCheckSyntax. Runs purely as a bookkeeping pass — no other syntax / semantic in the default pipeline reads the additional snapshots it emits, so the runtime output (IAct stream) is unchanged whether this syntax is present or not. The only observable effect is additional ProgramXyz entries in the cached syntax-pieces dump, which makes block-to-block debugging and diffing easier.