package freeboogie.tc; import freeboogie.ast.*; /** * A structure whose members connect usages to definitions. * * @author rgrig * @author reviewed by TODO */ public class SymbolTable { /** User defined types */ public UsageToDefMap<UserType, TypeDecl> types = new UsageToDefMap<UserType, TypeDecl>(); /** Procedures */ public UsageToDefMap<CallCmd, Procedure> procs = new UsageToDefMap<CallCmd, Procedure>(); /** Functions */ public UsageToDefMap<AtomFun, Function> funcs = new UsageToDefMap<AtomFun, Function>(); /** * Identifiers. The declarations might only be {@code ConstDecl} and * {@code VariableDecl}. */ public UsageToDefMap<AtomId, Declaration> ids = new UsageToDefMap<AtomId, Declaration>(); }