Namespace Hi.NcParsers.Keywords.Heidenhain
Classes
- HeidenhainCall
Block-root record left on a
CALL LBL/CALL PGMhost block by HeidenhainSubProgramCallSyntax. Inlined callee blocks are stamped with a clone of the same record.
- HeidenhainCyclCall
Block-root record left on a cycle-call host block by HeidenhainCannedCycleSyntax, making the consumed call visible in cache dumps and carrying the deferred
M140retract hand-off for HeidenhainCycleRetractSyntax.
- HeidenhainGoto
Heidenhain FN 9–12 conditional jump record (
FN 12: IF +Q1 LT +5 GOTO LBL n). Two lifetimes share the shape:Parsing.HeidenhainGoto— written by HeidenhainGotoParsingSyntax for all four opcodes, in both the spaced standard spelling and the compressed post spelling (FN12:IF+Q94 LT+1GOTOLBL"NAME").- block-root
HeidenhainGoto— stamped by HeidenhainGotoSyntax after the control-flow decision, with Fired flipped true on a successful redirect.
Unlike the Fanuc / Siemens jump records the condition is not one expression string: the klartext jump grammar is strictly
<value> <comparator> <value>, and the Heidenhain expression grammar deliberately has no comparison layer (its bare-word rejection is what keeps the evaluator's Parsing-tree pass off non-expression strings). The parsing owner therefore pre-normalises the statement: Lhs/Rhs are captured as separate value operands (pure literals typed numeric at capture, Q references kept as strings for the evaluator's pass-2 substitution) and the comparator spelling is normalised to the shared comparison words (EQU→EQ;NE/GT/LTas written). The comparison itself happens in the evaluation syntax.Klartext has no unconditional jump statement and no direction mnemonic — a TNC label is unique per program, so the consumer scans the whole host file and takes the first matching definition (
LBL n/LBL "name"), forward or backward alike.
- HeidenhainLbl
Block-root record left on a consumed
LBLmarker block by HeidenhainSubProgramReturnSyntax. A plain definition marker produces no motion; the record keeps the label visible for cache dumps (and the P5 jump family).
- MachiningCycleDef
Block-root section carrying the stored Heidenhain machining-cycle definition (the
CYCL DEF 2xx“setup half”). Written by HeidenhainCannedCycleSyntax on every block (self-carrying modal state, the P1 datum-shift pattern) — a klartext definition never executes by itself; execution is gated onCYCL CALL/M99(call-once) orM89(modal call on positioning blocks), which convert this store into a direct ISO cycle sub-section underParsing.