8 #ifndef ModelInitialValueSymbolResolver_H_
9 #define ModelInitialValueSymbolResolver_H_
11 #include "LoadSymbolResolverBase.h"
12 #include "LLVMIncludes.h"
13 #include "LLVMModelDataSymbols.h"
14 #include "LLVMModelSymbols.h"
28 class ModelInitialValueSymbolResolver :
public LoadSymbolResolverBase
32 ModelInitialValueSymbolResolver(llvm::Value* modelData,
33 const ModelGeneratorContext& ctx);
35 virtual ~ModelInitialValueSymbolResolver() {};
37 virtual llvm::Value* loadSymbolValue(
const std::string& symbol,
38 const llvm::ArrayRef<llvm::Value*>& args =
39 llvm::ArrayRef<llvm::Value*>());
42 llvm::Value* modelData;
46 class ModelInitialValueStoreSymbolResolver :
public StoreSymbolResolver
49 ModelInitialValueStoreSymbolResolver(llvm::Value* modelData,
50 const libsbml::Model* model,
const LLVMModelSymbols& modelSymbols,
51 const LLVMModelDataSymbols& modelDataSymbols,
52 llvm::IRBuilder<>& builder,
53 LoadSymbolResolver& resolver);
55 virtual ~ModelInitialValueStoreSymbolResolver() {};
57 virtual llvm::Value* storeSymbolValue(
const std::string& symbol,
61 llvm::Value* modelData;
62 const libsbml::Model* model;
63 const LLVMModelSymbols& modelSymbols;
64 const LLVMModelDataSymbols& modelDataSymbols;
65 llvm::IRBuilder<>& builder;
66 LoadSymbolResolver& resolver;