public void BeginTypeDef(TypeAttr attr, string name, BaseClassRef parent, ArrayList impl_list, Location location, GenericParameters gen_params) { TypeDef outer = null; string cache_name = CacheName(name); if (typedef_stack_top > 0) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < typedef_stack_top; i++) { outer = (TypeDef)typedef_stack [i]; if (i == 0) { /* Use FullName for outermost class to get the * namespace also */ sb.Append(outer.FullName); } else { sb.Append(outer.Name); } sb.Append("/"); } sb.Append(name); cache_name = sb.ToString(); } TypeDef typedef = type_manager[cache_name]; if (typedef != null) { // Class head is allready defined, we are just reopening the class current_customattrtarget = current_typedef = typedef; current_declsectarget = typedef; typedef_stack.Add(current_typedef); typedef_stack_top++; return; } typedef = new TypeDef(attr, current_namespace, name, parent, impl_list, location, gen_params, outer); type_manager[cache_name] = typedef; current_customattrtarget = current_typedef = typedef; current_declsectarget = typedef; typedef_stack.Add(typedef); typedef_stack_top++; }
public void BeginMethodDef(MethodDef methoddef) { if (current_typedef != null) { current_typedef.AddMethodDef(methoddef); } else { global_method_table.Add(methoddef.Signature, methoddef); } current_customattrtarget = current_methoddef = methoddef; current_declsectarget = methoddef; }
public void EndAssemblyRef () { current_assemblyref = null; current_customattrtarget = null; current_declsectarget = null; }
public void BeginAssemblyRef (string name, AssemblyName asmb_name, PEAPI.AssemAttr attr) { current_customattrtarget = current_assemblyref = ExternTable.AddAssembly (name, asmb_name, attr); current_declsectarget = current_assemblyref; }
public void BeginMethodDef (MethodDef methoddef) { if (current_typedef != null) { current_typedef.AddMethodDef (methoddef); } else { global_method_table.Add (methoddef.Signature, methoddef); } current_customattrtarget = current_methoddef = methoddef; current_declsectarget = methoddef; }
public void BeginTypeDef (TypeAttr attr, string name, BaseClassRef parent, ArrayList impl_list, Location location, GenericParameters gen_params) { TypeDef outer = null; string cache_name = CacheName (name); if (typedef_stack_top > 0) { StringBuilder sb = new StringBuilder (); for (int i = 0; i < typedef_stack_top; i++){ outer = (TypeDef) typedef_stack [i]; if (i == 0) /* Use FullName for outermost class to get the namespace also */ sb.Append (outer.FullName); else sb.Append (outer.Name); sb.Append ("/"); } sb.Append (name); cache_name = sb.ToString (); } TypeDef typedef = type_manager[cache_name]; if (typedef != null) { // Class head is allready defined, we are just reopening the class current_customattrtarget = current_typedef = typedef; current_declsectarget = typedef; typedef_stack.Add (current_typedef); typedef_stack_top++; return; } typedef = new TypeDef (attr, current_namespace, name, parent, impl_list, location, gen_params, outer); type_manager[cache_name] = typedef; current_customattrtarget = current_typedef = typedef; current_declsectarget = typedef; typedef_stack.Add (typedef); typedef_stack_top++; }
public void EndAssemblyRef() { current_assemblyref = null; current_customattrtarget = null; current_declsectarget = null; }
public void BeginAssemblyRef(string name, AssemblyName asmb_name, PEAPI.AssemAttr attr) { current_customattrtarget = current_assemblyref = ExternTable.AddAssembly(name, asmb_name, attr); current_declsectarget = current_assemblyref; }