Class FanucMacroCall
One-shot custom-macro-call record written by
FanucMacroCallSyntax. Lives on both the
G65 host block (the caller) and every inlined block of the
macro body — so a cache-dump reader can land on any block inside the
macro and immediately see “this block belongs to a G65 call of
FileName with these argument bindings” without back-walking
to find the host.
Each inlined block additionally carries the resolved
Vars.Local #1-#26 bindings derived from Args
(see FanucMacroArgumentMap), so
LocalVariableLookup
resolves macro args in a single-block lookup. Frame isolation is
structural: caller blocks never have Vars.Local written, so
after the macro body ends, the next caller block reads null
for any #1-#26 without any explicit frame marker.
public class FanucMacroCall
- Inheritance
-
FanucMacroCall
- Inherited Members
- Extension Methods
Properties
Args
Argument-letter → numeric-value map captured from the call line
(e.g., G65 P9100 A1.5 B2. ⇒ { “A”: 1.5, “B”: 2.0 }).
The matching Vars.Local bindings on each inlined block are
derived from this via the Type-I argument-letter map
(FanucMacroArgumentMap).
Absent when the call was Skipped.
public JsonObject Args { get; set; }
Property Value
FileName
Bare matched file name (e.g. “O9100.NC”). The resolver
tries several fallback patterns
(FilenamePatterns);
this records which one hit. JSON-portable across environments —
the folder context lives on the host's
SubProgramFolderConfig dependency, not encoded here.
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
Macro program number from the P parameter (e.g., 9100 for O9100).
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, FanucMacroCall–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 and nothing was bound; no block carries the record but the
host. Absent, not false, on every record of an inlined call and on
the G66 record FanucModalMacroSyntax
stamps on an expansion's body.
public bool Skipped { get; set; }
Property Value
Term
Triggering keyword (always “G65”).
public string Term { get; set; }