예제 #1
0
 public static PackageContainer CreateContainers(PackageContainer parent, MemberName mn, Location loc, CompilationSourceFile file)
 {
     if (mn.Left != null)
     {
         PackageContainer left    = CreateContainers(parent, mn.Left, loc, file);
         PackageContainer current = new PackageContainer(left, mn.Name, loc, file);
         left.AddChildNamespace(current);
         return(current);
     }
     else
     {
         var c = new PackageContainer(parent, mn.Name, loc, file);
         parent.AddChildNamespace(c);
         return(c);
     }
 }
예제 #2
0
 public EnumDeclaration(TypeContainer parent, FullNamedExpression type, Modifiers mod_flags, MemberName name, VSharpAttributes attrs, CompilationSourceFile file)
     : base(parent, mod_flags, AllowedModifiers, name, attrs, name.Location, TypeKind.Enum, file)
 {
     if (type != null)
     {
         SetBaseTypes(type);
     }
     mod_flags |= Modifiers.SEALED;
 }
 public ClassOrStructDeclaration(TypeContainer ns, Modifiers mods, Modifiers allowed, MemberName name, VSharpAttributes attr, Location l, TypeKind kind, CompilationSourceFile file)
     : base(ns, mods, allowed, name, attr, l, kind, file)
 {
 }
예제 #4
0
 public StructDeclaration(TypeContainer parent, MemberName name, Modifiers mod, VSharpAttributes attrs, Location l, CompilationSourceFile file)
     : base(parent, mod, AllowedModifiers, name, attrs, l, TypeKind.Struct, file)
 {
     mod_flags |= Modifiers.SEALED;
 }
예제 #5
0
 public TypeDeclaration(TypeContainer ns, Modifiers mods, Modifiers allowed, MemberName name, VSharpAttributes attr, Location l, TypeKind kind, CompilationSourceFile file)
     : base(ns, name, l, file)
 {
     if (attr != null)
     {
         this.AddAttributes(attr);
     }
     this.mod_flags = mods;
     this.mod_flags = ModifiersExtensions.Check(allowed, mods, ns.Name == "default" ? Modifiers.INTERNAL : Modifiers.PRIVATE, l, Report);
     this.Kind      = kind;
 }
예제 #6
0
 public ClassDeclaration(PackageContainer parent, MemberName name, Modifiers mod, VSharpAttributes attrs, Location l, CompilationSourceFile file)
     : base(parent, mod, AllowedModifiers, name, attrs, l, TypeKind.Class, file)
 {
 }
예제 #7
0
 private AnonymousTypeClass(CompilationSourceFile f, MemberName name, IList <AnonymousTypeParameter> parameters, Location loc)
     : base(f.RootPackage, name, Modifiers.PUBLIC, f)
 {
     this.parameters = parameters;
 }
예제 #8
0
 protected CompilerGeneratedContainer(TypeContainer parent, MemberName name, Modifiers mod, TypeKind kind, CompilationSourceFile f)
     : base(parent, mod, mod, name, null, Location.Null, kind, f)
 {
     ModFlags = mod | Modifiers.COMPILER_GENERATED | Modifiers.SEALED;
 }
예제 #9
0
 protected CompilerGeneratedContainer(PackageContainer parent, MemberName name, Modifiers mod, CompilationSourceFile f)
     : this(parent, name, mod, TypeKind.Class, f)
 {
 }
예제 #10
0
 public InterfaceDeclaration(TypeContainer parent, MemberName name, Modifiers mod, VSharpAttributes attrs, Location l, CompilationSourceFile file)
     : base(parent, mod, AllowedModifiers, name, attrs, l, TypeKind.Interface, file)
 {
     mod_flags |= Modifiers.ABSTRACT;
 }