コード例 #1
0
ファイル: PyCodeModule.cs プロジェクト: isukces/cs2python
        // Private Methods 

        private static void EmitWithNamespace(PyNamespace ns, PySourceCodeEmiter emiter,
                                              PySourceCodeWriter writer,
                                              PyEmitStyle style, IEnumerable <IEmitable> classesInNamespace)
        {
            if (classesInNamespace == null)
            {
                return;
            }
            var inNamespace = classesInNamespace as IEmitable[] ?? classesInNamespace.ToArray();

            if (!inNamespace.Any())
            {
                return;
            }
            style.CurrentNamespace = ns;
            try
            {
                foreach (var cl in inNamespace)
                {
                    cl.Emit(emiter, writer, style);
                }
            }
            finally
            {
                style.CurrentNamespace = null;
            }
        }
コード例 #2
0
        private static Item GetItemForNamespace(List <Item> list, PyNamespace name)
        {
            var item = list.Any() ? list.Last() : null;

            if (item == null || item.Name != name)
            {
                item = new Item(name);
                list.Add(item);
            }

            return(item);
        }
コード例 #3
0
 public Item(PyNamespace Name)
 {
     this.Name = Name;
     Items     = new List <IEmitable>();
     ;
 }