summaryrefslogtreecommitdiff
path: root/CIAO/CCF/Test/IDL2
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/CCF/Test/IDL2')
-rw-r--r--CIAO/CCF/Test/IDL2/Compiler/driver.cpp94
-rw-r--r--CIAO/CCF/Test/IDL2/Compiler/result.idl.orig88
-rw-r--r--CIAO/CCF/Test/IDL2/Compiler/test.idl151
-rw-r--r--CIAO/CCF/Test/IDL2/LexicalAnalyzer/Coverage.idl25
-rw-r--r--CIAO/CCF/Test/IDL2/Parser/Recovery/interface.idl41
-rw-r--r--CIAO/CCF/Test/IDL2/Parser/Recovery/module.idl38
-rw-r--r--CIAO/CCF/Test/IDL2/SemanticGraph/HandBuilt/Builder.cpp165
-rw-r--r--CIAO/CCF/Test/IDL2/SemanticGraph/HandBuilt/Builder.hpp17
-rw-r--r--CIAO/CCF/Test/IDL2/SemanticGraph/HandBuilt/hand_built.cpp16
-rw-r--r--CIAO/CCF/Test/IDL2/Traversal/Recreate/Generator.cpp32
-rw-r--r--CIAO/CCF/Test/IDL2/Traversal/Recreate/Generator.hpp34
-rw-r--r--CIAO/CCF/Test/IDL2/Traversal/Recreate/GeneratorImpl.hpp682
-rw-r--r--CIAO/CCF/Test/IDL2/Traversal/Recreate/recreate.cpp24
13 files changed, 0 insertions, 1407 deletions
diff --git a/CIAO/CCF/Test/IDL2/Compiler/driver.cpp b/CIAO/CCF/Test/IDL2/Compiler/driver.cpp
deleted file mode 100644
index 71d8dc9b971..00000000000
--- a/CIAO/CCF/Test/IDL2/Compiler/driver.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-// file : Test/IDL2/Compiler/driver.cpp
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-#include "CCF/CompilerElements/Context.hpp"
-#include "CCF/CompilerElements/FileSystem.hpp"
-#include "CCF/CompilerElements/Diagnostic.hpp"
-#include "CCF/CompilerElements/TokenStream.hpp"
-#include "CCF/CompilerElements/Preprocessor.hpp"
-
-#include "CCF/IDL2/LexicalAnalyzer.hpp"
-#include "CCF/IDL2/Parser.hpp"
-#include "CCF/IDL2/SemanticGraph.hpp"
-#include "CCF/IDL2/SemanticAction/Impl/Factory.hpp"
-
-#include "../Traversal/Recreate/Generator.hpp"
-
-#include <iostream>
-
-using std::cerr;
-using std::cout;
-using std::endl;
-
-using namespace CCF::CompilerElements;
-using namespace CCF::IDL2;
-using namespace CCF::IDL2::SemanticGraph;
-
-int
-main ()
-{
- try
- {
- Diagnostic::Stream dout;
-
- fs::path file_path ("stdout");
-
- InputStreamAdapter isa (std::cin);
- CPP::Preprocessor pp (isa);
-
- LexicalAnalyzer lexer (pp);
-
- TokenList token_stream;
-
- //@@ bad token comparison
- for (TokenPtr token = lexer.next ();; token = lexer.next ())
- {
- token_stream.push_back (token);
- if (ReferenceCounting::strict_cast<EndOfStream> (token) != 0) break;
- }
-
- if (token_stream.size () < 2)
- {
- cerr << "no tokens produced so nothing to parse" << endl;
- return 0;
- }
-
- TranslationUnit tu;
-
- // Compilation context.
- //
- CCF::CompilerElements::Context context;
- context.set ("file-path", file_path);
- context.set ("trace-semantic-action", false);
-
-
- SemanticAction::Impl::Factory actions (context, dout, tu);
-
- Parser parser (context, dout, lexer, actions);
-
- Parsing::parse (token_stream.begin (),
- token_stream.end (),
- parser.start ());
-
- if (dout.error_count () != 0) return -1;
-
- IDL2::Generator g;
-
- g.generate (tu);
-
- }
- catch (std::bad_cast const&)
- {
- cerr << "bad cast exception" << endl;
- }
- catch (InvalidName const&)
- {
- cerr << "invalid name exception" << endl;
- }
- catch (...)
- {
- cerr << "caught unknown exception" << endl;
- return -1;
- }
-}
diff --git a/CIAO/CCF/Test/IDL2/Compiler/result.idl.orig b/CIAO/CCF/Test/IDL2/Compiler/result.idl.orig
deleted file mode 100644
index a29258b9e6f..00000000000
--- a/CIAO/CCF/Test/IDL2/Compiler/result.idl.orig
+++ /dev/null
@@ -1,88 +0,0 @@
-module AttributeTest
-{
- interface I
- {
- attribute long a;
- attribute string foo;
- };
-};
-module InterfaceTest
-{
- abstract interface AI;
- local interface LI;
- interface I;
- abstract interface AI
- {
- };
- interface I : ::InterfaceTest::AI
- {
- };
- local interface LI : ::InterfaceTest::I, ::InterfaceTest::AI
- {
- };
-};
-module MemberTest
-{
- typedef long Id;
- struct S
- {
- long id;
- string foo;
- string bar;
- string baz;
- };
-};
-module ModuleTest
-{
- module M
- {
- module N
- {
- typedef long L;
- };
- };
- module M
- {
- typedef long L;
- };
- module N
- {
- typedef long L;
- };
-};
-module OperationTest
-{
- interface I
- {
- long f (in string a, out long b, inout octet c);
- };
-};
-module Sequence
-{
- typedef sequence<octet> OctetSeq;
- typedef sequence<octet> RawSeq;
- typedef sequence<string> StringSeq;
- typedef sequence<string> StrSeq;
-};
-module StructTest
-{
- struct S;
- struct S
- {
- long m;
- };
-};
-module TypeidTest
-{
- interface I;
- typeid ::TypeidTest::I "Foo";
- typeprefix ::TypeidTest "Bar";
-};
-module TypedefTest
-{
- interface I;
- typedef ::TypedefTest::I J;
- interface I
- {
- };
-};
diff --git a/CIAO/CCF/Test/IDL2/Compiler/test.idl b/CIAO/CCF/Test/IDL2/Compiler/test.idl
deleted file mode 100644
index 737a729524b..00000000000
--- a/CIAO/CCF/Test/IDL2/Compiler/test.idl
+++ /dev/null
@@ -1,151 +0,0 @@
-// file : CCF/Test/IDL2/Compiler/test.idl
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-// Attribute
-//
-//
-module AttributeTest
-{
- interface I
- {
- attribute long a;
- attribute string foo;
- };
-};
-
-// Interface
-//
-//
-module InterfaceTest
-{
- abstract interface AI;
- local interface LI;
- interface I;
-
- abstract interface AI
- {
- };
-
- interface I : AI
- {
- };
-
- local interface LI : I, AI
- {
- };
-};
-
-// Member
-//
-//
-module MemberTest
-{
- typedef long Id;
-
- struct S
- {
- Id id;
- string foo, bar, baz;
- };
-};
-
-// Module
-//
-//
-module ModuleTest
-{
- module M
- {
- module N
- {
- typedef long L;
- };
- };
-
- module M
- {
- typedef N::L L;
- };
-
- module N
- {
- typedef M::N::L L;
- };
-};
-
-
-// Operation
-//
-//
-module OperationTest
-{
- interface I
- {
- long f (in string a, out long b, inout octet c);
- };
-};
-
-
-// Sequence
-//
-//
-module Sequence
-{
- typedef sequence<octet> OctetSeq;
-
- typedef OctetSeq RawSeq;
-
- typedef sequence<string> StringSeq, StrSeq;
-};
-
-
-// Struct
-//
-//
-module StructTest
-{
- struct S;
-
- struct S
- {
- long m; // Struct cannot be empty.
- };
-
-};
-
-// Typeid
-//
-//
-module TypeidTest
-{
- interface I;
-
- typeid I "Foo";
- typeprefix TypeidTest "Bar";
-};
-
-
-// Typedef
-//
-//
-
-module TypedefTest
-{
- interface I;
-
- typedef I J;
-
- interface I
- {
- /*
- struct S
- {
- long l;
- };
-
- J::S op ();
- */
- };
-};
-
diff --git a/CIAO/CCF/Test/IDL2/LexicalAnalyzer/Coverage.idl b/CIAO/CCF/Test/IDL2/LexicalAnalyzer/Coverage.idl
deleted file mode 100644
index a29dde465d2..00000000000
--- a/CIAO/CCF/Test/IDL2/LexicalAnalyzer/Coverage.idl
+++ /dev/null
@@ -1,25 +0,0 @@
-// file : CCF/Test/IDL2/LexicalAnalyzer/Coverage.idl
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-// This file is supposed to cover an IDL2 lexical structure and intended
-// for IDL2 lexer regression testing.
-//
-
-abstract interface FA;
-
-abstract interface A
-{
- void foo (in long l, out boolean b, inout FA fa);
-};
-
-module M
-{
- interface I
- {
- };
-};
-
-local interface L : ::A, M::I
-{
-};
diff --git a/CIAO/CCF/Test/IDL2/Parser/Recovery/interface.idl b/CIAO/CCF/Test/IDL2/Parser/Recovery/interface.idl
deleted file mode 100644
index 22a99ffadf2..00000000000
--- a/CIAO/CCF/Test/IDL2/Parser/Recovery/interface.idl
+++ /dev/null
@@ -1,41 +0,0 @@
-// file : CCF/Test/IDL2/Parsing/Recovery/interface.idl
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-interface Base {};
-
-
-// Interface declaration syntax errors
-//
-//
-
-local intrrface L;
-
-//
-
-abstract interrface A;
-
-//
-
-interface ;
-
-//
-
-interface I : {};
-
-//
-
-interface I : Base, {};
-
-//
-
-interface I };
-
-//
-
-interface I {;
-
-//
-
-interface I {}
-
diff --git a/CIAO/CCF/Test/IDL2/Parser/Recovery/module.idl b/CIAO/CCF/Test/IDL2/Parser/Recovery/module.idl
deleted file mode 100644
index edfd868809b..00000000000
--- a/CIAO/CCF/Test/IDL2/Parser/Recovery/module.idl
+++ /dev/null
@@ -1,38 +0,0 @@
-// file : CCF/Test/IDL2/Parsing/Recovery/module.idl
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-// Module declaration syntax errors
-//
-//
-
-//
-
-module;
-
-//
-
-module M;
-
-//
-
-module M {;
-
-//
-
-module M {}
-
-
-//
-
-module M {
- interface I;
-;
-
-//
-
-module N
-{
- interface I;
-}
-
diff --git a/CIAO/CCF/Test/IDL2/SemanticGraph/HandBuilt/Builder.cpp b/CIAO/CCF/Test/IDL2/SemanticGraph/HandBuilt/Builder.cpp
deleted file mode 100644
index 764ab3fbc6f..00000000000
--- a/CIAO/CCF/Test/IDL2/SemanticGraph/HandBuilt/Builder.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-// file : Test/IDL2/SemanticGraph/HandBuilt/Builder.cpp
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-#include <iostream>
-
-#include "Builder.hpp"
-
-using namespace CCF::IDL2::SemanticGraph;
-
-//@@ tmp
-using std::cerr;
-using std::endl;
-
-TranslationUnit* Builder::
-build ()
-{
- /*
- 0
- 1 #include "../foo/quote.idl"
- 2 #include <ui/bracket.idl>
- 3
- 4 module M
- 5 {
- 6
- 7 interface I;
- 8
- 9 typedef I J;
- 10
- 11 interface I
- 12 {
- 13 void f (in long id, out string name);
- 14
- 15 attribute long a;
- 16 };
- 17
- 18 interface Q : J {};
- 19
- 20 typeid I "Foo";
- 21 typeprefix M "Bar";
- 22
- 23 struct S
- 24 {
- 25 long member;
- 26 };
- 27
- 28 typedef sequence<long> LongSeq;
- 29
- 30 };
- 31
- 32
- */
-
- //@@ names can be spcified without explicit construction.
- //
-
- TranslationUnit& tu (*(new TranslationUnit));
-
-
- // 0: Implied translation region with fundamental types.
- //
- //
- TranslationRegion& fundamental (tu.new_node<TranslationRegion> ());
- tu.new_edge<ContainsImplied> (tu, fundamental, ".fundamental");
-
- Root& fundamental_root (tu.new_node<Root> ());
- tu.new_edge<ContainsRoot> (fundamental, fundamental_root);
-
- Void& void_ (tu.new_node<Void> ());
- tu.new_edge<Defines> (fundamental_root, void_, SimpleName ("void"));
-
- Long& long_ (tu.new_node<Long> ());
- tu.new_edge<Defines> (fundamental_root, long_, SimpleName ("long"));
-
- String& string_ (tu.new_node<String> ());
- tu.new_edge<Defines> (fundamental_root, string_, SimpleName ("string"));
-
- // Principal translation region.
- //
- TranslationRegion& principal (tu.new_node<TranslationRegion> ());
- tu.new_edge<ContainsPrincipal> (tu, principal);
-
- // 1: Quote included translation region.
- //
- TranslationRegion& quote_included (tu.new_node<TranslationRegion> ());
- tu.new_edge<QuoteIncludes> (principal, quote_included, "../foo/quote.idl");
-
- // 2: Bracket included translation region.
- //
- TranslationRegion& braket_included (tu.new_node<TranslationRegion> ());
- tu.new_edge<BracketIncludes> (principal, braket_included, "ui/bracket.idl");
-
- Root& root (tu.new_node<Root> ());
- tu.new_edge<ContainsRoot> (principal, root);
-
- // 4-5:
- //
- Module& m (tu.new_node<Module> ());
- tu.new_edge<Defines> (root, m, SimpleName ("M"));
-
- // 7-11:
- //
- UnconstrainedInterface& i (tu.new_node<UnconstrainedInterface> ());
- tu.new_edge<Mentions> (m, i, SimpleName ("I"));
- tu.new_edge<Aliases> (m, i, SimpleName ("J"));
- tu.new_edge<Defines> (m, i, SimpleName ("I"));
-
- // 13:
- //
- TwoWayOperation& f (tu.new_node<TwoWayOperation> ());
- tu.new_edge<Returns> (f, void_);
-
- Parameter& id (tu.new_node<InParameter> ("id"));
- tu.new_edge<Belongs> (id, long_);
- tu.new_edge<Receives> (f, id);
-
- Parameter& name (tu.new_node<OutParameter> ("name"));
- tu.new_edge<Belongs> (name, string_);
- tu.new_edge<Receives> (f, name);
-
- tu.new_edge<Defines> (i, f, SimpleName ("f"));
-
- // 15:
- //
- Attribute& a (tu.new_node<Attribute> ());
- tu.new_edge<Belongs> (a, long_);
- tu.new_edge<Defines> (i, a, SimpleName ("a"));
-
- // 18:
- //
- UnconstrainedInterface& q (tu.new_node<UnconstrainedInterface> ());
- tu.new_edge<Inherits> (q, i);
- tu.new_edge<Defines> (m, q, SimpleName ("Q"));
-
- // 20:
- //
- TypeId& ti (tu.new_node<TypeId> (
- ScopedName ("::M::I"), StringLiteral ("Foo")));
- tu.new_edge<Defines> (m, ti, SimpleName ("typeid"));
-
- // 21:
- //
- TypePrefix& tp (tu.new_node<TypePrefix> (
- ScopedName ("::M"), StringLiteral ("Bar")));
- tu.new_edge<Defines> (m, tp, SimpleName ("typeprefix"));
-
- // 23-24:
- //
- Struct& s (tu.new_node<Struct> ());
- tu.new_edge<Defines> (m, s, SimpleName ("S"));
-
- // 25:
- //
- Member& member (tu.new_node<Member> ());
- tu.new_edge<Belongs> (member, long_);
- tu.new_edge<Defines> (s, member, SimpleName ("member"));
-
- // 28:
- //
- UnboundedSequence& long_seq (tu.new_node<UnboundedSequence> ());
- tu.new_edge<Specialized> (long_seq, long_);
- tu.new_edge<Aliases> (m, long_seq, SimpleName ("LongSeq"));
-
- return &tu;
-}
diff --git a/CIAO/CCF/Test/IDL2/SemanticGraph/HandBuilt/Builder.hpp b/CIAO/CCF/Test/IDL2/SemanticGraph/HandBuilt/Builder.hpp
deleted file mode 100644
index 794c56547d2..00000000000
--- a/CIAO/CCF/Test/IDL2/SemanticGraph/HandBuilt/Builder.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// file : Test/IDL2/SemanticGraph/HandBuilt/Builder.hpp
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-#ifndef TEST_IDL2_SEMANTIC_GRAPH_BUILDER_HPP
-#define TEST_IDL2_SEMANTIC_GRAPH_BUILDER_HPP
-
-#include "CCF/IDL2/SemanticGraph.hpp"
-
-class Builder
-{
-public:
- CCF::IDL2::SemanticGraph::TranslationUnit*
- build ();
-};
-
-#endif // TEST_IDL2_SEMANTIC_GRAPH_BUILDER_HPP
diff --git a/CIAO/CCF/Test/IDL2/SemanticGraph/HandBuilt/hand_built.cpp b/CIAO/CCF/Test/IDL2/SemanticGraph/HandBuilt/hand_built.cpp
deleted file mode 100644
index 3640282cfe3..00000000000
--- a/CIAO/CCF/Test/IDL2/SemanticGraph/HandBuilt/hand_built.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-// file : Test/IDL2/SemanticGraph/HandBuilt/hand_built.cpp
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-#include "Builder.hpp"
-
-using namespace CCF::IDL2;
-
-int
-main ()
-{
- Builder b;
- SemanticGraph::TranslationUnit& tu (*b.build ());
-
- delete &tu;
-}
diff --git a/CIAO/CCF/Test/IDL2/Traversal/Recreate/Generator.cpp b/CIAO/CCF/Test/IDL2/Traversal/Recreate/Generator.cpp
deleted file mode 100644
index 8aa3e895b9d..00000000000
--- a/CIAO/CCF/Test/IDL2/Traversal/Recreate/Generator.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// file : Test/IDL2/Traversal/Recreate/Generator.cpp
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-#include "Generator.hpp"
-#include "GeneratorImpl.hpp"
-
-namespace IDL2
-{
- Generator::
- ~Generator ()
- {
- }
-
- Generator::
- Generator ()
- : pimpl_ (new GeneratorImpl), impl_ (*pimpl_)
- {
- }
-
- Generator::
- Generator (GeneratorImpl& gi)
- : pimpl_ (), impl_ (gi)
- {
- }
-
- void Generator::
- generate (CCF::IDL2::SemanticGraph::TranslationUnit& tu)
- {
- impl_.generate (tu);
- }
-}
diff --git a/CIAO/CCF/Test/IDL2/Traversal/Recreate/Generator.hpp b/CIAO/CCF/Test/IDL2/Traversal/Recreate/Generator.hpp
deleted file mode 100644
index b0387317ad5..00000000000
--- a/CIAO/CCF/Test/IDL2/Traversal/Recreate/Generator.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// file : Test/IDL2/Traversal/Recreate/Generator.hpp
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-#ifndef TEST_IDL2_TRAVERSAL_RECREATE_GENERATOR_HPP
-#define TEST_IDL2_TRAVERSAL_RECREATE_GENERATOR_HPP
-
-#include <memory>
-
-#include "CCF/IDL2/SemanticGraph.hpp"
-
-namespace IDL2
-{
- class GeneratorImpl;
-
- class Generator
- {
- public:
- ~Generator ();
- Generator ();
-
- void
- generate (CCF::IDL2::SemanticGraph::TranslationUnit& tu);
-
- protected:
- Generator (GeneratorImpl&);
-
- protected:
- std::auto_ptr<GeneratorImpl> pimpl_;
- GeneratorImpl& impl_;
- };
-}
-
-#endif // TEST_IDL2_TRAVERSAL_RECREATE_GENERATOR_HPP
diff --git a/CIAO/CCF/Test/IDL2/Traversal/Recreate/GeneratorImpl.hpp b/CIAO/CCF/Test/IDL2/Traversal/Recreate/GeneratorImpl.hpp
deleted file mode 100644
index 52b89e03e12..00000000000
--- a/CIAO/CCF/Test/IDL2/Traversal/Recreate/GeneratorImpl.hpp
+++ /dev/null
@@ -1,682 +0,0 @@
-// file : Test/IDL2/Traversal/Recreate/GeneratorImpl.hpp
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-#ifndef TEST_IDL2_TRAVERSAL_RECREATE_GENERATOR_IMPL_HPP
-#define TEST_IDL2_TRAVERSAL_RECREATE_GENERATOR_IMPL_HPP
-
-#include <iostream>
-
-#include "CCF/CodeGenerationKit/IndentationIDL.hpp"
-#include "CCF/CodeGenerationKit/IndentationImplanter.hpp"
-
-#include "CCF/IDL2/SemanticGraph.hpp"
-#include "CCF/IDL2/Traversal.hpp"
-
-namespace IDL2
-{
- using namespace CCF::IDL2;
- using namespace CCF::IDL2::SemanticGraph;
-
- using std::cout;
- using std::endl;
-
- class GeneratorImpl
- {
- protected:
- // Layer 1
- //
-
- // Layer 2
- //
- struct BracketIncludes : Traversal::BracketIncludes
- {
- virtual void
- traverse (Type& qi)
- {
- cout << "include <" << qi.file ().string () << ">" << endl;
- }
- };
-
- struct QuoteIncludes : Traversal::QuoteIncludes
- {
- virtual void
- traverse (Type& qi)
- {
- cout << "include \"" << qi.file ().string () << "\"" << endl;
- }
- };
-
- //--
-
- // Layer 3
- //
-
- struct Aliases : Traversal::Aliases
- {
- virtual void
- pre (Type&)
- {
- cout << "typedef ";
- }
-
- virtual void
- name (Type& a)
- {
- cout << " " << a.name ();
- }
-
- virtual void
- post (Type&)
- {
- cout << ";";
- }
- };
-
- //--
-
- struct AbstractInterfaceFwd : Traversal::AbstractInterface
- {
- virtual void
- traverse (Type& i)
- {
- cout << "abstract interface " << i.name () << ";";
- }
- };
-
- struct LocalInterfaceFwd : Traversal::LocalInterface
- {
- virtual void
- traverse (Type& i)
- {
- cout << "local interface " << i.name () << ";";
- }
- };
-
- struct UnconstrainedInterfaceFwd : Traversal::UnconstrainedInterface
- {
- virtual void
- traverse (Type& i)
- {
- cout << "interface " << i.name () << ";";
- }
- };
-
- struct StructFwd : Traversal::Struct
- {
- virtual void
- traverse (Type& i)
- {
- cout << "struct " << i.name () << ";";
- }
- };
-
-
- struct AbstractInterface : Traversal::AbstractInterface
- {
- virtual void
- pre (Type&)
- {
- cout << "abstract interface ";
- }
-
- virtual void
- name (Type& i)
- {
- cout << i.name ();
- }
-
- virtual void
- inherits_pre (Type&)
- {
- cout << " : ";
- }
-
- virtual void
- names_pre (Type&)
- {
- cout << "{";
- }
-
- virtual void
- names_post (Type&)
- {
- cout << "}";
- }
-
- virtual void
- post (Type&)
- {
- cout << ";";
- }
-
- virtual void
- comma (Type&)
- {
- cout << ", ";
- }
- };
-
- struct LocalInterface : Traversal::LocalInterface
- {
- virtual void
- pre (Type&)
- {
- cout << "local interface ";
- }
-
- virtual void
- name (Type& i)
- {
- cout << i.name ();
- }
-
- virtual void
- inherits_pre (Type&)
- {
- cout << " : ";
- }
-
- virtual void
- names_pre (Type&)
- {
- cout << "{";
- }
-
- virtual void
- names_post (Type&)
- {
- cout << "}";
- }
-
- virtual void
- post (Type&)
- {
- cout << ";";
- }
-
- virtual void
- comma (Type&)
- {
- cout << ", ";
- }
- };
-
- struct UnconstrainedInterface : Traversal::UnconstrainedInterface
- {
- virtual void
- pre (Type&)
- {
- cout << "interface ";
- }
-
- virtual void
- name (Type& i)
- {
- cout << i.name ();
- }
-
- virtual void
- inherits_pre (Type&)
- {
- cout << " : ";
- }
-
- virtual void
- names_pre (Type&)
- {
- cout << "{";
- }
-
- virtual void
- names_post (Type&)
- {
- cout << "}";
- }
-
- virtual void
- post (Type&)
- {
- cout << ";";
- }
-
- virtual void
- comma (Type&)
- {
- cout << ", ";
- }
- };
-
-
- struct Module : Traversal::Module
- {
- virtual void
- pre (Type& m)
- {
- cout << "module " << m.name ();
- }
-
- virtual void
- names_pre (Type& m)
- {
- cout << "{";
- }
-
- virtual void
- names_post (Type& m)
- {
- cout << "}";
- }
-
- virtual void
- post (Type& m)
- {
- cout << ";";
- }
- };
-
- struct Struct : Traversal::Struct
- {
- virtual void
- pre (Type&)
- {
- cout << "struct ";
- }
-
- virtual void
- name (Type& s)
- {
- cout << s.name ();
- }
-
- virtual void
- names_pre (Type&)
- {
- cout << "{";
- }
-
- virtual void
- names_post (Type&)
- {
- cout << "}";
- }
-
- virtual void
- post (Type&)
- {
- cout << ";";
- }
- };
-
-
- struct TypeId : Traversal::TypeId
- {
- virtual void
- traverse (Type& ti)
- {
- cout << "typeid " << ti.declaration () << " " << ti.id () << ";";
- }
- };
-
-
- struct TypePrefix : Traversal::TypePrefix
- {
- virtual void
- traverse (Type& ti)
- {
- cout << "typeprefix " << ti.declaration () << " "
- << ti.prefix () << ";";
- }
- };
-
- struct TypeName : Traversal::Nameable,
- Traversal::FundamentalType
- {
- virtual void
- traverse (SemanticGraph::Nameable& n)
- {
- cout << n.scoped_name ();
- }
-
- virtual void
- traverse (SemanticGraph::FundamentalType& ft)
- {
- cout << ft.name ();
- }
- };
-
- struct UnboundedSequence : Traversal::UnboundedSequence
- {
- virtual void
- pre (Type&)
- {
- cout << "sequence<";
- }
-
- virtual void
- post (Type&)
- {
- cout << ">";
- }
- };
-
- // Layer 4
- //
-
- //--
-
- struct Operation : Traversal::Operation
- {
- virtual void
- name (Type& o)
- {
- cout << " " << o.name ();
- }
-
- virtual void
- receives_pre (Type&)
- {
- cout << " (";
- }
-
- virtual void
- receives_post (Type&)
- {
- cout << ")";
- }
-
- virtual void
- raises_pre (Type&)
- {
- cout << " raises (";
- }
-
- virtual void
- raises_post (Type&)
- {
- cout << ")";
- }
-
- virtual void
- post (Type&)
- {
- cout << ";";
- }
-
- virtual void
- comma (Type&)
- {
- cout << ", ";
- }
- };
-
- struct Attribute : Traversal::Attribute
- {
- virtual void
- pre (Type&)
- {
- cout << "attribute ";
- }
-
- virtual void
- name (Type& a)
- {
- cout << " " << a.name ();
- }
-
- virtual void
- post (Type&)
- {
- cout << ";";
- }
-
- };
-
- struct Member : Traversal::Member
- {
- virtual void
- name (Type& m)
- {
- cout << " " << m.name ();
- }
-
- virtual void
- post (Type&)
- {
- cout << ";";
- }
- };
-
- // Layer 5
- //
-
- //--
-
- struct Parameter : Traversal::InParameter,
- Traversal::OutParameter,
- Traversal::InOutParameter
- {
- virtual void
- pre (InParameter& p)
- {
- cout << " in ";
- }
-
- virtual void
- pre (OutParameter& p)
- {
- cout << " out ";
- }
-
- virtual void
- pre (InOutParameter& p)
- {
- cout << " inout ";
- }
-
- virtual void
- name (InParameter& p)
- {
- cout << p.name ();
- }
-
- virtual void
- name (OutParameter& p)
- {
- cout << p.name ();
- }
-
- virtual void
- name (InOutParameter& p)
- {
- cout << p.name ();
- }
- };
-
- public:
-
- GeneratorImpl ()
- {
- // Layer 1
- //
- unit.edge_traverser (contains_principal);
-
- //--
-
- contains_principal.node_traverser (region);
-
- // Layer 2
- //
- region.edge_traverser (quote_includes);
- region.edge_traverser (bracket_includes);
- region.edge_traverser (contains_root);
-
- //--
-
- contains_root.node_traverser (root);
-
- // Layer 3
- //
- root.edge_traverser (mentions);
- root.edge_traverser (defines);
- root.edge_traverser (aliases);
-
- //--
-
- mentions.node_traverser (abstract_interface_fwd);
- mentions.node_traverser (local_interface_fwd);
- mentions.node_traverser (unconstrained_interface_fwd);
- mentions.node_traverser (struct_fwd);
-
- defines.node_traverser (abstract_interface);
- defines.node_traverser (local_interface);
- defines.node_traverser (unconstrained_interface);
- defines.node_traverser (module);
- defines.node_traverser (struct_);
- defines.node_traverser (type_id);
- defines.node_traverser (type_prefix);
-
- aliases.node_traverser (type_name);
- aliases.node_traverser (unbounded_sequence);
-
- // Layer 4
- //
- module.edge_traverser (mentions);
- module.edge_traverser (defines);
- module.edge_traverser (aliases);
-
- abstract_interface.edge_traverser (inherits);
- local_interface.edge_traverser (inherits);
- unconstrained_interface.edge_traverser (inherits);
-
- abstract_interface.edge_traverser (interface_defines);
- local_interface.edge_traverser (interface_defines);
- unconstrained_interface.edge_traverser (interface_defines);
-
- struct_.edge_traverser (struct_defines);
-
- unbounded_sequence.edge_traverser (specialized);
-
- //--
-
- inherits.node_traverser (type_name);
-
- interface_defines.node_traverser (operation);
- interface_defines.node_traverser (attribute);
-
- struct_defines.node_traverser (member);
-
- specialized.node_traverser (type_name);
-
- // Layer 5
- //
-
- operation.edge_traverser (receives);
- operation.edge_traverser (returns);
-
- attribute.edge_traverser (belongs);
-
- member.edge_traverser (belongs);
-
- //--
-
- receives.node_traverser (parameter);
- returns.node_traverser (type_name);
- belongs.node_traverser (type_name);
-
- // Layer 6
- //
- parameter.edge_traverser (belongs);
-
- }
-
- protected:
- Traversal::TranslationUnit unit;
-
- // Layer 1
- //
- Traversal::ContainsPrincipal contains_principal;
-
- //--
-
- Traversal::TranslationRegion region;
-
- // Layer 2
- //
- BracketIncludes bracket_includes;
- QuoteIncludes quote_includes;
- Traversal::ContainsRoot contains_root;
-
- //--
-
- Traversal::Root root;
-
- // Layer 3
- //
- Traversal::Mentions mentions;
- Traversal::Defines defines;
- Aliases aliases;
-
- //--
-
- AbstractInterfaceFwd abstract_interface_fwd;
- LocalInterfaceFwd local_interface_fwd;
- UnconstrainedInterfaceFwd unconstrained_interface_fwd;
-
- StructFwd struct_fwd;
-
- AbstractInterface abstract_interface;
- LocalInterface local_interface;
- UnconstrainedInterface unconstrained_interface;
-
- Module module;
-
- Struct struct_;
-
- TypeId type_id;
- TypePrefix type_prefix;
-
- TypeName type_name;
-
- UnboundedSequence unbounded_sequence;
-
- // Layer 4
- //
- Traversal::Inherits inherits;
- Traversal::Defines interface_defines;
- Traversal::Defines struct_defines;
- Traversal::Specialized specialized;
-
- //--
-
- Operation operation;
- Attribute attribute;
- Member member;
-
- // Layer 5
- //
- Traversal::Receives receives;
- Traversal::Returns returns;
- Traversal::Belongs belongs;
-
- //--
-
- Parameter parameter;
-
- // Layer 6
- //
-
- public:
- void
- generate (CCF::IDL2::SemanticGraph::TranslationUnit& tu)
- {
- // Plug automatic IDL indenter.
- //
- Indentation::Implanter<Indentation::IDL> guard (cout);
-
- unit.traverse (tu);
- }
- };
-}
-
-#endif // TEST_IDL2_TRAVERSAL_RECREATE_GENERATOR_IMPL_HPP
diff --git a/CIAO/CCF/Test/IDL2/Traversal/Recreate/recreate.cpp b/CIAO/CCF/Test/IDL2/Traversal/Recreate/recreate.cpp
deleted file mode 100644
index 560040bbcb0..00000000000
--- a/CIAO/CCF/Test/IDL2/Traversal/Recreate/recreate.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// file : Test/IDL2/Traversal/Recreate/recreate.cpp
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-#include <iostream>
-
-#include "CCF/IDL2/SemanticGraph.hpp"
-
-#include "../../SemanticGraph/HandBuilt/Builder.hpp"
-
-#include "Generator.hpp"
-
-int
-main ()
-{
- Builder b;
- CCF::IDL2::SemanticGraph::TranslationUnit& tu (*b.build ());
-
- IDL2::Generator g;
-
- g.generate (tu);
-
- delete &tu;
-}