Table of Contents

Class FanucMacroCall

Namespace
Hi.NcParsers.Keywords
Assembly
HiMech.dll

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

JsonObject

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

string

L

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

public int L { get; set; }

Property Value

int

P

Macro program number from the P parameter (e.g., 9100 for O9100).

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, 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

bool

Term

Triggering keyword (always “G65”).

public string Term { get; set; }

Property Value

string