diff options
Diffstat (limited to 'odb/semantics/derived.hxx')
-rw-r--r-- | odb/semantics/derived.hxx | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/odb/semantics/derived.hxx b/odb/semantics/derived.hxx index 7551cd4..4300290 100644 --- a/odb/semantics/derived.hxx +++ b/odb/semantics/derived.hxx @@ -114,6 +114,10 @@ namespace semantics } public: + virtual string + fq_name (names*) const; + + public: qualifier (path const&, size_t line, size_t column, @@ -155,6 +159,21 @@ namespace semantics return *pointer_; } + // Name hint of the base type. + // + public: + void + hint (names& hint) + { + hint_ = &hint; + } + + names* + hint () const + { + return hint_; + } + public: points (); @@ -173,6 +192,7 @@ namespace semantics protected: type_type* type_; pointer_type* pointer_; + names* hint_; }; class pointer: public derived_type @@ -193,6 +213,10 @@ namespace semantics } public: + virtual string + fq_name (names*) const; + + public: pointer (path const&, size_t line, size_t column, tree); void @@ -228,6 +252,21 @@ namespace semantics return *reference_; } + // Name hint of the base type. + // + public: + void + hint (names& hint) + { + hint_ = &hint; + } + + names* + hint () const + { + return hint_; + } + public: references (); @@ -246,6 +285,7 @@ namespace semantics protected: type_type* type_; reference_type* reference_; + names* hint_; }; class reference: public derived_type @@ -266,6 +306,10 @@ namespace semantics } public: + virtual string + fq_name (names*) const; + + public: reference (path const&, size_t line, size_t column, tree); void @@ -301,6 +345,21 @@ namespace semantics return *array_; } + // Name hint of the base type. + // + public: + void + hint (names& hint) + { + hint_ = &hint; + } + + names* + hint () const + { + return hint_; + } + public: contains (); @@ -319,6 +378,7 @@ namespace semantics protected: type_type* type_; array_type* array_; + names* hint_; }; class array: public derived_type @@ -348,6 +408,16 @@ namespace semantics } public: + virtual string + fq_name (names*) const; + + private: + friend class qualifier; + + string + fq_name (names*, string& trailer) const; + + public: array (path const&, size_t line, size_t column, |