public override Node VisitTypeName(MetaCodeParser.TypeNameContext context)
        {
            var attributes = context.attribute()
                                    .Select(attribute => attribute.Accept(this) as AttributeNode)
                                    .ToArray();

            var identifiers = context.ID()
                                     .Select(id => id.GetText())
                                     .ToArray();
            
            return ExpressionFactory.Type(string.Join(".", identifiers), attributes);
        }
        public override Node VisitMemberExpression(MetaCodeParser.MemberExpressionContext context)
        {
            var ids = context.ID().Select(id => id.GetText()).ToArray();

            return ExpressionFactory.Member(ids);
        }