FirstSemanticPass

The first pass only declares symbols and handles imports.

Constructors

this
this(Module modul)

Constructs a SemanticPass object.

Members

Functions

enterScope
void enterScope(ScopeSymbol s)
exitScope
void exitScope()
insert
void insert(Symbol s)
void insert(Symbol s, Identifier* name)
void insert(Symbol s, ScopeSymbol ss)

Forwards to SemanticScope.

insertAliasThis
void insertAliasThis(AliasSymbol s)

Appends the AliasSymbol to a list of the current ScopeSymbol. Reports an error if it doesn't support "alias this".

insertOverload
void insertOverload(Symbol s)

Forwards to SemanticScope.

lookForSpecialClasses
void lookForSpecialClasses(ClassDecl d)

Looks for special classes and stores them in a table. May modify d.symbol and assign a SpecialClassSymbol to it.

run
void run()

Runs the semantic pass on the module.

Variables

alignSize
uint alignSize;

Current align size.

imports
ImportDecl[] imports;

Modules to be imported.

linkageType
LinkageType linkageType;

Current linkage type.

modul
Module modul;

The module to be analyzed.

protection
Protection protection;

Current protection attribute.

scop
SemanticScope scop;

Which scope to use for this pass.

storageClass
StorageClass storageClass;

Current storage classes.

Meta