public override ASTN VisitClassDefine([NotNull] ClassDefineContext context)
        {
            ClassNode node = new ClassNode(context)
            {
                features = new List <FeatureNode>(),
                Inherit  = context.TYPE(1) == null ? TypeNode.OBJECT : new TypeNode(context.TYPE(1).Symbol.Line,
                                                                                    context.TYPE(1).Symbol.Column, context.TYPE(1).GetText()),
                type = new TypeNode(context.TYPE(0).Symbol.Line, context.TYPE(0).Symbol.Column, context.TYPE(0).GetText())
            };

            foreach (var feat in context.feature())
            {
                node.features.Add(VisitFeature(feat) as FeatureNode);
            }

            return(node);
        }