|
chigraph
master
Systems programming language written for beginners in LLVM
|
A class holding a compound type defined in a GraphModule. More...
#include <chi/GraphStruct.hpp>
Public Member Functions | |
| GraphStruct (GraphModule &mod, std::string name) | |
| GraphType constructor; don't use this use GraphModule::newStruct. More... | |
| void | addType (DataType ty, std::string name, size_t addBefore, bool updateReferences=true) |
| Add a new type to the struct. More... | |
| Context & | context () const |
| Get the context. More... | |
| DataType | dataType () |
| Get the DataType of the struct. More... | |
| void | modifyType (size_t id, DataType newTy, std::string newName, bool updateReferences=true) |
| Change the type and name of a type. More... | |
| GraphModule & | module () const |
| Get the module. More... | |
| const std::string & | name () const |
| Get the name of the type. More... | |
| void | removeType (size_t id, bool updateReferences=true) |
| Remove a type from a struct. More... | |
| std::vector< NodeInstance * > | setName (std::string newName, bool updateReferences=true) |
| Set the name of the struct, and optionally update all references in the context. More... | |
| const std::vector< NamedDataType > & | types () const |
| Get the types the struct contains. More... | |
A class holding a compound type defined in a GraphModule.
Definition at line 18 of file GraphStruct.hpp.
| chi::GraphStruct::GraphStruct | ( | GraphModule & | mod, |
| std::string | name | ||
| ) |
GraphType constructor; don't use this use GraphModule::newStruct.
| mod | Module to add to |
| name | name of the type |
Definition at line 21 of file GraphStruct.cpp.
References name().
Here is the call graph for this function:| void chi::GraphStruct::addType | ( | DataType | ty, |
| std::string | name, | ||
| size_t | addBefore, | ||
| bool | updateReferences = true |
||
| ) |
Add a new type to the struct.
| ty | The type |
ty.vaid() | name | The name of the type |
| addBefore | The type to add the new type before. Use types().size() to add to the end |
addBefore <= types().size() | updateReferences | Should the references to make and break nodes be updated? |
Definition at line 68 of file GraphStruct.cpp.
References module(), types(), chi::ChiModule::updateLastEditTime(), and chi::DataType::valid().
Referenced by types().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Get the context.
Definition at line 26 of file GraphStruct.hpp.
Referenced by dataType(), and setName().
Here is the caller graph for this function:| DataType chi::GraphStruct::dataType | ( | ) |
Get the DataType of the struct.
Definition at line 111 of file GraphStruct.cpp.
References context(), chi::Context::findInstancesOfType(), chi::Context::llvmContext(), module(), name(), chi::GraphModule::nodeTypeFromName(), types(), and chi::DataType::valid().
Referenced by types().
Here is the call graph for this function:
Here is the caller graph for this function:| void chi::GraphStruct::modifyType | ( | size_t | id, |
| DataType | newTy, | ||
| std::string | newName, | ||
| bool | updateReferences = true |
||
| ) |
Change the type and name of a type.
| id | The ID to change |
| newTy | The new type |
| newName | The new name |
| updateReferences | Should the references to make and break nodes be updated? |
Definition at line 82 of file GraphStruct.cpp.
References module(), types(), chi::ChiModule::updateLastEditTime(), and chi::DataType::valid().
Referenced by types().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Get the module.
Definition at line 30 of file GraphStruct.hpp.
References setName().
Referenced by addType(), dataType(), modifyType(), chi::GraphModule::removeStruct(), removeType(), and setName().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Get the name of the type.
Definition at line 43 of file GraphStruct.hpp.
Referenced by dataType(), GraphStruct(), chi::GraphModule::removeStruct(), and setName().
Here is the caller graph for this function:| void chi::GraphStruct::removeType | ( | size_t | id, |
| bool | updateReferences = true |
||
| ) |
Remove a type from a struct.
| id | The ID to remove |
| updateReferences | Should the references to make and break nodes be updated? |
Definition at line 97 of file GraphStruct.cpp.
References module(), types(), and chi::ChiModule::updateLastEditTime().
Referenced by types().
Here is the call graph for this function:
Here is the caller graph for this function:| std::vector< NodeInstance * > chi::GraphStruct::setName | ( | std::string | newName, |
| bool | updateReferences = true |
||
| ) |
Set the name of the struct, and optionally update all references in the context.
| newName | The new name |
!newName.empty() | updateReferences | Should all the references in the module be updated? |
updateReferences is false Definition at line 24 of file GraphStruct.cpp.
References context(), chi::Context::findInstancesOfType(), module(), name(), chi::GraphModule::nodeTypeFromName(), and chi::ChiModule::updateLastEditTime().
Referenced by module().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Get the types the struct contains.
Definition at line 47 of file GraphStruct.hpp.
References addType(), dataType(), modifyType(), and removeType().
Referenced by addType(), dataType(), chi::graphStructToJson(), modifyType(), and removeType().
Here is the call graph for this function:
Here is the caller graph for this function: