summaryrefslogtreecommitdiff
path: root/odb/semantics/derived.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/semantics/derived.hxx')
-rw-r--r--odb/semantics/derived.hxx70
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,