Om
front_push_operation.hpp
Go to the documentation of this file.
1 
15 #ifndef Om_Language_Operation_FrontPushOperation_
16 
17  #define Om_Language_Operation_FrontPushOperation_ \
18  Om::Language::Operation::FrontPushOperation
19 
21 
22 namespace Om {
23 
24  namespace Language {
25 
26  namespace Operation {
27 
28  // MARK: - Om::Language::Operation::FrontPushOperation
29 
34  template <
35  typename ThisProgram,
36  typename ThisImplementation
37  >
40  FrontPushOperation<
41  ThisProgram,
42  ThisImplementation
43  >
44  > {
45 
46  public: // MARK: public (static)
47 
48  template <typename TheFrontPushOperation>
49  static void GiveElements(
50  TheFrontPushOperation &,
51  Consumer &
52  );
53 
54  public: // MARK: public (non-static)
55 
57 
58  template <typename TheOperand>
60  Evaluation &,
61  TheOperand &
62  );
63 
64  template <typename TheProducer>
66  Evaluation &,
67  TheProducer &
68  );
69 
70  private: // MARK: private (static)
71 
72  static Operator const & GetOperator();
73 
74  private: // MARK: private (non-static)
75 
76  ThisProgram thisProgram;
77 
78  };
79 
80  }
81 
82  }
83 
84 }
85 
87 
88 #endif
An Element taker; takes at the back.
Definition: consumer.hpp:42
The current evaluation.
Definition: evaluation.hpp:42
A partial implementation of IncompleteOperation.
An Operation that joins an Operand to the front of a Program.
bool TakeQuotedProducer(Evaluation &, TheProducer &)
bool TakeOperand(Evaluation &, TheOperand &)
static void GiveElements(TheFrontPushOperation &, Consumer &)
The Operator implementation.
Definition: operator.hpp:60
The Om library.
Definition: code_point.hpp:26