Mercurial > projects > dang
comparison ast/Exp.d @ 119:c0b531362ca6
Non compileing commit. Work on floating points and casts
author | Anders Johnsen <skabet@gmail.com> |
---|---|
date | Sun, 25 May 2008 19:13:07 +0200 |
parents | 3a0cd42de9cc |
children | 6a5f745d351c |
comparison
equal
deleted
inserted
replaced
118:54585ad7e426 | 119:c0b531362ca6 |
---|---|
8 | 8 |
9 import lexer.Token; | 9 import lexer.Token; |
10 | 10 |
11 import sema.Scope, | 11 import sema.Scope, |
12 sema.DType; | 12 sema.DType; |
13 | |
14 import basic.LiteralParsing; | |
13 | 15 |
14 enum ExpType | 16 enum ExpType |
15 { | 17 { |
16 Binary, | 18 Binary, |
17 Negate, | 19 Negate, |
312 Exp simplify() | 314 Exp simplify() |
313 { | 315 { |
314 return this; | 316 return this; |
315 } | 317 } |
316 | 318 |
317 override DType type() { return DType.Int; } | 319 override DType type() |
320 { | |
321 switch(number.type) | |
322 { | |
323 case NumberType.Int: | |
324 return DType.Int; | |
325 case NumberType.Long: | |
326 return DType.Long; | |
327 case NumberType.ULong: | |
328 return DType.ULong; | |
329 case NumberType.Double: | |
330 return DType.Double; | |
331 case NumberType.Real: | |
332 return DType.Real; | |
333 } | |
334 } | |
318 | 335 |
319 override SourceRange sourceRange() | 336 override SourceRange sourceRange() |
320 { | 337 { |
321 return range; | 338 return range; |
322 } | 339 } |
340 | |
341 Number number; | |
323 | 342 |
324 char[] name; | 343 char[] name; |
325 private SourceRange range; | 344 private SourceRange range; |
326 } | 345 } |
327 | 346 |