Home > Class Reference > ENSLIB namespace > Ens.BPL.CompilerThread


class Ens.BPL.CompilerThread extends %Library.RegisteredObject

This class represents a thread of control within a BPL process and is a detail of implementation of the BPL compiler. Users never need to interact with this class directly

Property Inventory (Including Private)

Method Inventory (Including Private)

Properties (Including Private)

property CatchStack as Ens.BPL.Stack;
Property methods: CatchStackGet(), CatchStackGetSwizzled(), CatchStackIsValid(), CatchStackNewObject(), CatchStackSet()
property ClassDefinition as %Dictionary.ClassDefinition;
Property methods: ClassDefinitionGet(), ClassDefinitionGetObject(), ClassDefinitionGetObjectId(), ClassDefinitionGetSwizzled(), ClassDefinitionIsValid(), ClassDefinitionNewObject(), ClassDefinitionSet(), ClassDefinitionSetObject(), ClassDefinitionSetObjectId(), ClassDefinitionUnSwizzle()
property LabelScopeStack as Ens.BPL.Stack [ Private ];
Property methods: LabelScopeStackGet(), LabelScopeStackGetSwizzled(), LabelScopeStackIsValid(), LabelScopeStackNewObject(), LabelScopeStackSet()

Methods (Including Private)

private method %OnNew(initvalue As %RawString) as %Status [ Language = objectscript ]
Inherited description: This callback method is invoked by the %New() method to provide notification that a new instance of an object is being created.

If this method returns an error then the object will not be created.

It is passed the arguments provided in the %New call. When customizing this method, override the arguments with whatever variables and types you expect to receive from %New(). For example, if you're going to call %New, passing 2 arguments, %OnNew's signature could be:

Method %OnNew(dob as %Date = "", name as %Name = "") as %Status If instead of returning a %Status code this returns an oref and this oref is a subclass of the current class then this oref will be the one returned to the caller of %New method.

method AddBranch(pLabel As %String, pState As %String) [ Language = objectscript ]
Add a branch to the current scope
method AddLabel(pLabel As %String, pState As %String) [ Language = objectscript ]
Add a label to the current scope
method GenerateCode(pCompiler As Ens.BPL.Compiler) as %Status [ Language = objectscript ]
Generate the code for the current scope
method PopLabelScope() [ Language = objectscript ]
Pop the label scope
method PushLabelScope() [ Language = objectscript ]
Push a new scope

Inherited Members

Inherited Methods (Including Private)