Mercurial > projects > ddmd
view dmd/expression/Neg.d @ 0:10317f0c89a5
Initial commit
author | korDen |
---|---|
date | Sat, 24 Oct 2009 08:42:06 +0400 |
parents | |
children | e28b18c23469 |
line wrap: on
line source
module dmd.expression.Neg; import dmd.Type; import dmd.Loc; import dmd.RealExp; import dmd.Expression; import dmd.ComplexExp; import dmd.IntegerExp; import dmd.Complex; Expression Neg(Type type, Expression e1) { Expression e; Loc loc = e1.loc; if (e1.type.isreal()) { e = new RealExp(loc, -e1.toReal(), type); } else if (e1.type.isimaginary()) { e = new RealExp(loc, -e1.toImaginary(), type); } else if (e1.type.iscomplex()) { Complex!(real) c = e1.toComplex(); e = new ComplexExp(loc, Complex!(real)(-c.re, -c.im), type); } else e = new IntegerExp(loc, -e1.toInteger(), type); return e; }