comparison trunk/src/dil/Expressions.d @ 502:4e14cd1b24da

Refactored code and added modules related to tabulated Identifiers. Rearranged members of struct Identifier and added new member ID identID. Moved idTableLookup to module dil.IdTable. Renamed module TokenIDs to TokensEnum. Added member Identifier* ident to struct Token. Changed string switchtes in Parser to integer switches using enum ID.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Tue, 11 Dec 2007 14:19:30 +0100
parents 47be6bfe39cd
children 3bb94ba21490
comparison
equal deleted inserted replaced
501:949a53332c66 502:4e14cd1b24da
6 import dil.SyntaxTree; 6 import dil.SyntaxTree;
7 import dil.Token; 7 import dil.Token;
8 import dil.Types; 8 import dil.Types;
9 import dil.Declarations; 9 import dil.Declarations;
10 import dil.Statements; 10 import dil.Statements;
11 import dil.Identifier;
11 import dil.Scope; 12 import dil.Scope;
12 13
13 abstract class Expression : Node 14 abstract class Expression : Node
14 { 15 {
15 this() 16 this()
1010 } 1011 }
1011 } 1012 }
1012 1013
1013 class AsmRegisterExpression : Expression 1014 class AsmRegisterExpression : Expression
1014 { 1015 {
1015 Token* register; 1016 Identifier* register;
1016 Token* number; // ST(0) - ST(7) or FS:0, FS:4, FS:8 1017 int number; // ST(0) - ST(7) or FS:0, FS:4, FS:8
1017 this(Token* register, Token* number = null) 1018 this(Identifier* register, int number = -1)
1018 { 1019 {
1019 mixin(set_kind); 1020 mixin(set_kind);
1020 this.register = register; 1021 this.register = register;
1021 this.number = number; 1022 this.number = number;
1022 } 1023 }