private void AddCtorIfNone(Scope classScope, string name) { var ctor = _currentClass.Descriptor.Methods.SingleOrDefault(p => p.Name.Equals(_currentClass.ClassName, StringComparison.OrdinalIgnoreCase)); if (ctor == null) { var func = new TypeFunction(name) { ReturnType = new TypeVoid(), IsConstructor = true, Scope = classScope }; _mgr.AddMethod(name, func, _currentClass); } }
public FirstPass(Node treeNode, ScopeManager mgr) { _root = treeNode; _scopeMgr = mgr; var globalClass = new TypeClass("__global"); globalClass.Descriptor = _scopeMgr.AddClass(globalClass.ClassName, globalClass); //setup built in system methods foreach (var m in InternalMethodManager.Methods) { m.FuncInfo.Scope = _scopeMgr.TopScope; _scopeMgr.AddMethod(m.Name.ToLower(), m.FuncInfo, globalClass, null, true); } }