public AstNodeStmAssign(AstNodeExprLValue LValue, AstNodeExpr Value) { if (LValue.Type != Value.Type) throw (new Exception(String.Format("Local.Type({0}) != Value.Type({1})", LValue.Type, Value.Type))); this.LValue = LValue; this.Value = Value; }
public AstNodeStmAssign(AstNodeExprLValue LValue, AstNodeExpr Value) { if (LValue.Type != Value.Type) { throw (new Exception(String.Format("Local.Type({0}) != Value.Type({1})", LValue.Type, Value.Type))); } this.LValue = LValue; this.Value = Value; }
public AstNodeStmAssign(AstNodeExprLValue leftValue, AstNodeExpr value) { if (leftValue.Type != value.Type) { throw (new Exception($"Local.Type({leftValue.Type}) != Value.Type({value.Type})")); } LeftValue = leftValue; Value = value; }
public AstNodeExprLValue Reinterpret(Type Type, AstNodeExprLValue Value) { return(Indirect(Cast(Type.MakePointerType(), GetAddress(Value), Explicit: false))); }
public AstNodeExprLValue Reinterpret <TType>(AstNodeExprLValue Value) { return(Reinterpret(typeof(TType), Value)); }
public AstNodeExprGetAddress GetAddress(AstNodeExprLValue Expr) { return(new AstNodeExprGetAddress(Expr)); }
public AstNodeStmAssign Assign(AstNodeExprLValue Left, AstNodeExpr Expr) { return(new AstNodeStmAssign(Left, Expr)); }
public AstNodeExprGetAddress(AstNodeExprLValue expression) { Expression = expression; }
public AstNodeExprLValue Reinterpret(Type type, AstNodeExprLValue value) => Indirect(Cast(type.MakePointerType(), GetAddress(value), Explicit: false));
public AstNodeExprLValue Reinterpret <TType>(AstNodeExprLValue value) => Reinterpret(typeof(TType), value);
public AstNodeExprGetAddress GetAddress(AstNodeExprLValue expr) => new AstNodeExprGetAddress(expr);
public AstNodeStmAssign Assign(AstNodeExprLValue left, AstNodeExpr expr) => new AstNodeStmAssign(left, expr);
public AstNodeExprGetAddress(AstNodeExprLValue Expression) { this.Expression = Expression; }