1 /* 2 * Copyright 2006-2008 The FLWOR Foundation. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 #pragma once 17 18 PLAN_ITER_VISITOR (FnBooleanIterator); 19 20 PLAN_ITER_VISITOR (OrIterator); 21 22 PLAN_ITER_VISITOR (AndIterator); 23 24 PLAN_ITER_VISITOR (CompareIterator); 25 26 PLAN_ITER_VISITOR (AtomicValuesEquivalenceIterator); 27 28 PLAN_ITER_VISITOR (ElementIterator); 29 30 PLAN_ITER_VISITOR (AttributeIterator); 31 32 PLAN_ITER_VISITOR (DocumentIterator); 33 34 #ifdef ZORBA_WITH_JSON 35 PLAN_ITER_VISITOR (JSONArrayIterator); 36 37 PLAN_ITER_VISITOR (JSONObjectIterator); 38 39 PLAN_ITER_VISITOR (JSONDirectObjectIterator); 40 #endif 41 42 PLAN_ITER_VISITOR (UDFunctionCallIterator); 43 44 PLAN_ITER_VISITOR (ExtFunctionCallIterator); 45 46 PLAN_ITER_VISITOR (CommentIterator); 47 48 PLAN_ITER_VISITOR (PiIterator); 49 50 PLAN_ITER_VISITOR (SingletonIterator); 51 52 PLAN_ITER_VISITOR (EmptyIterator); 53 54 PLAN_ITER_VISITOR (ForVarIterator); 55 56 PLAN_ITER_VISITOR (LetVarIterator); 57 58 PLAN_ITER_VISITOR (EnclosedIterator); 59 60 PLAN_ITER_VISITOR (IfThenElseIterator); 61 62 PLAN_ITER_VISITOR (TryCatchIterator); 63 64 PLAN_ITER_VISITOR (NodeDistinctIterator); 65 66 PLAN_ITER_VISITOR (NodeSortIterator); 67 68 //PLAN_ITER_VISITOR (PathIterator); 69 70 PLAN_ITER_VISITOR (SelfAxisIterator); 71 72 PLAN_ITER_VISITOR (AttributeAxisIterator); 73 74 PLAN_ITER_VISITOR (ParentAxisIterator); 75 76 PLAN_ITER_VISITOR (AncestorAxisIterator); 77 78 PLAN_ITER_VISITOR (AncestorReverseAxisIterator); 79 80 PLAN_ITER_VISITOR (AncestorSelfAxisIterator); 81 82 PLAN_ITER_VISITOR (AncestorSelfReverseAxisIterator); 83 84 PLAN_ITER_VISITOR (RSiblingAxisIterator); 85 86 PLAN_ITER_VISITOR (LSiblingAxisIterator); 87 88 PLAN_ITER_VISITOR (LSiblingReverseAxisIterator); 89 90 PLAN_ITER_VISITOR (ChildAxisIterator); 91 92 PLAN_ITER_VISITOR (DescendantAxisIterator); 93 94 PLAN_ITER_VISITOR (DescendantSelfAxisIterator); 95 96 PLAN_ITER_VISITOR (PrecedingAxisIterator); 97 98 PLAN_ITER_VISITOR (PrecedingReverseAxisIterator); 99 100 PLAN_ITER_VISITOR (FollowingAxisIterator); 101 102 PLAN_ITER_VISITOR (InstanceOfIterator); 103 104 PLAN_ITER_VISITOR (TreatIterator); 105 106 PLAN_ITER_VISITOR (EitherNodesOrAtomicsIterator); 107 108 virtual void beginVisit ( const NumArithIterator<AddOperation>& ) = 0; 109 virtual void beginVisit ( const NumArithIterator<SubtractOperation>& ) = 0; 110 virtual void beginVisit ( const NumArithIterator<MultiplyOperation>& ) = 0; 111 virtual void beginVisit ( const NumArithIterator<DivideOperation>& ) = 0; 112 virtual void beginVisit ( const NumArithIterator<IntegerDivideOperation>& ) = 0; 113 virtual void beginVisit ( const NumArithIterator<ModOperation>& ) = 0; 114 virtual void endVisit ( const NumArithIterator<AddOperation>& ) = 0; 115 virtual void endVisit ( const NumArithIterator<SubtractOperation>& ) = 0; 116 virtual void endVisit ( const NumArithIterator<MultiplyOperation>& ) = 0; 117 virtual void endVisit ( const NumArithIterator<DivideOperation>& ) = 0; 118 virtual void endVisit ( const NumArithIterator<IntegerDivideOperation>& ) = 0; 119 virtual void endVisit ( const NumArithIterator<ModOperation>& ) = 0; 120 121 virtual void beginVisit ( const GenericArithIterator<AddOperation>& ) = 0; 122 virtual void beginVisit ( const GenericArithIterator<SubtractOperation>& ) = 0; 123 virtual void beginVisit ( const GenericArithIterator<MultiplyOperation>& ) = 0; 124 virtual void beginVisit ( const GenericArithIterator<DivideOperation>& ) = 0; 125 virtual void beginVisit ( const GenericArithIterator<IntegerDivideOperation>& ) = 0; 126 virtual void beginVisit ( const GenericArithIterator<ModOperation>& ) = 0; 127 virtual void endVisit ( const GenericArithIterator<AddOperation>& ) = 0; 128 virtual void endVisit ( const GenericArithIterator<SubtractOperation>& ) = 0; 129 virtual void endVisit ( const GenericArithIterator<MultiplyOperation>& ) = 0; 130 virtual void endVisit ( const GenericArithIterator<DivideOperation>& ) = 0; 131 virtual void endVisit ( const GenericArithIterator<IntegerDivideOperation>& ) = 0; 132 virtual void endVisit ( const GenericArithIterator<ModOperation>& ) = 0; 133 134 virtual void beginVisit ( const SpecificNumArithIterator<AddOperation, store::XS_DECIMAL>& ) = 0; 135 virtual void beginVisit ( const SpecificNumArithIterator<AddOperation, store::XS_INTEGER>& ) = 0; 136 virtual void beginVisit ( const SpecificNumArithIterator<AddOperation, store::XS_FLOAT>& ) = 0; 137 virtual void beginVisit ( const SpecificNumArithIterator<AddOperation, store::XS_DOUBLE>& ) = 0; 138 virtual void beginVisit ( const SpecificNumArithIterator<SubtractOperation, store::XS_DECIMAL>& ) = 0; 139 virtual void beginVisit ( const SpecificNumArithIterator<SubtractOperation, store::XS_INTEGER>& ) = 0; 140 virtual void beginVisit ( const SpecificNumArithIterator<SubtractOperation, store::XS_FLOAT>& ) = 0; 141 virtual void beginVisit ( const SpecificNumArithIterator<SubtractOperation, store::XS_DOUBLE>& ) = 0; 142 virtual void beginVisit ( const SpecificNumArithIterator<MultiplyOperation, store::XS_DECIMAL>& ) = 0; 143 virtual void beginVisit ( const SpecificNumArithIterator<MultiplyOperation, store::XS_INTEGER>& ) = 0; 144 virtual void beginVisit ( const SpecificNumArithIterator<MultiplyOperation, store::XS_FLOAT>& ) = 0; 145 virtual void beginVisit ( const SpecificNumArithIterator<MultiplyOperation, store::XS_DOUBLE>& ) = 0; 146 virtual void beginVisit ( const SpecificNumArithIterator<DivideOperation, store::XS_DECIMAL>& ) = 0; 147 virtual void beginVisit ( const SpecificNumArithIterator<DivideOperation, store::XS_INTEGER>& ) = 0; 148 virtual void beginVisit ( const SpecificNumArithIterator<DivideOperation, store::XS_FLOAT>& ) = 0; 149 virtual void beginVisit ( const SpecificNumArithIterator<DivideOperation, store::XS_DOUBLE>& ) = 0; 150 virtual void beginVisit ( const SpecificNumArithIterator<ModOperation, store::XS_DECIMAL>& ) = 0; 151 virtual void beginVisit ( const SpecificNumArithIterator<ModOperation, store::XS_INTEGER>& ) = 0; 152 virtual void beginVisit ( const SpecificNumArithIterator<ModOperation, store::XS_FLOAT>& ) = 0; 153 virtual void beginVisit ( const SpecificNumArithIterator<ModOperation, store::XS_DOUBLE>& ) = 0; 154 virtual void endVisit ( const SpecificNumArithIterator<AddOperation, store::XS_DECIMAL>& ) = 0; 155 virtual void endVisit ( const SpecificNumArithIterator<AddOperation, store::XS_INTEGER>& ) = 0; 156 virtual void endVisit ( const SpecificNumArithIterator<AddOperation, store::XS_FLOAT>& ) = 0; 157 virtual void endVisit ( const SpecificNumArithIterator<AddOperation, store::XS_DOUBLE>& ) = 0; 158 virtual void endVisit ( const SpecificNumArithIterator<SubtractOperation, store::XS_DECIMAL>& ) = 0; 159 virtual void endVisit ( const SpecificNumArithIterator<SubtractOperation, store::XS_INTEGER>& ) = 0; 160 virtual void endVisit ( const SpecificNumArithIterator<SubtractOperation, store::XS_FLOAT>& ) = 0; 161 virtual void endVisit ( const SpecificNumArithIterator<SubtractOperation, store::XS_DOUBLE>& ) = 0; 162 virtual void endVisit ( const SpecificNumArithIterator<MultiplyOperation, store::XS_DECIMAL>& ) = 0; 163 virtual void endVisit ( const SpecificNumArithIterator<MultiplyOperation, store::XS_INTEGER>& ) = 0; 164 virtual void endVisit ( const SpecificNumArithIterator<MultiplyOperation, store::XS_FLOAT>& ) = 0; 165 virtual void endVisit ( const SpecificNumArithIterator<MultiplyOperation, store::XS_DOUBLE>& ) = 0; 166 virtual void endVisit ( const SpecificNumArithIterator<DivideOperation, store::XS_DECIMAL>& ) = 0; 167 virtual void endVisit ( const SpecificNumArithIterator<DivideOperation, store::XS_INTEGER>& ) = 0; 168 virtual void endVisit ( const SpecificNumArithIterator<DivideOperation, store::XS_FLOAT>& ) = 0; 169 virtual void endVisit ( const SpecificNumArithIterator<DivideOperation, store::XS_DOUBLE>& ) = 0; 170 virtual void endVisit ( const SpecificNumArithIterator<ModOperation, store::XS_DECIMAL>& ) = 0; 171 virtual void endVisit ( const SpecificNumArithIterator<ModOperation, store::XS_INTEGER>& ) = 0; 172 virtual void endVisit ( const SpecificNumArithIterator<ModOperation, store::XS_FLOAT>& ) = 0; 173 virtual void endVisit ( const SpecificNumArithIterator<ModOperation, store::XS_DOUBLE>& ) = 0; 174 175 virtual void beginVisit ( const TypedValueCompareIterator<store::XS_DOUBLE>& ) = 0; 176 virtual void endVisit ( const TypedValueCompareIterator<store::XS_DOUBLE>& ) = 0; 177 virtual void beginVisit ( const TypedValueCompareIterator<store::XS_FLOAT>& ) = 0; 178 virtual void endVisit ( const TypedValueCompareIterator<store::XS_FLOAT>& ) = 0; 179 virtual void beginVisit ( const TypedValueCompareIterator<store::XS_DECIMAL>& ) = 0; 180 virtual void endVisit ( const TypedValueCompareIterator<store::XS_DECIMAL>& ) = 0; 181 virtual void beginVisit ( const TypedValueCompareIterator<store::XS_INTEGER>& ) = 0; 182 virtual void endVisit ( const TypedValueCompareIterator<store::XS_INTEGER>& ) = 0; 183 virtual void beginVisit ( const TypedValueCompareIterator<store::XS_STRING>& ) = 0; 184 virtual void endVisit ( const TypedValueCompareIterator<store::XS_STRING>& ) = 0; 185 186 PLAN_ITER_VISITOR (OpNumericUnaryIterator); 187 188 PLAN_ITER_VISITOR (OpDoubleUnaryIterator); 189 190 PLAN_ITER_VISITOR (FnMinMaxIterator); 191 192 PLAN_ITER_VISITOR (TextIterator); 193 194 PLAN_ITER_VISITOR (flwor::FLWORIterator); 195 196 PLAN_ITER_VISITOR (flwor::TupleStreamIterator); 197 198 PLAN_ITER_VISITOR (flwor::TupleSourceIterator); 199 200 PLAN_ITER_VISITOR (flwor::ForIterator); 201 202 PLAN_ITER_VISITOR (flwor::OuterForIterator); 203 204 PLAN_ITER_VISITOR (flwor::LetIterator); 205 206 PLAN_ITER_VISITOR (flwor::GroupByIterator); 207 208 PLAN_ITER_VISITOR (flwor::OrderByIterator); 209 210 PLAN_ITER_VISITOR (flwor::WhereIterator); 211 212 PLAN_ITER_VISITOR (flwor::CountIterator); 213 214 PLAN_ITER_VISITOR (flwor::WindowIterator); 215 216 virtual void beginVisitFlworWhereClause(const PlanIterator&) = 0; 217 218 virtual void endVisitFlworWhereClause(const PlanIterator&) = 0; 219 220 virtual void beginVisitFlworLetVariable( 221 bool, 222 const zstring&, 223 const std::vector<PlanIter_t>&) = 0; 224 225 virtual void endVisitFlworLetVariable() = 0; 226 227 virtual void beginVisitFlworForVariable( 228 const zstring&, 229 const std::vector<PlanIter_t>&, 230 const std::vector<PlanIter_t>&) = 0; 231 232 virtual void endVisitFlworForVariable() = 0; 233 234 virtual void beginVisitMaterializeClause() = 0; 235 236 virtual void endVisitMaterializeClause() = 0; 237 238 virtual void beginVisitMaterializeVariable( 239 bool isForVar, 240 PlanIter_t inputVar, 241 const std::vector<PlanIter_t>& varRefs) = 0; 242 243 virtual void endVisitMaterializeVariable() = 0; 244 245 virtual void beginVisitGroupByClause() = 0; 246 247 virtual void endVisitGroupByClause() = 0; 248 249 virtual void beginVisitGroupBySpec() = 0; 250 251 virtual void endVisitGroupBySpec() = 0; 252 253 virtual void beginVisitGroupByOuter() = 0; 254 255 virtual void endVisitGroupByOuter() = 0; 256 257 virtual void beginVisitGroupVariable(const std::vector<ForVarIter_t>&) = 0; 258 259 virtual void endVisitGroupVariable() = 0; 260 261 virtual void beginVisitNonGroupVariable(const std::vector<LetVarIter_t>&) = 0; 262 263 virtual void endVisitNonGroupVariable() = 0; 264 265 virtual void beginVisitOrderBySpec(const PlanIterator&) = 0; 266 267 virtual void endVisitOrderBySpec(const PlanIterator&) = 0; 268 269 virtual void beginVisitOrderByForVariable( 270 ForVarIter_t inputVar, 271 const std::vector<PlanIter_t>& varRefs) = 0; 272 273 virtual void endVisitOrderByForVariable() = 0; 274 275 virtual void beginVisitOrderByLetVariable( 276 LetVarIter_t inputVar, 277 const std::vector<PlanIter_t>& varRefs) = 0; 278 279 virtual void endVisitOrderByLetVariable() = 0; 280 281 virtual void beginVisitWindowVariable( 282 const std::string& varName, 283 const std::vector<LetVarIter_t>& varRefs) = 0; 284 285 virtual void endVisitWindowVariable() = 0; 286 287 virtual void beginVisitWinCondVariable( 288 const zstring& varName, 289 const std::vector<PlanIter_t>& varRefs) = 0; 290 291 virtual void endVisitWinCondVariable() = 0; 292 293 virtual void beginVisitFlworReturn(const PlanIterator&) = 0; 294 295 virtual void endVisitFlworReturn(const PlanIterator&) = 0; 296 297 PLAN_ITER_VISITOR (CastIterator); 298 299 PLAN_ITER_VISITOR (NameCastIterator); 300 301 PLAN_ITER_VISITOR (PromoteIterator); 302 303 PLAN_ITER_VISITOR (CastableIterator); 304 305 PLAN_ITER_VISITOR (FnDateTimeConstructorIterator); 306 307 PLAN_ITER_VISITOR (CtxVarIterator); 308 309 PLAN_ITER_VISITOR (CtxVarDeclareIterator); 310 311 PLAN_ITER_VISITOR (CtxVarAssignIterator); 312 313 PLAN_ITER_VISITOR (CtxVarIsSetIterator); 314 315 PLAN_ITER_VISITOR(FnAdjustToTimeZoneIterator_1); 316 317 PLAN_ITER_VISITOR(FnAdjustToTimeZoneIterator_2); 318 319 PLAN_ITER_VISITOR(FnFormatDateTimeIterator); 320 321 PLAN_ITER_VISITOR(InsertIterator); 322 323 PLAN_ITER_VISITOR(DeleteIterator); 324 325 PLAN_ITER_VISITOR(ReplaceIterator); 326 327 PLAN_ITER_VISITOR(RenameIterator); 328 329 PLAN_ITER_VISITOR(TransformIterator); 330 331 PLAN_ITER_VISITOR(ApplyIterator); 332 333 PLAN_ITER_VISITOR(FTContainsIterator); 334 335 #ifdef ZORBA_WITH_DEBUGGER 336 PLAN_ITER_VISITOR ( DebuggerSingletonIterator ); 337 #endif 338 339 PLAN_ITER_VISITOR(HoistIterator); 340 PLAN_ITER_VISITOR(UnhoistIterator); 341 342 PLAN_ITER_VISITOR(ProbeIndexPointValueIterator); 343 PLAN_ITER_VISITOR(ProbeIndexPointGeneralIterator); 344 PLAN_ITER_VISITOR(ProbeIndexRangeValueIterator); 345 PLAN_ITER_VISITOR(ProbeIndexRangeGeneralIterator); 346 PLAN_ITER_VISITOR(ValueIndexEntryBuilderIterator); 347 PLAN_ITER_VISITOR(GeneralIndexEntryBuilderIterator); 348 PLAN_ITER_VISITOR(RefreshIndexIterator); 349 PLAN_ITER_VISITOR(CreateIndexIterator); 350 PLAN_ITER_VISITOR(CreateInternalIndexIterator); 351 PLAN_ITER_VISITOR(DeleteIndexIterator); 352 353 PLAN_ITER_VISITOR(DynamicFnCallIterator); 354 355 PLAN_ITER_VISITOR(EvalIterator); 356 357 PLAN_ITER_VISITOR(MaterializeIterator); 358 359 PLAN_ITER_VISITOR(SequentialIterator); 360 PLAN_ITER_VISITOR(LoopIterator); 361 PLAN_ITER_VISITOR(ExitIterator); 362 PLAN_ITER_VISITOR(ExitCatcherIterator); 363 PLAN_ITER_VISITOR(FlowCtlIterator); 364 365 PLAN_ITER_VISITOR(CountCollectionIterator); 366 367 /* vim:set et sw=2 ts=2: */ 368