diff trunk/src/Parser.d @ 251:67a798459532

- Added parameter Token* tok to some Expression constructors. Adapted parser accordingly.
author aziz
date Wed, 01 Aug 2007 16:08:02 +0000
parents 1b9494591ad6
children 788398655d24
line wrap: on
line diff
--- a/trunk/src/Parser.d	Wed Aug 01 15:22:02 2007 +0000
+++ b/trunk/src/Parser.d	Wed Aug 01 16:08:02 2007 +0000
@@ -2363,8 +2363,9 @@
     auto e = parseAssignExpression();
     while (token.type == T.Comma)
     {
+      auto comma = token;
       nT();
-      e = new CommaExpression(e, parseAssignExpression());
+      e = new CommaExpression(e, parseAssignExpression(), comma);
       set(e, begin);
     }
 // if (!trying)
@@ -2451,8 +2452,9 @@
     auto e = parseNext();
     while (token.type == T.OrLogical)
     {
+      auto tok = token;
       nT();
-      e = new OrOrExpression(e, parseNext());
+      e = new OrOrExpression(e, parseNext(), tok);
       set(e, begin);
     }
     return e;
@@ -2465,8 +2467,9 @@
     auto e = parseNext();
     while (token.type == T.AndLogical)
     {
+      auto tok = token;
       nT();
-      e = new AndAndExpression(e, parseNext());
+      e = new AndAndExpression(e, parseNext(), tok);
       set(e, begin);
     }
     return e;
@@ -2479,8 +2482,9 @@
     auto e = parseNext();
     while (token.type == T.OrBinary)
     {
+      auto tok = token;
       nT();
-      e = new OrExpression(e, parseNext());
+      e = new OrExpression(e, parseNext(), tok);
       set(e, begin);
     }
     return e;
@@ -2493,8 +2497,9 @@
     auto e = parseNext();
     while (token.type == T.Xor)
     {
+      auto tok = token;
       nT();
-      e = new XorExpression(e, parseNext());
+      e = new XorExpression(e, parseNext(), tok);
       set(e, begin);
     }
     return e;
@@ -2507,8 +2512,9 @@
     auto e = parseNext();
     while (token.type == T.AndBinary)
     {
+      auto tok = token;
       nT();
-      e = new AndExpression(e, parseNext());
+      e = new AndExpression(e, parseNext(), tok);
       set(e, begin);
     }
     return e;