00001 // +-------------------------------------------------------------------------+ 00002 // | I__n__t__e__L__i__b 0.6.10 development | 00003 // | Copyright (c) Andrey Vikt. Stolyarov <crocodil_AT_croco.net> 2000-2007. | 00004 // | | 00005 // | This is free software. The library part is available under | 00006 // | GNU LESSER GENERAL PUBLIC LICENSE v.2.1. | 00007 // | GNU LGPL v2.1 is found in docs/gnu_gpl2.txt, or at http://www.gnu.org | 00008 // | Please see also docs/readme.txt and visit http://www.intelib.org | 00009 // | | 00010 // | !!! THERE IS NO WARRANTY OF ANY KIND, NEITHER EXPRESSED NOR IMPLIED !!! | 00011 // +-------------------------------------------------------------------------+ 00012 00013 00014 00015 00022 #ifndef INTELIB_LPACKAGE_HPP_SENTRY 00023 #define INTELIB_LPACKAGE_HPP_SENTRY 00024 00025 #include "../sexpress/iexcept.hpp" 00026 #include "../sexpress/sexpress.hpp" 00027 #include "../sexpress/gensref.hpp" 00028 #include "../tools/spkghsh.hpp" 00029 #include "../tools/sreader.hpp" 00030 #include "lisp.hpp" 00031 00032 class LExpressionPackage; 00033 00035 typedef GenericSReference<LExpressionPackage, IntelibX_not_a_package> 00036 LPackage; 00037 00038 00040 00046 class LExpressionPackage : public SExpressionHashPackage 00047 { 00048 public: 00050 static IntelibTypeId TypeId; 00051 00053 LExpressionPackage(); 00055 LExpressionPackage(const LPackage& a_parent); 00056 00057 protected: 00058 ~LExpressionPackage(); 00059 00060 // please note TextRepresentation() needn't to be reimplemented 00061 private: 00062 virtual SReference CreateNewSymbolObject(const char *name) const; 00063 }; 00064 00065 00067 00070 class LExpressionPackageIntelib : public LExpressionPackage { 00071 public: 00073 LExpressionPackageIntelib(); 00074 protected: 00075 ~LExpressionPackageIntelib() {} 00076 }; 00077 00078 #endif // sentry