Om
default_incomplete_operation.hpp
Go to the documentation of this file.
1 
15 #ifndef Om_Language_Operation_DefaultIncompleteOperation_
16 
17  #define Om_Language_Operation_DefaultIncompleteOperation_ \
18  Om::Language::Operation::DefaultIncompleteOperation
19 
21 
22 namespace Om {
23 
24  namespace Language {
25 
27  class Operator;
29 
30  namespace Operation {
31 
32  // MARK: - Om::Language::Operation::DefaultIncompleteOperation
33 
38  template <typename ThisImplementation>
40  public IncompleteOperation {
41 
42  public: // MARK: public (static)
43 
44  static Operator const & GetOperator();
45 
46  static void Give(Evaluation &);
47 
48  public: // MARK: public (non-static)
49 
50  virtual ~DefaultIncompleteOperation() = 0;
51 
52  virtual void GiveElements(Consumer &);
53 
54  virtual void GiveElements(Consumer &) const;
55 
56  virtual bool ParseQuotedElements(
57  Evaluation &,
58  Reader &
59  );
60 
67  virtual bool TakeElement(
68  Evaluation &,
69  Operand &
70  );
71 
76  virtual bool TakeElement(
77  Evaluation &,
78  Operand const &
79  );
80 
81  virtual bool TakeQuotedElements(
82  Evaluation &,
83  Producer &
84  );
85 
86  virtual bool TakeQuotedElements(
87  Evaluation &,
88  Producer const &
89  );
90 
91  };
92 
93  }
94 
95  }
96 
97 }
98 
100 
101 #endif
virtual bool TakeQuotedElements(Evaluation &, Producer &)
Constructs and takes an Operand, which takes each Element from the argument.
The Om library.
Definition: code_point.hpp:26
virtual bool ParseQuotedElements(Evaluation &, Reader &)
virtual void GiveElements(Consumer &)
Gives the contents.
virtual bool TakeElement(Evaluation &, Operand &)
Takes the Operand and gives the result to the Evaluation.
An Element taker; takes at the back.
Definition: consumer.hpp:42
Produces each CodePoint until the end of the Source.
Definition: reader.hpp:33
The current evaluation.
Definition: evaluation.hpp:42
An Operation that has yet to consume one or more Operands and must live in memory until complete.
A partial implementation of IncompleteOperation.
The Operand implementation.
Definition: operand.hpp:55
The Operator implementation.
Definition: operator.hpp:59
An Element giver; gives from the front.
Definition: producer.hpp:40