Class SubProgramCall
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
L
Repeat count from the L parameter; defaults to 1 when absent.
public int L { get; set; }
Property Value
P
Subprogram number from the P parameter (e.g., 1234 for O1234).
public int P { get; set; }
Property Value
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
Term
Triggering keyword: “M98” (internal) or “M198” (external storage).
public string Term { get; set; }