Mercurial > projects > ddmd
diff dmd/expression/ArrayLength.d @ 130:60bb0fe4563e
dmdfe 2.037 first main iteration
author | Eldar Insafutdinov <e.insafutdinov@gmail.com> |
---|---|
date | Thu, 09 Sep 2010 22:51:44 +0100 |
parents | e28b18c23469 |
children | d237b38b5858 |
line wrap: on
line diff
--- a/dmd/expression/ArrayLength.d Sun Sep 05 15:32:22 2010 +0400 +++ b/dmd/expression/ArrayLength.d Thu Sep 09 22:51:44 2010 +0100 @@ -10,6 +10,17 @@ import dmd.TOK; import dmd.AssocArrayLiteralExp; import dmd.GlobalExpressions; +import dmd.XorExp; +import dmd.UshrExp; +import dmd.ShrExp; +import dmd.ShlExp; +import dmd.OrExp; +import dmd.MulExp; +import dmd.ModExp; +import dmd.MinExp; +import dmd.AddExp; +import dmd.DivExp; +import dmd.AndExp; Expression ArrayLength(Type type, Expression e1) { @@ -37,4 +48,26 @@ e = EXP_CANT_INTERPRET; return e; +} + +Expression opAssignToOp(Loc loc, TOK op, Expression e1, Expression e2) +{ + Expression e; + + switch (op) + { + case TOK.TOKaddass: e = new AddExp(loc, e1, e2); break; + case TOK.TOKminass: e = new MinExp(loc, e1, e2); break; + case TOK.TOKmulass: e = new MulExp(loc, e1, e2); break; + case TOK.TOKdivass: e = new DivExp(loc, e1, e2); break; + case TOK.TOKmodass: e = new ModExp(loc, e1, e2); break; + case TOK.TOKandass: e = new AndExp(loc, e1, e2); break; + case TOK.TOKorass: e = new OrExp (loc, e1, e2); break; + case TOK.TOKxorass: e = new XorExp(loc, e1, e2); break; + case TOK.TOKshlass: e = new ShlExp(loc, e1, e2); break; + case TOK.TOKshrass: e = new ShrExp(loc, e1, e2); break; + case TOK.TOKushrass: e = new UshrExp(loc, e1, e2); break; + default: assert(0); + } + return e; } \ No newline at end of file