00001 /* 00002 FALCON - The Falcon Programming Language. 00003 FILE: attribmap.h 00004 00005 Attribute Map - specialized string - vardef map. 00006 ------------------------------------------------------------------- 00007 Author: Giancarlo Niccolai 00008 Begin: Sat, 11 Jul 2009 20:42:43 +0200 00009 00010 ------------------------------------------------------------------- 00011 (C) Copyright 2009: the FALCON developers (see list in AUTHORS file) 00012 00013 See LICENSE file for licensing details. 00014 */ 00015 00016 #ifndef FLC_ATTRIBMAP_H 00017 #define FLC_ATTRIBMAP_H 00018 00019 #include <falcon/setup.h> 00020 #include <falcon/genericmap.h> 00021 #include <falcon/traits.h> 00022 00023 00024 namespace Falcon { 00025 00026 class VarDef; 00027 class String; 00028 class Stream; 00029 class Module; 00030 00035 class AttribMap: public Map 00036 { 00037 public: 00038 AttribMap(); 00039 AttribMap( const AttribMap& other ); 00040 virtual ~AttribMap(); 00041 00042 void insertAttrib( const String& name, VarDef* vd ); 00043 VarDef* findAttrib( const String& name ); 00044 00045 bool save( Stream *out ) const; 00046 bool load( Module* mod, Stream *out ); 00047 }; 00048 00049 } 00050 00051 #endif 00052 00053 /* end of attribmap.h */