Om
incomplete_operation.hpp
Go to the documentation of this file.
1 
15 #ifndef Om_Language_Operation_IncompleteOperation_
16 
17  #define Om_Language_Operation_IncompleteOperation_ \
18  Om::Language::Operation::IncompleteOperation
19 
20  #include "om/code_point.hpp"
21 
22 namespace Om {
23 
24  namespace Language {
25 
27  class Consumer;
28 
29  class Evaluation;
30 
31  class Operand;
32 
33  class Producer;
34 
35  class Reader;
37 
38  namespace Operation {
39 
40  // MARK: - Om::Language::Operation::IncompleteOperation
41 
47 
48  public: // MARK: public (non-static)
49 
50  virtual ~IncompleteOperation() = 0;
51 
58  virtual void GiveElements(Consumer &) = 0;
59 
64  virtual void GiveElements(Consumer &) const = 0;
65 
66  virtual bool ParseQuotedElements(
67  Evaluation &,
68  Reader &
69  ) = 0;
70 
79  virtual bool TakeElement(
80  Evaluation &,
81  Operand &
82  ) = 0;
83 
88  virtual bool TakeElement(
89  Evaluation &,
90  Operand const &
91  ) = 0;
92 
101  virtual bool TakeQuotedElements(
102  Evaluation &,
103  Producer &
104  ) = 0;
105 
110  virtual bool TakeQuotedElements(
111  Evaluation &,
112  Producer const &
113  ) = 0;
114 
115  protected: // MARK: protected (non-static)
116 
118 
119  private: // MARK: private (non-static)
120 
122 
124 
125  };
126 
127  }
128 
129  }
130 
131 }
132 
134 
135 #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
An Operation that has yet to consume one or more Operands and must live in memory until complete.
IncompleteOperation const & operator=(IncompleteOperation const &)
virtual void GiveElements(Consumer &) const =0
This is an overloaded member function, provided for convenience. It differs from the above function o...
virtual bool TakeQuotedElements(Evaluation &, Producer &)=0
Constructs and takes an Operand, which takes each Element from the argument.
virtual bool TakeElement(Evaluation &, Operand const &)=0
This is an overloaded member function, provided for convenience. It differs from the above function o...
virtual bool TakeElement(Evaluation &, Operand &)=0
Takes an Operand.
virtual bool ParseQuotedElements(Evaluation &, Reader &)=0
IncompleteOperation(IncompleteOperation const &)
virtual bool TakeQuotedElements(Evaluation &, Producer const &)=0
This is an overloaded member function, provided for convenience. It differs from the above function o...
virtual void GiveElements(Consumer &)=0
Gives the contents.
An Element giver; gives from the front.
Definition: producer.hpp:40
Produces each CodePoint until the end of the Source.
Definition: reader.hpp:37
Om header file.
The Om library.
Definition: code_point.hpp:26