Navigation
API > API/Runtime > API/Runtime/VerseCompiler > API/Runtime/VerseCompiler/uLang > API/Runtime/VerseCompiler/uLang/Semantics
Inheritance Hierarchy
- CScope
- CLogicalScope
- CClass
- CClassDefinition
- CScopedAccessLevelDefinition
- CCompatConstraintRoot
- CControlScope
- CEnumeration
- CFunction
- CInterface
- CModule
- CSemanticProgram
- CTypeScope
- CModulePart
- CSnippet
References
| Module | VerseCompiler |
| Header | /Engine/Source/Runtime/VerseCompiler/Public/uLang/Semantics/SemanticScope.h |
| Include | #include "uLang/Semantics/SemanticScope.h" |
Syntax
class CScope
Remarks
A nested scope - program, module or class
Variables
| Type | Name | Description | |
|---|---|---|---|
| EKind | _Kind | If we are a program, module etc. | |
| TSRefArray< CControlScope > | _NestedControlScopes | Nested control scopes. | |
| TSRefArray< CTypeScope > | _NestedTypeScopes | Nested type scopes. | |
| CScope * | _Parent | The enclosing scope for this scope. | |
| CSemanticProgram & | _Program | The semantic program these types belongs to. | |
| TArray< const CDataDefinition * > | _UsingInstances | `using_ declarations referring to implied contexts / receivers | |
| TArray< const CLogicalScope * > | _UsingScopes | `using_ declarations referring to other scopes / modules |
Constructors
| Type | Name | Description | |
|---|---|---|---|
| Delete the generated move/copy constructors so that they don't require full definitions of the types referenced by TSRefArray. | |||
CScope
(
EKind Kind, |
Destructors
| Type | Name | Description | |
|---|---|---|---|
~CScope () |
Functions
| Type | Name | Description | |
|---|---|---|---|
| const CDataDefinition * | AddUsingInstance
(
const CDataDefinition* UsingContext |
Add a local context to infer from a using declaration - return nullptr if added and conflicting context if type/value domain was already previously added. | |
| void | AddUsingScope
(
const CLogicalScope* UsingScope |
Using declarations. | |
| CLogicalScope * | |||
| const CLogicalScope * | Iff this scope is a logical scope, return it a pointer to it. Otherwise, return null. | ||
| bool | CanAccess
(
const CDefinition& Definition, |
Returns whether some definition is accessible from this scope. | |
| bool | Determines whether this scope can access Epic-internal definitions. | ||
| TSRef< CScopedAccessLevelDefinition > | CreateAccessLevelDefinition
(
TOptional< CSymbol > ClassName |
||
| CClassDefinition & | CreateClass
(
const CSymbol& ClassName, |
||
| TSRef< CDataDefinition > | CreateDataDefinition
(
const CSymbol VarName |
||
| TSRef< CDataDefinition > | CreateDataDefinition
(
const CSymbol VarName, |
||
| CEnumeration & | CreateEnumeration
(
const CSymbol& EnumerationName |
||
| TSRef< CFunction > | CreateFunction
(
const CSymbol FunctionName |
||
| CInterface & | CreateInterface
(
const CSymbol& InterfaceName, |
||
| CModule & | CreateModule
(
const CSymbol& ModuleName |
||
| TSRef< CModuleAlias > | CreateModuleAlias
(
const CSymbol Name |
||
| void | CreateNegativeDataDefinition
(
const CDataDefinition& PositiveDataDefinition |
||
| void | CreateNegativeFunction
(
const CFunction& PositiveFunction |
||
| TSRef< CControlScope > | CreateNestedControlScope
(
CSymbol Name |
||
| TSRef< CTypeScope > | |||
| TSRef< CTypeAlias > | CreateTypeAlias
(
const CSymbol Name |
||
| TSRef< CTypeVariable > | CreateTypeVariable
(
const CSymbol Name, |
||
| VisitStampType | Generates a new stamp id. | ||
| CAstCompilationUnit * | |||
| SAccessLevel | |||
| ULANG_FORCEINLINEEKind | GetKind () |
||
| ULANG_FORCEINLINECLogicalScope & | |||
| const CLogicalScope & | Get the innermost logical scope that is or contains this scope. | ||
| CModule * | GetModule () |
||
| const CModule * | GetModule () |
||
| CModulePart * | |||
| const CModulePart * | |||
| const TSRefArray< CControlScope > & | |||
| CAstPackage * | GetPackage () |
||
| const CScope & | If this is a parametric type, get the scope of those parameters; otherwise returns this scope. | ||
| ULANG_FORCEINLINECScope * | |||
| ULANG_FORCEINLINECSemanticProgram & | GetProgram () |
||
| CSymbol | GetScopeName () |
||
| const CScope * | GetScopeOfKind
(
EKind Kind |
||
| CUTF8String | GetScopePath
(
uLang::UTF8Char SeparatorChar, |
||
| const CSnippet * | GetSnippet () |
||
| const TSPtr< CSymbolTable > & | GetSymbols () |
||
| const TArray< const CDataDefinition * > & | |||
| const TArray< const CLogicalScope * > & | |||
| bool | Determines whether this scope was authored by Epic. | ||
| bool | Determines if the definitions in this scope are built-in. | ||
| bool | Determines if this is either a function body or a nested scope within a function body. | ||
| bool | Determines if inside a type scope, ignoring control scope. | ||
| ULANG_FORCEINLINE bool | |||
| bool | Determines if this is a module or snippet scope. | ||
| bool | IsSameOrChildOf
(
const CScope* Other |
Check if this module is the same or a child of another. | |
| const char * | KindToCString
(
EKind Kind |
||
| void | ResolvedDefnsAppend
(
SResolvedDefinitionArray* ResolvedDefns, |
||
| void | ResolvedDefnsAppendWithContext
(
SResolvedDefinitionArray* ResolvedDefns, |
||
| SResolvedDefinitionArray | ResolveDefinition
(
const CSymbol& Name, |
Look for a definition in this scope and all parent scopes and aliases. | |
| const CDefinition * | |||
| const CTypeBase * | ScopeAsType () |