EpicGames.UHT
Return the singleton name for an object
The object in question.
If true, return the registered singleton name. Otherwise return the unregistered.
Singleton name or "nullptr" if Object is null
Return the external declaration for an object
The object in question.
If true, return the registered external declaration. Otherwise return the unregistered.
External declaration
Return the external declaration for an object
The object in question.
If true, return the registered external declaration. Otherwise return the unregistered.
External declaration
Return a module's sorted header file list of all header files that or referenced or have declarations.
The module in question
Sorted list of the header files
Determines whether the glue version of the specified native function should be exported.
The function to check
True if the glue version of the function should be exported.
Type of constructor on the class regardless of explicit or generated.
Return the type of constructor the class will have regardless of if one has been explicitly
declared or will be generated.
Class in question
Constructor type
A list of sparse data structs that should export accessors for this class.
This list excludes anything that has already been exported by the super class.
Class in question
Enumeration of structs
Collection of all registrations for a specific package
Construct an instance of this generator object
The base code generator
Header file being generated
For a given UE header file, generated the generated H file
Requesting factory
Collection of string builder extensions used to generate the cpp files for individual headers.
Append the parameter names for a function
Destination builder
Function in question
Destination builder
Construct an instance of this generator object
The base code generator
Header file being generated
For a given UE header file, generated the generated H file
Requesting factory
Generates standard constructor declarations
Output builder
Class being exported
API text to be used
Output builder
Generates enhanced constructor declaration.
Output builder
Class being exported
API text to be used
Output builder
Generates vtable helper caller and eventual constructor body.
Output builder
Class being exported
API text to be used
Output builder
Generates private copy-constructor declaration.
Output builder
Class being exported
Output builder
Generates a destructor
Output builder
Class being exported
API text to be used
Output builder
Generates private copy-constructor declaration.
Output builder
Class being exported
API text to be used
Output builder
Generates constructor call definition
Output builder
Class being exported
Output builder
Generates generated body code for classes
Output builder
Class being exported
API text to be used
Output builder
Generates standard generated body code for interfaces and non-interfaces
Output builder
Class being exported
API text to be used
Output builder
Appends the class flags in the form of CLASS_Something|CLASS_Something which represents all class flags that are set
for the specified class which need to be exported as part of the DECLARE_CLASS macro
Output builder
Class in question
Output builder
Appends preprocessor string to emit GENERATED_U*_BODY() macro is deprecated.
Output builder
Name of the macro to deprecate
Output builder
Return the singleton name for an object
The object in question.
If true, return the registered singleton name. Otherwise return the unregistered.
Singleton name of "nullptr" if Object is null
Return the external declaration for an object
The object in question.
If true, return the registered external declaration. Otherwise return the unregistered.
External declaration
Return the external declaration for an object
The object in question.
If true, return the registered external declaration. Otherwise return the unregistered.
External declaration
Test to see if the given field is a delegate function
Field to be tested
True if the field is a delegate function
Combines two hash values to get a third.
Note - this function is not commutative.
This function cannot change for backward compatibility reasons.
You may want to choose HashCombineFast for a better in-memory hash combining function.
NOTE: This is a copy of the method in TypeHash.h
Hash to merge
Previously combined hash
Resulting hash value
Helper formatting methods
Append the meta data declaration
Destination builder
Source type containing the meta data
Context for formatting properties
Optional collection of properties to output
Name
Number of tabs to indent
Destination builder
Construct an instance of this generator object
The base code generator
Module being generated
For a given UE header file, generated the generated cpp file
Requesting factory
Sorted list of headers by name of all headers in the package
Construct an instance of this generator object
The base code generator
Module being generated
For a given UE header file, generated the generated H file
Requesting factory
Sorted list of headers by name of all headers in the module
Helper class for collection where types exist in different define scope blocks
Collection of instances
If true, there are no instances
If true, at least one instance had no scope
If all types share the same scope, then the sole scope is that scope. The value will be Invalid if the
instances have different scopes.
Collection of all scopes found in the types. If
If any instance has no scope, then None is returned. Otherwise AllScopes is returned.
Constructor with no initial instances
Constructor with initial range of types
Instances to initially add
Add an instance to the collection
Instance to be added
Add a range of instances to the collection
Collection of instances
Check to see if the given scope has instances
Scope to test
True if the scope has elements
Update the list to by ordered by the define scope
Enumerate all of the used defined scopes
Enumeration
Enumerate all of the used defined scopes
Enumeration
Defines which set of names will be used for each scope
Names match the define
Use WITH_EDITOR in place of WITH_EDITORONLY_DATA
Helper extensions when working with defined scope collections.
This class helps with producing consistent and correct code that works with the DefineScope element in UhtType.
In generated header files, it supports two flavors of macro definitions used to generate the body macro.
The multi macro style will generate one macro for each unique combination of DefineScope found. Only the instances
that match the DefineScope will be placed in that macro. The macros will be generated in such a way that they
will always be present and each much be included in the generated body macro. This style is used to generate
declarations as needed.
The single macro style will generate a single macro, but that macro will appear multiple times depending on
each combination of the DefineScope combinations required. Each macro will have a complete set of instances
filtered by the DefineScope. This style is used to populate such things as enum definitions needed by the engine.
In generated cpp files, there is support for enumerating through all the instances and emitting the appropriate
#if block to include instances based on their DefineScope.
Append a macro scoped macro
Destination builder
Which set of scope names will be used
Specified scope
Action to invoke to append an instance
String builder
Append a macro scoped macro
Destination builder
Which set of scope names will be used
Specified scope
Header code generator
Output type owning the instances
Macro being created
If true, include such things as _EOD onto the macro name
Action to invoke to append an instance
String builder
Append multi macros for the given collection of scopes
Destination builder
Defined scope instances
Which set of scope names will be used
Header code generator
Output type owning the instances
Macro being created
Action to invoke to append an instance
String builder
Append the macro definitions requested
Destination builder
Defined scope instances
Header code generator
Output type owning the instances
Macro being created
String builder
Append a single macro, where the macro -same- definition can exist inside of define scopes where
the instances contained are all instances that would be satisfied by a scope.
Destination builder
Defined scope instances
Which set of scope names will be used
Header code generator
Output type owning the instances
Macro being created
Action to invoke to append an instance
String builder
Invoke the append action if any types are present. If all types are from the same define scope, then
it will be wrapped with and #if block.
Destination builder
Defined scope instances
Names to use when outputting the scope
Action to invoke
String builder
Append each instance to the builder
Destination builder
Defined scope instances
Names to use when outputting the scope
Action to invoke
String builder
Append each instance to the builder
Destination builder
Defined scope instances
Names to use when outputting the scope
Action to invoke prior to first instance
Action to invoke
Action to invoke following all instances
String builder
Append the given array list and count as arguments to a structure constructor
Destination builder
Collected instances
Names to use when outputting the scope
Name of the statics section
The name of the arrray
Number of tabs to start the line
Text to end the line
Destination builder
Append the given array list as arguments to a structure constructor
Destination builder
Collected instances
Names to use when outputting the scope
Name of the statics section
The name of the arrray
Number of tabs to start the line
Text to end the line
Destination builder
Append the given array count as arguments to a structure constructor
Destination builder
Collected instances
Names to use when outputting the scope
Name of the statics section
The name of the arrray
Number of tabs to start the line
Text to end the line
Destination builder
Start an #if block with the given scope
String builder
Scope
Which set of scope names will be used
String builder
Start an #else block with the given scope
String builder
Scope
Which set of scope names will be used
String builder
Start an #elif block with the given scope
String builder
Scope
Which set of scope names will be used
String builder
Start an #endif block with the given scope
String builder
Scope
Which set of scope names will be used
String builder
Append scope expression (i.e. WITH_X || WITH_Y || ...)
String builder
Scope
Which set of scope names will be used
String builder
UCLASS parser
UENUM parser
AdvancedDisplay can be used in two ways:
1. 'AdvancedDisplay = "3"' - the number tells how many parameters (from beginning) should NOT BE marked
2. 'AdvancedDisplay = "AttachPointName, Location, LocationType"' - list the parameters, that should BE marked
return if given parameter should be marked as Advance View,
the function should be called only once for any parameter
return if more parameters can be marked
UFUNCTION parser
Keyword parse results
Keyword was handled
Keyword wasn't handled (more attempts will be made to match)
Keyword is invalid
Compiler directives
No compile directives
This indicates we are in a "#if CPP" block
This indicates we are in a "#if !CPP" block
This indicates we are in a "#if 0" block
This indicates we are in a "#if 1" block
This indicates we are in a "#if WITH_EDITOR" block
This indicates we are in a "#if WITH_EDITORONLY_DATA" block
This indicates we are in a "#if WITH_HOT_RELOAD" block
This indicates we are in a "#if WITH_ENGINE" block
This indicates we are in a "#if WITH_COREUOBJECT" block
This indicates we are in a "#if WITH_VERSE_VM" block
This directive is unrecognized and does not change the code generation at all
The following flags are always ignored when keywords test for allowed conditional blocks
Default compiler directives to be allowed
All flags are allowed
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Return the text associated with the given compiler directive
Directive in question
String representation
Return a string list of the given compiler directives
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
Specifiers for public, private, and protected
Header file parser
Header file being parsed
Module containing the header file
Token reader for the header
If true, the inclusion of the generated header file was seen
For a given header file, we share a common property parser to reduce the number of allocations.
If set, the preprocessor is run in a C++ UHT compatibility mode where only a subset
of #if class of preprocessor statements are allowed.
Stack of current #if states
Stack of current #if states saved as part of the preprocessor state
Current top of the parsing scopes. Classes, structures and functions all allocate scopes.
Parse the given header file
Header file to parse
Parser
Push a new scope
Scope to push
Throw if the new scope isn't parented by the current scope
Pop the given scope
Scope to be popped
Thrown if the given scope isn't the top scope
Get the cached property parser
Property parser
Return the current compiler directive
Enumeration flags for all active compiler directives
Get the current compiler directive without any parent scopes merged in
Current compiler directive
Parse all statements in the header file
Parse the statements between the given symbols
Starting symbol
Ending symbol
If true, log any unhandled keywords
Parse a statement
Current top scope
Token starting the statement
If true, log unhandled keywords
Always returns true ATM
Tests if an identifier looks like a macro which doesn't have a following open parenthesis.
Token reader
The current token that initiated the process
Result if matching the token
Parse a preprocessor directive.
If true, then this directive is in an active block
True if we should check to see if tokenizer should clear comments
Add a new compiler directive to the stack
Directive to be added
Remove the top level compiler directive from the stack
The old UHT would preprocess the file and eliminate any #if blocks that were not required for
any contextual information. This results in comments before the #if block being considered
for the next definition. This routine classifies each #if block type into if comments should
be purged after the directive.
Interface class parser
Parser object for native interfaces
Collection of helper methods
Parse the inheritance
Header file being parsed
Configuration
Output super identifier
Output base identifiers
Parse compiler version declaration
Token reader
Configuration
Struct being parsed
Nested structure of scopes being parsed
Header file parser
Header file being parsed
Module owning the header file
Token reader
Parent scope
Type being parsed.
Keyword table for the scope
Current access specifier
Current session
Return the current class scope being compiled
Construct a root/global scope
Header parser
Keyword table
Construct a scope for a type
Parent scope
Type being parsed
Keyword table
Current access specifier
Dispose the scope
Virtual method for disposing the object
If true, we are disposing
Add the module's relative path to the type's meta data
Add the module's relative path to the meta data
The meta data to add the information to
The header file currently being parsed
Format the current token reader comments and add it as meta data
Index for the meta data key. This is used for enum values
Format the current token reader comments and add it as meta data
The type to add the meta data to
Index for the meta data key. This is used for enum values
Given a list of comments, check to see if any have alpha, numeric, or unicode code points with a value larger than 0xFF.
Comments to search
True is a character in question was found
Convert the given list of comments to a tooltip. Each string view is a comment where the // style comments also includes the trailing \r\n.
The following style comments are supported:
/* */ - C Style
/** */ - C Style JavaDocs
/*~ */ - C Style but ignore
//\r\n - C++ Style
///\r\n - C++ Style JavaDocs
//~\r\n - C++ Style bug ignore
As per TokenReader, there will only be one C style comment ever present, and it will be the first one. When a C style comment is parsed, any prior comments
are cleared. However, if a C++ style comment follows a C style comment (regardless of any intermediate blank lines), then both blocks of comments will be present.
If any blank lines are encountered between blocks of C++ style comments, then any prior comments are cleared.
Comments to be parsed
The generated tooltip
Remove any comments marked to be ignored
Buffer containing comments to be processed. Comments are removed inline
Length of the comments
New length of the comments
Remove any block comment markers
Buffer containing comments to be processed. Comments are removed inline
Length of the comments
If true, we are parsing both java and c style. This is a strange hack for //***__ comments which end up as __
New length of the comments
Remove any line comment markers
Buffer containing comments to be processed. Comments are removed inline
Length of the comments
New length of the comments
Token recorder
Construct a new recorder
Scope being parsed
Initial toke nto add to the recorder
Create a new recorder
Scope being parsed
Function associated with the recorder
Stop the recording
Stop the recording
True if the recorded content was added to a class
Options that customize the parsing of properties.
No options
Don't automatically mark properties as CPF_Const
Parse for the layout macro
If set, then the name of the property will be parsed with the type
If set, then the name of the property will be parsed with the type
When parsing delegates, the name is separated by commas
Multiple properties can be defined separated by commas
Don't add a return type to the property list (return values go at the end)
If set, add the module relative path to the parameter's meta data
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
Layout macro type
None found
Array
Editor only array
Bit field
Editor only bit field
Field
Editor only field
Field with initializer
Extensions for working with the layout macro type
Return true if the type is editor only
Layout macro type
True if editor only
Return true if the type is a bit field
Layout macro type
True if bit field
Return true if the type is an array
Layout macro type
True if array
Return true if the type has an initializer
Layout macro type
True if it has an initializer
Return the layout macro name
Type in question
Macro name
Thrown if the macro type is none or invalid
Return the macro name and value
Macro name
Name and type
Delegate invoked to handle a parsed property
Scope being parsed
Property just parsed
Name of the property
Layout macro type
Context for property specifier parsing
The property settings being parsed
If true, editor specifier seen
If true, blueprint write specifier seen
If true, blueprint readonly specifier seen
If true, blueprint getter specifier seen
Helper class thread specified object cache
The borrowed instance
Request a context
Return the borrowed buffer to the cache
A parsed property is a property that was parsed but couldn't yet be resolved. It retains the list of tokens needed
to resolve the type of the property. It will be replaced with the resolved property type during property resolution.
Collection of type tokens
Property settings being parsed
Construct a new property to be resolved
Property settings
Type tokens
Property parser
Construct a new property parser
Parse the property
Current parsing scope
Flags to be disallowed
Parsing options
Property category
Delegate to be invoked after property has been parsed
The property parser
Resolve the given property. This method will resolve any immediate property during the parsing phase or
resolve any previously parsed property to the final version.
Used to detect if the property is being parsed or resolved
Character buffer for header file
The property settings.
The tokens that represent the type
Given a type with children, resolve any children that couldn't be resolved during the parsing phase.
The type with children
Parsing options
Parse a template parameter
Resolution phase
Parent property (container) settings
Name of the template parameter
Token type
Parsed property
Parse the type elements excluding the type itself.
Context of what is being parsed
If true, this is part of a template argument
Finish creating the property
Top most scope being parsed
Context of the property being parsed
The name of the property
Series of tokens that represent the type
Optional layout macro type being parsed
Delegate to invoke when processing has been completed
The newly created property. During the parsing phase, this will often be a temporary property if the type references engine types.
USTRUCT parser object
Class responsible for parsing specifiers and the field meta data. To reduce allocations, one specifier parser is shared between all objects in
a given header file. This makes the Action pattern being used a bit more obtuse, but it does help performance by reducing the allocations fairly
significantly.
For a given header file, we share a common specifier parser to reduce the number of allocations.
Before the parser can be reused, the ParseDeferred method must be called to dispatch that list.
Get the cached specifier parser
Specifier context
User facing context
Specifier table
Specifier parser
Construct a new specifier parser
Specifier context
User facing context added to messages
Specifier table
Reset an existing parser to parse a new specifier block
Specifier context
User facing context added to messages
Specifier table
Perform the specify parsing
The parser
Parse field meta data
Specifier parser
Parse any deferred specifiers
Parse the sequence of meta data
Input token reader
Output string builder
If true, do not convert \" to " in string constants. This is required for UMETA data
True if data was read
Collection of UCLASS specifiers
Collection of default specifiers that apply to everything
Collection of UENUM specifiers
Collection of UENUM specifiers
Collection of UFUNCTION/UDELEGATE specifiers
Collection of property argument specifiers
Collection of property member specifiers
Collection of USCRIPT specifiers
This attribute is placed on classes that represent Unreal Engine classes.
The name of the engine class excluding any prefix
If true, this class is a property
Represents an engine class in the engine class table
The name of the engine class excluding any prefix
If true, this class is a property
Table of all known engine class names.
Internal mapping from engine class name to information
Test to see if the given class name is a property
Name of the class without the prefix
True if the class name is a property. False if the class name isn't a property or isn't an engine class.
Add an entry to the table
The located attribute
Delegate to invoke to run exporter
Factory used to generate export tasks and outputs
Export options
No options
The exporter should be run by default
Generated CPP files that match any filter in the CppFilters property of this UhtExporter will be included in the compilation process.
For this option, all custom generated files should be placed into the same folder as the default unreal generated files.
Make sure the CppFilters property is set up properly and does not conflict with other exporters (including the default).
Header files should be included as normal in code.
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
Defines an exporter
Name of the exporter
Description of the export. Used to display help
Exporters in plugins need to specify a module name
Exporter options
Collection of filters used to delete old cpp files
Collection of filters used to delete old h files
Collection of filters for other file types
Defines an exporter in the table
Name of the exporter
Description of the export. Used to display help
Exporters in plugins need to specify a module name
Exporter options
Delegate to invoke to start export
Collection of filters used to delete old cpp files
Collection of filters used to delete old h files
Collection of filters for other file types
Construct an exporter table instance
Source attribute
Delegate to invoke
Exporter table
Return the exporter associated with the given name
Exporter associated with the name
Handle an exporter attribute
Containing type
Method info
Defining attribute
Thrown if the attribute doesn't properly define an exporter.
Return an enumerator for all the defined exporters
Enumerator
Return an enumerator for all the defined exporters
Enumerator
Invoke the given method when the keyword is parsed.
Keyword table/scope being extended
Name of the keyword
Text to be displayed to the user when referencing this keyword
If true, this applies to all scopes
If true, do not include in usage errors
List of the allowed compiler directives.
Invoked as a last chance processor for a keyword
Table/scope to be extended
Delegate to notify a keyword was parsed
Current scope being parsed
The scope who's table was matched
Matching token
Results of the parsing
Delegate to invoke as a last chance processor for a keyword
Current scope being parsed
Matching token
Results of the parsing
Defines a keyword
Name of the keyword
Delegate to invoke
Text to be displayed to the user when referencing this keyword
If true, this applies to all scopes
If true, do not include in usage errors
List of the allowed compiler directives.
Construct a new keyword
Name of the keyword
Delegate to invoke
Defining attribute
Keyword table for a specific scope
List of catch-alls associated with this table
Construct a new keyword table
Add the given value to the lookup table. It will throw an exception if it is a duplicate.
Value to be added
Add the given catch-all to the table.
The catch-all to be added
Merge the given keyword table. Duplicates in the BaseTypeTable will be ignored.
Base table being merged
Table of all keyword tables
Construct the keyword tables
Handle a keyword attribute
Containing type
Method information
Defining attribute
Thrown if the attribute isn't well defined
Handle a keyword attribute
Containing type
Method information
Defining attribute
Thrown if the attribute isn't well defined
Log an unhandled error
Destination message site
Keyword
Delegate to invoke to sanitize a loctext default value
Property in question
The default value
Token for the loctext type being parsed
Output sanitized value.
True if sanitized, false if not.
Attribute defining the loctext sanitizer
Name of the sanitizer (i.e. LOCTEXT, NSLOCTEXT, ...)
Loctext sanitizer
Delegate to invoke
Table of loctext sanitizers
Return the loc text default value associated with the given name
Loc text default value handler
Handle a loctext default value attribute
Method info
Defining attribute
Thrown if the attribute isn't properly defined
Property type options
No options
Simple property type with just the property type. (i.e. "int32 MyValue")
Simple types are not required to parse the supplied token list.
Use case insensitive string compares
This property type is to be invoked when there are no keyword matches found
This property type doesn't reference any engine types an can be resolved immediately
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
The phase of UHT where the property is being resolved
Resolved during the source processing phase. Immediate property types only.
Resolved during the resolve phase. Non-immedite property types only.
Delegate invoked to resolve a tokenized type into a UHTProperty type
Specifies if this is being resolved during the parsing phase or the resolution phase. Type lookups can not happen during the parsing phase
The configuration of the property
The token reader containing the type
The token that matched the delegate unless the delegate is the default resolver.
Property type attribute
The expected keyword. Must be set unless this is the default processor
Options
Represents a property type as specified by the PropertyTypeAttribute
Delegate to invoke
Options
Property type table
Return the default processor
Return the property type associated with the given name
Property type if matched
Handle a property type attribute
Method info
Attribute
Thrown if the property type isn't properly defined.
Defines the different types specifiers relating to their allowed values
Internal value used to detect if the attribute has a valid value
No values of any type are allowed
A string value but can not be in the form of a list (i.e. =(bob))
An optional string value but can not be in the form of a list
A string value or a single element string list
A list of values in key=value pairs
A list of values in key=value pairs but the equals is optional
A list of values.
A list of values and must contain at least one entry
Accepts a string list but the value is ignored by the specifier and is automatically deferred. This is for legacy UHT support.
Results from dispatching a specifier
Specifier was known and parsed
Specified was unknown
The specifier context provides the default and simplest information about the specifiers being processed
Get the type containing the specifiers. For properties, this is the outer object and
not the property itself.
Return the currently active token reader
Current access specifier
Message site for messages
Meta data currently being parsed.
Make data key index utilized by enumeration values
Construct a new specifier context
Construct an empty context. Scope, MessageSite, and MetaData must be set at a later point
Specifiers are either processed immediately when the declaration is parse or deferred until later in the parsing of the object
Specifier is parsed when the meta data section is parsed.
Specifier is executed after more of the object is parsed (but usually before members are parsed)
The specifier table contains an instance of UhtSpecifier which is used to dispatch the parsing of
a specifier to the implementation
Name of the specifier
Expected value type
When is the specifier executed
Dispatch an instance of the specifier
Current context
Specifier value
Results of the dispatch
Delegate for a specifier with no value
Specifier with no value
Construct the specifier
Name of the specifier
When the specifier is executed
Delegate to invoke
Specifier delegate with a string value
Specifier context
Specifier value
Specifier with a string value
Construct the specifier
Name of the specifier
When the specifier is executed
Delegate to invoke
Specifier delegate with an optional string value
Specifier context
Specifier value
Specifier with an optional string value
Construct the specifier
Name of the specifier
When the specifier is executed
Delegate to invoke
Specifier delegate with a string value
Specifier context
Specifier value
Specifier with a string value
Construct the specifier
Name of the specifier
When the specifier is executed
Delegate to invoke
Specifier delegate with list of string keys and values
Specifier context
Specifier value
Specifier with list of string keys and values
Construct the specifier
Name of the specifier
When the specifier is executed
If true this has an optional KVP list
Delegate to invoke
Specifier delegate with no value
Specifier context
Specifier delegate for legacy UHT specifiers with no value. Will generate a information/deprecation message
is a value is supplied
Construct the specifier
Name of the specifier
Delegate to invoke
Specifier delegate with an optional string list
Specifier context
Specifier value
Specifier with an optional string list
Construct the specifier
Name of the specifier
When the specifier is executed
Delegate to invoke
Specifier delegate with a list of string views
Specifier context
Specifier value
Specifier with a list of string views
Construct the specifier
Name of the specifier
When the specifier is executed
Delegate to invoke
Defines a specifier method
Name of the specifier. If not supplied, the method name must end in "Specifier" and the name will be the method name with "Specifier" stripped.
Name of the table/scope this specifier applies
Value type of the specifier
When the specifier is dispatched
Collection of specifiers for a given scope
Construct a new specifier table
Add the given value to the lookup table. It will throw an exception if it is a duplicate.
The specifier to add
Collection of all specifier tables
Construct the specifier table
Invoke for a method that has the specifier attribute
Type containing the method
Method info
Specified attributes
Throw if the attribute isn't properly defined.
Delegate used to validate a specifier
Containing type
Containing meta data
Key of the meta data entry
Value of the meta data entry
Defines a specifier validated created from the attribute
Name of the validator
Delegate for the validator
Construct a new instance
Name of the validator
Delegate of the validator
Attribute used to create a specifier validator
Name of the validator. If not supplied "SpecifierValidator" will be removed from the end of the method name
Name of the table/scope for the validator
A table for validators for a given scope
Construct a new specifier table
Add the given value to the lookup table. It will throw an exception if it is a duplicate.
Validator to add
Collection of specifier validators
Construct the validator tables
Handle the attribute appearing on a method
Type containing the method
The method
Attribute
Thrown if the validator isn't properly defined
Delegate for invoking structure default value sanitizer
Options for structure default value sanitizer
No options
This method is to be invoked when there are no keyword matches found
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
Structure default value sanitizer attribute
Name of the structure. Not required for default processor.
Options
Structure default value sanitizer
The delegate to invoke
Table of all structure default value specifiers
Fetch the default sanitizer
Return the structure default value associated with the given name
Structure default value handler
Handle a structure default value sanitizer attribute
Method information
Found attribute
Thrown if the attribute isn't property defined
Type of the token
End of file token.
End of default value.
End of type
End of declaration
Line of text (when calling GetLine only)
Alphanumeric identifier.
Symbol.
Floating point constant
Decimal Integer constant
Hex integer constant
Single character constant
String constant
Series of extension methods for the token type
Return true if the token type is an end type
Token type in question
True if the token type is an end type
Token declaration
Names/Identifiers can not be longer that the following
Strings can not be longer than the following.
Type of the token
Position to restore the reader
Line to restore the reader
Starting position of the token value
End position of the token value
Line containing the token
Token value
Construct a new token
Type of the token
Construct a new token
Type of token
Unget position
Unget line
Start position of value
Line of value
Token value
True if the token isn't an end token
Token in question
Return true if the token is an end token
True if the token is an end token
Test to see if the value matches the given character
Value to test
True if the token value matches the given value
Test to see if the value matches the given string
Value to test
If true, ignore case
True if the value matches
Test to see if the value matches the given string
Value to test
If true, ignore case
True if the value matches
Test to see if the value starts with the given string
Value to test
If true, ignore case
True is the value starts with the given string
Return true if the token is an identifier
True if the token is an identifier
Return true if the identifier matches
Identifier to test
If true, ignore case
True if the identifier matches
Return true if the identifier matches
Identifier to test
If true, ignore case
True if the identifier matches
Return true if the token is a symbol
True if the token is a symbol
Return true if the symbol matches
Symbol to test
True if the symbol matches
Return true if the symbol matches
Symbol to test
True if the symbol matches
Return true if the symbol matches
Symbol to test
True if the symbol matches
Return true if the token is a constant integer
True if constant integer
Return true if the token is a constant floag
True if constant float
Get the integer value of the token. Only supported for decimal, hexadecimal, and floating point values
Resulting value
True if the value was set
Get the integer value of the token. Only supported for decimal, hexadecimal, and floating point values
Resulting value
True if the value was set
Get the float value of the token. Only supported for decimal, hexadecimal, and floating point values
Resulting value
True if the value was set
Get the double value of the token. Only supported for decimal, hexadecimal, and floating point values
Resulting value
True if the value was set
Return true if the token is a constant string (or a char constant)
True if the token is a string or character constant
Return an un-escaped string. The surrounding quotes will be removed and escaped characters will be converted to the actual values.
Resulting string
Thrown if the token type is not a string or character constant
Return a string representation of the token value. This will convert numeric values and format them.
If true, embedded quotes will be respected
Resulting string
Return an un-escaped string. The surrounding quotes will be removed and escaped characters will be converted to the actual values.
If true, respect embedded quotes
Resulting string
Join the given tokens into a string
Tokens to join
Joined strings
Join the given tokens into a string
Separator between tokens
Tokens to join
Joined strings
Join the given tokens into a string
Separator between tokens
Tokens to join
Joined strings
Convert the token to a string. This will be the value.
Value of the token
Token reader for source buffers
Construct a new token reader
Message site for messages
Input source
Get the next token
Return the next token from the stream. If the end of stream is reached, a token type of None will be returned.
Skip all leading whitespace and collect any comments
Fetch the next character in the input stream or zero if we have reached the end.
The current offset in the buffer is not advanced. The method does not support UTF-8
The span containing the data
Next character in the stream or zero
Fetch the next character in the input stream or zero if we have reached the end.
The current offset in the buffer is advanced. The method does not support UTF-8.
The span containing the data
Next character in the stream or zero
If we have a current token, then reset the pending comments and input position back to before the token.
Options for GetRawString method
No options
Don't consider the terminator while in a quoted string
Don't consume the terminator. It will be parsed later.
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
Interface invoked when the parser reaches a '#' preprocessor block
Parse a preprocessor directive
Token starting the directive. Will be only the '#'
If true, the directive the source is being included. Otherwise it is being skipped as part of an #if block
If true, comments should be cleared
If true, excluded contents should be checked for unparsed UE macros (i.e. UCLASS)
True if the source should continue to be included
Save the current preprocessor state
Restore the current preprocessor state
Common token reader interfaces for all token reader. When creating extension methods, use the interface.
True if the reader is at the end of the stream
Current input position in the stream by characters
Current input line in the stream
Preprocessor attached to the token reader
If the reader doesn't have a current token, then read the next token and return a reference to it.
Otherwise return a reference to the current token.
The current token. Will be invalidated by other calls to ITokenReader
Mark the current token as being consumed. Any call to PeekToken or GetToken will read another token.
Get the next token in the data. If there is a current token, then that token is returned and marked as consumed.
Tests to see if the given token is the first token of a line
The token to test
True if the token is the first token on the line
Skip any whitespace and comments at the current buffer position
Read the entire next line in the buffer
Get a view of the buffer being read
Starting character offset in the buffer.
Length of the span
The string view into the buffer
Return a string terminated by the given character.
The character to stop at.
Options
The parsed string
The current collection of parsed comments. This does not include any comments parsed as part of a
call to PeekToken unless ConsumeToken has been invoked after a call to PeekToken.
Clear the current collection of comments. Any comments parsed by PeekToken prior to calling ConsomeToken will
not be cleared.
Disable the processing of comments. This is often done when skipping a bulk of the buffer.
Enable comment collection.
If there are any pending comments (due to a PeekToken), commit then so they will be return as current comments
Save the current parsing state. There is a limited number of states that can be saved.
Invoke either RestoreState or AbandonState after calling SaveState.
Restore a previously saved state.
Abandon a previously saved state
Enable the recording of tokens
Disable the recording of tokens. Any currently recorded tokens will be removed
Record the given token to the list of recorded tokens
Token to record
Get the current collection of recorded tokens
Represents a list of tokens. Follow the Next chain for each element in the list.
The token
The next token in the list
Join the tokens in the list
Destination builder
Separator between the tokens
Join the tokens in the list
Separator between the tokens
Return the token list as an array
Token list cache. Token lists must be returned to the cache.
Borrow a token list
Starting token
Token list
Return a token list to the cache
Delegate for when a token is parsed
The token in question
Delegate for when a token is parsed in an until block
The token in question
True if parsing should continue
Delegate for an enumeration of tokens
Parsed tokens
Delegate for cached token list
Token list that can be cached
Delegate for a constant float
Value in question
Delegate for a constant double
Value in question
Helper struct to disable comment parsing. Should be used in a using block
Construct instance
Token reader to disable
Enable comments
Helper struct to save token reader state
Construct instance
Token reader
Restore the token reader state
Restore the token reader state
Thrown if state has already been restored or aborted
Abandon the saved state
Thrown if state has already been restored or aborted
Collection of token reader extensions for float values
Get the next token as a float. If the next token is not a float, no token is consumed.
Token reader
The float value of the token
True if the next token was an float, false if not.
Get the next token as a float. If the next token is not a float, no token is consumed.
The token reader
Get the next token as a float. If the next token is not a float, no token is consumed.
Token reader
Delegate to invoke with the float value
The token reader
Get the next token as a float. If the next token is not a float, an exception is thrown
Token reader
If not null, an exception will be thrown with the given text as part of the message.
True if the next token was an float, false if not.
Get the next token as a float. If the next token is not a float, an exception is thrown
Token reader
If not null, an exception will be thrown with the given text as part of the message.
The floating point value of the token
Get the next float. It also handles [+/-] token followed by an float.
Source tokens
The float value of the token
True if the next token was an float, false if not.
Get the next float. It also handles [+/-] token followed by an float.
Source tokens
The float value of the token
True if the next token was an float, false if not.
Get the next float. It also handles [+/-] token followed by an float.
Source tokens
The double value
Get the next double. It also handles [+/-] token followed by an double.
Source tokens
The double value of the token
True if the next token was an double, false if not.
Get the next double. It also handles [+/-] token followed by an double.
Source tokens
Delegate to invoke if the double is parsed
The supplied token reader
Get the next double. It also handles [+/-] token followed by an double.
Source tokens
The double value
Collection of token reader extensions to help with flow control
Parse an optional list
Token reader
Initiating symbol
Terminating symbol
Separator symbol
If true, allow trailing separators
Action to be invoked for each list element.
True if a list was read
Parse a required list
Token reader
Initiating symbol
Terminating symbol
Separator symbol
If true, allow trailing separators
Action to be invoked for each list element.
Token reader
Parse a required list
Token reader
Initiating symbol
Terminating symbol
Separator symbol
If true, allow trailing separators
Extra context for error messages
Action to be invoked for each list element.
Token reader
Parse a required list. Initiating token must have already been parsed
Token reader
Terminating symbol
Separator symbol
If true, allow trailing separators
Action to be invoked for each list element.
Token reader
Parse a required list. Initiating token must have already been parsed
Token reader
Terminating symbol
Separator symbol
If true, allow trailing separators
Extra context for error messages
Action to be invoked for each list element.
Token reader
Parse an optional list
Token reader
Initiating symbol
Terminating symbol
Separator symbol
If true, allow trailing separators
Delegate to invoke with the parsed token list
True if a list was read
Parse a required list
Token reader
Initiating symbol
Terminating symbol
Separator symbol
If true, allow trailing separators
Delegate to invoke with the parsed token list
Token reader
Parse a required list
Token reader
Initiating symbol
Terminating symbol
Separator symbol
If true, allow trailing separators
Extra context for error messages
Delegate to invoke with the parsed token list
Token reader
Parse a required list. Initiating token must have already been parsed
Token reader
Terminating symbol
Separator symbol
If true, allow trailing separators
Delegate to invoke with the parsed token list
Token reader
Parse a required list. Initiating token must have already been parsed
Token reader
Terminating symbol
Separator symbol
If true, allow trailing separators
Extra context for error messages
Delegate to invoke with the parsed token list
Token reader
Consume a block of tokens bounded by the two given symbols.
Token reader
The next token must be the given symbol.
The tokens are read until the given symbol is found. The terminating symbol will be consumed.
Extra context for any error messages
The input token reader
Invoke action while the next token is the given string
Token reader
Text to match to continue invoking Action
Action to invoke if and only if the prior text was parsed.
Token reader
Invoke action while the next token is the given string
Token reader
Text to match to continue invoking Action
Action to invoke if and only if the prior text was parsed.
Token reader
Read tokens until the delegate return false. The terminating token is not consumed.
Token reader
Invoked with each read token. Return true to continue tokenizing or false to terminate.
Token reader
Consume tokens until one of the strings are found. Terminating token will not be consumed.
Token reader
Strings that will terminate processing.
Number of tokens consumed
Consume until the given terminator is found. Terminating token will be consumed
Token reader
Terminating symbol
Token reader
Collection of general token reader extensions
Try to parse the given text
Token reader
Text to match
True if the text matched
Try to parse the given text
Token reader
Text to match
True if the text matched
Try to parse the given text. However, the matching token will not be consumed.
Token reader
Text to match
True if the text matched
Try to parse the given text
Token reader
Text to match
True if the text matched
Try to parse the given text
Token reader
Text to match
Open that was matched
True if the text matched
Try to parse the given text. However, the matching token will not be consumed.
Token reader
Text to match
True if the text matched
Parse optional text
Token reader
Text to match
Token reader
Parse optional text
Token reader
Text to match
Action to invoke if the text was found
Token reader
Parse optional text
Token reader
Text to match
Token reader
Parse optional text
Token reader
Text to match
Action to invoke if the text was found
Token reader
Parse optional token that starts with the given text
Token reader
Text to match
Token reader
Parse optional token that starts with the given text
Token reader
Text to match
Delegate to invoke on a match
Token reader
Parse attributes and optionally alignment specifier
Token reader
If true, also parse alignment specifiers
If specified, action to be invoked for every attribute found
Token reader
Require the given text
Token reader
Required text
Extra exception context
Token reader
Thrown if text is not found
Require the given text
Token reader
Required text
Delegate to invoke on a match
Token reader
Thrown if text is not found
Require the given text
Token reader
Required text
Extra exception context
Delegate to invoke on a match
Token reader
Thrown if text is not found
Require the given text
Token reader
Required text
Extra exception context
Token reader
Thrown if text is not found
Require the given text
Token reader
Required text
Delegate to invoke on a match
Token reader
Thrown if text is not found
Require the given text
Token reader
Required text
Extra exception context
Delegate to invoke on a match
Token reader
Thrown if text is not found
Options when parsing identifier
No options
Include template arguments when parsing identifier
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
Collection of token reader extensions for working with identifiers
Get the next token and verify that it is an identifier
True if it is an identifier, false if not.
Get the next token and verify that it is an identifier
Token reader
The fetched value of the identifier
True if it is an identifier, false if not.
Parse an optional identifier
Token reader
Invoked of an identifier is parsed
Token reader
Parse an optional namespace
Token reader
The text of the namespace
Token reader
Parse a required identifier
Token reader
Extra exception context
Token reader
Thrown if an identifier isn't found
Parse a required identifier
Token reader
Invoked if an identifier is parsed
Token reader
Parse a required identifier
Token reader
Extra exception context
Invoked if an identifier is parsed
Token reader
Thrown if an identifier isn't found
Get a required identifier
Token reader
Extra exception context
Identifier token
Thrown if an identifier isn't found
Parse a required cpp identifier
Token reader
Parsing options
Invoked when identifier is parsed
Token reader
Parse a required cpp identifier
Token reader
Initial token of the identifier
Parsing options
Invoked when identifier is parsed
Token reader
Get a required cpp identifier
Token reader
Parsing options
Token list
Get a required cpp identifier
Token reader
Initial token of the identifier
Parsing options
Token list
Notification of signed token being parsed
Token in question
True if the token value is acceptable
Collection of helper methods to parse integers
Get the next token as an integer. If the next token is not an integer, no token is consumed.
Token reader
The integer value of the token
True if the next token was an integer, false if not.
Get the next token as an integer. If the next token is not an integer, an exception is thrown
Token reader
The value of the constant
Get the next token as an integer. If the next token is not an integer, an exception is thrown
Token reader
If not null, an exception will be thrown with the given text as part of the message.
The value of the constant
Get the next token as an integer. If the next token is not an integer, an exception is thrown
Token reader
If not null, an exception will be thrown with the given text as part of the message.
The value of the constant
Get the next token as an integer. If the next token is not an integer, no token is consumed.
Token reader
The integer value of the token
True if the next token was an integer, false if not.
Get the next token as an integer. If the next token is not an integer, an exception is thrown
Token reader
The value of the constant
Get the next token as an integer. If the next token is not an integer, an exception is thrown
Token reader
If not null, an exception will be thrown with the given text as part of the message.
The value of the constant
Get the next token as an integer. If the next token is not an integer, an exception is thrown
Token reader
If not null, an exception will be thrown with the given text as part of the message.
The value of the constant
Helper method to combine any leading sign with the next numeric token
Source tokens
Delegate to invoke with the merged value
True if the next token was an parsed, false if not.
Get the next integer. It also handled [+/-] token followed by an integer.
Source tokens
The integer value of the token
True if the next token was an integer, false if not.
Get the next integer. It also handled [+/-] token followed by an integer.
Source tokens
The integer value
Get the next integer. It also handled [+/-] token followed by an integer.
Source tokens
The integer value of the token
True if the next token was an integer, false if not.
Get the next long. It also handled [+/-] token followed by an long.
Source tokens
The long value
Series of extensions to token reading that are far too specialized to be included in the reader.
Skip a token regardless of the type.
Token reader
Token reader
Skip any block of tokens wrapped by the given token symbols
Token reader
Initiating token (i.e. "(")
Terminating token (i.e. ")")
If true, start with an initial nesting count of one (assume we already parsed an initiator)
Extra context for any errors
Token reader
Throw if end of file is reached
Skip tokens until the given terminator is found. The terminator will not be consumed.
Token reader
Terminator to skip until
Extra context for any exceptions
Token reader
Collection of token reader exceptions for handling strings
Get the next token as a string. If the next token is not a string, no token is consumed.
Token reader
The string value of the token
True if the next token was an string, false if not.
Get the next token as a string. If the next token is not a string, no token is consumed.
Token reader
True if the next token was an string, false if not.
Verify that the next token is a string.
Token reader
If not null, an exception will be thrown with the given text as part of the message.
True if the next token was a string, false if not.
Get the next token as a string. If the next token is not a string, an exception is thrown
Token reader
If not null, an exception will be thrown with the given text as part of the message.
The value of the string.
Get the next token as a quoted string. If the next token is not a string, an exception is thrown.
Character constants are not considered strings by this routine.
Token reader
If not null, an exception will be thrown with the given text as part of the message.
The value of the string.
Get a const string that can optionally be wrapped with a TEXT() macro
Token reader
If not null, an exception will be thrown with the given text as part of the message.
The value of the string
Collection of assorted utility token reader extensions
When processing type, make sure that the next token is the expected token
Token reader
Expected identifier
If true, log an error if the type begins with const
true if there could be more header to process, false if the end was reached.
Try to parse an optional _API macro
Token reader
_API macro parsed
True if an _API macro was parsed
Parse an optional single inheritance
Token reader
Invoked with the inherited type name
Token reader
Parse an optional inheritance
Token reader
Invoked with the inherited type name
Invoked when other base classes are parsed
Token reader
Given a declaration/statement that starts with the given token, skip the declaration in the header.
Token reader
Token that started the process
true if there could be more header to process, false if the end was reached.
Token reader to replay previously recorded token stream
Construct new token reader
Message site for generating errors
Complete data for the token (i.e. original source)
Tokens to replay
Token type to return when end of tokens reached
Construct token replay reader intended for caching. Use Reset method to prepare it for use
Reset a cached replay reader for replaying a new stream of tokens
Message site for generating errors
Complete data for the token (i.e. original source)
Tokens to replay
Token type to return when end of tokens reached
The replay reader
Return the replay reader associated with the current thread. Only one replay reader is cached per thread.
The message site used to log errors
Source data where tokens were originally parsed
Collection of tokens to replay
Type of end token marker to return when the end of the token list is reached. This is used to produce errors in the context of the replay
The threaded instance of the replay reader
Thrown if the TLS value can not be retrieved.
FAnsiStrProperty
Construct a new property
Property settings
Represents the FArrayProperty engine type
Construct a new array property
Property settings
Inner property value
Type of boolean
Native bool
Used for all bitmask uint booleans
Currently unused
Currently unused
Currently unused
Represents the FBoolProperty engine type
If true, the boolean is a native bool and not a UBOOL
Type of the boolean
Return the engine name without and 'b' prefixes
Construct a new boolean property
Property settings
Type of the boolean
FByteProperty
Referenced enumeration (TEnumAsByte)
Construct a new property
Property settings
Optional referenced enum
FClassProperty
Construct a new property
Property settings
Referenced class
Reference meta class
Extra flags to apply to the property.
FClassPtrProperty
Construct a new property
Referenced class
Meta data class
Extra property flags to apply to the property
Common base class for containers with a value
Construct a new property
Property settings
Value property
Propagate flags and meta data to/from child properties
Container property
Meta data
Inner property
Resolve the child and return any new flags
Child to resolve
Resolve phase
And new flags
FDelegatePropertyDelegateProperty
Referenced function
Construct new property
Property settings
Referenced function
FDoubleProperty
Create new property
Property settings
FEnumProperty
Referenced enum
Underlying property set when the enum has an underlying interger type
Underlying type which defaults to Int32 if the referenced enum doesn't have an underlying type
Construct property
Property settings
Referenced enum
Append enum text
Destination builder
Property in question
Referenced enum
Type of text to append
If true, this property is a template argument
Append the text for a function thunk call argument
Output builder
Property in question
Referenced enum
Output builder
Sanitize the default value for an enumeration
Property in question
Referenced enumeration
Default value
Destination builder
True if the default value was parsed.
FFieldPathProperty
Class name without the prefix
Construct new property
Property settings
Field class name
FFloatProperty
Construct a new property
Property settings
FInt16Property
Construct new property
Property settings
FInt64Property
Construct new property
Property settings
FInt8Property
Construct a new property
Property settings
FInterfaceProperty
Referenced interface class
Create a new property
Property settings
Referenced interface
FIntProperty
Construct new property
Property settings
FLargeWorldCoordinatesRealProperty
Construct new property
Property settings
FLazyObjectProperty
Construct new property
Property settings
Referenced class
FMapProperty
Key property
Construct new property
Property settings
Key property
Value property
FMulticastDelegateProperty
Referenced function
Construct property
Property settings
Referenced function
FMulticastInlineDelegateProperty
Construct new property
Property settings
Referenced function
FMulticastSparseDelegateProperty
Construct a new property
Property settings
Referenced function
FNameProperty
Construct a new property
Property settings
Base class for all numeric properties
Construct new property
Property settings
FObjectProperty
Construct a new property
Property settings
Referenced class
Optional reference class (used by class properties)
Extra flags to add to the property
FObjectPropertyBase
Referenced UCLASS
Referenced UCLASS for class properties
Construct a property
Property settings
Referenced UCLASS
Referenced UCLASS used by class properties
Parse a template type
Property settings
Token reader
Token matched for type
If true, return the UInterface instead of the type listed
Referenced class
Parse a template type
Property settings
Token reader
Token matched for type
Referenced class
Logs message for Object pointers to convert UObject* to TObjectPtr or the reverse
Property settings
Expected behavior for engine types
Expected behavior for engine plugin types
Expected behavior for non-engine types
Description of the pointer type
Token reader for type being parsed
Starting character position of the type
Suggested alternate declaration
Thrown if the behavior type is unexpected
FObjectPtrProperty
Construct a new property
Property settings
Referenced class
Extra property flags to apply
Represents the FOptionalProperty engine type
Construct a new Optional property
Property settings
Inner property value
FSetProperty
Construct a new property
Property settings
Property key
FSoftClassProperty
Construct a new class property
Property setting
Referenced class (Always UClass)
Referenced meta class
FSoftObjectProperty
Construct a new property
Property settings
UCLASS being referenced
Optional meta class (used by SoftClassProperty)
FStrProperty
Construct a new property
Property settings
FStructProperty
USTRUCT referenced by the property
Construct property
Property settings
USTRUCT being referenced
Perform default, default value parsing
Default value reader
Sanitized default value
Parse a template type
Property settings
Token reader
Token matched for type
Referenced class
FStructProperty
When using the template wrapper pattern that provides a template wrapper to an existing structure that
can reference types, this is the name of the template. For example, FInstancedStruct has TInstancedStruct
as a wrapper template.
The structure being wrapped by the template wrapper
Construct property
Property settings
USTRUCT being referenced
The name of wrapping template type
The path name of the type being managed by the template
FTextProperty
Construct a new property
Property settings
FUInt16Property
Construct a new property
Property settings
FUInt32Property
Construct a new property
Property settings
FUInt64Property
Construct a new property
Property settings
FUtf8StrProperty
Construct a new property
Property settings
FVValueProperty
Construct a new property
Property settings
Internal only void property for void return types
Construct a new void property
Property settings
Represents a FWeakObjectProperty
Construct a new property
Property settings
Class being referenced
Extra property flags to add to the definition
Series of flags not part of the engine's class flags that affect code generation or verification
No export flags
If set, the class itself has replicated properties.
If set, some super class has replicated properties.
If set, either the class itself or a super class has replicated properties
Custom constructor specifier present
A default constructor was found in the class
An object initializer constructor was found in the class
A custom vtable helper constructor was found
A constructor was found
GetLifetimeReplicatedProps was found in the class
Class should not be exported
Class has a custom field notify
Class has a field notify
Class has destructor
The GENERATED_UCLASS_BODY, GENERATED_UINTERFACE_BODY, and GENERATED_IINTERFACE_BODY macros use the
legacy generated body. If this flag is set, generate the legacy instead of the GENERATED_BODY macros.
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
Type of the class
Class is a UCLASS
Class is a UINTERFACE
Class is the native interface for a UINTERFACE
Type of archive serializer found
No serializer found
Archive serializer found
Structured archive serializer found
Mask of all serializer types
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
A skipped declaration
Compiler directives when declaration was parsed
Collection of tokens parsed in the declaration
If this declaration is part of a UFUNCTION, this will be set
Represents a declaration found by name
Compiler directives when declaration was parsed
Collection of tokens parsed in the declaration
Token index for the matching name
True if "virtual" was found prior to the matching name
Instance of a UCLASS, UINTERFACE, or a native interface
Configuration section
If needed, the #if block define for the serializer
The class within
Class flags
Class cast flags
Export flags not present in the engine
Type of the class
Type of archivers present
Line number of the prolog
Collection of functions and other declarations found in the class
If this, this class is a UINTERFACE and NativeInterface is the associated native interface
Line number o the generated body statement
Access of the generated body
True if GENERATED_BODY was used. If false, GENERATED_UCLASS_BODY was used.
Engine class flags removed
Class within identifier
Collection of show categories
Collection of hide categories
Collection of auto expand categories
Collection of auto collapse categories
Collection of prioritize categories
Collection of show functions
Collection of hide functions
Sparse class data types
Class group names
Add the given class flags
Flags to add
Remove the given class flags
Flags to remove
The super class
Construct a new instance of the class
Header being parsed
The outer type
Line number where class begins
True if this class inherits from AActor
Add the given list of tokens as a possible declaration
Currently active compiler directives
List of declaration tokens
If parsed as part of a UFUNCTION, this will reference it
Search the declarations for a possible declaration match with the given name
Name to be located
Information about the matched declaration
True if a declaration was found with the name.
Checks to see if the class or any super class has the given flags.
True if the flags are found
Given a token stream, verify that it matches the expected signature for a getter/setter
Property requesting the setter/getter
If true, a setter is expected
The declaration being tested
The index of the token with the expected getter/setter name
True if the declaration matches
Add a requested getter/setter function name
Dictionary containing the lookup by function name. Will be created if null.
Name of the getter/setter
Property requesting the getter/setter
True if this is a setter
Resulting dictionary
Interface with blueprint data should declare explicitly Blueprintable or NotBlueprintable to be clear
In the backward compatible case where they declare neither, both of these bools are false
True if the interface is marked as Blueprintable
Interface with blueprint data should declare explicitly Blueprintable or NotBlueprintable to be clear
In the backward compatible case where they declare neither, both of these bools are false
True if the interface is marked as NotBlueprintable
Interface with blueprint data should declare explicitly Blueprintable or NotBlueprintable to be clear
In the backward compatible case where they declare neither, both of these bools are false
If true, class has already been marked as Blueprintable
True if the interface is marked as NotBlueprintable
How the enumeration was declared
enum Name {...}
namespace Name { enum Type { ... } }
enum class Name {...}
Underlying type of the enumeration
Not specified
Uint8
Uint16
Uint32
Uint64
Int8
Int16
Int32
Int64
Int
Represents an enumeration value
Name of the enumeration value
Value of the enumeration or -1 if not parsed.
Represents a UEnum
Engine enumeration flags
C++ form of the enumeration
Underlying integer enumeration type
Full enumeration type. For namespace enumerations, this includes the namespace name and the enum type name
Collection of enumeration values
Construct a new enumeration
Header being parsed
Outer type
Line number of declaration
Test to see if the value is a known enum value
Value in question
True if the value is known
Return the index of the given enumeration value name
Value name in question
Index of the value or -1 if not found.
Converts meta data name and index to a full meta data key name
Meta data key name
Meta data key index
Meta data name with the enum value name
Given an enumeration value name, return the full enumeration name
Enum value name
If required, enum type name combined with value name. Otherwise just the value name.
Unexpected enum form
Add a new enum value.
Name of the enum value.
Enumeration value or -1 if the value can't be determined.
Reconstruct the full enum name. Any existing enumeration name will be stripped and replaced
with this enumeration name.
Name to reconstruct.
Reconstructed enum name
Represents a UField
Name of the module containing the type
Cased name of the verse field
Returns true if field is a verse element
Construct a new field
Header file being parsed
Outer object
Line number of declaration
Helper extension methods for fields
Append the Verse UE VNI package name
Destination builder
Field to serialize
Builder
Append the Verse UE name
Destination builder
Field to serialize
Builder
Append the Verse UE name
Destination builder
Field to serialize
Builder
Append the Verse package name
Destination builder
Field to serialize
Builder
Append the Verse module name
Destination builder
Field to serialize
Builder
Series of flags not part of the engine's function flags that affect code generation or verification
No export flags
Function declaration included "final" keyword. Used to differentiate between functions that have FUNC_Final only because they're private
Function should be exported as a public API function
Export as an inline static C++ function
Export as a real C++ static function, causing thunks to call via ClassName::FuncName instead of this->FuncName
Export no thunk function; the user will manually define a custom one
Function is marked as virtual
The unreliable specified was present
The function is a sealed event
Blueprint pure is being forced to false
If set, the BlueprintPure was automatically set
If set, a method matching the CppImplName was found. The search is only performed if it
differs from the function name.
If the ImplFound flag is set, then if this flag is set, the method is virtual
If set, a method matching the CppValidationImplName was found. The search is only performed if
CppImplName differs from the function name
If the ValidationImplFound flag is set, then if this flag is set, the method id virtual.
Set true if the function itself is declared const. The is required for the automatic setting of BlueprintPure.
Final flag was set automatically and should not be considered for validation
Generate the entry for the FieldNotificationClassDescriptor
True if the function specifier has a getter/setter specified
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
Type of function
UFUNCTION
UDELEGATE/DECLARE_DYNAMIC_...
UDELEGATE/DECLARE_DYNAMIC_...SPARSE_...
Extension
Test to see if the function type is a delegate type
Function type being tested
True if the type is a delegate
Represents a UFUNCTION/delegate
Suffix added to delegate engine names
Engine function flags
UHT specific function flags
The type of function
The line number for the macro.
Owning class name for sparse functions
Sparse delegate name
The super function. Currently unused
Stripped function name without the generated delegate suffix
Identifier for an RPC call to a platform service
Identifier for an RPC call expecting a response
Name of the actual implementation
Name of the actual validation implementation
Name of the wrapper function that marshals the arguments and does the indirect call
Name for callback-style names
Endpoint name
True if the function has a return value.
The return value property or null if the function doesn't have a return value
True if the function has parameters.
Return read only memory of all the function parameters
True if the function has any outputs including a return value
Construct a new instance of a function
Header being parsed
The parent object
The line number where the function is defined
Add a parameter tooltip to the collection
Name of the parameter
Text of the parameter tooltip
Parameter map to add the tooltip
Add a parameter tooltip to the collection where the name of the parameter is the first word of the line
Text of the parameter tooltip
Parameter map to add the tooltip
Parse the function comment looking for parameter documentation.
The function input comment
Dictionary of parameter names and the documentation. The return value will have a name of "ReturnValue"
Return the property parse options for the given function
If true, return property parse options for the return value
Property parse options
Represents the different directories where headers can appear
Classes folder
Public folder
Internal folder
Private folder
Series of flags not part of the engine's class flags that affect code generation or verification
No export flags
This header is being included by another header
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
Type of reference being added
The header being referenced in a direct include
The header being referenced is a passive reference (i.e. NoExportTypes.h or a header referenced by a header being included)
Represents a header file.
Contents of the header
Path of the header
Currently running session
Module associated with the header
File name without the extension
Required name for the generated.h file name. Used to validate parsed code
True if this header is NoExportTypes.h
The file path of the header relative to the module location
Include file path added as meta data to the types
Location where the header file was found
Unique index of the header file
UHT flags for the header
Children types of this type
If true, the header file should be exported
Resource collector for the header file
Collection of headers directly included by this header
Construct a new header file
Owning module
Path to the header file
Read the contents of the header
Add a reference to the given header
Path of the header
How is the include in question referenced
Add a reference to the header that defines the given type
Type in question
Add a reference to the given header file
Header file in question
How is the include in question referenced
Return an enumerator without locking. This method can only be utilized AFTER all header parsing is complete.
Return an enumerator of all current referenced headers under a lock. This should be used during parsing.
Add a type as a child
The child to be added.
Resolve all types owned by the header
Phase of the resolution process
Bind all the super structs and base classes
Validate the state of the header file
Validation options
Collect all things referenced by the given header
Represents the UHT manifest file
Loaded manifest from the json manifest file
Construct a new manifest file
Current session
Path of the file
Read the contents of the file
UhtEnum types need to convert a meta data name index to the enum name
Convert a name and index into a full meta data name
Base name of the meta data
Index of the meta data. -1 for the root object.
Complete meta data key name
Uniquely identifies a meta data element
The name of the meta data
The index of the meta data name (i.e. enum value index) or -1 for the owning object meta data
Construct a new meta data key
Meta data name
Meta data index
Convert the key to a string
String representation
Comparer for meta data keys
Compare two keys
First key
Second key
-1, 0, or 1 depending on the relationship
Test to see if two meta data keys are equal
First key
Second key
True if the keys match
Get the hash code of the meta data key
Key
Hash code
Represents a collection of key/value pairs. Each type has this collection and enumerations also
have key/value pairs for each enumeration value index.
Helper comparer for meta data keys
Empty collection of meta data
The meta data of the outer object for the type that owns this meta data
Message site associated with the meta data. That in combination with the line number is used to generate errors
Configuration object used to redirect meta data
Source code line number where the meta data is declared
Contains the meta data entries. Due to the small size of these dictionaries, a SortedList performs
better than a Dictionary.
Enumerations implement this interface so that the index part of the key can be converted to a string
Index for a meta data key associated with the owning object
Construct new meta data
Message site for generating errors
Configuration for redirects
Test to see if the meta data object contains no entries
True if the meta data object contains no entries
Remove all meta data entries
Copy the elements of the meta data
A deep copy of the meta data
Test to see if the meta data contains the given key
Name of the meta data
Enumeration value index or -1 for the type's meta data
True if the key is found
Test to see if the meta data or parent meta data contains the given key
Name of the meta data
Enumeration value index or -1 for the type's meta data
True if the key is found
Attempt to get the value associated with the key
Name of the meta data
Found value
True if the key is found
Attempt to get the value associated with the key including parent meta data
Name of the meta data
Found value
True if the key is found
Attempt to get the value associated with the key
Name of the meta data
Enumeration value index or -1 for the type's meta data
Found value
True if the key is found
Attempt to get the value associated with the key including parent meta data
Name of the meta data
Enumeration value index or -1 for the type's meta data
Found value
True if the key is found
Get the string value of the given meta data key or the default value.
Name of the meta data key
Index of the meta data key
Meta data value or empty string if not found.
Get the string value of the given meta data searching the whole meta data chain.
Name of the meta data key
Index of the meta data key
Meta data value or empty string if not found.
Get the boolean value of the given meta data.
Name of the meta data key
Index of the meta data key
Boolean value or false if not found
Get the boolean value of the given meta data searching the whole meta data chain.
Name of the meta data key
Index of the meta data key
Boolean value or false if not found
Get the double value of the given meta data.
Name of the meta data key
Index of the meta data key
Double value or zero if not found
Get the string array value of the given meta data.
Name of the meta data key
Index of the meta data key
String array or null if not found
Get the string array value of the given meta data searching the whole meta data chain.
Name of the meta data key
Index of the meta data key
String array or null if not found
Add new meta data
Name of the meta data key
Value of the meta data
Add new meta data
Name of the meta data key
Index of the meta data key
Value of the meta data
Add new meta data
Name of the meta data key
Index of the meta data key
Value of the meta data
Add new meta data
Name of the meta data key
Value of the meta data
Index of the meta data key
Add new meta data
Name of the meta data key
Value of the meta data
Separator to use to join the strings
Add new meta data if there are strings in the value.
Name of the meta data key
Value of the meta data
Separator to use to join the strings
Add the meta data from another meta data block
Add the given meta data but test for redirection of meta data name
Name of the meta data
Index of the meta data
Value of the meta data
If true, verifies that the meta data value is not changing
Add the value to the meta data
Destination dictionary
Key of the meta data
Value of the meta data
If true, verifies that the meta data value is not changing
Remove the given meta data
Name of the meta data key
Index of the meta data key
Given a key, return the full meta data name
Meta data key
Full meta data name
Given a key, return the full meta data name
Name of the meta data key
Index of the meta data key
Full meta data name
Thrown if an index is supplied (not -1) and no key conversion interface is set
Given a type, return an array of all the meta data formatted and sorted by name
List of meta data key and value pairs
Represents a UHT module
The running session
UHT module from UBT (1 to 1 relationship)
Primary /Script/ package
Name of the module based on the script package name with out the "/Script/" prefix
C++ API name for the module with a trailing space
Enumeration of all the packages in the module.
Collection of headers owned by the module
True if the package is part of the engine
True if the package is a plugin
Create a new module from the given manifest module
Running session
Source module from UBT
Prepare to parse all the headers in the module. This creates all the UhtHeaderFiles and validates there
are no conflicts.
Action to invoke to register the headers with the session
Create a new package with the given name. Will return an existing instance if it already exists
Name of the package
Flags to set if the package is created
Package
Given a collection of headers, create the UhtHeaders
Collection of header names
Type of the headers
Action to take to notify the caller of the header being created
Return the normalized path converted to a full path if possible.
Code should NOT depend on a full path being returned.
In general, it is assumed that during normal UHT, all paths are already full paths.
Only the test harness deals in relative paths.
Path to normalize
Normalized path possibly converted to a full path.
Represents a UObject in the engine
Internal object flags.
Unique index of the object
The alternate object is used by the interface system where the native interface will
update this setting to point to the UInterface derived companion object.
Construct a new instance of the object
Owning module
Construct a new instance of the object
Header file being compiled
Outer object
Line number where object is defined
Represents a UPackage in the engine
Unique index of the package
Engine package flags
Construct a new instance of a package
Source module of the package
Name of the package
Assorted package flags
Collection of UHT only flags associated with properties
Property should be exported as public
Property should be exported as private
Property should be exported as protected
The BlueprintPure flag was set in software and should not be considered an error
If true, the property has a getter function
If true, the property has a setter function
If true, the getter has been disabled in the specifiers
If true, the setter has been disabled in the specifiers
If true, the getter function was found
If true, the property has a setter function
Property is marked as a field notify
If true, the property should have a generated getter function
If true, the property should have a generated setter function
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
The context of the property.
Function parameter for a function that isn't marked as NET
Function parameter for a function that is marked as NET
Function return value
Class or a script structure member property
Helper methods for the property category
Return the hint text for the property category
Property category
The user facing hint text
Unexpected category
Allocator used for container
Default allocator
Memory image allocator
Type of pointer
No pointer specified
Native pointer specified
Type of reference
Property is not a reference
Property is a const reference
Property is a non-const reference
Options that customize the properties.
No property options
Don't automatically mark properties as CPF_Const
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
Property capabilities. Use the caps system instead of patterns such as "Property is UhtObjectProperty"
No property caps
If true, the property will be passed by reference when generating the full type string
If true, the an argument will need to be added to the constructor
If true, the property type can be TArray or TMap value
If true, the property type can be a TSet or TMap key
True if the property can be instanced
True if the property can be exposed on spawn
True if the property can have a config setting
True if the property allows the BlueprintAssignable flag.
True if the property allows the BlueprintCallable flag.
True if the property allows the BlueprintAuthorityOnly flag.
True to see if the function parameter property is supported by blueprint
True to see if the member property is supported by blueprint
True if the property supports RigVM
True if the property should codegen as an enumeration
True if the property should codegen as an array
True if the property should codegen as a byte enumeration
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
Text can be formatted in different context with slightly different results
Generic type
Generic function argument or return value
Generic function argument or return value implementation (specific to booleans and will always return "bool")
Class function argument or return value
Event function argument or return value
Interface function argument or return value
Sparse property declaration
Sparse property short name
Class or structure member
Members of the event parameters structure used by code generation to invoke events
Members of the event parameters structure used by code generation to invoke functions
Instance of the property is being constructed
Used to get the type argument for a function thunk. This is used for P_GET_ARRAY_*
If the P_GET macro requires an argument, this is used to fetch that argument
Used to get the return type for function thunks
Basic RigVM type
Type expected in a getter/setter argument list
Type expected from a getter
Type expected as a setter argument
Extension methods for the property text type
Test to see if the text type is for a function
Type of text
True if the text type is a function
Test to see if the text type is for a getter retVal or setter argType
Type of text
True if the text type is a retVal or argType
Specifies how the PGet argument type is to be formatted
Property member context provides extra context when formatting the member declaration and definitions.
The outer/owning structure
The outer/owning structure source name. In some cases, this can differ from the OuterStruct.SourceName
Name of the statics block for static definitions for the outer object
Prefix to apply to declaration names
Suffix to add to the declaration name
Return the hash code for a given object
Object in question
Hash code
Return the singleton name for the given object
Object in question
If true, the singleton that returns the registered object is returned.
Singleton function name
Property settings is a transient object used during the parsing of properties
For nested properties, this points to the parent
The root settings for a nested property
Source name of the property
Engine name of the property
Verse name of the property
Property's meta data
Property outer object
Line number of the property declaration
Property category
Engine property flags
Property flags not allowed by the context of the property parsing
UHT specified property flags
#define scope of where the property exists
Allocator used for containers
Options for property parsing
Property pointer type
Replication notify name
If set, the array size of the property
Getter method
Setter method
Default value of the property
If true, the property is a bit field
Construct a new, uninitialized version of the property settings
Construct property settings based on the property settings for a parent container
Parent container property
Name of the property
Message site used to construct meta data object
Reset the property settings. Used on a cached property settings object
Outer/owning type
Line number of property
Category of property
Property flags that are not allowed
Reset property settings based on the given property. Used to prepare a cached property settings for parsing.
Source property
Property options
Thrown if the input property doesn't have an outer
Represents FProperty fields
Collection of recognized casts when parsing array dimensions
Collection of invalid names for parameters
Standard object flags for properties
Prefix used when declaring P_GET_ parameters
Simple native CPP type text. Will not include any template arguments
P_GET_ macro name
If true, then references must be passed without a pointer
Type of the PGet argument if one is required
Verse name of the property
Property category
Engine property flags
Capabilities of the property. Use caps system instead of testing for specific property types.
Engine flags that are disallowed on this property
UHT specified property flags
Reference type of the property
Pointer type of the property
Allocator to be used with containers
Replication notify name
Fixed array size
Property setter
Property getter
Default value of property
If true, this property is a bit field
Return the engine name without and 'b' prefixes
If true, the property is a fixed/static array
If true, the property is editor only
Return the root property for the given property. If the property is outside of a container,
return the property itself. Otherwise, return the property associated with the container.
Construct a new property
Outer type of the property
Line number where property was declared
Construct a new property
Property settings from parsing
Internal version of AppendText. Don't append any text to the builder to get the default behavior
Destination builder
Text type of where the property is being referenced
If true, this property is a template arguments
Destination builder
Append the full declaration including such things as property name and const requirements
Destination builder
Text type of where the property is being referenced
If true, do not include the property name
Destination builder
Append the required code to declare the properties meta data
Output builder
Current context
Name of the property. This is needed in some cases where the name in the declarations doesn't match the property name.
Suffix to the property name
Number of tabs prefix the line with
Output builder
Append the required code to declare the property as a member
Output builder
Current context
Name of the property. This is needed in some cases where the name in the declarations doesn't match the property name.
Suffix to the property name
Number of tabs prefix the line with
Output builder
Append the required code to declare the property as a member
Output builder
Current context
Name of the property. This is needed in some cases where the name in the declarations doesn't match the property name.
Suffix to the property name
Number of tabs prefix the line with
Structure name
Output builder
Append the required code to define the property as a member
Output builder
Context of the call
Name of the property. This is needed in some cases where the name in the declarations doesn't match the property name.
Suffix to the property name
Offset of the property
Number of tabs prefix the line with
Output builder
Append the required start of code to define the property as a member
Output builder
Context of the call
Name of the property. This is needed in some cases where the name in the declarations doesn't match the property name.
Suffix to the property name
Offset of the property
Number of tabs prefix the line with
Structure name
Structure flags
If true, add the offset parameter
Output builder
Append the required end of code to define the property as a member
Output builder
Context of the call
Name of the property. This is needed in some cases where the name in the declarations doesn't match the property name.
Suffix to the property name
Output builder
Append the a type reference to the member definition
Output builder
Context of the call
Referenced object
True if the registered singleton name is to be used
True if a "nullptr" is to be appended if the object is null
Output builder
Append the required code to add the properties to a pointer array
Output builder
Context of the call
Name of the property. This is needed in some cases where the name in the declarations doesn't match the property name.
Suffix to the property name
Number of tabs prefix the line with
Output builder
Append a P_GET macro
Destination builder
Destination builder
Append the text for a function thunk call argument
Output builder
Output builder
Apppend the name of a function thunk paramter
Output builder
Output builder
Append the appropriate values to initialize the property to a "NULL" value;
Return the basic declaration type text for user facing messages
Return the RigVM type
Appends any applicable objects and child properties
Output builder
Initial length of the builder prior to appending the hashes
Context used to lookup the hashes
Fetch the mangled name for a property
True if the name needed to be mangled, false if not.
Parse a default value for the property and return a sanitized string representation.
All tokens in the token reader must be consumed. Otherwise the default value will be considered to be invalid.
Reader containing the default value
Sanitized representation of default value
True if a default value was parsed.
Check properties to see if any instances are referenced.
This method does NOT cache the result.
If true, the ScanForInstancedReferenced method on the properties will also be called.
Validate the property settings
The outer structure for the property. For properties inside containers, this will be the owning struct of the container
Outer most property being validated. For properties in containers,
this will be the container property. For properties outside of containers or the container itself, this will be the property.
Validate that we don't reference any deprecated classes
Verify function argument
Validate member settings
Containing struct. This is either a UhtScriptStruct or UhtClass
Validation options
Generate an error if the class has been deprecated
Class to check
Check to see if the property is valid as a member of a networked structure
The property referencing the structure property. All error should be logged on the referencing property.
True if the property is valid, false if not. If the property is not valid, an error should also be generated.
Test to see if this property references something that requires the argument to be marked as const
If const is required, returns the type that is forcing the const
True if the argument must be marked as const
Test to see if the property contains any editor only properties. This does not
test to see if the property itself is editor only. This is implemented for struct properties.
Collect the references for the property. This method is used by container properties to
collect the contained property's references.
Reference collector
If true, this is a property in a container
Return a string of all the forward declarations.
This method should be removed once C++ UHT is removed.
This information can be collected via CollectReferences.
Enumerate all reference types. This method is used exclusively by FindNoExportStructsRecursive
Type enumerator
Determines whether or not GC barriers need to run after passing this to a function
True if GC barriers need to run
Customization point for subclasses for NeedsGCBarrierWhenPassedToFunction
True if GC barriers need to run
Generate a new name suffix based on the current suffix and the new suffix
Current suffix
Suffix to be added
Combination of the two suffixes
Test to see if the two properties are the same type
Other property to test
True if the properies are the same type
Test to see if the two properties are the same type and ConstParm/OutParm flags somewhat match
The other property to test
Assorted StringBuilder extensions for properties
Add the given property text
Destination builder
Property in question
Type of text to append
If true, this is a template argument property
Destination builder
Append the member declaration
Destination builder
Property in question
Context of the property
Property name
Name suffix
Number of tabs in the formatting
Destination builder
Append the member definition
Destination builder
Property in question
Context of the property
Property name
Name suffix
Offset of the property in the parent
Number of tabs in the formatting
Destination builder
Append the member pointer
Destination builder
Property in question
Context of the property
Property name
Name suffix
Number of tabs in the formatting
Destination builder
Append the full declaration including such things as const, *, and &
Destination builder
Property in question
Type of text to append
If true, don't append the parameter name
Destination builder
Append the function thunk parameter get
Destination builder
Property in question
Destination builder
Append the function thunk parameter array type
Destination builder
Property in question
Destination builder
Append the function thunk parameter argument
Destination builder
Property in question
Destination builder
Append the function thunk return
Destination builder
Property in question
Destination builder
Append the function thunk parameter name
Destination builder
Property in question
Destination builder
Append the sparse type
Destination builder
Property in question
Destination builder
Append the property's null constructor arg
Destination builder
Property in question
If true this is in an initializer context.
Destination builder
Append the replication notify function or a 'nullptr'
Destination builder
Property in question
Destination builder
Append the parameter flags
Destination builder
Property flags
Destination builder
Append the property array dimensions as a CPP_ARRAY_DIM macro or '1' if not a fixed array.
Destination builder
Property in question
Context of the property
Destination builder
Given an object, append the hash (if applicable) to the builder
Output builder
Type asking for an object hash
Initial length of the builder prior to appending the hashes
Context used to lookup the hashes
Object being appended
Destination builder
Given an object, append the hash (if applicable) to the builder
Output builder
Type asking for an object hash
Context used to lookup the hashes
Object being appended
Destination builder
Append the object hashes for all referenced objects
Destination builder
Property in question
Context of the property
Destination builder
Append the singleton name for the given type
Destination builder
Context of the property
Type to append
If true, append the registered type singleton.
Destination builder
Append the getter wrapper name
Destination builder
Property in question
Destination builder
Append the setter wrapper name
Destination builder
Property in question
Destination builder
Flags to represent information about a RigVM parameter
No RigVM flags
"Constant" metadata specified
"Input" metadata specified
"Output" metadata specified
"Singleton" metadata specified
Set if the property is editor only
Set if the property is an enum
Set if the property is an array
Set if the property is an enum as byte
Computes the value lazily
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
The FRigVMParameter represents a single parameter of a method
marked up with RIGVM_METHOD.
Each parameter can be marked with Constant, Input or Output
metadata - this struct simplifies access to that information.
Property associated with the RigVM parameter
Name of the property
Type of the property
Cast name
Cast type
Flags associated with the parameter
True if the parameter is marked as "Constant"
True if the parameter is marked as "Input"
True if the parameter is marked as "Output"
True if the parameter is marked as "Singleton"
True if the parameter is editor only
True if the parameter is an enum
True if the parameter is an enum as byte
True if the parameter should be computed lazily
True if the parameter is an array
Create a new RigVM parameter from a property
Source property
Parameter index. Used to create a unique cast name.
Create a new parameter
Name of the parameter
Type of the parameter
Get the name of the parameter
If true, return the cast name
Parameter name
Get the type of the parameter
If true, return the cast type
If true, return the wrapped lazy type as needed
Parameter type
Get the full declaration (type and name)
If true, return the cast type
If true, return the cast name
Parameter declaration
Return the base type without any template arguments
If true, return the cast type
Base parameter type
Template arguments of the type or type if not a template type.
If true, return the cast type
Template arguments of the type
Return the type with a const reference
If true, return the cast type
Type with a const reference
Return the type with a reference
If true, return the cast type
Type with a reference
Return the type without reference
If true, return the cast type
Type without the reference
Return the type as a reference
If true, return the cast type
Type as a reference
Return the type wrapped with a lazy struct as needed
The type to wrap with a lazy struct
If true the type will be wrapped as needed
Type wrapped as needed
Return a variable declaration for the parameter
If true, return the cast type
If true, return the cast name
Parameter as a variable declaration
True if the parameter is constant
True if the parameter is constant
Return true if the parameter requires a cast
True if the parameter requires a cast
Return true if the parameter is an execute context
True if the parameter is an execute context
A single info dataset for a function marked with RIGVM_METHOD.
This struct provides access to its name, the return type and all parameters.
Return type of the method
Name of the method
Method parameters
If the method has a return value, return "return". Otherwise return nothing.
Prefix required for the return value
Whether or not this method is a predicate.
True if this method is a predicate
An info dataset providing access to all functions marked with RIGVM_METHOD
for each struct.
True if the GetUpgradeInfoMethod was found.
True if the GetNextAggregateNameMethod was found.
Engine name of the owning script struct
The name of the execute context to use for this struct's RigVM methods
The name of a member on the struct providing an execute context
List of the members
List of the methods
Series of flags not part of the engine's script struct flags that affect code generation or verification
No export flags
"HasDefaults" specifier present
"HasNoOpConstructor" specifier present
"IsAlwaysAccessible" specifier present
"IsCoreType" specifier present
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
Represents the USTRUCT object
Script struct engine flags
UHT only script struct falgs
Line number where GENERATED_BODY/GENERATED_USTRUCT_BODY macro was found
RigVM structure info
True if the struct has the "HasDefaults" specifier
True if the struct has the "IsAlwaysAccessible" specifier
True if the struct has the "IsCoreType" specifier
True if the struct has the "HasNoOpConstructor" specifier
Super struct
Construct a new script struct
Header being parsed
Outer type
Line number of the definition
Represents a source file in UHT
The session associated with the source
The full file path
The file name
The contents of the source file
If this source is from a fragment, the original source file
If this source is from a fragment, the starting line of the fragment
Full file path of the source file
Construct a new instance of a source file
The owning session
The full file path
Read the contents of the source file
Base class for all types that contain properties and functions.
Also support the ability to specifier super class and base classes
Generated code version of the type. Set via specifiers
Return a collection of children that are properties
NOTE: This method allocates memory to construct the enumerator. In code
invoked a large number of times, the loop should be written directly into
the code and not use this method. Also, the Linq version performs even
worse.
Return a collection of children that are functions
NOTE: This method allocates memory to construct the enumerator. In code
invoked a large number of times, the loop should be written directly into
the code and not use this method. Also, the Linq version performs even
worse.
Super type
Base types
Super identifier
Base identifiers
Super struct type
Stack used to test to see if we are recursing in a ScanForInstanceReferenced call
Construct a new instance
Header file being parsed
Outer type
Line number where definition begins
Test to see if the given struct is derived from the base structure
Base structure.
True if the given structure is the specified base or derives from the base. If the base is null, the false is returned.
Check properties to see if any instances are referenced.
This method does NOT cache the result.
If true, the ScanForInstancedReferenced method on the properties will also be called.
Check properties to see if any instances are referenced.
This method does NOT cache the result.
If true, the ScanForInstancedReferenced method on the properties will also be called.
Resolve super identifier
Token that represent the super
Find options to restrict types
Thrown if super can not be found
Resolve bases. Unlike super, this routine will not generate an error if the type can not be found.
Having unrecognized types is expected.
Collection of bases
Options to restrict types being searched
Enumeration for all the different engine types
Type is a package (UhtPackage)
Type is a class (UhtClass)
Type is an interface (UhtClass)
Type is a native interface (UhtClass)
Type is a script struct (UhtScriptStruct)
Type is an enumeration (UhtEnum)
Type is a function (UhtFunction)
Type is a delegate (UhtFunction)
Type is a property (UhtProperty)
Collection of extension methods used to query information about the type
Get the name of the type where shared distinctions aren't made between different class and function types.
The engine type in question
Lowercase name
If the requested type isn't supported
Get the name of the type where shared distinctions aren't made between different class and function types.
The engine type in question
Capitalized name
If the requested type isn't supported
Get the name of the type
The engine type in question
Lowercase name
If the requested type isn't supported
Get the name of the type
The engine type in question
Capitalized name
If the requested type isn't supported
Return true if the type must be unique in the symbol table
Type in question
True if it must be unique
Find options to be used when attempting to find a duplicate name
Type in question
Find options to be used for search
Return true if the type must not be a reserved name.
Type in question
True if the type must not have a reserved name.
Return true if the type should be added to the engine symbol table
Type in question
True if the type should be added to the symbol table
Return true if the children of the type should be added to the symbol table
Type in question
True if children should be added
Convert the engine type to find options
Engine type
Find options
Engine type is invalid
Options to customize how symbols are found
Search using the engine name. This is the default if neither engine/source is specified.
Search using the source name. This can not be set if EngineName is also set.
Search for UhtEnum types
Search for UhtScriptStruct types
Search for UhtClass types
Search for UhtFunction types that are delegate functions
Search for UhtFunction types that are not delegate functions
Search for UhtProperty types
Search for any properties or functions
Do not search the super chain
Do not search the outer chain
Do not search include files
Do not do a last resort global namespace search
Do not search the children of the starting point
Only search the parent chain
Search only the children of the starting type
Case compare (usually for SourceName searches)
Caseless compare (usually for EngineName searches)
Mask of name flags
Mask of type flags
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
Options during validation checks
No validation options
Test to see if any referenced types have been deprecated. This should not
be set when the parent object or property has already been marked as deprecated.
Test to see if the name of the property conflicts with another property in the super chain
The property is part of a key in a TMap
The property is part of a value in a TArray, TSet, or TMap
The property is either a key or a value part of a TArray, TSet, or TMap
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
#define scope where the type was defined. This only includes macros such as WITH_EDITOR, WITH_EDITORONLY_DATA, and WITH_VERSE_VM.
Not all types support the given options.
The scope is invalid. Used during code generation.
Exists outside of a define scope
Exists inside of a WITH_EDITORONLY_DATA block
Exists inside of a WITH_VERSE_VM block
Number of unique scope combinations
Helper methods for testing flags. These methods perform better than the generic HasFlag which hits
the GC and stalls.
Test to see if any of the specified flags are set
Current flags
Flags to test for
True if any of the flags are set
Test to see if all of the specified flags are set
Current flags
Flags to test for
True if all the flags are set
Test to see if a specific set of flags have a specific value.
Current flags
Flags to test for
Expected value of the tested flags
True if the given flags have a specific value.
Access specifier for type
No access specifier seen
Public type
Private type
Protected type
Requested resolve phase
Initial resolve phase
Check for any type that is invalid. Invalid items will be removed from the children.
Used to detect things that looked like native interfaces but no interface was found
Resolve any super references
Resolve property types that reference other types
Final resolve phase for anything that needs fully resolved properties.
Extension methods of UhtResolvePhase
Returns true if the phase should execute multi-threaded.
Phase to be tested
True if the phase should execute multi-threaded
Flags for required documentation
A tool tip must be defined
Functions must have a tool tip
Property members must have a tool tip
Function parameters must have a tool tip
Float properties must have a range specified
Base type for all UHT types.
These mostly map to UnrealEngine types.
Empty list of type used when children are requested but no children have been added.
All UHT runs are associated with a given session. The session holds all the global information for a run.
UHT module of the package (1 to 1 relationship)
The header file containing the type
Every type in a session is assigned a unique, non-zero id.
The outer object containing this type. For example, the header file would be the outer for a class defined in the global scope.
The owning package of the type
The name of the type as it appears in the source file
The name of the type as used by the engines type system. If not set, will default to the source name
Simple enumeration that can be used to detect the different types of objects
The name of the engine's class for this type
Return true if the type has been deprecated
The line number of where the definition began
#define scope where the type was defined
If true, the type has not been marked as invalid.
Return a combination of the engine type name followed by the path name of the type
Return the path name of the type which includes all parent outer objects excluding the header file
Return the name of the documentation policy to be used
Return the specifier validation table to be used to validate the meta data on this type
Meta data associated with the type
Children types of this type
Helper to string method
Construct the base type information. This constructor is used exclusively by UhtPackage which is at
the root of all type hierarchies.
Construct instance of the type given a parent type.
Header file being parsed
The outer type of the type being constructed. For example, a class defined in a given header will have the header as the outer.
The line number in the source file where the type was defined.
Optional meta data to be associated with the type.
Add a type as a child
The child to be added.
Non-virtual method that always adds the child directly to the child list
Child to be added
Move all children from the given source type to this type
Source of the children
Resolve the type. To customize behavior, override ResolveSuper, ResolveSelf, or ResolveChildren.
Resolution phase
False if the type fails any invalid checks during InvalidPhase check.
Resolve any super types
Resolution phase
Resolve self
Resolution phase
False if the type fails any invalid checks during InvalidPhase check.
Resolve children
Resolution phase
Helper method to resolve a list of types
Children to resolve
Phase of the resolve
Remove any invalid children that were previously marked bad. This is only
executed on a UhtPackage
Resolve all the super and base structures and classes
Find the given type in the type hierarchy
Options controlling what is searched
Name of the type.
If supplied, then a error message will be generated if the type can not be found
Source code line number requesting the lookup.
The located type of null if not found
Find the given type in the type hierarchy
Options controlling what is searched
Name of the type.
If supplied, then a error message will be generated if the type can not be found
The located type of null if not found
Find the given type in the type hierarchy
Options controlling what is searched
Enumeration of identifiers.
If supplied, then a error message will be generated if the type can not be found
Source code line number requesting the lookup.
The located type of null if not found
Find the given type in the type hierarchy
Options controlling what is searched
Enumeration of identifiers.
If supplied, then a error message will be generated if the type can not be found
Source code line number requesting the lookup.
The located type of null if not found
Validate the type settings
Validation options
Updated validation options. This will be used to validate the children.
Validate the documentation policy
The expected documentation policy
Validate the given type. Validates itself and the children
Type to validate
Validation options
Return the path name of the type which includes the outers
Destination builder
Type to stop at when generating the path
Get the full type name which is the engine class name followed by the path name
Destination builder
Finds the localized display name or native display name as a fallback.
The display name for this object.
Finds the localized tooltip or native tooltip as a fallback.
Look for a shorter version of the tooltip (falls back to the long tooltip if none was specified)
The tooltip for this object.
Collect all the references for the type
Object collecting the references
String builder extensions for UhtTypes
Append all of the outer names associated with the type
Output string builder
Outer to be appended
Output string builder
Rent and return pooled buffers
Rent a new buffer
Minimum size of the buffer
Return a buffer
Buffer being returned
Pooled buffers
THe backing array
Memory region sized to the requested size
Return true if we have a pool block
Create a pool buffer
Array block
Size of the requested block
The backing array. The size of the array will normally be larger than the requested size.
Reset the memory region to the given size
Helper class for using pattern to borrow and return a buffer.
The borrowed buffer
Borrow a buffer with the given size
The size to borrow
Return the borrowed buffer to the cache
Collection of helper methods to convert string builder to borrow buffers
Return a buffer initialized with the string builder.
Source builder content
Buffer that should be returned with a call to Return
Return a buffer initialized with the string builder sub string.
Source builder content
Starting index in the builder
Length of the content
Buffer that should be returned with a call to Return
Cached character buffer system.
Invoke UhtBuffer.Borrow method to get a buffer of the given size.
Invoke UhtBuffer.Return to return the buffer to the cache.
Any requests of the given size or smaller will be placed in bucket zero with the given size.
Adjustment to the bucket index to account for the minimum bucket size
Total number of supported buckets
Bucket lookaside list
The bucket index associated with the buffer
Single list link to the next cached buffer
The backing character block. The size of the array will normally be larger than the
requested size.
Memory region sized to the requested size
Construct a new buffer
The initial size of the buffer
The bucket associated with the buffer
The size all blocks in this bucket
Reset the memory region to the given size
Borrow a new buffer of the given size
Size of the buffer
Buffer that should be returned with a call to Return
Return a buffer initialized with the string builder.
Source builder content
Buffer that should be returned with a call to Return
Return a buffer initialized with the string builder sub string.
Source builder content
Starting index in the builder
Length of the content
Buffer that should be returned with a call to Return
Return the buffer to the cache. The buffer should no longer be accessed.
The buffer to be returned.
Internal helper to allocate a buffer
The initial size of the buffer
The bucket associated with the buffer
The size all blocks in this bucket
The allocated buffer
Helper class for using pattern to borrow and return a buffer.
The borrowed buffer
Borrow a buffer with the given size
The size to borrow
Borrow a buffer populated with the builder contents
Initial contents of the buffer
Borrow a buffer populated with the builder contents
Initial contents of the buffer
Starting index into the builder
Length of the data in the builder
Return the borrowed buffer to the cache
Cached character buffer system.
Invoke UhtBuffer.Borrow method to get a buffer of the given size.
Invoke UhtBuffer.Return to return the buffer to the cache.
Any requests of the given size or smaller will be placed in bucket zero with the given size.
Adjustment to the bucket index to account for the minimum bucket size
Total number of supported buckets
Bucket lookaside list
The bucket index associated with the buffer
Single list link to the next cached buffer
The backing character block. The size of the array will normally be larger than the
requested size.
Memory region sized to the requested size
Construct a new buffer
The initial size of the buffer
The bucket associated with the buffer
The size all blocks in this bucket
Reset the memory region to the given size
Borrow a new buffer of the given size
Size of the buffer
Buffer that should be returned with a call to Return
Return the buffer to the cache. The buffer should no longer be accessed.
The buffer to be returned.
Internal helper to allocate a buffer
The initial size of the buffer
The bucket associated with the buffer
The size all blocks in this bucket
The allocated buffer
Helper class for using pattern to borrow and return a buffer.
The borrowed buffer
Borrow a buffer with the given size
The size to borrow
Return the borrowed buffer to the cache
Describes whether issues will generate warnings or errors
An error will be generated.
Ignore the issue.
Log a warning.
Interface for accessing configuration data. Since UnrealBuildTool depends on EpicGames.UHT and all
of the configuration support exists in UBT, configuration data must be accessed through an interface.
Default version of generated code. Defaults to oldest possible, unless specified otherwise in config.
Pointer warning for native pointers in the engine
Pointer warning for object pointers in the engine
Pointer warning for native pointers in engine plugins
Pointer warning for object pointers in engine plugins
Pointer warning for native pointers outside the engine
Pointer warning for object pointers outside the engine
If true, deprecation warnings should be shown
If true, UObject properties are enabled in RigVM
If true, UInterface properties are enabled in RigVM
Behavior for when generated headers aren't properly included in engine code.
Behavior for when generated headers aren't properly included in non-engine code.
Behavior for when enum underlying types aren't set for engine code.
Behavior for when enum underlying types aren't set for non engine code.
Collection of all known documentation policies
Default documentation policy to be used if none is specified
If the token references a remapped identifier, update the value in the token
Token to be remapped
Return the remapped key or the existing key
Key to be remapped.
Resulting key name
True if the key has been remapped and has changed.
Test to see if the given units are valid.
Units to test
True if the units are valid, false if not
Test to see if the structure name should be using a "T" prefix.
Name of the structure to test without any prefix.
True if the structure should have a "T" prefix.
Test to see if the given macro has a parameter count as part of the name.
Macro to test
-1 if the macro does not contain a parameter count. The number of parameters minus one.
Get the parameter count string associated with the given index
Index from a prior call to FindDelegateParameterCount or -1.
Parameter count string or an empty string if Index is -1.
Test to see if the exporter is enabled
Name of the exporter
True if the exporter is enabled, false if not
Compiler exception that immediately stops the processing of the current header file.
The generated message
Internal do nothing constructor
Exception with a simple message. Context will be the current header file.
Text of the error
Exception with a simple message. Context from the given message site.
Site generating the exception
Text of the error
Addition context to be appended to the error message
Make an exception to be thrown
Message site to be associated with the exception
Line number of the error
Text of the error
Addition context to be appended to the error message
Exception where the current token isn't what was expected
Make a parsing error for when there is a mismatch between the expected token and what was parsed.
Message site to be associated with the exception
The parsed token. Support for EOF also provided.
What was expected.
Extra context to be appended to the error message
The exception object to throw
Format any extra context supplied by the caller or the message site
Additional caller supplied context
Internal compiler error exception
Exception with a simple message. Context will be the current header file.
Text of the error
Delegate invoked by a factory
Invoking factory
Factory object used to generate export tasks
Session being run
If this exporter is from a plugin, this points to the module of the plugin
Create a task
Tasks that must be completed prior to this task running
Action to be invoked to generate the output(s)
Task object or null if the task was immediately executed.
Create a task
Action to be invoked to generate the output(s)
Task object or null if the task was immediately executed.
Commit the contents of the string builder as the output.
If you have a string builder, use this method so that a
temporary buffer can be used.
Destination file path
Source for the content
Commit the value of the string as the output
Destination file path
Output to commit
Make a path for an output based on the header file name.
Header file being exported.
Suffix to be added to the file name.
Output file path
Make a path for an output based on the module name.
Module being exported
Suffix to be added to the file name.
Output file path
Make a path for the given file name and extension. This is only valid for plugins.
Name of the file
Extension to add to the file
Output file path
Add an external dependency to the given file path
External dependency to add
Collection of helper methods to emulate UHT string functions
Delimiter between the subobjects
Test to see if the string is a boolean
Boolean to test
True if the value is true
Test to see if the string is a boolean
Boolean to test
True if the value is true
Test to see if the character is a digit
Character to test
True if it is
Test to see if the character is an alphabet character
Character to test
True if it is
Test to see if the character is a digit or alphabet character
Character to test
True if it is
Test to see if the character is a hex digit (A-F)
Character to test
True if it is
Test to see if the character is a hex digit (0-9a-f)
Character to test
True if it is
Test to see if the character is whitespace
Character to test
True if it is
Test to see if the character is a sign
Character to test
True if it is
Test to see if the character is a hex marker (xX)
Character to test
True if it is
Test to see if the character is a float marker (fF)
Character to test
True if it is
Test to see if the character is an exponent marker (eE)
Character to test
True if it is
Test to see if the character is an unsigned marker (uU)
Character to test
True if it is
Test to see if the character is a long marker (lL)
Character to test
True if it is
Test to see if the span is a numeric value
Span to test
True if it is
Test to see if the character is a linebreak character
Character to test
True if it is
Return an unescaped string
Text to unescape
Resulting string
Replace tabs to spaces in a string containing only a single line.
Input string
Number of spaces to exchange for tabs
Due to a bug in UE ConvertTabsToSpacesInline, any \n is considered part of the line length.
Resulting string or the original string if the string didn't contain any spaces.
Replace tabs to spaces in a string containing zero or more lines.
Input string to convert
Number of spaces to exchange for tabs
Due to a bug in UE ConvertTabsToSpacesInline, any \n is considered part of the line length.
Initial tab index
Destination string builder
Interface used to read/write files
Return the full file path for a partial path
The partial file path
The full file path
Read the given source file
File path
Read fragment information
True if the file was read
Read the given source file
File path
Buffer containing the read data or null if not found. The returned buffer must be returned to the cache via a call to UhtBuffer.Return
Read the given source file
File path
Read output
True if the file was read
Write the given contents to the file
Path to write to
Contents to write
True if the source was written
Rename the given file
Old file path name
New file path name
True if the file was renamed
Implementation of a file manager that reads/writes from disk
Construct a new file manager
Read the given source file
Full file path
Contents of the file
True if the file was read, false if not
Get the encoding and number of bytes to skip at the start of the buffer
Bytes to scan for a BOM
Number of bytes to skip
The encoding
Support for generating hash values using the existing UHT algorithms
Start the hash computation
Add a span of text to the current hash value
Return the final hash value
Final hash value
Generate the hash value for a block of text
Text to hash
Hash value
JSON converter to output the meta data
Read the JSON value
Source reader
Type to convert
Serialization options
Read value
Write the JSON value
Destination writer
Value being written
Serialization options
JSON converter to output the source name of a type
Read the JSON value
Source reader
Type to convert
Serialization options
Read value
Write the JSON value
Destination writer
Value being written
Serialization options
Read/Write type source name for an optional type value
Read the JSON value
Source reader
Type to convert
Serialization options
Read value
Write the JSON value
Destination writer
Value being written
Serialization options
Read/Write type list source name for an optional type value
Read the JSON value
Source reader
Type to convert
Serialization options
Read value
Write the JSON value
Destination writer
Value being written
Serialization options
Serialize a list of types
Read the JSON value
Source reader
Type to convert
Serialization options
Read value
Write the JSON value
Destination writer
Value being written
Serialization options
Serialize a nullable list of types
Read the JSON value
Source reader
Type to convert
Serialization options
Read value
Write the JSON value
Destination writer
Value being written
Serialization options
Type of message
The message is an error and goes to the log and console
The message is a warning and goes to the log and console
The message is for information only and goes to the log and console
The message is for debugging and goes to the log only
The message is an informational message about deprecated patterns
The message is an internal error and goes to the log and console
A message session is the destination object for all generated messages
Add the given message
The message to be added
A message source represents the source file where the message occurred.
File path of the file being parsed
The full file path of being parsed
If true, the source is a source fragment from the testing harness
If this is a fragment, this is the container file path of the fragment
If this is a fragment, this is the container full file path of the fragment
If this is a fragment, this is the line number in the container file where the fragment is defined.
A message site can automatically provide a line number where the site was defined
in the source. If no line number is provided when the message is created or if the
site doesn't support this interface, the line number of '1' will be used.
Line number where the type was defined.
This interface provides a mechanism for things to provide more context for an error
Enumeration of objects to add as extra context.
A message site is any object that can generate a message. In general, all
types are also message sites. This provides a convenient method to log messages
where the type was defined.
Destination message session for the messages
Source file generating messages
Optional line number where type was defined
Represents a UHT message
The type of message
Optional message source for the message. Either the MessageSource or FilePath must be set.
Optional file path for the message. Either the MessageSource or FilePath must be set.
Line number where error occurred.
Text of the message
Make a new message with the given settings
Type of message
Source of the message
File path of the message
Line number where message occurred
Text of the message
Created message
Format an object to be included in a message
Contextual object
Formatted context
Append message context
Destination builder
Extra context to append
If true, always include the separator
A placeholder message site
Creates a message site from a message session interface and a message source interface
Create a simple message site for the given session and source
Associated message session
Source for the messages
Simple message site for the given file.
Create a simple file site
Associated message session
File associated with the site
Series of extensions for message sites.
Get the line number generating the error
The message site generating the error.
An override line number
Either the overriding line number or the line number from the message site.
Log an error
Message site associated with the message
Line number of the error
Text of the error
Addition context to be appended to the error message
Log an error
Message site associated with the message
Text of the error
Addition context to be appended to the error message
Log a warning
Message site associated with the message
Line number of the warning
Text of the warning
Addition context to be appended to the error message
Log a warning
Message site associated with the message
Text of the warning
Addition context to be appended to the error message
Log a message directly to the log
Message site associated with the message
Line number of the information
Text of the information
Addition context to be appended to the error message
Log a message directly to the log
Message site associated with the message
Text of the information
Addition context to be appended to the error message
Log information
Message site associated with the message
Line number of the information
Text of the information
Addition context to be appended to the error message
Log a information
Message site associated with the message
Text of the information
Addition context to be appended to the error message
Log deprecation
Message site associated with the message
Line number of the information
Text of the information
Addition context to be appended to the error message
Log a deprecation
Message site associated with the message
Text of the information
Addition context to be appended to the error message
Log a message
Type of the message being generated
Message site associated with the message
Line number of the information
Text of the information
Addition context to be appended to the error message
Thread based message context. Used to improve performance by avoiding allocations.
Add an extra context
Pop the top most extra context
Get the extra context associated with this thread
Extra context
Get the extra context interface
Extra context interface
A "using" object to automate the push/pop of extra context to the thread's current extra context
Construct a new entry
Extra context to be added
Replace the extra context. This replaces the top level context and thus
can have unexpected results if done when a more deeper context has been added
New extra context
Dispose the object and auto-remove the added context
Collection of common name strings
Interface used to collect all the objects referenced by a given type.
Not all types such as UhtPackage and UhtHeaderFile support collecting
references due to assorted reasons.
Add a cross module reference to a given object type.
Object type being referenced
If true, the method being invoked must return the registered object. This only applies to classes.
Add an object declaration
Object in question
If true, the method being invoked must return the registered object. This only applies to classes.
Add a field as a singleton for exporting
Field to be added
Add a field as a type being exported
Field to be added
Add a forward declaration. The string can contain multiple declarations but must only exist on one line.
The declarations to add
Delegate used to fetch the string associated with a reference
Index of the referenced object
If true return the registered string, otherwise the unregistered string. Classes have an unregistered version.
The requested string
Maintains a list of referenced object indices.
Collection use to quickly detect if a reference is already in the collection
List of all unique reference keys. Use UngetKey to get the object index and the flag.
Return an encoded key that represents the object and registered flag.
If the object has the alternate object set (i.e. native interfaces), then
that object's index is used to generate the key.
Object being referenced
If true, then the API that ensures the object is registered is returned.
Integer key value.
Given a key, return the object index and registered flag
The key in question
Index of the referenced object
True if referencing the registered API.
Add the given object to the references
Object to be added
True if the registered API is being returned.
Return the collection of references sorted by the API string returned by the delegate.
Delegate to invoke to return the requested object API string
Read only memory region of all the string.
Standard implementation of the reference collector interface
Collection of unique cross module references
Collection of unique declarations
Collection of singletons
Collection of types to export
Collection of forward declarations
Collection of referenced headers
Add a cross module reference
Object being referenced
True if the object being referenced must be registered
Add a declaration
Object being declared
True if the object being declared must be registered
Add a singleton. These are added as forward declared functions in the package file.
Field being added
Add a type to be exported.
Type to be exported
Add a symbol that must be forward declared
Symbol to be forward declared.
To support the testing framework, source files can be containing in other source files.
A source fragment represents this possibility.
When not null, this source comes from another source file
The file path of the source
The line number of the fragment in the containing source file.
Data of the source file
Implementation of the export factory
UHT session
Module associated with the plugin
Limiter for the number of files being saved to the reference directory.
The OS can get swamped on high core systems
Requesting exporter
UHT Session
Plugin module
Collection of error from mismatches with the reference files
List of export outputs
Directory for the reference output
Directory for the verify output
Collection of external dependencies
Create a new instance of the export factory
UHT session
Plugin module
Exporter being run
Commit the contents of the string builder as the output.
If you have a string builder, use this method so that a
temporary buffer can be used.
Destination file path
Source for the content
Commit the value of the string as the output
Destination file path
Output to commit
Create a task to export two files
Tasks that must be completed prior to this task running
Action to be invoked to generate the output
Task object or null if the task was immediately executed.
Create a task to export two files
Action to be invoked to generate the output
Task object or null if the task was immediately executed.
Given a header file, generate the output file name.
Header file
Suffix/extension to be added to the file name.
Resulting file name
Given a package file, generate the output file name
Module
Suffix/extension to be added to the file name.
Resulting file name
Make a path for an output based on the package output directory.
Name of the file
Extension to add to the file
Output file path
Add an external dependency to the given file path
External dependency to add
Helper method to test to see if the output has changed.
Name of the output file
Name of the temporary file
Exported contents of the file
Run the output exporter
Given an output, rename the output file from the temporary file name to the final file name.
If there exists a current final file, it will be replaced.
The output file to rename
Given a directory and a list of known files, delete any unknown file that matches of the supplied filters
Output directory to scan
Collection of known output files not to be deleted
Test to see if the given filename (without directory), matches one of the given filters
File name to test
List of wildcard filters
True if there is a match
UHT supports the exporting of two reference output directories for testing. The reference version can be used to test
modification to UHT and verify there are no output changes or just expected changes.
Do not export any reference output files
Export the reference copy
Export the verify copy and compare to the reference copy
Session object that represents a UHT run
Helper class for returning a sequence of auto-incrementing indices
Current number of types
Get the next type index
Index starting at zero
The number of times GetNext was called.
Pair that represents a specific value for an enumeration
Collection of reserved names
Logger interface.
Interface used to read/write files
Location of the engine code
If set, the name of the project file.
Optional location of the project
Root directory for the engine. This is usually just EngineDirectory without the Engine directory.
Directory to store the reference output
Directory to store the verification output
Mode for generating and/or testing reference output
If true, warnings are considered to be errors
If true, include relative file paths in the log file
If true, use concurrent tasks to run UHT
If any output file mismatches existing outputs, an error will be generated
If true, no output files will be saved
If true, cull the output for any extra files
If true, include extra output in code generation
If true, disable all exporters which would normally be run by default
If true, cache any error messages until the end of processing. This is used by the testing
harness to generate more stable console output.
Collection of UHT tables
Configuration for the session
Manifest file
Manifest data from the manifest file
Collection of modules from the manifest
Collection of header files from the manifest. The header files will also appear as the children
of the packages
Collection of header files topologically sorted. This will not be populated until after header files
are parsed and resolved.
Dictionary of stripped file name to the header file
After headers are parsed, returns the UObject class.
After headers are parsed, returns the UClass class.
After headers are parsed, returns the UInterface class.
After headers are parsed, returns the IInterface class.
After headers are parsed, returns the AActor class. Unlike such properties as "UObject", there
is no requirement for AActor to be defined. May be null.
After headers are parsed, return the INotifyFieldValueChanged interface. There is no requirement
that this interface be defined.
After headers are parsed, returns the FInstancedStruct script struct. Unlike such properties as
"UObject", there is no requirement for FInstancedStruct to be defined. May be null.
After headers are parsed, returns the FStateTreePropertyRef script struct.
There is no requirement for FStateTreePropertyRef to be defined. May be null.
The number of errors
The number of warnings
True if any errors have occurred or warnings if warnings are to be treated as errors
Constructor
Logger for the session
Return the index for a newly defined type
New index
Return the number of types that have been defined. This includes all types.
Return the index for a newly defined packaging
New index
Return the number of headers that have been defined
Return the index for a newly defined package
New index
Return the number of UPackage types that have been defined
Return the index for a newly defined object
New index
Return the total number of UObject types that have been defined
Return the collection of exporters
Return the keyword table for the given table name
Name of the table
The requested table
Return the specifier table for the given table name
Name of the table
The requested table
Return the specifier validator table for the given table name
Name of the table
The requested table
Generate an error for the given unhandled keyword
Token reader
Unhandled token
Test to see if the given class name is a property
Name of the class without the prefix
True if the class name is a property. False if the class name isn't a property or isn't an engine class.
Return the loc text default value associated with the given name
Loc text default value handler
Return the default processor
Return the property type associated with the given name
Property type if matched
Fetch the default sanitizer
Return the structure default value associated with the given name
Structure default value handler
Run UHT on the given manifest. Use the bHasError property to see if process was successful.
Path to the manifest file
Try the given action. If an exception occurs that doesn't have the required
context, use the supplied context to generate the message. If a previous error
has occured, the action will not be executed
Message context for when the exception doesn't contain a context.
The lambda to be invoked
Try the given action. If an exception occurs that doesn't have the required
context, use the supplied context to generate the message.
Message context for when the exception doesn't contain a context.
The lambda to be invoked
Execute the given action on all the headers
Action to be executed
If true, go wide if enabled. Otherwise single threaded
Execute the given action on all the headers
Action to be executed
If true, go wide if enabled. Otherwise single threaded
Read the given source file
Full or relative file path
Information about the read source
Read the given source file
Full or relative file path
Buffer containing the read data or null if not found. The returned buffer must be returned to the cache via a call to UhtBuffer.Return
Read the given source file
Full or relative file path
Read source file
True if the file was read
Write the given contents to the file
Path to write to
Contents to write
True if the source was written
Rename the given file
Old file path name
New file path name
Given the name of a regular enum value, return the enum type
Enum value
Associated regular enum type or null if not found or enum isn't a regular enum.
Find the given type in the type hierarchy
Starting point for searches
Options controlling what is searched
Name of the type.
If supplied, then a error message will be generated if the type can not be found
Source code line number requesting the lookup.
The located type of null if not found
Find the given type in the type hierarchy
Starting point for searches
Options controlling what is searched
Name of the type.
If supplied, then a error message will be generated if the type can not be found
The located type of null if not found
Find the given type in the type hierarchy
If specified, this represents the starting type to use when searching base/owner chain for a match
Options controlling what is searched
Enumeration of identifiers.
If supplied, then a error message will be generated if the type can not be found
Source code line number requesting the lookup.
The located type of null if not found
Find the given type in the type hierarchy
If specified, this represents the starting type to use when searching base/owner chain for a match
Options controlling what is searched
Enumeration of identifiers.
If supplied, then a error message will be generated if the type can not be found
Source code line number requesting the lookup.
The located type of null if not found
Find the given type in the type hierarchy
Starting point for searches
Options controlling what is searched
First name of the type.
Second name used by delegates in classes and namespace enumerations
The located type of null if not found
Find the given type in the type hierarchy
Starting point for searches
Options controlling what is searched
Name of the type.
The located type of null if not found
Verify that the options are valid. Will also check to make sure the symbol table has been populated.
Find options
Generate an error message for when a given symbol wasn't found. The text will contain the list of types that the symbol must be
Destination for the message
Line number generating the error
Collection of required types
The name of the symbol
Search for the given header file by just the file name
Name to be found
Add a message to the collection of output messages
Message being added
Register than an error has happened
Log all the collected messages to the log/console. If messages aren't being
cached, then this just waits until the flush task has completed. If messages
are being cached, they are sorted by file name and line number to ensure the
output is stable.
Flush all pending messages to the logger
Log the given message
The message to be logged
Return all of the messages into a list
List of all the messages
Given an existing and a new instance, replace the given type in the symbol table.
This is used by the property resolution system to replace properties created during
the parsing phase that couldn't be resoled until after all headers are parsed.
Hide the given type in the symbol table
Return an ordered enumeration of all messages.
Enumerator
Extract the part of a message
Message being consider
Full path of file where error happened
Line number where error happened
For multi-part files (test harness), the inner file
Severity of the error
Text of the message
Handle the given exception with the provided message context
Context for the exception. Required to handled all exceptions other than UHTException
Exception being handled
Validate that the given referenced script structure is valid for network operations. If the structure
is valid, then the result will be cached. It not valid, errors will be generated each time the structure
is referenced.
The property referencing a structure
The script structure being referenced
Enable/Disable an exporter. This overrides the default state of the exporter.
Name of the exporter
If true, the exporter is to be enabled
Test to see if the given exporter plugin is enabled.
Name of the plugin
If true, include a target check
True if enabled
String of tabs used to generate code with proper indentation
String of spaces used to generate code with proper indentation
Names of meta data entries that will not appear in shipping builds for game code
Append tabs to the builder
Destination builder
Number of tabs to insert
Destination builder
Thrown if the number of tabs is out of range
Append spaces to the builder
Destination builder
Number of spaces to insert
Destination builder
Thrown if the number of spaces is out of range
Append a name declaration to the builder
Destination builder
Name prefix
Name
Optional name suffix
Destination builder
Append a name declaration to the builder
Destination builder
Property context used to get the name prefix
Name
Optional name suffix
Destination builder
Append a name definition to the builder
Destination builder
Optional name of the statics block which will be output in the form of "StaticsName::"
Name prefix
Name
Optional name suffix
Destination builder
Append a name definition to the builder
Destination builder
Property context used to get the statics name and name prefix
Name
Optional name suffix
Destination builder
Append the meta data parameters. This is intended to be used as arguments to a function call.
Destination builder
Source type containing the meta data
Optional name of the statics block which will be output in the form of "StaticsName::"
Name prefix
Name
Optional name suffix
Suffix to be added to the meta data name
Destination builder
Append the meta data parameters. This is intended to be used as arguments to a function call.
Destination builder
Source type containing the meta data
Optional name of the statics block which will be output in the form of "StaticsName::"
Name
Destination builder
Append the meta data parameters. This is intended to be used as arguments to a function call.
Destination builder
Source type containing the meta data
Property context used to get the statics name and name prefix
Name
Optional name suffix
Destination builder
Append the meta data declaration.
Destination builder
Source type containing the meta data
Name prefix
Name
Optional name suffix
Optional meta data name suffix
Number of tabs to indent
Destination builder
Append the meta data declaration
Destination builder
Source type containing the meta data
Property context used to get the statics name and name prefix
Name
Optional name suffix
Number of tabs to indent
Destination builder
Append the given text as a UTF8 encoded string
Destination builder
If false, don't encode the text but include a nullptr
Text to include or an empty string if null.
Destination builder
Append the given text as a UTF8 encoded string
Destination builder
Text to be encoded
Destination builder
Encode a single UTF32 value as UTF8 characters
Destination builder
Character to encode
Destination builder
Append the given name of the class but always encode interfaces as the native interface name (i.e. "I...")
Destination builder
Class to append name
Destination builder
Class has an unexpected class type
Provides a cache of StringBuilders
Cache of StringBuilders with large initial buffer sizes
Cache of StringBuilders with small initial buffer sizes
Capacity of the cache
Initial buffer size for new StringBuilders. Resetting StringBuilders might result
in the initial chunk size being smaller.
Stack of cached StringBuilders
Create a new StringBuilder cache
Maximum number of StringBuilders to cache
Initial buffer size for newly created StringBuilders
Borrow a StringBuilder from the cache.
Return a StringBuilder to the cache
The builder being returned
Structure to automate the borrowing and returning of a StringBuilder.
Use some form of a "using" pattern.
Owning cache
Borrowed string builder
Borrow a string builder from the given cache
String builder cache
Return the string builder to the cache
Symbol table
Represents symbol name lookup chain start. Symbol chains are based on
the caseless name.
The type index of the symbol
When searching the caseless chain, the cased index is used to match the symbol based
on the case named.
Entry in the symbol table
The type associated with the symbol
Mask of different find options which will match this symbol
The case lookup index for matching by case
The next index in the symbol change based on cassless lookup
The last index in the chain. This index is only used when the symbol entry is also acting as the list
Number of unique cased symbol names.
Case name lookup table that returns the symbol index and the case index
Caseless name lookup table that returns the symbol index
Collection of symbols in the table
Constructs a new symbol table.
Number of types in the table.
Add a new type to the symbol table
The type being added
The name of the type which could be the source name or the engine name
Replace an entry in the symbol table. This is used during property resolution to replace the
parser property (which could not resolve the property prior to the symbol table being created)
with the fully resolved property.
The old type being replaced.
The new type.
The name of the type.
Thrown if the symbol wasn't found.
Hide the given type in the symbol table
Type to be hidden
The name of the type.
Thrown if the symbol wasn't found.
Lookup the given name using cased string compare.
Starting type used to limit the scope of the search.
Options controlling what is search and what is returned.
Name to locate.
Found type or null if not found.
Lookup the given name using caseless string compare.
Starting type used to limit the scope of the search.
Options controlling what is search and what is returned.
Name to locate.
Found type or null if not found.
Lookup the given name.
Starting type used to limit the scope of the search.
Options controlling what is search and what is returned.
Starting lookup location.
Found type or null if not found.
Lookup the given name using the super class/struct chain.
Starting type used to limit the scope of the search.
Options controlling what is search and what is returned.
Starting lookup location.
Found type or null if not found.
Lookup the given name using the outer chain
Starting type used to limit the scope of the search.
Options controlling what is search and what is returned.
Starting lookup location.
Found type or null if not found.
Lookup the given name
Matching owner.
Options controlling what is search and what is returned.
Starting lookup location.
Found type or null if not found.
Lookup the given name
Header file being searched.
Options controlling what is search and what is returned.
Starting lookup location.
Found type or null if not found.
Add a new type to the given symbol chain
Type being added
Cased index
Symbol index
Test to see if the given symbol matches the options
Options to match
Symbol index
Case index
True if the symbol is a match
Defines all the table names for the standard UHT types
The class base table is common to UCLASS, UINTERFACE and native interfaces
Table for UCLASS
Default table applied to all other tables
Table for UENUM
Table for all types considered a UField
Table for all functions
Table for the global/file scope
Table for UINTERFACE
Table for interfaces
Table for all UObject types
Table for properties that are function arguments
Table for properties that are struct/class members
Table for USTRUCT
Table for all UStruct objects (structs, classes, and functions)
Base class for table lookup system.
This table inherits entries for the given table
Name of the table
User facing name of the table
Check to see if the table is internal
If true, this table has been implemented and not just created on demand by another table
Internal version of the user name. If it hasn't been set, then the table name will be used
Merge the lookup table. Duplicates will be ignored.
Base table being merged
Given a method name, try to extract the entry name for a table
Class containing the method
Method information
Optional name supplied by the attributes. If specified, this name will be returned instead of extracted from the method name
Required suffix
The extracted name or the supplied name
Lookup tables provide a method of associating actions with given C++ keyword or UE specifier
Keyword or specifier information
Lookup dictionary for the specifiers
Construct a new table
Add the given value to the lookup table. It will throw an exception if it is a duplicate.
Key to be added
Value to be added
Attempt to fetch the value associated with the key
Lookup key
Value associated with the key
True if the key was found, false if not
Merge the lookup table. Duplicates will be ignored.
Base table being merged
A collection of lookup tables by name.
Table type
Collection of named tables
The name of the group of tables
Create a new group of tables
The name of the group
Given a table name, return the table. If not found, a new one will be added with the given name.
The name of the table to return
The table associated with the name.
Create a table with the given information. If the table already exists, it will be initialized with the given data.
The name of the table
The user facing name of the name
The parent table name used to merge table entries
If true, the table is internal and won't be visible to the user.
The created table
Merge the contents of all parent tables into their children. This is done so that the
parent chain need not be searched when looking for table entries.
Thrown if there are problems with the tables.
Bootstraps the standard UHT tables
Enumeration that specifies if the table is a specifier and/or keyword table
A keyword table will be created
A specifier table will be created
Create all of the standard scope tables.
UHT tables
Creates a series of tables given the supplied setup
UHT tables
Name of the table.
Name presented to the user via error messages.
Types of tables to be created.
Name of the parent table or null for none.
If true, this table will not be included in any error messages.
This attribute must be applied to any class that contains other UHT attributes.
If specified, this method will be invoked once during the scan for attributes.
It can be used to perform some one time initialization.
UnrealHeaderTool avoids hard coding any table contents by using attributes to add entries to the tables.
There are two basic styles of tables in UHT.
The first style is just a simple association of a string and an attribute. For example,
the engine class table is just a collection of all the engine class names supported by the engine.
The second style is a table of tables. Depending on the context (i.e. is a "class" or "function"
being parsed), attributes will "extend" a given table adding an entry to that table and every
table the derives from that table. For example, the Keywords table will add "private" to the
"ClassBase" table. Since the "Class", "Interface", and "NativeInterface" tables derive from
"ClassBase", all of those tables will contain the keyword "private".
See UhtTables.cs for a list of table names and how they relate to each other.
Tables are implemented in the following source files:
UhtEngineClassTable.cs - Collection of all the engine class names.
UhtKeywordTable.cs - Collection of the C++ keywords that UHT understands.
UhtLocTextDefaultValueTable.cs - Collection of loctext default value parsing
UhtPropertyTypeTable.cs - Collection of the property type keywords.
UhtSpecifierTable.cs - Collection of the known specifiers
UhtSpecifierValidatorTable.cs - Collection of the specifier validators
UhtStructDefaultValueTable.cs - Collection of structure default value parsing
Collection of specifier tables
Collection of specifier validator tables
Collection of keyword tables
Collection of property types
Collection of structure default values
Collection of engine class types
Collection of exporters
Collection loc text default values
Construct a new table collection
Add a collection of plugin assembly file paths
Collection of plugins to load
Check to see if the assembly is a UHT plugin
Path to the assembly file
Load the given assembly from the file path
Path to the file
Assembly if it is already loaded or could be loaded
Locate the assembly by name
Name of the assembly
Assembly or null
Check for UHT attributes on all types in the given assembly
Assembly to scan
For the given type, look for any table related attributes
Type in question
Extensions to List that provides some uniqueness support to list elements
Add the given value if it isn't already contained within the list
Destination container
Value to be added
True if the value was added, false if it was already present
Add the given values if they aren't already contained within the list
Destination container
Values to be added
Remove the given value but swap the last entry into the eliminated slot
Container being modified
Value to be removed
True if the value was removed, false if not
Remove a range of values from a container using swapping
Container to be modified
List of values to be removed
UnrealEngine names often differ from the names in the source file. The following
structure represents the different parts of the name
Any prefix removed from the source name to create the engine name
The name to be used by the Unreal Engine.
The name contained the "DEPRECATED" text which has been removed from the engine name
Assorted utility functions
Given a collection of names, return a string containing the text of those names concatenated.
Collect of names to be merged
Text used to separate the names
If true, add quotes around the names
Merged names
Split the given source name into the engine name parts
Source name
Resulting engine name parts
String builder class that has support for StringView so that if a single instance of
a StringView is appended, it is returned.
When only a string view has been appended, this references that StringView
Represents more complex data being appended
Set to true when the builder has switched to a StringBuilder (NOTE: This can probably be removed)
The length of the appended data
Return the appended data as a StringView
Contents of the builder
Return the appended data as a string
Contents of the builder
Append a StringView
Text to be appended
The string builder
Append a character
Character to be appended
The string builder
If not already done, switch the builder to using a StringBuilder
Helper structure used to compute UE style CRC values
Compute a crc from the given string and an initial CRC value
Text used to generate CRC
Initial CRC values
Compute CRC value
Compute a crc from the given string and an initial CRC value
Text used to generate CRC
Initial CRC values
Compute CRC value
Helper structure for verse name mangling
If required, generate the mangled name for a cased name
Name to be mangled
True if the name needed to be mangled, false if not.