public virtual bool VisitEnter(NamespaceDescriptor ns)
 {
     return(true);
 }
Beispiel #2
0
        public override bool VisitEnter(NamespaceDescriptor ns)
        {
            currentNamespace = ns.Name;

            return(base.VisitEnter(ns));
        }
Beispiel #3
0
        public override bool VisitLeave(NamespaceDescriptor ns)
        {
            currentNamespace = null;

            return(base.VisitLeave(ns));
        }
 public override bool VisitEnter(NamespaceDescriptor ns)
 {
     nowQueue = true;
     return(base.VisitEnter(ns));
 }
 public override bool VisitLeave(NamespaceDescriptor ns)
 {
     nowQueue = false;
     return(base.VisitLeave(ns));
 }
 internal PrimitiveTypeDescriptor(string name, NamespaceDescriptor nameSpace)
     : base(name, nameSpace)
 {
 }
 public void OnLeave(NamespaceDescriptor node)
 {
     _namespaces.Pop();
 }
 public void OnEnter(NamespaceDescriptor node)
 {
     _namespaces.Push(_converter(Namespace, node));
 }
Beispiel #9
0
        /// <summary></summary>
        protected virtual ISerializer CreateCompilerSerializer()
        {
            // Convert namespace, assembly and version to use the compiler classes.
            ISerializer Serializer = new Serializer();
            Dictionary <NamespaceDescriptor, NamespaceDescriptor> NamespaceOverrideTable = new Dictionary <NamespaceDescriptor, NamespaceDescriptor>();

            NamespaceOverrideTable.Add(new NamespaceDescriptor("BaseNode", "*", "*", "*", "*"), NamespaceDescriptor.DescriptorFromType(typeof(IRoot)));
            Serializer.NamespaceOverrideTable   = NamespaceOverrideTable;
            Serializer.OverrideGenericArguments = false;

            return(Serializer);
        }
Beispiel #10
0
        private static void processNamespace(NamespaceDesc ns, NamespaceDescriptor namespaceDescriptor)
        {
            if (ns.Items != null)
            {
                foreach (var t in ns.Items)
                {
                    if (t is Composite composite)
                    {
                        var descriptor = namespaceDescriptor.CreateCompositeType(composite.name);
                        if (composite.Field != null)
                        {
                            foreach (var field in composite.Field)
                            {
                                var newField = descriptor.AddField(field.name, field.type, field.isCollectionSpecified && field.isCollection);
                                if (field.AttachedData != null)
                                {//TODO hack for boolean values
                                    field.AttachedData.Select(_ => new KeyValuePair <string, object>(_.key, _.value == "True" ? (object)true : _.value)).ToList().ForEach(_ => newField.AttachedData.Add(_));
                                }
                            }
                        }
                    }
                    else
                    {
                        if (t is Primitive primitive)
                        {
                            var descriptor = namespaceDescriptor.CreatePrimitiveType(primitive.name);
                        }
                        else
                        {
                            if (t is Enumeration enumeration)
                            {
                                var descriptor = namespaceDescriptor.CreateEnumerationType(enumeration.name);

                                int i = 0;
                                foreach (var item in enumeration.Item)
                                {
                                    if (item.valueSpecified)
                                    {
                                        descriptor.AddItem(item.name, item.value);
                                        i = item.value;
                                    }
                                    else
                                    {
                                        descriptor.AddItem(item.name, i);
                                    }
                                    ++i;
                                }
                            }
                            else
                            {
                                throw new Exception("Unknown type");
                            }
                        }
                    }
                }
            }

            if (ns.Namespace != null)
            {
                foreach (var n in ns.Namespace)
                {
                    processNamespace(n, namespaceDescriptor.GetOrCreateNamespace(n.name));
                }
            }
        }