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)
bool isVariableUsed() 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)
VarEntry ** variablesUsed() const
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
bool isContextPositionUsed() const
bool isUsed() const
Returns true if flags are set, or variables have been used.
void creative(bool value)
bool isNoFoldingForced() const
const StaticType & getStaticType() const
void setProperties(unsigned int props)
Properties
Properties that allow optimisation regarding sorting or not.
Definition: StaticAnalysis.hpp:110
void availableDocumentsUsed(bool value)
StaticType & getStaticType()
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