Om
program_operation.hpp
Go to the documentation of this file.
1 
15 #ifndef Om_Language_Operation_ProgramOperation_
16 
17  #define Om_Language_Operation_ProgramOperation_ \
18  Om::Language::Operation::ProgramOperation
19 
21 
22 namespace Om {
23 
24  namespace Language {
25 
26  namespace Operation {
27 
28  // MARK: - Om::Language::Operation::ProgramOperation
29 
34  template <typename ThisProgram>
37  ProgramOperation<ThisProgram>
38  > {
39 
40  public: // MARK: public (static)
41 
42  static char const * GetName();
43 
44  template <typename TheProgramOperation>
45  static void GiveElements(
46  TheProgramOperation &,
47  Consumer &
48  );
49 
50  public: // MARK: public (non-static)
51 
52  virtual bool ParseQuotedElements(
53  Evaluation &,
54  Reader &
55  );
56 
57  template <typename TheOperand>
59  Evaluation &,
60  TheOperand &
61  );
62 
63  template <typename TheProducer>
65  Evaluation &,
66  TheProducer &
67  );
68 
69  };
70 
71  }
72 
73  }
74 
75 }
76 
78 
79 #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 normalizes a Program to a specific type.
virtual bool ParseQuotedElements(Evaluation &, Reader &)
bool TakeOperand(Evaluation &, TheOperand &)
static void GiveElements(TheProgramOperation &, Consumer &)
bool TakeQuotedProducer(Evaluation &, TheProducer &)
Produces each CodePoint until the end of the Source.
Definition: reader.hpp:37
The Om library.
Definition: code_point.hpp:26
Om source file.