aboutsummaryrefslogtreecommitdiff
path: root/xsde/cxx/hybrid/parser-name-processor.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2009-03-16 08:16:43 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2009-03-16 08:16:43 +0200
commitbce9d5a76072ec697ef69021818aa68709036da5 (patch)
tree9ec56eff60abacaea121d1602a1e48388ca34216 /xsde/cxx/hybrid/parser-name-processor.cxx
parentbe19f3aae4e16b4dc9c980cb9b53e807616662ef (diff)
Add support for type customization in C++/Hybrid
examples/cxx/hybrid/custom/wildcard/: new example
Diffstat (limited to 'xsde/cxx/hybrid/parser-name-processor.cxx')
-rw-r--r--xsde/cxx/hybrid/parser-name-processor.cxx15
1 files changed, 8 insertions, 7 deletions
diff --git a/xsde/cxx/hybrid/parser-name-processor.cxx b/xsde/cxx/hybrid/parser-name-processor.cxx
index c913766..740cf36 100644
--- a/xsde/cxx/hybrid/parser-name-processor.cxx
+++ b/xsde/cxx/hybrid/parser-name-processor.cxx
@@ -357,12 +357,6 @@ namespace CXX
virtual Void
traverse (Type& c)
{
- Boolean restriction (false);
-
- if (c.inherits_p ())
- restriction = c.inherits ().is_a<SemanticGraph::Restricts> () &&
- !c.inherits ().base ().is_a<SemanticGraph::AnyType> ();
-
SemanticGraph::Context& cc (c.context ());
// In case of customization use p:impl-base instead of p:impl.
@@ -371,10 +365,17 @@ namespace CXX
String const& base (cc.count ("p:impl-base")
? cc.get<String> ("p:impl-base")
: cc.get<String> ("p:impl"));
-
if (!base)
return;
+ //
+ //
+ Boolean restriction (false);
+
+ if (c.inherits_p ())
+ restriction = c.inherits ().is_a<SemanticGraph::Restricts> () &&
+ !c.inherits ().base ().is_a<SemanticGraph::AnyType> ();
+
// Use skeleton's name set to make sure we don't clash
// with callbacks which we are overriding.
//