Om
environment.hpp
Go to the documentation of this file.
1 
15 #ifndef Om_Language_Environment_
16 
17  #define Om_Language_Environment_ \
18  Om::Language::Environment
19 
21 
22 namespace Om {
23 
24  namespace Language {
25 
26  // MARK: - Om::Language::Environment
27 
32  class Environment:
33  public Translator {
34 
35  public: // MARK: public (non-static)
36 
38 
39  virtual void GiveElements(Consumer &) const;
40 
41  virtual bool IsEmpty() const;
42 
49  void Push(Translator const &);
50 
51  virtual bool Translate(
52  Evaluation &,
53  Operator const &
54  ) const;
55 
56  private: // MARK: private (static)
57 
64  typedef std::vector<Translator const *> TranslatorVector;
65 
66  private: // MARK: private (non-static)
67 
69 
70  };
71 
72  }
73 
74 }
75 
77 
78 #endif
An Element taker; takes at the back.
Definition: consumer.hpp:42
An unowned Translator collection for which lookups are done for each Translator, in reverse order,...
Definition: environment.hpp:33
virtual bool Translate(Evaluation &, Operator const &) const
Translates the Operator to an object that is then given to the Evaluation.
TranslatorVector thisTranslatorVector
Definition: environment.hpp:68
void Push(Translator const &)
Pushes an unowned Translator reference.
virtual void GiveElements(Consumer &) const
std::vector< Translator const * > TranslatorVector
A vector of non-owner Translator pointers.
Definition: environment.hpp:64
virtual bool IsEmpty() const
The current evaluation.
Definition: evaluation.hpp:42
The Operator implementation.
Definition: operator.hpp:60
An Operator lookup for use by an Evaluator.
Definition: translator.hpp:62
Om source file.
The Om library.
Definition: code_point.hpp:26
Om header file.