Mercurial > projects > dil
changeset 97:1a83e5070a84
- Added code for parsing IntNumber- and RealNumberExpressions.
author | aziz |
---|---|
date | Fri, 06 Jul 2007 20:28:00 +0000 |
parents | d12d31d5fc17 |
children | aec3b16144fe |
files | trunk/src/Expressions.d trunk/src/Parser.d trunk/src/Token.d |
diffstat | 3 files changed, 31 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/trunk/src/Expressions.d Fri Jul 06 18:49:00 2007 +0000 +++ b/trunk/src/Expressions.d Fri Jul 06 20:28:00 2007 +0000 @@ -407,6 +407,28 @@ { this.value = value; } } +class IntNumberExpression : Expression +{ + TOK type; + ulong number; + this(TOK type, ulong number) + { + this.number = number; + this.type = type; + } +} + +class RealNumberExpression : Expression +{ + TOK type; + real number; + this(TOK type, real number) + { + this.number = number; + this.type = type; + } +} + class CharLiteralExpression : Expression { TOK tok;
--- a/trunk/src/Parser.d Fri Jul 06 18:49:00 2007 +0000 +++ b/trunk/src/Parser.d Fri Jul 06 20:28:00 2007 +0000 @@ -430,7 +430,14 @@ nT(); e = new DollarExpression(); break; - case T.Int32/*, ...*/: // Number literals + case T.Int32, T.Int64, T.Uint32, T.Uint64: + nT(); + e = new IntNumberExpression(token.type, token.ulong_); + break; + case T.Float32, T.Float64, T.Float80, + T.Imaginary32, T.Imaginary64, T.Imaginary80: + nT(); + e = new RealNumberExpression(token.type, token.real_); break; case T.CharLiteral, T.WCharLiteral, T.DCharLiteral: nT();
--- a/trunk/src/Token.d Fri Jul 06 18:49:00 2007 +0000 +++ b/trunk/src/Token.d Fri Jul 06 20:28:00 2007 +0000 @@ -22,7 +22,7 @@ // Numbers Number, Int32, Int64, Uint32, Uint64, - // Floating point scanner relies on this order. (FloatXY + 3 == ImaginaryXY) + // Floating point number scanner relies on this order. (FloatXY + 3 == ImaginaryXY) Float32, Float64, Float80, Imaginary32, Imaginary64, Imaginary80,