Om
inject_operation.hpp
Go to the documentation of this file.
1 
31 #ifndef Om_Language_Operation_InjectOperation_
32 
33  #define Om_Language_Operation_InjectOperation_ \
34  Om::Language::Operation::InjectOperation
35 
38  #include "om/language/system.hpp"
39 
40  #define Om_Language_Operation_InjectOperation_GetName_() \
41  "inject"
42 
43 namespace Om {
44 
45  namespace Language {
46 
47  namespace Operation {
48 
49  // MARK: - Om::Language::Operation::InjectOperation
50 
56  public DefaultIncompleteOperation<InjectOperation> {
57 
58  public: // MARK: public (static)
59 
60  static char const * GetName();
61 
62  template <typename TheInjectOperation>
63  static void GiveElements(
64  TheInjectOperation &,
65  Consumer &
66  );
67 
68  public: // MARK: public (non-static)
69 
71 
72  template <typename TheOperand>
74  Evaluation &,
75  TheOperand &
76  );
77 
78  template <typename TheProducer>
80  Evaluation &,
81  TheProducer &
82  );
83 
84  private: // MARK: private (non-static)
85 
87 
93 
100  boost::optional<Evaluator> thisScope;
101 
102  };
103 
104  namespace {
105 
106  static System::Definition<InjectOperation> const theInjectDefinition;
107 
108  }
109 
110  }
111 
112  }
113 
114 }
115 
117 
118 #endif
An Element taker; takes at the back.
Definition: consumer.hpp:42
The current evaluation.
Definition: evaluation.hpp:42
The Expression Program implementation.
Definition: expression.hpp:56
A partial implementation of IncompleteOperation.
The inject operation implementation.
bool TakeOperand(Evaluation &, TheOperand &)
boost::optional< Evaluator > thisScope
The local Evaluator.
Expression thisOutput
The argument to be used as Output.
bool TakeQuotedProducer(Evaluation &, TheProducer &)
static void GiveElements(TheInjectOperation &, Consumer &)
An inserter of an Operation into the static System instance.
Definition: system.hpp:129
Om header file.
Om source file.
The Om library.
Definition: code_point.hpp:26
Om header file.