# HG changeset patch # User aziz # Date 1183318082 0 # Node ID a85f9edf6ce7314d89dde764bcc1bd7fcd882c18 # Parent 3f976d9e0833b0b3d83daf698407ce00a82d1516 - Implemented parseAddExpression(). - Added stub for parseMulExpression(). - Added MinusExpression class. diff -r 3f976d9e0833 -r a85f9edf6ce7 trunk/src/Expressions.d --- a/trunk/src/Expressions.d Sun Jul 01 19:17:03 2007 +0000 +++ b/trunk/src/Expressions.d Sun Jul 01 19:28:02 2007 +0000 @@ -121,10 +121,16 @@ { super(left, right, TOK.URShiftAssign); } } -class AddExpression : BinaryExpression +class PlusExpression : BinaryExpression { - this(Expression left, Expression right, TOK tok) - { super(left, right, tok); } + this(Expression left, Expression right) + { super(left, right, TOK.Plus); } +} + +class MinusExpression : BinaryExpression +{ + this(Expression left, Expression right) + { super(left, right, TOK.Minus); } } class MulExpression : BinaryExpression @@ -135,7 +141,7 @@ class CatExpression : BinaryExpression { - this(Expression left, Expression right, TOK tok) + this(Expression left, Expression right) { super(left, right, TOK.Catenate); } } diff -r 3f976d9e0833 -r a85f9edf6ce7 trunk/src/Parser.d --- a/trunk/src/Parser.d Sun Jul 01 19:17:03 2007 +0000 +++ b/trunk/src/Parser.d Sun Jul 01 19:28:02 2007 +0000 @@ -236,7 +236,23 @@ Expression parseAddExpression() { -// auto e = parseMulExpression() + auto e = parseMulExpression(); + while (1) + { + switch (lx.token.type) + { + case T.Plus: nT(); e = new PlusExpression(e, parseMulExpression()); break; + case T.Minus: nT(); e = new MinusExpression(e, parseMulExpression()); break; + case T.Tilde: nT(); e = new CatExpression(e, parseMulExpression()); break; + default: break; + } + break; + } + return new Expression(); + } + + Expression parseMulExpression() + { return new Expression(); }