Om
pull_operation.hpp
Go to the documentation of this file.
1 
15 #ifndef Om_Language_Operation_PullOperation_
16 
17  #define Om_Language_Operation_PullOperation_ \
18  Om::Language::Operation::PullOperation
19 
21 
22 namespace Om {
23 
24  namespace Language {
25 
26  namespace Operation {
27 
28  // MARK: - Om::Language::Operation::PullOperation
29 
34  template <
35  typename ThisProgram,
36  typename ThisImplementation
37  >
40  PullOperation<
41  ThisProgram,
42  ThisImplementation
43  >
44  > {
45 
46  public: // MARK: public (static)
47 
48  template <typename ThePullOperation>
49  static void GiveElements(
50  ThePullOperation &,
51  Consumer &
52  );
53 
54  public: // MARK: public (non-static)
55 
56  virtual bool ParseQuotedElements(
57  Evaluation &,
58  Reader &
59  );
60 
61  template <typename TheOperand>
63  Evaluation &,
64  TheOperand &
65  );
66 
67  template <typename TheProducer>
69  Evaluation &,
70  TheProducer &
71  );
72 
73  private: // MARK: private (static)
74 
75  static Operator const & GetOperator();
76 
77  };
78 
79  }
80 
81  }
82 
83 }
84 
86 
87 #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 pulls part of a Program.
static Operator const & GetOperator()
virtual bool ParseQuotedElements(Evaluation &, Reader &)
bool TakeQuotedProducer(Evaluation &, TheProducer &)
bool TakeOperand(Evaluation &, TheOperand &)
static void GiveElements(ThePullOperation &, Consumer &)
The Operator implementation.
Definition: operator.hpp:60
Produces each CodePoint until the end of the Source.
Definition: reader.hpp:37
The Om library.
Definition: code_point.hpp:26
Om source file.