Ejemplo n.º 1
0
 public static TemplateConstraint Create(
     string name,
     EntityModifier constraintModifier,
     IEnumerable <FunctionDefinition> functions,
     IEnumerable <NameReference> inherits,
     IEnumerable <NameReference> baseOf)
 {
     return(Create(NameReference.Create(name), constraintModifier, functions, inherits, baseOf));
 }
Ejemplo n.º 2
0
 public static TemplateConstraint Create(
     NameReference name,
     EntityModifier constraintModifier,
     IEnumerable <FunctionDefinition> hasFunctions,
     IEnumerable <NameReference> inherits,
     IEnumerable <NameReference> baseOf)
 {
     return(new TemplateConstraint(name, constraintModifier, hasFunctions, inherits, baseOf));
 }
Ejemplo n.º 3
0
        public bool Has(EntityModifier modifier)
        {
            int count = enum_count;

            for (int i = 0; i < count; ++i)
            {
                if (modifier.flags[i] > 0 && this.flags[i] == 0)
                {
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 4
0
        private TemplateConstraint(
            NameReference name,
            EntityModifier constraintModifier,
            IEnumerable <FunctionDefinition> hasFunctions,
            IEnumerable <NameReference> inherits,
            IEnumerable <NameReference> baseOf)
        {
            if (name == null)
            {
                throw new ArgumentNullException();
            }

            this.Name          = name;
            this.Modifier      = constraintModifier ?? EntityModifier.None;
            this.HasFunctions  = (hasFunctions ?? Enumerable.Empty <FunctionDefinition>()).StoreReadOnly();
            this.InheritsNames = (inherits ?? Enumerable.Empty <NameReference>()).StoreReadOnly();
            this.BaseOfNames   = (baseOf ?? Enumerable.Empty <NameReference>()).StoreReadOnly();

            this.attachPostConstructor();
        }
Ejemplo n.º 5
0
 internal bool SameAccess(EntityModifier other)
 {
     return(this.HasPublic == other.HasPublic &&
            this.HasProtected == other.HasProtected &&
            this.HasPrivate == other.HasPrivate);
 }