1 // Copyright: Matra-Datavision 1991
2 // File: Expr_UnknownIterator.cxx
3 // Created: Wed Sep 18 11:21:49 1991
4 // Author: Arnaud BOUZY
7 #include <Expr_UnknownIterator.ixx>
8 #include <Standard_NoMoreObject.hxx>
9 #include <Standard_NoSuchObject.hxx>
12 Expr_UnknownIterator::Expr_UnknownIterator (const Handle(Expr_GeneralExpression)& exp)
18 void Expr_UnknownIterator::Perform(const Handle(Expr_GeneralExpression)& exp)
20 if (exp->IsKind(STANDARD_TYPE(Expr_NamedUnknown))) {
21 Handle(Expr_NamedUnknown) varexp = Handle(Expr_NamedUnknown)::DownCast(exp);
22 if (!myMap.Contains(varexp)) {
26 Standard_Integer nbsub = exp->NbSubExpressions();
27 for (Standard_Integer i = 1; i <= nbsub ; i++) {
28 Perform(exp->SubExpression(i));
32 Standard_Boolean Expr_UnknownIterator::More() const
34 return (myCurrent <= myMap.Extent());
37 void Expr_UnknownIterator::Next ()
40 Standard_NoMoreObject::Raise();
45 Handle(Expr_NamedUnknown) Expr_UnknownIterator::Value () const
47 return myMap(myCurrent);