Table of Contents

Class SiemensIf

Namespace
Hi.NcParsers.Keywords.Siemens
Assembly
HiMech.dll

Siemens IF/ELSE/ENDIF block-conditional record. Parsing.SiemensIf carries the captured phrase; the block-root stamp written by SiemensIfSyntax adds the gate outcome. Unlike the loop family there is no frame stack: an ELSE reached in the normal stream always means the true branch just finished (a false condition jumps past the ELSE line directly), so ELSE unconditionally skips to its matching ENDIF and ENDIF itself is a consumed no-op.

public class SiemensIf
Inheritance
SiemensIf
Inherited Members
Extension Methods

Fields

TermElse

Alternative-branch separator term.

public const string TermElse = "ELSE"

Field Value

string

TermEndif

Block-conditional terminator term.

public const string TermEndif = "ENDIF"

Field Value

string

TermIf

Block-conditional entry term.

public const string TermIf = "IF"

Field Value

string

Properties

Condition

Raw condition text on the IF phrase (no brackets on Sinumerik); substituted in place by the evaluator's pass-2 walk. Absent on ELSE/ENDIF. Original text survives at Formula.SiemensIf.Condition.

public string Condition { get; set; }

Property Value

string

ConditionEvaluated

Tri-state gate outcome stamped on the IF host: true — then-branch executes; false — forward-jump to after the matching ELSE (or ENDIF when no else-branch exists); null — unresolved condition, warns and falls through into the then-branch (no redirect on unresolved input).

public bool? ConditionEvaluated { get; set; }

Property Value

bool?

Term

public string Term { get; set; }

Property Value

string