module volt.semantic.languagepass

Code Map

module volt.semantic.languagepass;


enum Mode
{
	Normal,
	RemoveConditionalsOnly,
	MissingDeps,
}

//! Default implementation of LanguagePass, replace this if you wish to any
//! of the semantics of the language.
class VoltLanguagePass : LanguagePass
{
public:
	//! Phases fields.
	passes1: Pass[];
	//! Phases fields.
	passes2: Pass[];
	//! Phases fields.
	passes3: Pass[];
	postParseImpl: PostParseImpl;


public:
	this(err: ErrorSink, drv: Driver, ver: VersionSet, target: TargetInfo, settings: Settings, frontend: Frontend, mode: Mode, warnings: bool) { }
	fn close() { }
	//! This functions sets up the pointers to the often used inbuilt classes,
	//! such as object.Object and object.TypeInfo. This needs to be called
	//! after the Driver is fully setup.
	fn setupOneTruePointers() { }
	fn addModule(m: ir.Module) { }
	fn getModule(name: ir.QualifiedName) ir.Module { }
	fn getModules() ir.Module[] { }
	fn startResolving(n: ir.Node) DoneDg { }
	fn startActualizing(n: ir.Node) DoneDg { }
	fn resolve(current: ir.Scope, userAttrs: ir.Attribute[]) { }
	fn resolve(current: ir.Scope, eref: ir.ExpReference) { }
	fn resolve(current: ir.Scope, a: ir.Attribute) { }
	fn resolve(current: ir.Scope, ti: ir.TemplateInstance) { }
	fn resolve(current: ir.Scope, ed: ir.EnumDeclaration) { }
	fn resolve(s: ir.Store) { }
	fn phase1(m: ir.Module) { }
	fn phase2(m: ir.Module) { }
	fn phase3(m: ir.Module) { }
	fn phase1(ms: ir.Module[]) { }
	fn phase2(ms: ir.Module[]) { }
	fn phase3(ms: ir.Module[]) { }
	fn resolve(current: ir.Scope, members: ir.TopLevelBlock) { }


protected:
	fn doResolve(current: ir.Scope, v: ir.Variable) { }
	fn doResolve(current: ir.Scope, func: ir.Function) { }
	fn doResolve(a: ir.Alias) { }
	fn doResolve(e: ir.Enum) { }
	fn doResolve(s: ir.Struct) { }
	fn doResolve(u: ir.Union) { }
	fn doResolve(c: ir.Class) { }
	fn doResolve(i: ir._Interface) { }
	fn doActualize(i: ir._Interface) { }
	fn doActualize(s: ir.Struct) { }
	fn doActualize(u: ir.Union) { }
	fn doActualize(c: ir.Class) { }
}
class VoltLanguagePass : LanguagePass

Default implementation of LanguagePass, replace this if you wish to any of the semantics of the language.

passes1: Pass[]

Phases fields.

passes2: Pass[]

Phases fields.

passes3: Pass[]

Phases fields.

fn setupOneTruePointers()

This functions sets up the pointers to the often used inbuilt classes, such as object.Object and object.TypeInfo. This needs to be called after the Driver is fully setup.