Exemple #1
0
        public override void VisitDeclarationClass(DeclarationClass n)
        {
            _itemIncrementer = 0;
            _currentClass    = new TypeClass(n.Name);
            var classScope = _mgr.PushScope(string.Format("class {0}", _currentClass.ClassName));

            _currentClass.Descriptor = (ClassDescriptor)_mgr.Find(n.Name, p => p is ClassDescriptor);

            if (n.Statements != null)
            {
                CheckSubTree(n.Statements);
            }

            n.Type = _currentClass;

            _currentClass.Descriptor.Scope = _currentClass.Scope = classScope;
            AddCtorIfNone(classScope, n.Name);
            _mgr.PopScope();
        }