20 #ifndef _STATICANALYSIS_HPP
21 #define _STATICANALYSIS_HPP
25 #include <xqilla/framework/XQillaExport.hpp>
38 static const int HASH_SIZE = 13;
43 VarEntry() : uri(0), name(0), hash(0), prev(0) {}
44 void set(
const XMLCh *u,
const XMLCh *n);
45 void set(
const XMLCh *u,
const XMLCh *n,
size_t h);
134 bool _contextPosition;
137 bool _implicitTimezone;
138 bool _availableDocuments;
139 bool _availableCollections;
140 bool _forceNoFolding;
143 bool _possiblyUpdating;
145 unsigned int _properties;
148 VarEntry *_dynamicVariables[HASH_SIZE];
Definition: StaticAnalysis.hpp:41
void set(const XMLCh *u, const XMLCh *n)
VarEntry()
Definition: StaticAnalysis.hpp:43
void set(const XMLCh *u, const XMLCh *n, size_t h)
const XMLCh * name
Definition: StaticAnalysis.hpp:47
VarEntry * prev
Definition: StaticAnalysis.hpp:49
size_t hash
Definition: StaticAnalysis.hpp:48
Records access to various parts of the context during static resolution.
Definition: StaticAnalysis.hpp:36
std::string toString() const
void currentTimeUsed(bool value)
void updating(bool value)
bool isContextSizeUsed() const
void implicitTimezoneUsed(bool value)
StaticType & getStaticType()
bool isVariableUsed() const
VarEntry ** variablesUsed() const
void addExceptContextFlags(const StaticAnalysis &o)
bool removeVariable(const XMLCh *namespaceURI, const XMLCh *name)
void contextPositionUsed(bool value)
void contextItemUsed(bool value)
void variableUsed(const XMLCh *namespaceURI, const XMLCh *name)
StaticAnalysis(XPath2MemoryManager *memMgr)
void clear()
Clears all the information in this StaticAnalysis.
bool isUsedExceptContextFlags() const
StaticAnalysis(const StaticAnalysis &o, XPath2MemoryManager *memMgr)
void possiblyUpdating(bool value)
bool areContextFlagsUsed() const
Returns true if any of the context item flags have been used.
void availableCollectionsUsed(bool value)
bool isVariableUsed(const XMLCh *namespaceURI, const XMLCh *name) const
unsigned int getProperties() const
const StaticType & getStaticType() const
bool isContextPositionUsed() const
bool isUsed() const
Returns true if flags are set, or variables have been used.
void creative(bool value)
bool isNoFoldingForced() const
void setProperties(unsigned int props)
Properties
Properties that allow optimisation regarding sorting or not.
Definition: StaticAnalysis.hpp:110
void availableDocumentsUsed(bool value)
void add(const StaticAnalysis &o)
Sets the members of this StaticAnalysis from the given StaticAnalysis.
bool isPossiblyUpdating() const
void addExceptVariable(const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &o)
void copy(const StaticAnalysis &o)
bool isContextItemUsed() const
void forceNoFolding(bool value)
Overrides all the other flags, and never allows this sub-expression to be constant folded.
bool areDocsOrCollectionsUsed() const
void contextSizeUsed(bool value)
Class that represents the static type of an expression.
Definition: StaticType.hpp:33
Definition: XPath2MemoryManager.hpp:46