static void add_namespace_directives(List<string> ns, Dictionary<string, string> aliases, ListBox collection) { foreach (string n in ns) { ((IBox)collection).put(new Cons(Symbol.get_symbol(".namespace"), new Cons(n))); } ProperListBox alias_list = new ProperListBox(); foreach (KeyValuePair<string, string> a in aliases) { ((IBox)alias_list).put( new Cons( Symbol.get_symbol(".alias"), new Cons( a.Key, new Cons( new Cons( Abbrev.quote, new Cons(Symbol.get_symbol(a.Value))))))); } ((IBox)collection).put(new Cons(Symbol.get_symbol("aliases:"), alias_list.cons)); }
public bool view_part(Site site, out ISiteseer new_siteseer) { m_count++; if (site.type != null) { object[] attrib = site.type.GetCustomAttributes(typeof(LiteralFieldAttribute), true); if (attrib.Length > 0) { FieldInfo fi = site.type.GetField(((LiteralFieldAttribute)attrib[0]).field); if (fi != null) { m_collection.put(fi.GetValue(site.value)); new_siteseer = null; return true; } } } if (Literal.is_atom_type(site.value)) { new_siteseer = null; if (site.value is Symbol) { m_collection.put(new Cons(Abbrev.quote, new Cons(site.value))); } else /*if (site.value != null)*/ { object[] sitelist = m_parent_type.GetCustomAttributes(typeof(SiteListAttribute), false); if (sitelist.Length > 0 || site.value != null) m_collection.put(site.value); } return true; } else { if (site.type != null) { object[] attrib = site.type.GetCustomAttributes(typeof(RepresentativeFieldAttribute), true); FieldInfo fi; if (attrib.Length > 0) { fi = site.type.GetField(((RepresentativeFieldAttribute)attrib[0]).field); if (fi != null) { object name = fi.GetValue(site.value); if (name != null) { object sym; bool was_defined = m_symtab.TryGetValue(name, out sym); if (was_defined) { if (sym == site.value) { m_collection.put(name); new_siteseer = null; return true; } else { throw new Exception(); } } else { m_symtab.Add(name, site.value); } } } } if (site.value is object[]) { ListBox list = new ListBox(); new_siteseer = new ConstructSiteseer(m_collection, list, m_ns, m_symtab, m_aliases); return true; } else if (site.value is Cons) { m_collection.put(site.value); new_siteseer = null; return true; } else { object[] sitelist = m_parent_type.GetCustomAttributes(typeof(SiteListAttribute), false); string name = resolve(site.type.Namespace, site.type.FullName, site.type.Name); if (site.name != null && sitelist.Length == 0) name = String.Format("{0}#{1}", name, site.name); ProperListBox list = new ProperListBox(); ((IBox)list).put(Symbol.get_symbol(name)); new_siteseer = new ConstructSiteseer(m_collection, list, m_ns, m_symtab, m_aliases); return true; } } else { new_siteseer = null; return true; } } }
static object fn_list(object[] args) { ProperListBox list = new ProperListBox(); foreach (object o in args) { ((IBox)list).put(o); } return list.cons; }