7 #if !defined(_EvalContext_h_) 8 #define _EvalContext_h_ 14 #include "SourceFile.h" 64 bool isVariableDefined(
const std::string &name);
65 uint32_t getVariableValue(
const std::string &name);
66 int_size_t getVariableSize(
const std::string &name);
67 void setVariable(
const std::string &name, uint32_t value, int_size_t size = kWordSize);
72 bool isVariableLocked(
const std::string &name);
73 void lockVariable(
const std::string &name);
74 void unlockVariable(
const std::string &name);
97 #endif // _EvalContext_h_ uint32_t m_value
Variable value.
Definition: EvalContext.h:83
std::map< std::string, variable_info_t > variable_map_t
Type to maps between the variable name and its info.
Definition: EvalContext.h:89
variable_map_t m_variables
Map of variables to their final values.
Definition: EvalContext.h:92
SourceFileManager * m_sourcesManager
Interface to source file manager.
Definition: EvalContext.h:91
Context for evaluating AST tree and expressions.
Definition: EvalContext.h:28
Definition: BootImage.h:13
Abstract base class for a source file containing executable code.
Definition: apps/elftosb/common/SourceFile.h:33
Abstract interface for a manager of source files.
Definition: EvalContext.h:34
EvalContext()
Constructor.
Definition: EvalContext.cpp:14
bool m_isLocked
Can this variable's value be changed?
Definition: EvalContext.h:85
virtual SourceFile * getDefaultSourceFile()=0
Returns the default source file, or NULL if none is set.
virtual ~EvalContext()
Destructor.
Definition: EvalContext.cpp:19
virtual bool hasSourceFile(const std::string &name)=0
Returns true if a source file with the name name exists.
int_size_t m_size
Number of bytes.
Definition: EvalContext.h:84
virtual SourceFile * getSourceFile(const std::string &name)=0
Gets the requested source file.
Information about a variable's value.
Definition: EvalContext.h:81