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 <Compiler.h>
|
| Compiler (const CompilerOptions &options=CompilerOptions()) |
| Construct a compiler object with given settings. More...
|
|
| ~Compiler ()=default |
|
template<typename ExecutableT > |
ExecutableT::Ptr | compile (const ast::Tree &syntaxTree, Logger &logger, const CustomData::Ptr data=CustomData::Ptr()) |
| Compile a given AST into an executable object of the given type. More...
|
|
template<typename ExecutableT > |
ExecutableT::Ptr | compile (const std::string &code, Logger &logger, const CustomData::Ptr data=CustomData::Ptr()) |
| Compile a given snippet of AX code into an executable object of the given type. More...
|
|
template<typename ExecutableT > |
ExecutableT::Ptr | compile (const std::string &code, const CustomData::Ptr data=CustomData::Ptr()) |
| Compile a given snippet of AX code into an executable object of the given type. More...
|
|
template<typename ExecutableT > |
ExecutableT::Ptr | compile (const ast::Tree &syntaxTree, const CustomData::Ptr data=CustomData::Ptr()) |
| Compile a given AST into an executable object of the given type. More...
|
|
void | setFunctionRegistry (std::unique_ptr< codegen::FunctionRegistry > &&functionRegistry) |
| Sets the compiler's function registry object. More...
|
|
template<typename ExecutableT > |
OPENVDB_DEPRECATED ExecutableT::Ptr | compile (const ast::Tree &syntaxTree, const CustomData::Ptr data, std::vector< std::string > *warnings) |
| deprecated methods More...
|
|
template<typename ExecutableT > |
OPENVDB_DEPRECATED ExecutableT::Ptr | compile (const std::string &code, const CustomData::Ptr data, std::vector< std::string > *warnings) |
|
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/6]
◆ compile() [2/6]
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() [3/6]
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() [4/6]
◆ compile() [5/6]
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() [6/6]
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. |
The documentation for this class was generated from the following file: