Mercurial > projects > dil
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,