Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
            }
        }