Table of Contents

Class CallStack

Namespace
Hi.NcParsers.Keywords
Assembly
HiMech.dll

JSON-section data shape representing the active call-frame stack on a block. The call syntaxes push it (SubProgramCallSyntax for M98/M198, FanucMacroCallSyntax for G65, FanucModalMacroSyntax's expansion phase for G66 implicit triggers, and the Siemens and Heidenhain call syntaxes), each stamping it on every piece of the inlined body; the return block pops it (SubProgramReturnSyntax on M99, the Siemens and Heidenhain return syntaxes on M17/RET, LBL 0 and END PGM). A block without a stamp of its own takes the previous block's section from ModalCarrySyntax at the Logic stage — the main program's blocks after a return, blocks a jump re-segments, the pieces of a section repeat whose host block has no stack (the Siemens REPEAT and the Heidenhain CALL LBL REP propagate the host's stack onto their pieces, so only a repeat in the main frame leaves them without one); main-program blocks before the first call carry none (the main frame).

The section is wrapped in a JsonObject rather than exposed as a bare JsonArray so it fits ModalCarry's "deep-clone JsonObject" carry pattern — the array of frames lives inside Frames.

public class CallStack
Inheritance
CallStack
Inherited Members
Extension Methods

Properties

Frames

Ordered list of active call frames, bottom-of-stack first. Each entry is a CallFrame-shaped JSON object. Length 0 means the block is in the main (top-level) frame.

public JsonArray Frames { get; set; }

Property Value

JsonArray