public ElementExpression(BinaryExpressionKind kind, ElementExpression expr1, ElementExpression expr2) { ArityKind = ArityKind.Binary; UnaryKind = UnaryExpressionKind.None; BinaryKind = kind; Expr1 = expr1 ?? throw new ArgumentNullException(nameof(expr1)); Expr2 = expr2 ?? throw new ArgumentNullException(nameof(expr2)); }
public ElementExpression(ElementExpression test, ElementExpression ifTrue, ElementExpression ifFalse) { ArityKind = ArityKind.Ternary; UnaryKind = UnaryExpressionKind.None; BinaryKind = BinaryExpressionKind.None; Expr1 = test ?? throw new ArgumentNullException(nameof(test)); Expr2 = ifTrue ?? throw new ArgumentNullException(nameof(ifTrue)); Expr3 = ifFalse ?? throw new ArgumentNullException(nameof(ifFalse)); }
public Statement(StatementKind kind, Element left, ElementExpression right) { Kind = kind; Left = left ?? throw new ArgumentNullException(nameof(left)); Right = right ?? throw new ArgumentNullException(nameof(right)); }