From e4f4f0bed9befbde2117af6f128d9323be3f1638 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 3 Mar 2010 19:21:50 +0200 Subject: Add union information to the semantics graph New test: union. --- tests/dump/driver.cxx | 60 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 53 insertions(+), 7 deletions(-) (limited to 'tests/dump/driver.cxx') diff --git a/tests/dump/driver.cxx b/tests/dump/driver.cxx index d9917d3..ccfe5aa 100644 --- a/tests/dump/driver.cxx +++ b/tests/dump/driver.cxx @@ -55,8 +55,23 @@ namespace << endl; wcout << ind << "list " << - (l.named () ? l.name () : String ("")) - << " " << ref_name (l.argumented ().type ()) << endl; + (l.named () ? l.name () : String ("")); + + SemanticGraph::Type& t (l.argumented ().type ()); + + if (t.named ()) + wcout << " " << ref_name (t) << endl; + else + { + wcout << endl + << ind << "{" << endl; + indent++; + + edge_traverser ().dispatch (l.argumented ()); + + indent--; + wcout << ind << "}" << endl; + } } }; @@ -70,7 +85,29 @@ namespace << endl; wcout << ind << "union " << - (u.named () ? u.name () : String ("")) << endl; + (u.named () ? u.name () : String ("")) << " "; + + for (Type::ArgumentedIterator i (u.argumented_begin ()); + i != u.argumented_end (); ++i) + { + SemanticGraph::Type& t (i->type ()); + + if (t.named ()) + wcout << ref_name (t) << " "; + else + { + wcout << endl + << ind << "{" << endl; + indent++; + + edge_traverser ().dispatch (*i); + + indent--; + wcout << ind << "}" << endl; + } + } + + wcout << endl; } }; @@ -508,14 +545,12 @@ namespace struct AnonymousNameTranslator: Transformations::AnonymousNameTranslator { virtual WideString - translate (WideString const& file, + translate (WideString const& /*file*/, WideString const& ns, WideString const& name, WideString const& xpath) { - wcout << "anonymous: " << file << " " << ns << " " << name << " " << - xpath << endl; - + wcout << "anonymous: " << ns << " " << name << " " << xpath << endl; return name; } }; @@ -647,6 +682,17 @@ main (Int argc, Char* argv[]) // // + Traversal::Argumented argumented; + list >> argumented; + union_ >> argumented; + + argumented >> list; + argumented >> union_; + argumented >> complex; + argumented >> enumeration; + + // + // Enumerator enumerator; enumeration_names >> enumerator; -- cgit v1.1