Om
equals_operation.hpp
Go to the documentation of this file.
1 
39 #ifndef Om_Language_Operation_EqualsOperation_
40 
41  #define Om_Language_Operation_EqualsOperation_ \
42  Om::Language::Operation::EqualsOperation
43 
45  #include "om/language/system.hpp"
46 
47  #define Om_Language_Operation_EqualsOperation_GetName_() \
48  "="
49 
50 namespace Om {
51 
52  namespace Language {
53 
54  namespace Operation {
55 
56  // MARK: - Om::Language::Operation::EqualsOperation
57 
63  public DefaultIncompleteOperation<EqualsOperation> {
64 
65  public: // MARK: public (static)
66 
67  static char const * GetName();
68 
69  template <typename TheEqualsOperation>
70  static void GiveElements(
71  TheEqualsOperation &,
72  Consumer &
73  );
74 
75  public: // MARK: public (non-static)
76 
78 
79  template <typename TheOperand>
81  Evaluation &,
82  TheOperand &
83  );
84 
85  template <typename TheProducer>
87  Evaluation &,
88  TheProducer &
89  );
90 
91  private: // MARK: private (non-static)
92 
93  template <typename TheProducer>
94  bool IsMatch(TheProducer &) const;
95 
101 
102  };
103 
104  namespace {
105 
106  static System::Definition<EqualsOperation> const theEqualsDefinition;
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 Operand implementation.
Definition: operand.hpp:56
A partial implementation of IncompleteOperation.
The = operation implementation.
bool TakeOperand(Evaluation &, TheOperand &)
bool TakeQuotedProducer(Evaluation &, TheProducer &)
bool IsMatch(TheProducer &) const
Operand thisOperand
The Operand to compare with.
static void GiveElements(TheEqualsOperation &, Consumer &)
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.