Mercurial > projects > dil
view src/dil/semantic/SymbolTable.d @ 820:1d06b4aed7cf
Revised code in the first pass.
Added code to handle anonymous unions and structs. Hope the idea will work.
Added type to class Aggregate and isAnonymous to some other Symbol classes.
author | Aziz K?ksal <aziz.koeksal@gmail.com> |
---|---|
date | Fri, 14 Mar 2008 15:42:08 +0100 |
parents | bcb74c9b895c |
children |
line wrap: on
line source
/++ Author: Aziz Köksal License: GPL3 +/ module dil.semantic.SymbolTable; import dil.semantic.Symbol; import dil.lexer.Identifier; import common; /// Maps an identifier string to a Symbol. struct SymbolTable { Symbol[char[]] table; /// The table data structure. /// Looks up ident in the table. /// Returns: the symbol if there, otherwise null. Symbol lookup(Identifier* ident) { assert(ident !is null); auto psym = ident.str in table; return psym ? *psym : null; } /// Inserts a symbol into the table. void insert(Symbol symbol, Identifier* ident) { table[ident.str] = symbol; } }