changeset 38:640c45aaaaee

- Added code for parsing GreaterEqual, Greater, RShiftAssign, RShift, URShiftAssign and URShift tokens. - Renamed TOK.LessThan to TOK.Less.
author aziz
date Tue, 26 Jun 2007 08:58:02 +0000
parents 7f3bcb97d017
children 69b940398d7b
files trunk/src/Lexer.d trunk/src/Token.d
diffstat 2 files changed, 36 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/trunk/src/Lexer.d	Tue Jun 26 08:37:00 2007 +0000
+++ b/trunk/src/Lexer.d	Tue Jun 26 08:58:02 2007 +0000
@@ -389,6 +389,37 @@
         return scanRawStringLiteral(t);
       switch (c)
       {
+      case '>': /* >  >=  >>  >>=  >>>  >>>= */
+        c = *++p;
+        switch (c)
+        {
+        case '=':
+          t.type = TOK.GreaterEqual;
+          goto Lcommon;
+        case '>':
+          if (p[1] == '>')
+          {
+            ++p;
+            if (p[1] == '=')
+            { ++p;
+              t.type = TOK.URShiftAssign;
+            }
+            else
+              t.type = TOK.URShift;
+          }
+          else if (p[1] == '=')
+          {
+            ++p;
+            t.type = TOK.RShiftAssign;
+          }
+          else
+            t.type = TOK.RShift;
+          goto Lcommon;
+        default:
+          t.type = TOK.Greater;
+          goto Lcommon2;
+        }
+        assert(0);
       case '<': /* <  <=  <>  <>=  <<  <<= */
         c = *++p;
         switch (c)
@@ -413,7 +444,7 @@
             t.type = TOK.LorG;
           goto Lcommon;
         default:
-          t.type = TOK.LessThan;
+          t.type = TOK.Less;
           goto Lcommon2;
         }
         assert(0);
--- a/trunk/src/Token.d	Tue Jun 26 08:37:00 2007 +0000
+++ b/trunk/src/Token.d	Tue Jun 26 08:58:02 2007 +0000
@@ -40,8 +40,11 @@
 
   // Normal operators
   Assign, Equal, NotEqual, Not,
-  LessEqual, LessThan,
+  LessEqual, Less,
+  GreaterEqual, Greater,
   LShiftAssign, LShift,
+  RShiftAssign,RShift,
+  URShiftAssign, URShift,
   OrAssign, OrLogical, OrBinary,
   AndAssign, AndLogical, AndBinary,
   PlusAssign, PlusPlus, Plus,