summaryrefslogtreecommitdiff
path: root/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping')
-rw-r--r--TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp1860
-rw-r--r--TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.hpp34
-rw-r--r--TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/LocalExecutorMapping.vcproj147
-rw-r--r--TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/cidlc.cpp228
-rw-r--r--TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-0.idl21
-rw-r--r--TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-0_exec.idl.orig6
-rw-r--r--TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-1.idl23
-rw-r--r--TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-1_exec.idl.orig33
-rw-r--r--TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-2.cidl18
-rw-r--r--TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-2.idl74
-rw-r--r--TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-2_exec.idl.orig72
11 files changed, 0 insertions, 2516 deletions
diff --git a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp b/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp
deleted file mode 100644
index c87639ea62e..00000000000
--- a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp
+++ /dev/null
@@ -1,1860 +0,0 @@
-// file : CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-#include "ExecutorMappingGenerator.hpp"
-
-#include <set>
-#include <ostream>
-#include <fstream>
-
-#include "CCF/CIDL/SemanticGraph.hpp"
-#include "CCF/CIDL/Traversal.hpp"
-
-#include "CCF/CodeGenerationKit/Regex.hpp"
-#include "CCF/CodeGenerationKit/IndentationIDL.hpp"
-#include "CCF/CodeGenerationKit/IndentationImplanter.hpp"
-
-using std::string;
-using std::ostream;
-using std::endl;
-
-using namespace CCF::CIDL;
-using namespace CCF::CIDL::SemanticGraph;
-
-namespace
-{
- class Context
- {
- public:
- Context (TranslationUnit& tu)
- : tu_ (tu)
- {
- }
-
- TranslationUnit&
- tu () const
- {
- return tu_;
- }
-
- public:
- bool
- add (Home& h)
- {
- return homes_.insert (&h).second;
- }
-
- bool
- add (Component& c)
- {
- return components_.insert (&c).second;
- }
-
- bool
- add (UnconstrainedInterface& i)
- {
- return interfaces_.insert (&i).second;
- }
-
- bool
- add (Composition& c)
- {
- return compositions_.insert (&c).second;
- }
-
- public:
- bool
- find (Home& h) const
- {
- return homes_.find (&h) != homes_.end ();
- }
-
- bool
- find (Component& c) const
- {
- return components_.find (&c) != components_.end ();
- }
-
- bool
- find (UnconstrainedInterface& i) const
- {
- return interfaces_.find (&i) != interfaces_.end ();
- }
-
- bool
- find (Composition& c) const
- {
- return compositions_.find (&c) != compositions_.end ();
- }
-
- private:
- typedef std::set<Home*> Homes;
- typedef std::set<Component*> Components;
- typedef std::set<UnconstrainedInterface*> Interfaces;
- typedef std::set<Composition*> Compositions;
-
- TranslationUnit& tu_;
-
- Homes homes_;
- Components components_;
- Interfaces interfaces_;
- Compositions compositions_;
- };
-
- class Traverser
- {
- protected:
- Traverser (Context& c)
- : ctx (c)
- {
- }
-
- Context& ctx;
- };
-
- struct Collector : Traverser
- {
- protected:
- Collector (Context& c)
- : Traverser (c)
- {
- }
-
- bool
- exist (ScopedName const& name)
- {
- return !ctx.tu ().lookup (name).empty ();
- }
- };
-
- //
- //
- //
- struct ComponentCollector : Traversal::Component, Collector
- {
- ComponentCollector (Context& c)
- : Collector (c)
- {
- }
-
- virtual void
- traverse (Type& c)
- {
- SimpleName name (c.name ());
- ScopedName scope (c.scoped_name ().scope_name ());
-
- ScopedName monolith (scope, "CCM_" + name);
- ScopedName context (scope, "CCM_" + name + "_Context");
-
- // Check if mapping has already been provided.
- //
- if (exist (context) || exist (monolith)) return;
-
- if(ctx.add (c))
- {
- // Collect inherited components and provides interfaces.
- //
- Traversal::Component::traverse (c);
- }
- }
- };
-
-
- //
- //
- //
- struct HomeCollector : Traversal::Home, Collector
- {
- HomeCollector (Context& c)
- : Collector (c)
- {
- }
-
- virtual void
- traverse (Type& h)
- {
- SimpleName name (h.name ());
- ScopedName scope (h.scoped_name ().scope_name ());
-
- ScopedName main (scope, "CCM_" + name);
- ScopedName expl (scope, "CCM_" + name + "Explicit");
- ScopedName impl (scope, "CCM_" + name + "Implicit");
-
- // Check if mapping has already been provided.
- //
- if (exist (main) || exist (expl) || exist (impl)) return;
-
- if(ctx.add (h))
- {
- // Note that I don't go after components that inherited home manages
- // because it will be handled by component inheritance tree.
- //
- Traversal::Home::traverse (h);
- }
- }
- };
-
-
- //
- //
- //
- struct InterfaceCollector : Traversal::UnconstrainedInterface, Collector
- {
- InterfaceCollector (Context& c)
- : Collector (c)
- {
- }
-
- virtual void
- traverse (Type& i)
- {
- SimpleName name (i.name ());
- ScopedName scope (i.scoped_name ().scope_name ());
-
- ScopedName mapping (scope, "CCM_" + name);
-
- // Check if mapping has already been provided.
- //
- if (exist (mapping)) return;
-
- // Add to the list if it's not already there.
- //
- ctx.add (i);
- }
- };
-
- struct CompositionCollector : Traversal::Composition, Collector
- {
- CompositionCollector (Context& c)
- : Collector (c)
- {
- }
-
- virtual void
- traverse (Type& c)
- {
- // Add to the list if it's not already there.
- //
- if (ctx.add (c))
- {
- Traversal::Composition::traverse (c);
- }
- }
- };
-
- struct Emitter : Traverser
- {
- protected:
- Emitter (Context& c, ostream& os_)
- : Traverser (c), os (os_)
- {
- }
-
- protected:
- ostream& os;
- };
-
-
- //
- //
- //
- struct TypeNameEmitter : Traversal::FundamentalType,
- Traversal::Type,
- Emitter
- {
- TypeNameEmitter (Context& c, ostream& os)
- : Emitter (c, os)
- {
- }
-
- virtual void
- traverse (SemanticGraph::FundamentalType& t)
- {
- os << t.name ();
- }
-
- virtual void
- traverse (SemanticGraph::Type& t)
- {
- os << t.scoped_name ();
- }
- };
-
-
- struct NameMangler : Traversal::Nameable, Emitter
- {
- NameMangler (Context& c,
- ostream& os,
- string const& prefix,
- string const& suffix = "")
- : Emitter (c, os), prefix_ (prefix), suffix_ (suffix)
- {
- }
-
- virtual void
- traverse (Type& t)
- {
- ScopedName n (t.scoped_name ());
- os << n.scope_name () << "::" << prefix_ << n.simple_name () << suffix_;
- }
-
- private:
- string prefix_, suffix_;
- };
-
-
- //
- //
- //
- struct ComponentEmitter : Traversal::Component, Emitter
- {
- protected:
- ComponentEmitter (Context& c, ostream& os)
- : Emitter (c, os)
- {
- }
-
- virtual void
- traverse (Type& c)
- {
- if (ctx.find (c))
- {
- Component::traverse (c);
- }
- }
- };
-
- struct AttributeEmitter : Traversal::ReadAttribute,
- Traversal::ReadWriteAttribute,
- Emitter
- {
- AttributeEmitter (Context& c, ostream& os)
- : Emitter (c, os)
- {
- }
-
- // ReadAttribute
- //
- virtual void
- pre (SemanticGraph::ReadAttribute& )
- {
- os << "readonly attribute ";
- }
-
- virtual void
- name (SemanticGraph::ReadAttribute& a)
- {
- os << " " << a.name ();
- }
-
- virtual void
- post (SemanticGraph::ReadAttribute&)
- {
- os << ";";
- }
-
- // ReadWriteAttribute
- //
- virtual void
- pre (SemanticGraph::ReadWriteAttribute& )
- {
- os << "attribute ";
- }
-
- virtual void
- name (SemanticGraph::ReadWriteAttribute& a)
- {
- os << " " << a.name ();
- }
-
- virtual void
- post (SemanticGraph::ReadWriteAttribute&)
- {
- os << ";";
- }
- };
-
-
- // MonolithEmitter generates what spec calls 'Monolithic Component
- // Executor'.
- //
- struct MonolithEmitter : ComponentEmitter
- {
- MonolithEmitter (Context& c, ostream& os)
- : ComponentEmitter (c, os),
- monolith_name_emitter (c, os, "CCM_"),
- attribute (c, os),
- consumer (c, os),
- provider (c, os),
- type_name_emitter (c, os)
- {
- edge_traverser (inherits);
- edge_traverser (defines);
-
- inherits.node_traverser (monolith_name_emitter);
-
- defines.node_traverser (attribute);
- defines.node_traverser (consumer);
- defines.node_traverser (provider);
-
- attribute.edge_traverser (belongs);
- consumer.edge_traverser (belongs);
- provider.edge_traverser (provider_belongs);
-
- belongs.node_traverser (type_name_emitter);
- provider_belongs.node_traverser (monolith_name_emitter);
- }
-
- virtual void
- pre (Type&)
- {
- os << "local interface ";
- }
-
- virtual void
- name (Type& c)
- {
- os << "CCM_" << c.name ();
- }
-
- virtual void
- inherits_pre (Type&)
- {
- os << " : ";
- }
-
- virtual void
- inherits_none (Type&)
- {
- os << " : ::Components::EnterpriseComponent";
- }
-
- virtual void
- supports_pre (Type&)
- {
- os << ", ";
- }
-
- virtual void
- names_pre (Type&)
- {
- os << "{";
- }
-
- virtual void
- names_post (Type&)
- {
- os << "}";
- }
-
- virtual void
- post (Type&)
- {
- os << ";";
- }
-
- virtual void
- comma (Type&)
- {
- os << ", ";
- }
-
- private:
- struct Consumer : Traversal::ConsumerSet, Emitter
- {
- Consumer (Context& c, ostream& os)
- : Emitter (c, os)
- {
- }
-
- virtual void
- returns (Type&)
- {
- os << "void";
- }
-
- virtual void
- name (Type& c)
- {
- os << " push_" << c.name ();
- }
-
- virtual void
- receives_pre (Type&)
- {
- os << " (in ";
- }
-
- virtual void
- receives_post (Type&)
- {
- os << " e)";
- }
-
- virtual void
- post (Type&)
- {
- os << ";";
- }
- };
-
-
- struct Provider : Traversal::ProviderGet, Emitter
- {
- Provider (Context& c, ostream& os)
- : Emitter (c, os)
- {
- }
-
- virtual void
- name (Type& c)
- {
- os << " get_" << c.name ();
- }
-
- virtual void
- receives_pre (Type&)
- {
- os << " (";
- }
-
- virtual void
- receives_post (Type&)
- {
- os << ")";
- }
-
- virtual void
- post (Type&)
- {
- os << ";";
- }
- };
-
- Traversal::Inherits inherits;
- Traversal::Defines defines;
-
- NameMangler monolith_name_emitter;
-
- AttributeEmitter attribute;
- Consumer consumer;
- Provider provider;
-
- Traversal::Belongs belongs;
- Traversal::Belongs provider_belongs;
-
- TypeNameEmitter type_name_emitter;
- };
-
-
- // ContextEmitter generates component context interface.
- //
- //
- struct ContextPortEmitter : Traversal::UserGet,
- Traversal::PublisherSet,
- Traversal::EmitterSet,
- Emitter
- {
- ContextPortEmitter (Context& c, ostream& os)
- : Emitter (c, os)
- {
- }
-
-
- // User.
- //
- virtual void
- name (SemanticGraph::User& u)
- {
- os << " get_connection_" << u.name ();
- }
-
- virtual void
- receives_pre (SemanticGraph::User&)
- {
- os << " (";
- }
-
- virtual void
- receives_post (SemanticGraph::User&)
- {
- os << ")";
- }
-
- virtual void
- post (SemanticGraph::User&)
- {
- os << ";";
- }
-
-
- // Publisher.
- //
- virtual void
- returns (SemanticGraph::Publisher&)
- {
- os << "void";
- }
-
- virtual void
- name (SemanticGraph::Publisher& p)
- {
- os << " push_" << p.name ();
- }
-
- virtual void
- receives_pre (SemanticGraph::Publisher&)
- {
- os << " (in ";
- }
-
- virtual void
- receives_post (SemanticGraph::Publisher&)
- {
- os << " e)";
- }
-
- virtual void
- post (SemanticGraph::Publisher&)
- {
- os << ";";
- }
-
-
- // Emitter.
- //
- virtual void
- returns (SemanticGraph::Emitter&)
- {
- os << "void";
- }
-
- virtual void
- name (SemanticGraph::Emitter& e)
- {
- os << " push_" << e.name ();
- }
-
- virtual void
- receives_pre (SemanticGraph::Emitter&)
- {
- os << " (in ";
- }
-
- virtual void
- receives_post (SemanticGraph::Emitter&)
- {
- os << " e)";
- }
-
- virtual void
- post (SemanticGraph::Emitter&)
- {
- os << ";";
- }
- };
-
-
- struct ContextEmitter : ComponentEmitter
- {
- ContextEmitter (Context& c, ostream& os)
- : ComponentEmitter (c, os), name_emitter (c, os, "CCM_", "_Context")
- {
- edge_traverser (inherits);
- inherits.node_traverser (name_emitter);
- }
-
- virtual void
- pre (Type&)
- {
- os << "local interface ";
- }
-
- virtual void
- name (Type& c)
- {
- os << "CCM_" << c.name () << "_Context";
- }
-
- virtual void
- inherits_pre (Type&)
- {
- os << " : ";
- }
-
- virtual void
- inherits_none (Type&)
- {
- os << " : ::Components::CCMContext";
- }
-
- virtual void
- names_pre (Type&)
- {
- os << "{";
- }
-
- virtual void
- names_post (Type&)
- {
- os << "}";
- }
-
- virtual void
- post (Type&)
- {
- os << ";";
- }
-
- private:
- Traversal::Inherits inherits;
- NameMangler name_emitter;
- };
-
-
- //
- //
- //
- struct HomeEmitter : Traversal::Home, Emitter
- {
- HomeEmitter (Context& c, ostream& os)
- : Emitter (c, os)
- {
- }
-
- virtual void
- traverse (Type& h)
- {
- if (ctx.find (h))
- {
- Home::traverse (h);
- }
- }
- };
-
-
- // HomeExplicitEmitter generates home explicit interface
- //
- //
- struct ExplicitPortEmitter : AttributeEmitter,
- Traversal::Operation,
- Traversal::HomeFactory,
- Traversal::HomeFinder
- {
- ExplicitPortEmitter (Context& c, ostream& os)
- : AttributeEmitter (c, os)
- {
- }
-
- // Operation.
- //
-
- virtual void
- name (SemanticGraph::Operation& o)
- {
- os << " " << o.name ();
- }
-
- virtual void
- receives_pre (SemanticGraph::Operation&)
- {
- os << " (";
- }
-
- virtual void
- receives_post (SemanticGraph::Operation&)
- {
- os << ")";
- }
-
- virtual void
- raises_pre (SemanticGraph::Operation&)
- {
- os << " raises (";
- }
-
- virtual void
- raises_post (SemanticGraph::Operation&)
- {
- os << ")";
- }
-
- virtual void
- post (SemanticGraph::Operation&)
- {
- os << ";";
- }
-
- virtual void
- comma (SemanticGraph::Operation&)
- {
- os << ", ";
- }
-
-
- // HomeFactory.
- //
-
- virtual void
- returns (SemanticGraph::HomeFactory&)
- {
- os << "::Components::EnterpriseComponent ";
- }
-
- virtual void
- name (SemanticGraph::HomeFactory& hf)
- {
- os << " " << hf.name ();
- }
-
- virtual void
- receives_pre (SemanticGraph::HomeFactory&)
- {
- os << " (";
- }
-
- virtual void
- receives_post (SemanticGraph::HomeFactory&)
- {
- os << ")";
- }
-
- virtual void
- raises_pre (SemanticGraph::HomeFactory&)
- {
- os << " raises (";
- }
-
- virtual void
- raises_post (SemanticGraph::HomeFactory&)
- {
- os << ")";
- }
-
- virtual void
- post (SemanticGraph::HomeFactory&)
- {
- os << ";";
- }
-
- virtual void
- comma (SemanticGraph::HomeFactory&)
- {
- os << ", ";
- }
-
- // HomeFinder.
- //
-
- virtual void
- returns (SemanticGraph::HomeFinder&)
- {
- os << "::Components::EnterpriseComponent ";
- }
-
- virtual void
- name (SemanticGraph::HomeFinder& hf)
- {
- os << " " << hf.name ();
- }
-
- virtual void
- receives_pre (SemanticGraph::HomeFinder&)
- {
- os << " (";
- }
-
- virtual void
- receives_post (SemanticGraph::HomeFinder&)
- {
- os << ")";
- }
-
- virtual void
- raises_pre (SemanticGraph::HomeFinder&)
- {
- os << " raises (";
- }
-
- virtual void
- raises_post (SemanticGraph::HomeFinder&)
- {
- os << ")";
- }
-
- virtual void
- post (SemanticGraph::HomeFinder&)
- {
- os << ";";
- }
-
- virtual void
- comma (SemanticGraph::HomeFinder&)
- {
- os << ", ";
- }
- };
-
- struct ParameterEmitter : Traversal::InParameter,
- Traversal::OutParameter,
- Traversal::InOutParameter,
- public Emitter
- {
- ParameterEmitter (Context& c, ostream& os)
- : Emitter (c, os)
- {
- }
-
- virtual void
- pre (InParameter& p)
- {
- os << "in ";
- }
-
- virtual void
- pre (OutParameter& p)
- {
- os << "out ";
- }
-
- virtual void
- pre (InOutParameter& p)
- {
- os << "inout ";
- }
-
- virtual void
- name (InParameter& p)
- {
- os << " " << p.name ();
- }
-
- virtual void
- name (OutParameter& p)
- {
- os << " " << p.name ();
- }
-
- virtual void
- name (InOutParameter& p)
- {
- os << " " << p.name ();
- }
- };
-
- struct HomeExplicitEmitter : HomeEmitter
- {
- HomeExplicitEmitter (Context& c, ostream& os)
- : HomeEmitter (c, os), name_emitter (c, os, "CCM_", "Explicit")
- {
- edge_traverser (inherits);
- inherits.node_traverser (name_emitter);
- }
-
- virtual void
- pre (Type&)
- {
- os << "local interface ";
- }
-
- virtual void
- name (Type& h)
- {
- os << "CCM_" << h.name () << "Explicit";
- }
-
- virtual void
- inherits_pre (Type&)
- {
- os << " : ";
- }
-
- virtual void
- inherits_none (Type&)
- {
- os << " : ::Components::HomeExecutorBase";
- }
-
- virtual void
- supports_pre (Type&)
- {
- os << ", ";
- }
-
- virtual void
- names_pre (Type&)
- {
- os << "{";
- }
-
- virtual void
- names_post (Type&)
- {
- os << "}";
- }
-
- virtual void
- post (Type&)
- {
- os << ";";
- }
-
- virtual void
- comma (Type&)
- {
- os << ", ";
- }
-
- private:
- Traversal::Inherits inherits;
- NameMangler name_emitter;
- };
-
-
- // HomeImplicitEmitter generates home implicit interface
- //
- //
- struct HomeImplicitEmitter : HomeEmitter
- {
- HomeImplicitEmitter (Context& c, ostream& os)
- : HomeEmitter (c, os)
- {
- }
-
- virtual void
- pre (Type&)
- {
- os << "local interface ";
- }
-
- virtual void
- name (Type& h)
- {
- os << "CCM_" << h.name () << "Implicit";
- }
-
- virtual void
- names (Type& h)
- {
- os<< "{"
- << "::Components::EnterpriseComponent "
- << "create () raises (::Components::CCMException);"
- << "}";
- }
-
- virtual void
- post (Type&)
- {
- os << ";";
- }
- };
-
-
- // HomeMainEmitter generates home main interface
- //
- //
- struct HomeMainEmitter : HomeEmitter
- {
- HomeMainEmitter (Context& c, ostream& os)
- : HomeEmitter (c, os)
- {
- }
-
- virtual void
- pre (Type&)
- {
- os << "local interface ";
- }
-
- virtual void
- name (Type& h)
- {
- os << "CCM_" << h.name ();
- }
-
- virtual void
- inherits (Type& h)
- {
- os << " : "
- << "CCM_" << h.name () << "Explicit, "
- << "CCM_" << h.name () << "Implicit";
- }
-
- virtual void
- names (Type&)
- {
- os << "{}";
- }
-
- virtual void
- post (Type&)
- {
- os << ";";
- }
- };
-
- //
- //
- //
- struct ModuleEmitter : Traversal::Module, Emitter
- {
- ModuleEmitter (Context& c, ostream& os)
- : Emitter (c, os)
- {
- }
-
- virtual void
- traverse (Type& m)
- {
- if (has_elements (m))
- {
- Traversal::Module::traverse (m);
- }
- }
-
- virtual void
- pre (Type&)
- {
- os << "module ";
- }
-
- virtual void
- name (Type& m)
- {
- os << m.name ();
- }
-
- virtual void
- names_pre (Type&)
- {
- os << "{";
- }
-
- virtual void
- names_post (Type&)
- {
- os << "}";
- }
-
- virtual void
- post (Type&)
- {
- os << ";";
- }
-
- private:
-
- template <typename T>
- struct Finder : T, Traverser
- {
- Finder (Context& c, bool& r)
- : Traverser (c), r_ (r)
- {
- }
-
- virtual void
- traverse (typename T::Type& t)
- {
- if (ctx.find (t)) r_ = true;
- }
-
- private:
- bool& r_;
- };
-
- bool
- has_elements (Type& m)
- {
- bool r (false);
-
- Traversal::Module module;
- Traversal::Defines defines;
-
- module.edge_traverser (defines);
-
- //@@ MSVC bug: interface is considered to be an alias for a struct.
- //
- Finder<Traversal::Composition> composition (ctx, r);
- Finder<Traversal::UnconstrainedInterface> interface_ (ctx, r);
- Finder<Traversal::Component> component (ctx, r);
- Finder<Traversal::Home> home (ctx, r);
-
- defines.node_traverser (module);
- defines.node_traverser (composition);
- defines.node_traverser (interface_);
- defines.node_traverser (component);
- defines.node_traverser (home);
-
- module.traverse (m);
-
- return r;
- }
- };
-
- //
- //
- //
- struct InterfaceEmitter : Traversal::UnconstrainedInterface, Emitter
- {
- InterfaceEmitter (Context& c, ostream& os)
- : Emitter (c, os)
- {
- }
-
- virtual void
- traverse (Type& i)
- {
- if (ctx.find (i))
- {
- Traversal::UnconstrainedInterface::traverse (i);
- }
- }
-
- virtual void
- pre (Type&)
- {
- os << "local interface ";
- }
-
- virtual void
- name (Type& i)
- {
- os << "CCM_" << i.name ();
- }
-
- virtual void
- inherits (Type& i)
- {
- os << " : " << i.name ();
- }
-
- virtual void
- names_pre (Type&)
- {
- os << "{";
- }
-
- virtual void
- names_post (Type&)
- {
- os << "}";
- }
-
- virtual void
- post (Type&)
- {
- os << ";";
- }
- };
-
-
- //
- //
- //
- struct CompositionEmitter : Traversal::Composition, Emitter
- {
- CompositionEmitter (Context& c, ostream& os)
- : Emitter (c, os)
- {
- }
-
- virtual void
- traverse (Type& c)
- {
- if (ctx.find (c))
- {
- Traversal::Composition::traverse (c);
- }
- }
-
- virtual void
- pre (Type&)
- {
- os << "module ";
- }
-
- virtual void
- name (Type& m)
- {
- os << m.name ();
- }
-
- virtual void
- names_pre (Type&)
- {
- os << "{";
- }
-
- virtual void
- names_post (Type&)
- {
- os << "}";
- }
-
- virtual void
- post (Type&)
- {
- os << ";";
- }
- };
-
-
- struct ComponentContextEmitter : Traversal::ComponentExecutor, Emitter
- {
- ComponentContextEmitter (Context& c, ostream& os)
- : Emitter (c, os),
- name_emitter_ (c, os, "CCM_", "_Context")
- {
- implements_traverser_.node_traverser (name_emitter_);
- }
-
- virtual void
- pre (Type&)
- {
- os << "local interface ";
- }
-
- virtual void
- name (Type& i)
- {
- //@@ need to check if spec prescribes this name.
- //
- os << i.name () << "_Context";
- }
-
- virtual void
- implements (Type& i)
- {
- os << " : ";
-
- Traversal::ComponentExecutor::implements (i, implements_traverser_);
-
- os << ", "
- << "::Components::SessionContext";
- }
-
- virtual void
- post (Type&)
- {
- os << "{};";
- }
-
- private:
- NameMangler name_emitter_;
- Traversal::Implements implements_traverser_;
- };
-
-
- struct ComponentExecutorEmitter : Traversal::ComponentExecutor, Emitter
- {
- ComponentExecutorEmitter (Context& c, ostream& os)
- : Emitter (c, os),
- name_emitter_ (c, os, "CCM_")
- {
- implements_traverser_.node_traverser (name_emitter_);
- }
-
- virtual void
- pre (Type&)
- {
- os << "local interface ";
- }
-
- virtual void
- name (Type& i)
- {
- os << i.name ();
- }
-
- virtual void
- implements (Type& i)
- {
- os << " : ";
-
- Traversal::ComponentExecutor::implements (i, implements_traverser_);
-
- os << ", "
- << "::Components::SessionComponent";
- }
-
- virtual void
- post (Type&)
- {
- os << "{};";
- }
-
- private:
- NameMangler name_emitter_;
- Traversal::Implements implements_traverser_;
- };
-
-
- struct HomeExecutorEmitter : Traversal::HomeExecutor, Emitter
- {
- HomeExecutorEmitter (Context& c, ostream& os)
- : Emitter (c, os),
- name_emitter_ (c, os, "CCM_")
- {
- implements_traverser_.node_traverser (name_emitter_);
- }
-
- virtual void
- pre (Type&)
- {
- os << "local interface ";
- }
-
- virtual void
- name (Type& i)
- {
- os << i.name ();
- }
-
- virtual void
- implements (Type& i)
- {
- os << " : ";
-
- Traversal::HomeExecutor::implements (i, implements_traverser_);
- }
-
- virtual void
- post (Type&)
- {
- os << "{};";
- }
-
- private:
- NameMangler name_emitter_;
- Traversal::Implements implements_traverser_;
- };
-
- //
- //
- //
- struct IncludesEmitter : Traversal::QuoteIncludes,
- Traversal::BracketIncludes,
- Emitter
- {
- IncludesEmitter (Context& c, ostream& os)
- : Emitter (c, os)
- {
- }
-
- virtual void
- traverse (SemanticGraph::QuoteIncludes& qi)
- {
- os << "#include \"" << qi.file ().string () << "\"" << endl;
- }
-
- virtual void
- traverse (SemanticGraph::BracketIncludes& bi)
- {
- os << "#include <" << bi.file ().string () << ">" << endl;
- }
- };
-}
-
-void ExecutorMappingGenerator::
-options (CL::Description& d)
-{
- d.add_option (CL::OptionDescription (
- "lem-file-suffix",
- "suffix",
- "Use provided suffix instead of default \'E\' "
- "when constructing name of local executor mapping file.",
- true));
-
- d.add_option (CL::OptionDescription (
- "lem-file-regex",
- "regex",
- "Use provided regular expression when constructing "
- "name of local executor mapping file.",
- true));
-
- d.add_option (CL::OptionDescription (
- "lem-force-all",
- "Force generation of local executor mapping for all IDL "
- "types including those not used (directly or inderectly) "
- "by compositions. This option is useful for generating a "
- "common portion of local executor mapping used by more "
- "than one component or composition.",
- true));
-}
-
-
-void ExecutorMappingGenerator::
-generate (CommandLine const& cl,
- TranslationUnit& tu,
- fs::path const& file_path)
-{
- fs::ofstream ofs;
-
- if (!file_path.empty ())
- {
- string file_name (file_path.leaf ());
-
- string suffix (cl.get_value ("lem-file-suffix", "E.idl"));
-
- string expr (cl.get_value (
- "lem-file-regex", "/(\\.(idl|cidl))?$/" + suffix + "/"));
-
- string lem_file_name (regex::perl_s (file_name, expr));
-
- fs::path lem_file_path (lem_file_name);
-
- ofs.open (lem_file_path, std::ios_base::out);
-
- if (!ofs.is_open ())
- {
- cerr << lem_file_name << ": error: unable to open in write mode"
- << endl;
- return;
- }
- }
-
- ostream& os = ofs.is_open ()
- ? static_cast<ostream&> (ofs)
- : static_cast<ostream&> (std::cout);
-
- // Set auto-indentation for os.
- //
- Indentation::Implanter<Indentation::IDL> guard (os);
-
- Context ctx (tu);
-
- if (cl.get_value ("lem-force-all", false))
- {
- Traversal::TranslationUnit unit;
-
- // Layer 1
- //
- Traversal::ContainsPrincipal contains_principal;
-
- unit.edge_traverser (contains_principal);
-
- //--
- Traversal::TranslationRegion region;
-
- contains_principal.node_traverser (region);
-
-
- // Layer 2
- //
- Traversal::ContainsRoot contains_root;
- region.edge_traverser (contains_root);
-
- //--
- Traversal::Root root;
- contains_root.node_traverser (root);
-
-
- // Layer 3
- //
- Traversal::Defines defines;
- root.edge_traverser (defines);
-
- //--
- Traversal::Module module;
- HomeCollector home (ctx);
- ComponentCollector component (ctx);
- InterfaceCollector interface_ (ctx);
-
- defines.node_traverser (module);
- defines.node_traverser (home);
- defines.node_traverser (component);
- defines.node_traverser (interface_);
-
- // Layer 4
- //
- Traversal::Defines component_defines;
- Traversal::Inherits component_inherits;
- Traversal::Inherits home_inherits;
-
- module.edge_traverser (defines);
-
- home.edge_traverser (home_inherits);
- component.edge_traverser (component_defines);
- component.edge_traverser (component_inherits);
-
- //--
-
- Traversal::Provider provider;
-
- component_defines.node_traverser (provider);
- component_inherits.node_traverser (component);
- home_inherits.node_traverser (home);
-
-
- // Layer 5
- //
- Traversal::Belongs provider_belongs;
- provider.edge_traverser (provider_belongs);
-
- //
- provider_belongs.node_traverser (interface_);
-
- // end
-
- unit.traverse (tu);
- }
- else
- {
- Traversal::TranslationUnit unit;
-
- // Layer 1
- //
- Traversal::ContainsPrincipal contains_principal;
-
- unit.edge_traverser (contains_principal);
-
- //--
- Traversal::TranslationRegion region;
-
- contains_principal.node_traverser (region);
-
-
- // Layer 2
- //
- Traversal::ContainsRoot contains_root;
- Traversal::Includes includes;
-
- region.edge_traverser (contains_root);
- region.edge_traverser (includes);
-
- //--
- Traversal::Root root;
-
- contains_root.node_traverser (root);
- includes.node_traverser (region);
-
-
- // Layer 3
- //
- Traversal::Defines defines;
- root.edge_traverser (defines);
-
- //--
- Traversal::Module module;
- CompositionCollector composition (ctx);
-
- defines.node_traverser (module);
- defines.node_traverser (composition);
-
-
- // Layer 4
- //
- Traversal::Defines composition_defines;
-
- module.edge_traverser (defines);
- composition.edge_traverser (composition_defines);
-
- //--
- Traversal::ComponentExecutor component_executor;
- Traversal::HomeExecutor home_executor;
-
- composition_defines.node_traverser (component_executor);
- composition_defines.node_traverser (home_executor);
-
- // Layer 5
- //
- Traversal::Implements component_executor_implements;
- Traversal::Implements home_executor_implements;
-
- component_executor.edge_traverser (component_executor_implements);
- home_executor.edge_traverser (home_executor_implements);
-
- //--
- ComponentCollector component (ctx);
- HomeCollector home (ctx);
-
- component_executor_implements.node_traverser (component);
- home_executor_implements.node_traverser (home);
-
-
- // Layer 6
- //
- Traversal::Defines component_defines;
- Traversal::Inherits component_inherits;
- Traversal::Inherits home_inherits;
-
- component.edge_traverser (component_defines);
- component.edge_traverser (component_inherits);
- home.edge_traverser (home_inherits);
-
- //--
-
- Traversal::Provider provider;
-
- component_defines.node_traverser (provider);
- component_inherits.node_traverser (component);
- home_inherits.node_traverser (home);
-
-
- // Layer 7
- //
- Traversal::Belongs provider_belongs;
- provider.edge_traverser (provider_belongs);
-
- //
- InterfaceCollector interface_ (ctx);
-
- provider_belongs.node_traverser (interface_);
-
-
- // end
-
- unit.traverse (tu);
- }
-
- {
- Traversal::TranslationUnit unit;
-
- // Layer 1
- //
- Traversal::ContainsPrincipal contains_principal;
-
- unit.edge_traverser (contains_principal);
-
- //--
- Traversal::TranslationRegion principal_region;
-
- contains_principal.node_traverser (principal_region);
-
-
- // Layer 2
- //
- Traversal::TranslationRegion included_region;
-
- // Inclusion handling is somewhat tricky because we want
- // to print only top-level #include's.
- //
-
- Traversal::ContainsRoot contains_root;
- Traversal::QuoteIncludes quote_includes;
- Traversal::BracketIncludes bracket_includes;
- IncludesEmitter includes_emitter (ctx, os);
-
-
- principal_region.edge_traverser (includes_emitter);
- principal_region.edge_traverser (quote_includes);
- principal_region.edge_traverser (bracket_includes);
- principal_region.edge_traverser (contains_root);
-
- included_region.edge_traverser (quote_includes);
- included_region.edge_traverser (bracket_includes);
- included_region.edge_traverser (contains_root);
-
-
- //--
- Traversal::Root root;
-
- contains_root.node_traverser (root);
- quote_includes.node_traverser (included_region);
- bracket_includes.node_traverser (included_region);
-
-
- // Layer 3
- //
- Traversal::Defines defines;
- root.edge_traverser (defines);
-
- //--
- ModuleEmitter module (ctx, os);
-
- CompositionEmitter composition (ctx, os);
-
- InterfaceEmitter interface_ (ctx, os);
-
- MonolithEmitter component_monolith (ctx, os);
- ContextEmitter component_context (ctx, os);
-
- HomeImplicitEmitter home_implicit (ctx, os);
- HomeExplicitEmitter home_explicit (ctx, os);
- HomeMainEmitter home_main (ctx, os);
-
- defines.node_traverser (module);
-
- defines.node_traverser (composition);
-
- defines.node_traverser (interface_);
-
- defines.node_traverser (component_monolith);
- defines.node_traverser (component_context);
-
- defines.node_traverser (home_implicit);
- defines.node_traverser (home_explicit);
- defines.node_traverser (home_main);
-
- // Layer 4
- //
-
- Traversal::Supports supports;
-
- Traversal::Defines composition_defines;
-
- Traversal::Defines component_context_defines;
-
- Traversal::Defines home_explicit_defines;
-
- module.edge_traverser (defines);
-
- composition.edge_traverser (composition_defines);
-
- component_monolith.edge_traverser (supports);
- component_context.edge_traverser (component_context_defines);
-
- home_explicit.edge_traverser (supports);
- home_explicit.edge_traverser (home_explicit_defines);
-
- //--
- TypeNameEmitter type (ctx, os);
-
- ComponentContextEmitter session_component_context (ctx, os);
- ComponentExecutorEmitter session_component_executor (ctx, os);
- HomeExecutorEmitter session_home_executor (ctx, os);
-
- ContextPortEmitter port_context (ctx, os);
- ExplicitPortEmitter port_explicit (ctx, os);
-
- supports.node_traverser (type);
-
- composition_defines.node_traverser (session_component_context);
- composition_defines.node_traverser (session_component_executor);
- composition_defines.node_traverser (session_home_executor);
-
- component_context_defines.node_traverser (port_context);
-
- home_explicit_defines.node_traverser (port_explicit);
-
-
- // Layer 5
- //
- Traversal::Belongs belongs;
- Traversal::Receives receives;
- Traversal::Raises raises;
-
- port_context.edge_traverser (belongs);
- port_explicit.edge_traverser (belongs);
- port_explicit.edge_traverser (raises);
-
- port_explicit.edge_traverser (receives);
-
- //--
- ParameterEmitter parameter (ctx, os);
-
- belongs.node_traverser (type);
- receives.node_traverser (parameter);
- raises.node_traverser (type);
-
- // Layer 6
- //
- parameter.edge_traverser (belongs);
-
-
- // end
-
- unit.traverse (tu);
- }
-}
diff --git a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.hpp b/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.hpp
deleted file mode 100644
index c76f56e84b9..00000000000
--- a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// file : CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.hpp
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-#ifndef EXECUTOR_MAPPING_GENERATOR_HPP
-#define EXECUTOR_MAPPING_GENERATOR_HPP
-
-#include "CCF/CompilerElements/FileSystem.hpp"
-
-#include "CCF/CodeGenerationKit/CommandLine.hpp"
-#include "CCF/CodeGenerationKit/CommandLineDescriptor.hpp"
-
-//@@ SemanticGraphFwd could be useful here.
-//
-#include "CCF/CIDL/SemanticGraph.hpp"
-
-class ExecutorMappingGenerator
-{
-public:
-
- //@@ should be static?
- void
- options (CL::Description& d);
-
- //@@ maybe I should introduce constant and non-constant
- // traversal.
- //
- void
- generate (CommandLine const& cl,
- CCF::CIDL::SemanticGraph::TranslationUnit&,
- fs::path const& file);
-};
-
-#endif // EXECUTOR_MAPPING_GENERATOR_HPP
diff --git a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/LocalExecutorMapping.vcproj b/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/LocalExecutorMapping.vcproj
deleted file mode 100644
index fd5b7e1c009..00000000000
--- a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/LocalExecutorMapping.vcproj
+++ /dev/null
@@ -1,147 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="7.10"
- Name="LocalExecutorMapping"
- ProjectGUID="{787D727E-24B5-4791-87A3-3235EAD4FEFF}"
- Keyword="Win32Proj">
- <Platforms>
- <Platform
- Name="Win32"/>
- </Platforms>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(ProjectDir)"
- IntermediateDirectory="$(ProjectDir)/Debug"
- ConfigurationType="1"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/wd4290 /wd4800 /wd4250 /wd4355"
- Optimization="0"
- AdditionalIncludeDirectories="../../.."
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
- MinimalRebuild="TRUE"
- BasicRuntimeChecks="3"
- RuntimeLibrary="5"
- DisableLanguageExtensions="FALSE"
- ForceConformanceInForLoopScope="TRUE"
- RuntimeTypeInfo="TRUE"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="4"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="CompilerElements.lib CodeGenerationKit.lib IDL2.lib IDL3.lib CIDL.lib libboost_filesystem_debug.lib libboost_regex_debug.lib"
- OutputFile="$(OutDir)/cidlc.exe"
- LinkIncremental="2"
- AdditionalLibraryDirectories="../../../CCF/CompilerElements;../../../CCF/CodeGenerationKit;../../../CCF/IDL2;../../../CCF/IDL3;../../../CCF/CIDL"
- GenerateDebugInformation="TRUE"
- ProgramDatabaseFile="$(OutDir)/LocalExecutorMapping.pdb"
- SubSystem="1"
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(ProjectDir)"
- IntermediateDirectory="$(ProjectDir)/Release"
- ConfigurationType="1"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/wd4290 /wd4800 /wd4250 /wd4355"
- AdditionalIncludeDirectories="../../.."
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
- RuntimeLibrary="4"
- DisableLanguageExtensions="FALSE"
- ForceConformanceInForLoopScope="TRUE"
- RuntimeTypeInfo="TRUE"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="3"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="CompilerElements.lib CodeGenerationKit.lib IDL2.lib IDL3.lib CIDL.lib"
- OutputFile="$(OutDir)/cidlc.exe"
- LinkIncremental="1"
- AdditionalLibraryDirectories="../../../CCF/CompilerElements;../../../CCF/CodeGenerationKit;../../../CCF/IDL2;../../../CCF/IDL3;../../../CCF/CIDL"
- GenerateDebugInformation="TRUE"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
- <File
- RelativePath=".\cidlc.cpp">
- </File>
- <File
- RelativePath=".\ExecutorMappingGenerator.cpp">
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
- <File
- RelativePath=".\ExecutorMappingGenerator.hpp">
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/cidlc.cpp b/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/cidlc.cpp
deleted file mode 100644
index 633697c0641..00000000000
--- a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/cidlc.cpp
+++ /dev/null
@@ -1,228 +0,0 @@
-// file : CCF/Example/CIDL/LocalExecutorMapping/cidlc.cpp
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-#include <vector>
-#include <iostream>
-
-#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/CodeGenerationKit/CommandLine.hpp"
-#include "CCF/CodeGenerationKit/CommandLineParser.hpp"
-#include "CCF/CodeGenerationKit/CommandLineDescriptor.hpp"
-
-#include "CCF/CIDL/LexicalAnalyzer.hpp"
-#include "CCF/CIDL/Parser.hpp"
-#include "CCF/CIDL/SemanticGraph.hpp"
-#include "CCF/CIDL/SemanticAction/Impl/Factory.hpp"
-
-#include "ExecutorMappingGenerator.hpp"
-
-using std::cerr;
-using std::endl;
-
-using namespace CCF::CompilerElements;
-using namespace CCF::CIDL;
-using namespace CCF::CIDL::SemanticGraph;
-
-int
-main (int argc, char* argv[])
-{
- try
- {
- // Parsing command line options and arguments
- //
- //
- CommandLine cl;
-
- if (!parse (argc, argv, cl))
- {
- cerr << "command line syntax error" << endl;
- cerr << "try " << argv[0] << " --help for usage information" << endl;
- return -1;
- }
-
- ExecutorMappingGenerator lem_gen;
-
- if (cl.get_value ("help", false) || cl.get_value ("help-html", false))
- {
- CL::Description d (argv[0]);
-
- lem_gen.options (d);
-
- d.add_option (CL::OptionDescription (
- "trace-semantic-actions",
- "Turn on semnatic actions tracing facility.",
- true));
-
- d.add_option (CL::OptionDescription (
- "preprocess-only",
- "Run preprocessor only and output result to stdout.",
- true));
-
- d.add_option (CL::OptionDescription (
- "help",
- "Display usage information and exit.",
- true));
-
- d.add_option (CL::OptionDescription (
- "help-html",
- "Dump usage information in html format and exit.",
- true));
-
- d.add_argument ("cidl file");
-
- if (cl.get_value ("help-html", false)) CL::print_html (cerr, d);
- else CL::print_text (cerr, d);
-
- return 0;
- }
-
- fs::ifstream ifs;
- ifs.exceptions (ios_base::badbit | ios_base::failbit);
-
- fs::path file_path;
-
- CommandLine::ArgumentsIterator i = cl.arguments_begin ();
-
- if (i != cl.arguments_end ())
- {
- try
- {
- file_path = fs::path (*i, fs::native);
- ifs.open (file_path, std::ios_base::in);
- }
- catch (fs::filesystem_error const&)
- {
- cerr << *i << ": error: unable to open in read mode" << endl;
- return -1;
- }
- catch (std::ios_base::failure const&)
- {
- cerr << *i << ": error: unable to open in read mode" << endl;
- return -1;
- }
- }
-
- //@@ for some reason ifs throws exception if I don't reset it to
- // original state. It probably has something to do with call to
- // get after eof.
- ifs.exceptions (ios_base::iostate (0));
-
- std::istream& is = ifs.is_open ()
- ? static_cast<std::istream&> (ifs)
- : static_cast<std::istream&> (std::cin);
-
- InputStreamAdapter isa (is);
- CPP::Preprocessor pp (isa);
-
- if (cl.get_value ("preprocess-only", false))
- {
- while (true)
- {
- CPP::Token t (pp.next ());
-
- if (t == CPP::Token::eos) break;
-
- std::cout << t;
- }
- return 0;
- }
-
- //}
-
- Diagnostic::Stream dout;
-
- LexicalAnalyzer lexer (pp);
-
- TokenList token_stream;
-
- //@@ bad token comparison
- for (TokenPtr token = lexer.next ();; token = lexer.next ())
- {
- //cerr << token << endl;
- 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;
-
- // Initialize compilation context.
- //
- CCF::CompilerElements::Context context;
- context.set ("file-path", file_path);
- context.set ("trace-semantic-action",
- cl.get_value ("trace-semantic-actions", false));
-
-
- // Extract include search paths.
- //
-
- std::vector<fs::path> include_paths;
-
- for (CommandLine::OptionsIterator
- i (cl.options_begin ()), e (cl.options_end ()); i != e; ++i)
- {
- if (i->name () == "I")
- {
- include_paths.push_back (fs::path (i->value (), fs::native));
- }
- else if (i->name ()[0] == 'I')
- {
- std::string opt (i->name ());
- std::string path (opt.begin () + 1, opt.end ());
- include_paths.push_back (fs::path (path, fs::native));
- }
- }
-
- context.set ("include-search-paths", include_paths);
-
- // Instantiate semantic actions factory.
- //
- SemanticAction::Impl::Factory actions (context, dout, tu);
-
- Parser parser (context, dout, lexer, actions);
-
- //@@ should be able to use CIDL here. Or better yet get rid of this
- // function completely.
- //
- CCF::IDL2::Parsing::parse (token_stream.begin (),
- token_stream.end (),
- parser.start ());
-
- if (dout.error_count () != 0) return -1;
-
-
- // Generate executor mapping.
- //
- lem_gen.generate (cl, tu, file_path);
-
- }
- catch (std::bad_cast const&)
- {
- cerr << "bad cast exception" << endl;
- }
- catch (InvalidName const&)
- {
- cerr << "invalid name exception" << endl;
- }
- catch (std::exception const& e)
- {
- cerr << "caught standard exception " << e.what () << endl;
- }
- catch (...)
- {
- cerr << "caught unknown exception" << endl;
- return -1;
- }
-}
diff --git a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-0.idl b/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-0.idl
deleted file mode 100644
index cba2229b654..00000000000
--- a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-0.idl
+++ /dev/null
@@ -1,21 +0,0 @@
-// file : CCF/Example/CIDL/LocalExecutorMapping/test-0.idl
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-module Empty
-{
- interface I
- {
- };
-};
-
-module M
-{
- interface I {};
-
- typedef I Internal;
-
- //local interface CCM_I : I {};
-};
-
-eventtype E {};
diff --git a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-0_exec.idl.orig b/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-0_exec.idl.orig
deleted file mode 100644
index 2fd8758f67e..00000000000
--- a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-0_exec.idl.orig
+++ /dev/null
@@ -1,6 +0,0 @@
-module M
-{
- local interface CCM_I : I
- {
- };
-};
diff --git a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-1.idl b/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-1.idl
deleted file mode 100644
index 2140367480c..00000000000
--- a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-1.idl
+++ /dev/null
@@ -1,23 +0,0 @@
-// file : CCF/Example/CIDL/LocalExecutorMapping/test-1.idl
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-#include <Components.idl>
-#include "test-0.idl"
-
-module M1
-{
- interface Blah;
- interface Fool {};
-
- component C1
- {
- provides M::I i;
- readonly attribute long l;
- };
-
- home H1 manages C1
- {
- attribute M::I i;
- };
-};
diff --git a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-1_exec.idl.orig b/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-1_exec.idl.orig
deleted file mode 100644
index e0a244db6eb..00000000000
--- a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-1_exec.idl.orig
+++ /dev/null
@@ -1,33 +0,0 @@
-#include <Components.idl>
-#include "test-0.idl"
-module M
-{
- local interface CCM_I : I
- {
- };
-};
-module M1
-{
- local interface CCM_Fool : Fool
- {
- };
- local interface CCM_C1 : ::Components::EnterpriseComponent
- {
- ::M::CCM_I get_i ();
- readonly attribute long l;
- };
- local interface CCM_C1_Context : ::Components::SessionContext
- {
- };
- local interface CCM_H1Implicit
- {
- ::Components::EnterpriseComponent create () raises (::Components::CCMException);
- };
- local interface CCM_H1Explicit : ::Components::HomeExecutorBase
- {
- attribute ::M::I i;
- };
- local interface CCM_H1 : CCM_H1Explicit, CCM_H1Implicit
- {
- };
-};
diff --git a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-2.cidl b/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-2.cidl
deleted file mode 100644
index 34e635a9b43..00000000000
--- a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-2.cidl
+++ /dev/null
@@ -1,18 +0,0 @@
-// file : CCF/Example/CIDL/LocalExecutorMapping/test-2.cidl
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-#include "test-2.idl"
-
-module M3
-{
- composition session Impl
- {
- home executor HImpl
- {
- implements M2::H2;
- manages CImpl;
- };
- };
-};
-
diff --git a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-2.idl b/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-2.idl
deleted file mode 100644
index 8d6ccd7ad6b..00000000000
--- a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-2.idl
+++ /dev/null
@@ -1,74 +0,0 @@
-// file : CCF/Example/CIDL/LocalExecutorMapping/test-2.idl
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-#include "test-1.idl"
-
-interface Goof {};
-
-module M2
-{
-
- interface I {};
- interface J {};
-
- eventtype E supports I, J
- {
- factory new (in string name);
- public string name;
- };
-
- valuetype V
- {
- public long l;
- };
-
- component C2 : M1::C1 supports I, J
- {
- provides Goof pg;
- uses Goof ug;
-
- publishes E pe;
- emits E me;
- consumes E ce;
- };
-
- typedef sequence<octet> OctetSeq;
-
- struct S
- {
- long l;
- OctetSeq octet_seq;
- };
-
- typedef sequence<S> S_Seq;
-
- exception Ex1
- {
- string descr;
- };
-
- exception Ex2
- {
- };
-
- home H2 : M1::H1 supports I, J manages C2
- {
- readonly attribute long rl;
- readonly attribute M::I rai;
- attribute OctetSeq seq;
- attribute S_Seq a_s_seq;
-
- void
- foo (in long l,
- inout boolean b,
- out long ol,
- in M::I i,
- out unsigned long long ull,
- inout S_Seq s_seq,
- in V v) raises (Ex1, Ex2);
-
- factory new (in long l, in OctetSeq s) raises (Ex2, Ex1);
- finder find (in long l, in OctetSeq s) raises (Ex1, Ex2);
- };
-};
diff --git a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-2_exec.idl.orig b/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-2_exec.idl.orig
deleted file mode 100644
index 3719ecd82d2..00000000000
--- a/TAO/CIAO/CCF/Example/CIDL/LocalExecutorMapping/test-2_exec.idl.orig
+++ /dev/null
@@ -1,72 +0,0 @@
-#include "test-2.idl"
-module M
-{
- local interface CCM_I : I
- {
- };
-};
-module M1
-{
- local interface CCM_C1 : ::Components::EnterpriseComponent
- {
- ::M::CCM_I get_i ();
- readonly attribute long l;
- };
- local interface CCM_C1_Context : ::Components::SessionContext
- {
- };
- local interface CCM_H1Implicit
- {
- ::Components::EnterpriseComponent create () raises (::Components::CCMException);
- };
- local interface CCM_H1Explicit : ::Components::HomeExecutorBase
- {
- attribute ::M::I i;
- };
- local interface CCM_H1 : CCM_H1Explicit, CCM_H1Implicit
- {
- };
-};
-local interface CCM_Goof : Goof
-{
-};
-module M2
-{
- local interface CCM_C2 : ::M1::CCM_C1, ::M2::I, ::M2::J
- {
- ::CCM_Goof get_pg ();
- void push_ce (in ::M2::E e);
- };
- local interface CCM_C2_Context : ::M1::CCM_C1_Context
- {
- ::Goof get_connection_ug ();
- void push_pe (in ::M2::E e);
- void push_me (in ::M2::E e);
- };
- local interface CCM_H2Implicit
- {
- ::Components::EnterpriseComponent create () raises (::Components::CCMException);
- };
- local interface CCM_H2Explicit : ::M1::CCM_H1Explicit, ::M2::I, ::M2::J
- {
- readonly attribute long rl;
- readonly attribute ::M::I rai;
- attribute ::M2::OctetSeq seq;
- attribute ::M2::S_Seq a_s_seq;
- void foo (in long l, inout boolean b, out long ol, in ::M::I i, out unsigned long long ull, inout ::M2::S_Seq s_seq, in ::M2::V v) raises (::M2::Ex1, ::M2::Ex2);
- ::Components::EnterpriseComponent new (in long l, in ::M2::OctetSeq s) raises (::M2::Ex2, ::M2::Ex1);
- ::Components::EnterpriseComponent find (in long l, in ::M2::OctetSeq s) raises (::M2::Ex1, ::M2::Ex2);
- };
- local interface CCM_H2 : CCM_H2Explicit, CCM_H2Implicit
- {
- };
-};
-module M3
-{
- module Impl
- {
- local interface CImplContext
- {
- };
- };
-};