00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _VARIABLETYPESTORE_HPP
00023 #define _VARIABLETYPESTORE_HPP
00024
00025 #include <xqilla/framework/XQillaExport.hpp>
00026 #include <xercesc/util/XercesDefs.hpp>
00027 #include <xercesc/util/XMemory.hpp>
00028
00029 class SequenceType;
00030 class XPath2MemoryManager;
00031 class StaticAnalysis;
00032
00035 class XQILLA_API VariableTypeStore : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00036 {
00037 public:
00039 virtual ~VariableTypeStore() {};
00040
00042 virtual void clear() = 0;
00043
00045 virtual void addLocalScope() = 0;
00047 virtual void addLogicalBlockScope() = 0;
00050 virtual void removeScope() = 0;
00051
00053 virtual void declareGlobalVar(const XMLCh* namespaceURI, const XMLCh* name,
00054 const StaticAnalysis &src) = 0;
00055
00057 virtual const StaticAnalysis* getGlobalVar(const XMLCh* namespaceURI,
00058 const XMLCh* name) const = 0;
00059
00062 virtual void declareVar(const XMLCh* namespaceURI, const XMLCh* name,
00063 const StaticAnalysis &src) = 0;
00064
00068 virtual const StaticAnalysis *getVar(const XMLCh* namespaceURI,
00069 const XMLCh* name) const = 0;
00070 };
00071
00072 #endif