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();
   }