Mercurial > projects > dil
changeset 76:a85f9edf6ce7
- Implemented parseAddExpression().
- Added stub for parseMulExpression().
- Added MinusExpression class.
author | aziz |
---|---|
date | Sun, 01 Jul 2007 19:28:02 +0000 |
parents | 3f976d9e0833 |
children | 7e21c4df1c02 |
files | trunk/src/Expressions.d trunk/src/Parser.d |
diffstat | 2 files changed, 27 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- 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); } }
--- 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(); }