Vuo  0.8.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | List of all members
VuoCompilerGenericType Class Reference

Description

The compiler detail class for VuoGenericType.

This class associates a generic type with a "backing type" — a non-generic type to be substituted in for the generic type when compiling/linking a node class or composition.

Public Member Functions

string getBackingTypeName (void)
 Returns the non-generic type to use for compiling/linking a node class or composition with this generic type.
 
- Public Member Functions inherited from VuoCompilerType
Value * generateValueFromStringFunctionCall (Module *module, BasicBlock *block, Value *arg)
 Generates a call to [Type]_valueFromString().
 
Value * generateStringFromValueFunctionCall (Module *module, BasicBlock *block, Value *arg)
 Generates a call to [Type]_stringFromValue().
 
Value * generateInterprocessStringFromValueFunctionCall (Module *module, BasicBlock *block, Value *arg)
 Generates a call to [Type]_interprocessStringFromValue().
 
Value * generateSummaryFromValueFunctionCall (Module *module, BasicBlock *block, Value *arg)
 Generates a call to [Type]_summaryFromValue().
 
Type * getType (void)
 Returns the LLVM type for this Vuo type.
 
Type * getFunctionParameterType (Type **secondType)
 Returns the LLVM type for this Vuo type when it appears as a function parameter.
 
Attributes getFunctionParameterAttributes (void)
 Returns the LLVM attributes for this Vuo type when it appears as a function parameter.
 
- Public Member Functions inherited from VuoBaseDetail< VuoType >
 VuoBaseDetail (string description, VuoType *base)
 Creates a VuoType detail class.
 
VuoTypegetBase (void) const
 Returns the VuoType detail class instance's base class instance.
 
void setBase (VuoType *base)
 Sets the VuoType detail class instance's base class instance.
 
- Public Member Functions inherited from VuoCompilerModule
VuoCompilerTargetSet parseTargetSet (json_object *o, string key)
 Parses the target set value for key in the top level of the JSON object.
 
VuoCompilerTargetSet::MacVersion parseMacVersion (string version)
 Parses a Mac OS version from a string.
 
vector< string > getDependencies (void)
 Returns a list of this VuoCompilerModule's dependencies.
 
VuoCompilerTargetSet getCompatibleTargets (void)
 Returns the set of targets (operating system versions) with which this module is compatible.
 
Module * getModule (void)
 Returns this VuoCompilerModule's LLVM module, which other LLVM modules can link to.
 
VuoModulegetPseudoBase (void)
 Returns the (psuedo) base for this (psuedo) compiler detail class.
 
bool getPremium (void)
 Returns a boolean indicating whether this module contains premium content.
 
void setPremium (bool premium)
 Sets the boolean indicating whether this module contains premium content.
 

Static Public Member Functions

static VuoCompilerGenericTypenewGenericType (VuoGenericType *baseType, map< string, VuoCompilerType * > types)
 Creates a VuoCompilerGenericType and makes it the compiler detail object for baseType.
 
static VuoCompilerGenericTypenewGenericType (VuoGenericType *baseType, VuoCompiler *compiler)
 Creates a VuoCompilerGenericType and makes it the compiler detail object for baseType.
 
static string chooseBackingTypeName (string genericTypeName, set< string > compatibleTypeNames)
 Returns the name of a non-generic type to use for compiling/linking a node class or composition with the given generic type.
 
- Static Public Member Functions inherited from VuoCompilerType
static VuoCompilerTypenewType (string typeName, Module *module)
 Creates a type from the type definition in the module.
 
static bool isListType (VuoCompilerType *type)
 Returns true if the type is a list type.
 
- Static Public Member Functions inherited from VuoCompilerModule
static VuoCompilerModulenewModule (string moduleKey, Module *module)
 Instantiates a VuoCompilerModule (or child class) corresponding to the type of VuoCompilerModule defined in the LLVM module.
 
static Function * declareFunctionInModule (Module *module, Function *function)
 Copies the function's header into the LLVM module, if it's not already there.
 

Additional Inherited Members

- Protected Member Functions inherited from VuoCompilerType
 VuoCompilerType (string typeName, Module *module)
 Creates a type from an LLVM module, and creates its corresponding base VuoType.
 
- Static Protected Member Functions inherited from VuoCompilerModule
static string parseString (json_object *o, string key, bool *foundValue=NULL)
 Parses the string value for key in the top level of the JSON object.
 
static int parseInt (json_object *o, string key, bool *foundValue=NULL)
 Parses the integer value for key in the top level of the JSON object.
 
static bool parseBool (json_object *o, string key, bool *foundValue=NULL)
 Parses the boolean value for key in the top level of the JSON object.
 
static vector< string > parseArrayOfStrings (json_object *o, string key)
 Parses the array-of-strings value for key in the top level of the JSON object.
 
static string nameForGlobal (string nameBeforeCompilation, string moduleKey)
 Returns the mangled name for a function or global variable.
 
static bool hasOriginalOrMangledGlobal (string nameBeforeCompilation, Module *module, string moduleKey)
 Returns true if the module contains a function or global variable with name nameBeforeCompilation or with the corresponding mangled name.
 
- Protected Attributes inherited from VuoCompilerModule
struct json_object * moduleDetails
 This module's metadata, found in the argument to VuoModuleMetadata in the module definition.
 
vector< string > dependencies
 The dependencies found in this module's metadata.
 
Module * module
 The LLVM module that defines this node class or type.
 
VuoModulebase
 The (pseudo) base for this (pseudo) compiler detail class.
 
VuoCompilerBitcodeParserparser
 The parser of the LLVM module.
 
bool isPremium
 A boolean indicating whether this module contains premium content.
 

Member Function Documentation

string VuoCompilerGenericType::chooseBackingTypeName ( string  genericTypeName,
set< string >  compatibleTypeNames 
)
static

Returns the name of a non-generic type to use for compiling/linking a node class or composition with the given generic type.

Parameters
genericTypeNameThe generic type's name.
compatibleTypeNamesThe compatible specialized type names, as specified in a node class's "genericTypes" metadata.
See Also
VuoModuleMetadata
string VuoCompilerGenericType::getBackingTypeName ( void  )

Returns the non-generic type to use for compiling/linking a node class or composition with this generic type.

VuoCompilerGenericType * VuoCompilerGenericType::newGenericType ( VuoGenericType baseType,
map< string, VuoCompilerType * >  types 
)
static

Creates a VuoCompilerGenericType and makes it the compiler detail object for baseType.

VuoCompilerGenericType * VuoCompilerGenericType::newGenericType ( VuoGenericType baseType,
VuoCompiler compiler 
)
static

Creates a VuoCompilerGenericType and makes it the compiler detail object for baseType.


The documentation for this class was generated from the following files: