public static IList <Inferred> Infer(Module module, Node node, Scope scope, bool global) { return(new Engine(module, global).Infer(node, scope)); }
public static IList <FunctionInfo> InferMethods(Module module, SymbolId name, Scope scope) { return(new Engine(module, false).InferMethods(name, scope)); }
public static IList <Inferred> Infer(Module module, Node node, Scope scope) { return(Infer(module, node, scope, true)); }
public static Engine Create(Module module, bool global) { return(new Engine(module, global)); }
private Engine(Module module, bool global) { this.module = module; this.global = global; }
public void Infer(Module module) { Engine e = Engine.Create(module, false); IList<Inferred> left = e.Infer(fe.Target, anchor); if (left != null) { foreach (Inferred inf in left) { InferredClass ic = inf as InferredClass; if (ic != null) { ic.Define(fe.Name, new IndirectDefinition(rhs, anchor)); } } } }
private Module DoAnalyze(Modules modules, string name, Statement root) { GlobalSuite global = new GlobalSuite(root); module = new Module(modules, name, global, scopes); ModuleScope modsc; module.ModuleScope = modsc = new ModuleScope(module, null, global); PushScope(modsc); root.Walk(this); foreach (FieldAssignment fer in this.fields) { fer.Infer(module); } return module; }