Om
choose_operation.hpp
Go to the documentation of this file.
1 
26 #ifndef Om_Language_Operation_ChooseOperation_
27 
28  #define Om_Language_Operation_ChooseOperation_ \
29  Om::Language::Operation::ChooseOperation
30 
32  #include "om/language/system.hpp"
33 
34  #define Om_Language_Operation_ChooseOperation_GetName_() \
35  "choose"
36 
37 namespace Om {
38 
39  namespace Language {
40 
41  namespace Operation {
42 
43  // MARK: - Om::Language::Operation::ChooseOperation
44 
50  public DefaultIncompleteOperation<ChooseOperation> {
51 
52  public: // MARK: public (static)
53 
54  static char const * GetName();
55 
56  template <typename TheChooseOperation>
57  static void GiveElements(
58  TheChooseOperation &,
59  Consumer &
60  );
61 
62  public: // MARK: public (non-static)
63 
65 
66  template <typename TheOperand>
68  Evaluation &,
69  TheOperand &
70  );
71 
72  template <typename TheProducer>
74  Evaluation &,
75  TheProducer &
76  );
77 
78  private: // MARK: private (non-static)
79 
85 
91 
97 
98  };
99 
100  namespace {
101 
102  static System::Definition<ChooseOperation> const theChooseDefinition;
103 
104  }
105 
106  }
107 
108  }
109 
110 }
111 
113 
114 #endif
Om source file.
An Element taker; takes at the back.
Definition: consumer.hpp:42
The current evaluation.
Definition: evaluation.hpp:42
The Operand implementation.
Definition: operand.hpp:56
The choose operation implementation.
bool TakeOperand(Evaluation &, TheOperand &)
static void GiveElements(TheChooseOperation &, Consumer &)
char thisOperandCount
The number of Operands received thus far.
Operand thisNonEmptyCase
The non-empty case handler.
Operand thisEmptyCase
The empty case handler.
bool TakeQuotedProducer(Evaluation &, TheProducer &)
A partial implementation of IncompleteOperation.
An inserter of an Operation into the static System instance.
Definition: system.hpp:129
The Om library.
Definition: code_point.hpp:26
Om header file.