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);
47 const XMLCh *
uri, *name;
60 void clearExceptType();
64 void forceNoFolding(
bool value);
65 bool isNoFoldingForced()
const;
67 void contextItemUsed(
bool value);
68 void contextPositionUsed(
bool value);
69 void contextSizeUsed(
bool value);
70 bool isContextItemUsed()
const;
71 bool isContextPositionUsed()
const;
72 bool isContextSizeUsed()
const;
74 bool areContextFlagsUsed()
const;
76 void currentTimeUsed(
bool value);
77 void implicitTimezoneUsed(
bool value);
79 void availableDocumentsUsed(
bool value);
80 void availableCollectionsUsed(
bool value);
81 bool areDocsOrCollectionsUsed()
const;
83 void variableUsed(
const XMLCh *namespaceURI,
const XMLCh *name);
84 bool removeVariable(
const XMLCh *namespaceURI,
const XMLCh *name);
85 bool isVariableUsed(
const XMLCh *namespaceURI,
const XMLCh *name)
const;
86 bool isVariableUsed()
const;
92 void addExceptVariable(
const XMLCh *namespaceURI,
const XMLCh *name,
const StaticAnalysis &o);
96 bool isUsedExceptContextFlags()
const;
98 void creative(
bool value);
99 bool isCreative()
const;
101 void updating(
bool value);
102 bool isUpdating()
const;
103 void possiblyUpdating(
bool value);
104 bool isPossiblyUpdating()
const;
121 unsigned int getProperties()
const;
122 void setProperties(
unsigned int props);
127 std::string toString()
const;
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: XPath2MemoryManager.hpp:45
VarEntry * prev
Definition: StaticAnalysis.hpp:49
VarEntry()
Definition: StaticAnalysis.hpp:43
const XMLCh * uri
Definition: StaticAnalysis.hpp:47
Records access to various parts of the context during static resolution.
Definition: StaticAnalysis.hpp:35
Definition: StaticAnalysis.hpp:40
size_t hash
Definition: StaticAnalysis.hpp:48
Class that represents the static type of an expression.
Definition: StaticType.hpp:33
Properties
Properties that allow optimisation regarding sorting or not.
Definition: StaticAnalysis.hpp:110