OpenVDB
12.1.0
|
A map of unique ids to symbol tables which can be used to represent local variables within a program. New scopes can be added and erased where necessary and iterated through using find(). Find assumes that tables are added through parented ascending ids. More...
#include <openvdb_ax/codegen/SymbolTable.h>
Public Types | |
using | MapType = std::map< size_t, SymbolTable< Value >> |
Public Member Functions | |
SymbolTableBlocks () | |
~SymbolTableBlocks ()=default | |
SymbolTable< llvm::Value * > & | globals () |
Access to the list of global variables which are always accessible. More... | |
const SymbolTable< llvm::Value * > & | globals () const |
bool | erase (const size_t index) |
Erase a given scoped indexed SymbolTable from the list of held SymbolTables. Returns true if the table previously existed. More... | |
SymbolTable< Value > * | getOrInsert (const size_t index) |
Get or insert and get a SymbolTable with a unique index. More... | |
SymbolTable< Value > * | get (const size_t index) |
Get a SymbolTable with a unique index. If it doesn't exist, nullptr is returned. More... | |
const Value * | find (const std::string &name, const size_t startIndex) const |
Find a variable within the program starting at a given table index. If the given index does not exist, the next descending index is used. More... | |
const Value * | find (const std::string &name) const |
Find a variable within the program starting at the lowest level SymbolTable. More... | |
bool | replace (const std::string &name, Value value) |
Replace the first occurrance of a variable with a given name with a replacement value. Returns true if a replacement occurred. More... | |
A map of unique ids to symbol tables which can be used to represent local variables within a program. New scopes can be added and erased where necessary and iterated through using find(). Find assumes that tables are added through parented ascending ids.
using MapType = std::map<size_t, SymbolTable<Value>> |
|
inline |
|
default |
|
inline |
Erase a given scoped indexed SymbolTable from the list of held SymbolTables. Returns true if the table previously existed.
index | The SymbolTable index to erase |
|
inline |
Find a variable within the program starting at a given table index. If the given index does not exist, the next descending index is used.
name | The variable name to find |
startIndex | The start SymbolTable index |
|
inline |
Find a variable within the program starting at the lowest level SymbolTable.
name | The variable name to find |
|
inline |
Get a SymbolTable with a unique index. If it doesn't exist, nullptr is returned.
index | The SymbolTable index |
|
inline |
Get or insert and get a SymbolTable with a unique index.
index | The SymbolTable index |
|
inline |
Access to the list of global variables which are always accessible.
|
inline |
|
inline |
Replace the first occurrance of a variable with a given name with a replacement value. Returns true if a replacement occurred.
name | The variable name to find and replace |
value | The llvm::Value to replace |