module volt.semantic.context
Code Map
module volt.semantic.context;
class Context
{
public:
lp: LanguagePass;
extyper: Visitor;
isVarAssign: bool;
overrideType: ir.Type;
public:
this(lp: LanguagePass, extyper: Visitor) { }
//! Setup the context from a empty state.
fn setupFromScope(_scope: ir.Scope) { }
//! Reset the context allowing it to be resued.
fn reset() { }
fn current() ir.Scope { }
fn parentFunction() ir.Function { }
fn currentFunction() ir.Function { }
//! Returns how many functions deep this context currently is.
fn functionDepth() u32 { }
fn withExps() ir.Exp[] { }
fn isNested() bool { }
fn isFunction() bool { }
fn lastIndexChild() ir.Exp { }
fn enter(m: ir.Module) { }
fn enter(s: ir.Struct) { }
fn enter(u: ir.Union) { }
fn enter(c: ir.Class) { }
fn enter(i: ir._Interface) { }
fn enter(e: ir.Enum) { }
fn enter(func: ir.Function) { }
fn enter(ti: ir.TemplateInstance) { }
fn enter(bs: ir.BlockStatement) { }
fn leave(m: ir.Module) { }
fn leave(s: ir.Struct) { }
fn leave(u: ir.Union) { }
fn leave(c: ir.Class) { }
fn leave(i: ir._Interface) { }
fn leave(e: ir.Enum) { }
fn leave(func: ir.Function) { }
fn leave(ti: ir.TemplateInstance) { }
fn leave(bs: ir.BlockStatement) { }
//! Keep track of with statements and switch withs.
fn pushWith(exp: ir.Exp) { }
//! Keep track of with statements and switch withs.
fn popWith(exp: ir.Exp) { }
fn enter(postfix: ir.Postfix) { }
fn leave(postfix: ir.Postfix) { }
fn enter(unary: ir.Unary) { }
fn leave(unary: ir.Unary) { }
fn enter(bin: ir.BuiltinExp) { }
fn leave(bin: ir.BuiltinExp) { }
}