Table of Contents

Class SubProgramCall

Namespace
Hi.NcParsers.Keywords
Assembly
HiMech.dll

Subprogram call record left by SubProgramCallSyntax on the M98 / M198 host block and on every inlined body block, or on the host block alone, marked Skipped, when the depth rail refused the call. The call itself emits no motion act; this section is bookkeeping so cache dumps and diagnostic readers can see "this block triggered (or sits inside) an inline of program P".

M98 and M198 share the exact same section shape. The difference between them is purely environmental — which folder the resolver looks in (SubProgramFolderConfig.InternalFolder vs ExternalFolder) — and that lives on the dependency, not in this JSON record.

public class SubProgramCall
Inheritance
SubProgramCall
Inherited Members
Extension Methods

Properties

FileName

Bare matched file name (e.g. “O1234.NC”). The resolver tries several fallback patterns (FilenamePatterns); this records which one hit. JSON-portable across environments — the folder context (internal vs external storage) is captured by the host's SubProgramFolderConfig dependency, not encoded here. Null when the call was Skipped.

public string FileName { get; set; }

Property Value

string

L

Repeat count from the L parameter; defaults to 1 when absent.

public int L { get; set; }

Property Value

int

P

Subprogram number from the P parameter (e.g., 1234 for O1234).

public int P { get; set; }

Property Value

int

Skipped

True when the call was consumed as a structured safe-skip at the MaxCallDepth rail, the only skip this syntax makes (a file that does not resolve is an error, SubProgramCall–FileNotFound, and the block gets no record of its own). The record then carries Term and P only: the file was never resolved, no body was inlined, no block carries the record but the host. Absent, not false, on every record of an inlined call.

public bool Skipped { get; set; }

Property Value

bool

Term

Triggering keyword: “M98” (internal) or “M198” (external storage).

public string Term { get; set; }

Property Value

string