Class SiemensIf
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
TermEndif
Block-conditional terminator term.
public const string TermEndif = "ENDIF"
Field Value
TermIf
Block-conditional entry term.
public const string TermIf = "IF"
Field Value
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
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; }