Om
copy_operation.hpp
Go to the documentation of this file.
1 
26 #ifndef Om_Language_Operation_CopyOperation_
27 
28  #define Om_Language_Operation_CopyOperation_ \
29  Om::Language::Operation::CopyOperation
30 
32  #include "om/language/system.hpp"
33 
34  #define Om_Language_Operation_CopyOperation_GetName_() \
35  "copy"
36 
37 namespace Om {
38 
39  namespace Language {
40 
41  namespace Operation {
42 
43  // MARK: - Om::Language::Operation::CopyOperation
44 
50  public DefaultIncompleteOperation<CopyOperation> {
51 
52  public: // MARK: public (static)
53 
54  static char const * GetName();
55 
56  template <typename TheCopyOperation>
57  static void GiveElements(
58  TheCopyOperation &,
59  Consumer &
60  );
61 
62  public: // MARK: public (non-static)
63 
64  template <typename TheOperand>
66  Evaluation &,
67  TheOperand &
68  );
69 
70  template <typename TheProducer>
72  Evaluation &,
73  TheProducer &
74  );
75 
76  };
77 
78  namespace {
79 
80  static System::Definition<CopyOperation> const theCopyDefinition;
81 
82  }
83 
84  }
85 
86  }
87 
88 }
89 
91 
92 #endif
An Element taker; takes at the back.
Definition: consumer.hpp:42
The current evaluation.
Definition: evaluation.hpp:42
The copy operation implementation.
static void GiveElements(TheCopyOperation &, Consumer &)
bool TakeOperand(Evaluation &, TheOperand &)
bool TakeQuotedProducer(Evaluation &, TheProducer &)
A partial implementation of IncompleteOperation.
An inserter of an Operation into the static System instance.
Definition: system.hpp:129
Om source file.
The Om library.
Definition: code_point.hpp:26
Om header file.