The compiler class. This holds an llvm context and set of compiler options, and constructs executable objects (e.g. PointExecutable or VolumeExecutable) from a syntax tree or snippet of code.  
 More...
#include <openvdb_ax/compiler/Compiler.h>
The compiler class. This holds an llvm context and set of compiler options, and constructs executable objects (e.g. PointExecutable or VolumeExecutable) from a syntax tree or snippet of code. 
◆ Ptr
◆ UniquePtr
◆ Compiler()
Construct a compiler object with given settings. 
- Parameters
- 
  
  
 
 
◆ ~Compiler()
◆ compile() [1/4]
template<typename ExecutableT> 
 
Compile a given AST into an executable object of the given type. 
- Parameters
- 
  
    | syntaxTree | An abstract syntax tree to compile |  | data | Optional external/custom data which is to be referenced by the executable object. It allows one to reference data held elsewhere, such as inside of a DCC, from inside the AX code |  
 
- Note
- Any errors encountered are collected into a single runtime error 
 
 
◆ compile() [2/4]
template<typename ExecutableT> 
      
 
Compile a given AST into an executable object of the given type. 
- Parameters
- 
  
    | syntaxTree | An abstract syntax tree to compile |  | logger | Logger for errors and warnings during compilation, this should be linked to an ast::Tree and populated with AST node + line number mappings for this Tree, e.g. during ast::parse(). This Tree can be different from the syntaxTree argument. |  | data | Optional external/custom data which is to be referenced by the executable object. It allows one to reference data held elsewhere, such as inside of a DCC, from inside the AX code |  
 
- Note
- If the logger has not been populated with AST node and line mappings, all messages will appear without valid line and column numbers. 
 
 
◆ compile() [3/4]
template<typename ExecutableT> 
 
Compile a given snippet of AX code into an executable object of the given type. 
- Parameters
- 
  
    | code | A string of AX code |  | data | Optional external/custom data which is to be referenced by the executable object. It allows one to reference data held elsewhere, such as inside of a DCC, from inside the AX code |  
 
- Note
- Parser errors are handled separately from compiler errors. Each are collected and produce runtime errors. 
 
 
◆ compile() [4/4]
template<typename ExecutableT> 
 
Compile a given snippet of AX code into an executable object of the given type. 
- Parameters
- 
  
    | code | A string of AX code |  | logger | Logger for errors and warnings during compilation, will be cleared of existing data |  | data | Optional external/custom data which is to be referenced by the executable object. It allows one to reference data held elsewhere, such as inside of a DCC, from inside the AX code |  
 
- Note
- If compilation is unsuccessful, will return nullptr. Logger can then be queried for errors. 
 
 
◆ create()
Static method for creating Compiler objects. 
 
 
◆ setFunctionRegistry()
Sets the compiler's function registry object. 
- Parameters
- 
  
    | functionRegistry | A unique pointer to a FunctionRegistry object. The compiler will take ownership of the registry that was passed in. |