Om
find_operation.hpp
Go to the documentation of this file.
1 
32 #ifndef Om_Language_Operation_FindOperation_
33 
34  #define Om_Language_Operation_FindOperation_ \
35  Om::Language::Operation::FindOperation
36 
38  #include "om/language/system.hpp"
39 
40  #define Om_Language_Operation_FindOperation_GetName_() \
41  "find"
42 
43 namespace Om {
44 
45  namespace Language {
46 
48  class Lexicon;
50 
51  namespace Operation {
52 
53  // MARK: - Om::Language::Operation::FindOperation
54 
60  public DefaultIncompleteOperation<FindOperation> {
61 
62  public: // MARK: public (static)
63 
64  static char const * GetName();
65 
66  template <typename TheFindOperation>
67  static void GiveElements(
68  TheFindOperation &,
69  Consumer &
70  );
71 
72  public: // MARK: public (non-static)
73 
75 
76  template <typename TheOperand>
78  Evaluation &,
79  TheOperand &
80  );
81 
82  template <typename TheProducer>
84  Evaluation &,
85  TheProducer &
86  );
87 
88  private: // MARK: private (non-static)
89 
94  boost::optional<Operator> thisOperator;
95 
96  };
97 
98  namespace {
99 
100  static System::Definition<FindOperation> const theFindDefinition;
101 
102  }
103 
104  }
105 
106  }
107 
108 }
109 
111 
112 #endif
An Element taker; takes at the back.
Definition: consumer.hpp:42
The current evaluation.
Definition: evaluation.hpp:42
A partial implementation of IncompleteOperation.
The find operation implementation.
static void GiveElements(TheFindOperation &, Consumer &)
bool TakeOperand(Evaluation &, TheOperand &)
boost::optional< Operator > thisOperator
The Operator to find.
bool TakeQuotedProducer(Evaluation &, TheProducer &)
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.