MADARA  3.4.1
CompiledExpression.h
Go to the documentation of this file.
1 #ifndef _MADARA_COMPILED_EXPRESSION_H_
2 #define _MADARA_COMPILED_EXPRESSION_H_
3 
4 #ifndef _MADARA_NO_KARL_
5 
14 #include <string>
15 #include "madara/MadaraExport.h"
17 
18 namespace madara
19 {
20 namespace expression
21 {
22 class SystemCallEval;
23 }
24 namespace knowledge
25 {
26 class ThreadSafeContext;
27 class KnolwedgeBaseImpl;
28 class Variables;
29 class KnowledgeBase;
30 class Function;
31 
36 class MADARA_EXPORT CompiledExpression
37 {
38 public:
39  // class KnowledgeBaseImpl;
40  friend class ThreadSafeContext;
41  friend class KnowledgeBaseImpl;
42  friend class Variables;
43  friend class KnowledgeBase;
45  friend class Function;
46 
51 
57 
62 
67  void operator=(const CompiledExpression& ce);
68 
72  expression::ComponentNode* get_root(void);
73 
74 private:
77 
80 };
81 }
82 }
83 
84 #endif // _MADARA_NO_KARL_
85 
86 #endif // _MADARA_COMPILED_EXPRESSION_H_
An abstract base class defines a simple abstract implementation of an expression tree node.
Definition: ComponentNode.h:37
Encapsulates a MADARA KaRL expression into an evaluatable tree.
Evaluates a knowledge::KnowledgeRecord and returns the evaluation result.
Compiled, optimized KaRL logic.
std::string logic
the logic that was compiled
madara::expression::ExpressionTree expression
the expression tree
This class stores a function definition.
Definition: Functions.h:46
This class provides a distributed knowledge base implementation.
This class provides a distributed knowledge base to users.
Definition: KnowledgeBase.h:45
This class stores variables and their values for use by any entity needing state information in a thr...
Provides an interface for external functions into the MADARA KaRL variable settings.
Definition: Variables.h:53
constexpr string_t string
Provides functions and classes for the distributed knowledge base.
Copyright(c) 2020 Galois.