diff options
Diffstat (limited to 'xsd-frontend/semantic-graph/elements.hxx')
-rw-r--r-- | xsd-frontend/semantic-graph/elements.hxx | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/xsd-frontend/semantic-graph/elements.hxx b/xsd-frontend/semantic-graph/elements.hxx index 3a95c09..dd397f2 100644 --- a/xsd-frontend/semantic-graph/elements.hxx +++ b/xsd-frontend/semantic-graph/elements.hxx @@ -626,6 +626,10 @@ namespace XSDFrontend Cult::Containers::Vector<Inherits*> Begets; + typedef + Cult::Containers::Set<Arguments*> + ArgumentsSet; + public: typedef Bits::PointerIterator<Classifies::ConstIterator> @@ -676,6 +680,24 @@ namespace XSDFrontend return begets_.end (); } + // + // + typedef + Bits::PointerIterator<ArgumentsSet::ConstIterator> + ArgumentsIterator; + + ArgumentsIterator + arguments_begin () const + { + return arguments_.begin (); + } + + ArgumentsIterator + arguments_end () const + { + return arguments_.end (); + } + protected: friend class Bits::Graph<Node, Edge>; @@ -699,11 +721,15 @@ namespace XSDFrontend using Nameable::add_edge_right; Void - add_edge_left (Arguments&) + add_edge_left (Arguments& a) { + arguments_.insert (&a); } Void + remove_edge_left (Arguments&); + + Void add_edge_left (Inherits& e) { inherits_ = &e; @@ -713,6 +739,7 @@ namespace XSDFrontend Inherits* inherits_; Begets begets_; Classifies classifies_; + ArgumentsSet arguments_; }; @@ -1119,6 +1146,9 @@ namespace XSDFrontend argumented_.push_back (&a); } + Void + remove_edge_right (Arguments&); + public: Void add_edge_right (Arguments& a, ArgumentedIterator const& pos) |