예제 #1
0
        protected override void VisitTypeStructClassNode(TypeStructClassNode node)
        {
            switch (node)
            {
            case StructNode s:
                VisitStructNode(s);
                break;

            case ClassNode c:
                VisitClassNode(c);
                break;
            }
        }
        protected void WalkTypeStructClassNode(TypeStructClassNode node)
        {
            if (node == null)
            {
                return;
            }

            var properties = new List <PropertyNode>();
            var fields     = new List <FieldNode>();
            var methods    = new List <MethodNode>();

            node.Members?.ForEach(m => PrepareMembers(m, properties, fields, methods));

            properties.ForEach(p => VisitPropertyNode(p));
            fields.ForEach(f => VisitFieldNode(f));

            node.Constructors?.ForEach(c => VisitConstructorNode(node.Name, c));

            methods.ForEach(m => VisitMethodNode(m));
        }
 protected virtual void VisitTypeStructClassNode(TypeStructClassNode node)
 {
     WalkTypeStructClassNode(node);
 }