Mercurial > projects > dil
changeset 614:8c5b1558244b
Added symbol Enum.
author | Aziz K?ksal <aziz.koeksal@gmail.com> |
---|---|
date | Tue, 08 Jan 2008 21:28:53 +0100 |
parents | 7034d3f9e40c |
children | a05457530ac2 |
files | trunk/src/dil/semantic/Symbol.d trunk/src/dil/semantic/Symbols.d |
diffstat | 2 files changed, 16 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/trunk/src/dil/semantic/Symbol.d Mon Jan 07 20:43:39 2008 +0100 +++ b/trunk/src/dil/semantic/Symbol.d Tue Jan 08 21:28:53 2008 +0100 @@ -15,6 +15,7 @@ Interface, Struct, Union, + Enum, Variable, Function, Type, @@ -41,6 +42,7 @@ mixin(is_!("Interface")); mixin(is_!("Struct")); mixin(is_!("Union")); + mixin(is_!("Enum")); mixin(is_!("Variable")); mixin(is_!("Function")); mixin(is_!("Type"));
--- a/trunk/src/dil/semantic/Symbols.d Mon Jan 07 20:43:39 2008 +0100 +++ b/trunk/src/dil/semantic/Symbols.d Tue Jan 08 21:28:53 2008 +0100 @@ -15,7 +15,8 @@ /// A symbol that has its own scope with a symbol table. class ScopeSymbol : Symbol { - protected SymbolTable symbolTable; /// The symbol table. + SymbolTable symbolTable; /// The symbol table. + Symbol[] members; /// The member symbols (in lexical order.) this() { @@ -31,6 +32,7 @@ void insert(Symbol s, Identifier* ident) { symbolTable.insert(s, ident); + members ~= s; } } @@ -93,6 +95,17 @@ } } +class Enum : ScopeSymbol +{ + Identifier* ident; + this(Identifier* ident, Node enumNode) + { + this.sid = SYM.Enum; + this.ident = ident; + this.node = enumNode; + } +} + class Function : ScopeSymbol { StorageClass stc;