SPPCompiler.SemanticAnalysis.Scoping.Symbols module

class SPPCompiler.SemanticAnalysis.Scoping.Symbols.AliasSymbol(*, name, type, scope=None, is_generic=False, is_direct_copyable=False, visibility=Visibility.Private, convention=None, generic_impl=None, llvm_info=None, scope_defined_in=None, old_sym=None)

Bases: TypeSymbol

old_sym: TypeSymbol
name: Asts.TypeIdentifierAst
type: Optional[Asts.ClassPrototypeAst]
scope: Optional[Scope]
is_generic: bool
is_direct_copyable: bool
visibility: Visibility
convention: Optional[Asts.ConventionAst]
generic_impl: TypeSymbol
llvm_info: Optional[LlvmTypeSymbolInfo]
scope_defined_in: Optional[Scope]
class SPPCompiler.SemanticAnalysis.Scoping.Symbols.NamespaceSymbol(*, name, scope=None)

Bases: BaseSymbol

name: Asts.IdentifierAst
scope: Optional[Scope]
class SPPCompiler.SemanticAnalysis.Scoping.Symbols.VariableSymbol(*, name, type, is_mutable=False, is_generic=False, memory_info=<factory>, visibility=Visibility.Public, llvm_info=None)

Bases: BaseSymbol

name: Asts.IdentifierAst
type: Asts.TypeAst
is_mutable: bool
is_generic: bool
memory_info: MemoryInfo
visibility: Visibility
llvm_info: Optional[LlvmVariableSymbolInfo]
class SPPCompiler.SemanticAnalysis.Scoping.Symbols.TypeSymbol(*, name, type, scope=None, is_generic=False, is_direct_copyable=False, visibility=Visibility.Private, convention=None, generic_impl=None, llvm_info=None, scope_defined_in=None)

Bases: BaseSymbol

name: Asts.TypeIdentifierAst
type: Optional[Asts.ClassPrototypeAst]
scope: Optional[Scope] = None
is_generic: bool = False
is_direct_copyable: bool = False
visibility: Visibility = 2
convention: Optional[Asts.ConventionAst] = None
generic_impl: TypeSymbol = None
llvm_info: Optional[LlvmTypeSymbolInfo] = None
scope_defined_in: Optional[Scope] = None
is_copyable()
Return type:

bool

property fq_name: Asts.TypeAst