Example #1
0
 public CtorHavingType(NestingType nesting, string text, int value, double otherValue)
 {
     Nesting    = nesting;
     Text       = text;
     Value      = value;
     OtherValue = otherValue;
 }
		public CtorHavingType(NestingType nesting, string text, int value, double otherValue)
		{
			Nesting = nesting;
			Text = text;
			Value = value;
			OtherValue = otherValue;
		}
Example #3
0
            private XElement FindDerivedElement(NestingType nestingType, XElement element, String derivedElementName, RegisterSettings defaultRegisterSettings, out RegisterSettings outRegisterSettings)
            {
                string[] derivedSplitNode = derivedElementName.Split('.');
                outRegisterSettings = defaultRegisterSettings;

                XElement derivedElement;

                if (derivedSplitNode.Length == 1)
                {
                    derivedElement = GetDerivedElementFromTheScope(
                        element,
                        element.Parent.Elements(),
                        nestingType,
                        derivedElementName
                        );
                }
                else
                {
                    var derivedPeripheral = GetDerivedElementFromTheScope(
                        element,
                        deviceNode.Element("peripherals").Elements(),
                        NestingType.Peripheral,
                        derivedSplitNode[0]
                        );

                    outRegisterSettings = GetRegisterSettings(derivedPeripheral, defaultRegisterSettings);
                    derivedElement      = derivedPeripheral.Element("registers");

                    // if we are deriving from the cluster we should go through all cluster in the cluster chain,
                    // but if we are deriving from register we should go through all cluster chain but last one.
                    var limit = derivedSplitNode.Length - (nestingType == NestingType.Register ? 1 : 0);
                    for (var i = 1; i < limit; i++)
                    {
                        derivedElement = GetDerivedElementFromTheScope(
                            derivedElement,
                            derivedElement.Elements("cluster"),
                            NestingType.Cluster,
                            derivedSplitNode[i]
                            );
                        var address = CalculateOffset(
                            outRegisterSettings.Address,
                            GetAddressOffset(derivedElement)
                            );
                        outRegisterSettings = GetRegisterSettings(derivedElement, outRegisterSettings, address);
                    }
                    // If we are deriving from the register, we must find this register in the last cluster in the chain.
                    if (nestingType == NestingType.Register)
                    {
                        derivedElement = derivedElement.Elements("register").First(x => x.Element("name").Value == derivedSplitNode[derivedSplitNode.Length - 1]);
                    }
                }
                outRegisterSettings = GetRegisterSettings(derivedElement, outRegisterSettings, defaultRegisterSettings.Address);
                return(derivedElement);
            }
Example #4
0
        public void Inject_references_by_ctor_using_generic_constructor_arguments()
        {
            _ctx.RegisterNamed <CtorHavingType>("test")
            .BindConstructorArg <NestingType>().ToRegistered("nesting");

            _ctx.RegisterNamed <NestingType>("nesting");

            NestingType actual   = _ctx.GetObject <CtorHavingType>("test").Nesting;
            NestingType expected = _ctx.GetObject <NestingType>("nesting");

            Assert.That(actual, Is.SameAs(expected));
        }
Example #5
0
        public void Inject_default_references_by_ctor()
        {
            _ctx.RegisterDefault <CtorHavingType>()
            .BindConstructorArg <NestingType>().ToRegisteredDefault();

            _ctx.RegisterDefault <NestingType>();

            NestingType actual   = _ctx.GetDefaultObject <CtorHavingType>().Nesting;
            NestingType expected = _ctx.GetDefaultObject <NestingType>();

            Assert.That(actual, Is.SameAs(expected));
        }
Example #6
0
        public void Inject_typed_references_by_ctor()
        {
            var nestedRef = _ctx.RegisterNamed <NestingType>("nested").GetReference();

            _ctx.RegisterDefault <CtorHavingType>()
            .BindConstructorArg <NestingType>().ToRegistered(nestedRef);


            NestingType actual   = _ctx.GetDefaultObject <CtorHavingType>().Nesting;
            NestingType expected = _ctx.GetObject <NestingType>("nested");

            Assert.That(actual, Is.SameAs(expected));
        }
Example #7
0
    public void OnDrag(PointerEventData eventData)
    {
        IsBeingDragged         = true;
        bloxTransform.position = eventData.position;


        // If this blox has child bloxes and params, sets their positions in
        // order to drag them also
        RootBlox rootBlox = GetRootBlox();

        if (rootBlox != null)
        {
            float bloxVerticalSpacing = GetVerticalSpacing(rootBlox);
            float identSpacing        = GetIdentSpacing(rootBlox);
            float paramSpacing        = GetParamSpacing(rootBlox);
            // Sets the child blox and params position while dragging, for them to follow this blox
            // Those bloxes nesting is temporarily disabled
            SetChildBloxesPositionOnScreen(this, bloxVerticalSpacing, identSpacing, paramSpacing, false);
        }

        // Verifies if there are collided objects, and if
        // this object can be potentially nested to those
        if (collidedObjects.Count > 0)
        {
            // Although we are saving all the simultaneous collisions
            // We only want this object to nest with the highest ones
            float             maxY           = collidedObjects.Max(c => c.transform.position.y);
            List <GameObject> highestObjects = collidedObjects.Where(c => c.transform.position.y == maxY).Select(a => a.gameObject).ToList();
            ResetHightlight();
            foreach (GameObject collidedObject in highestObjects)
            {
                //If the collided object is a blox, checks if this is nestable to it, and hightlights if it is
                if (GameObjectHelper.HasComponent <ABlox>(collidedObject))
                {
                    NestingType nestingType = collidedObject.GetComponent <ABlox>().DetermineNestingType(this.gameObject);
                    if (nestingType != NestingType.NONE && GameObjectHelper.HasComponent <HighlightableButton>(collidedObject.gameObject))
                    {
                        HighlightableButton hB = collidedObject.gameObject.GetComponent <HighlightableButton>();
                        hB.HighlightButton(HighlightableButton.ButtonHighlight.Info);
                        hightlightableBloxes.Add(hB);
                    }
                }
            }
        }
    }
Example #8
0
    /// <summary>
    /// Checks if object passed can be nested to this one, and returns nesting type
    /// </summary>
    /// <param name="secondObject"></param>
    /// <returns></returns>
    public NestingType DetermineNestingType(GameObject secondObject)
    {
        NestingType nestingType = NestingType.NONE;
        RootBlox    rootBlox    = GetRootBlox();

        if (rootBlox != null && NestingActive)
        {
            if (secondObject.GetComponent <ABlox>() != null && secondObject != null && ValidateNesting(secondObject))
            {
                ABlox         secondObjectBlox   = secondObject.GetComponent <ABlox>();
                Vector2       thisObjectPosition = this.gameObject.transform.position;
                BoundingBox2D thisBBox           = GameObjectHelper.getBoundingBoxInWorld(this.gameObject);
                BoundingBox2D secondObjBBox      = GameObjectHelper.getBoundingBoxInWorld(secondObject);

                float thisObjectWidth  = GameObjectHelper.getWidthFromBBox(thisBBox);
                float thisObjectHeight = GameObjectHelper.getHeightFromBBox(thisBBox);

                //checks if second object top is bellow this object center
                if (secondObjBBox.top.y < thisObjectPosition.y)
                {
                    if (!secondObjectBlox.IsParam && ValidateNestToBottom(secondObject) && MathHelper.IsNearby(secondObjBBox.left.x, thisBBox.left.x, thisObjectWidth / 4))
                    {
                        nestingType = NestingType.BOTTOM;
                    }
                    else if (!secondObjectBlox.IsParam && ValidateNestToBottomIdented(secondObject) && MathHelper.IsNearby(secondObjBBox.left.x, thisBBox.bottom.x, thisObjectWidth / 4))
                    {
                        nestingType = NestingType.BOTTOM_IDENTED;
                    }
                }
                else //if it is above
                {
                    // Checks if the left parth of the second object is near the right part of the first, and verifies if they are kind of aligned
                    if (ValidateNestToTheSide(secondObject) && MathHelper.IsNearby(secondObjBBox.left.y, thisBBox.right.y, thisObjectHeight / 4) &&
                        MathHelper.IsNearby(secondObjBBox.left.x, thisBBox.right.x, thisObjectWidth / 4))
                    {
                        // Nest side to side
                        nestingType = NestingType.SIDE;
                    }
                }
            }
        }
        return(nestingType);
    }
Example #9
0
        public ParserManager(Algorithm algo, NestingType nesting, Unit unit)
            : base()
        {
            switch (algo)
            {
            case Algorithm.LL:
                if (nesting == NestingType.Recursion && unit == Unit.Lexeme)
                {
                    parser = new LexingParser(Grammar);
                }
                else if (nesting == NestingType.Stack && unit == Unit.Character)
                {
                    parser = new StackParser(Grammar);
                }
                break;

            default:
                throw new Exception();
            }
        }
Example #10
0
        public bool IsGlobalType()
        {
            if (!IsNested())
            {
                return(TypeDef.IsPublic);
            }
            switch (TypeDef.Visibility)
            {
            case TypeAttributes.NestedPrivate:
            case TypeAttributes.NestedAssembly:
            case TypeAttributes.NestedFamANDAssem:
                return(false);

            case TypeAttributes.NestedPublic:
            case TypeAttributes.NestedFamily:
            case TypeAttributes.NestedFamORAssem:
                return(NestingType.IsGlobalType());

            default:
                return(false);
            }
        }
Example #11
0
        public bool isGlobalType()
        {
            if (!isNested())
            {
                return(TypeDefinition.IsPublic);
            }
            var mask = TypeDefinition.Attributes & TypeAttributes.VisibilityMask;

            switch (mask)
            {
            case TypeAttributes.NestedPrivate:
            case TypeAttributes.NestedAssembly:
            case TypeAttributes.NestedFamANDAssem:
                return(false);

            case TypeAttributes.NestedPublic:
            case TypeAttributes.NestedFamily:
            case TypeAttributes.NestedFamORAssem:
                return(NestingType.isGlobalType());

            default:
                return(false);
            }
        }
		public string BuildXSD(string xml, NestingType type) 
		{
			generationType = type;
			//Create schema element
			XmlSchema schema = new XmlSchema();
			schema.ElementFormDefault = XmlSchemaForm.Qualified;
			schema.AttributeFormDefault = XmlSchemaForm.Unqualified;
			schema.Version = "1.0";
			//Add additional namespaces using the Add() method shown below
			//if desired
			XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
			ns.Add("xsd", schemaNS);
			ns.Add("xs", "http://www.w3.org/2001/XMLSchema");
			ns.Add("msdata", "urn:schemas-microsoft-com:xml-msdata");
			schema.Namespaces = ns;
            
			//Begin parsing source XML document
			XmlDocument doc = new XmlDocument();
			try 
			{ //Assume string XML
				doc.LoadXml(xml);
			}
			catch 
			{
				try 
				{ //String XML load failed.  Try loading as a file path
					doc.Load(xml);
				}
				catch 
				{
					return "XML document is not well-formed.";
				}
			}

			XmlElement root = doc.DocumentElement;

			//Create root element definition for schema
			//Call CreateComplexType to either add a complexType tag
			//or simply add the necesary schema attributes
			XmlSchemaElement elem = CreateComplexType(root);
			//Add root element definition into the XmlSchema object
			schema.Items.Add(elem);
			//Reverse elements in ArrayList so root complexType appears first
			//where applicable
			complexTypes.Reverse();
			//In cases where the user wants to separate out the complexType tags
			//loop through the complexType ArrayList and add the types to the schema
			foreach(object obj in complexTypes) 
			{
				XmlSchemaComplexType ct = (XmlSchemaComplexType)obj;
				schema.Items.Add(ct);
			}

			//Compile the schema and then write its contents to a StringWriter
			try 
			{
                XmlSchemaSet xss = new XmlSchemaSet();
                xss.Add(schema);
                xss.ValidationEventHandler += new ValidationEventHandler(ValidateSchema);
                xss.Compile();
				StringWriter sw = new StringWriter();
                string retval = sw.ToString();
				schema.Write(sw);
                sw.Flush();
                sw.Close();
                sw.Dispose();
                return retval;
			} 
			catch (Exception exp) 
			{
				return exp.Message;
			}
		}
Example #13
0
 public CtorHavingType(NestingType nesting)
     : this(nesting, null, 0)
 {
 }
Example #14
0
 public CtorHavingType(NestingType nesting, string text, int value)
     : this(nesting, text, value, 0.0)
 {
 }
		public CtorHavingType(NestingType nesting)
			: this(nesting, null, 0)
		{
		}
		public CtorHavingType(NestingType nesting, string text, int value)
			: this(nesting, text, value, 0.0)
		{
		}
Example #17
0
        public string BuildXSD(string xml, NestingType type)
        {
            generationType = type;
            //Create schema element
            XmlSchema schema = new XmlSchema();

            schema.ElementFormDefault   = XmlSchemaForm.Qualified;
            schema.AttributeFormDefault = XmlSchemaForm.Unqualified;
            schema.Version = "1.0";
            //Add additional namespaces using the Add() method shown below
            //if desired
            XmlSerializerNamespaces ns = new XmlSerializerNamespaces();

            ns.Add("xsd", schemaNS);
            ns.Add("xs", "http://www.w3.org/2001/XMLSchema");
            ns.Add("msdata", "urn:schemas-microsoft-com:xml-msdata");
            schema.Namespaces = ns;

            //Begin parsing source XML document
            XmlDocument doc = new XmlDocument();

            try
            {             //Assume string XML
                doc.LoadXml(xml);
            }
            catch
            {
                try
                {                 //String XML load failed.  Try loading as a file path
                    doc.Load(xml);
                }
                catch
                {
                    return("XML document is not well-formed.");
                }
            }

            XmlElement root = doc.DocumentElement;

            //Create root element definition for schema
            //Call CreateComplexType to either add a complexType tag
            //or simply add the necesary schema attributes
            XmlSchemaElement elem = CreateComplexType(root);

            //Add root element definition into the XmlSchema object
            schema.Items.Add(elem);
            //Reverse elements in ArrayList so root complexType appears first
            //where applicable
            complexTypes.Reverse();
            //In cases where the user wants to separate out the complexType tags
            //loop through the complexType ArrayList and add the types to the schema
            foreach (object obj in complexTypes)
            {
                XmlSchemaComplexType ct = (XmlSchemaComplexType)obj;
                schema.Items.Add(ct);
            }

            //Compile the schema and then write its contents to a StringWriter
            try
            {
                XmlSchemaSet xss = new XmlSchemaSet();
                xss.Add(schema);
                xss.ValidationEventHandler += new ValidationEventHandler(ValidateSchema);
                xss.Compile();
                StringWriter sw     = new StringWriter();
                string       retval = sw.ToString();
                schema.Write(sw);
                sw.Flush();
                sw.Close();
                sw.Dispose();
                return(retval);
            }
            catch (Exception exp)
            {
                return(exp.Message);
            }
        }
Example #18
0
            private XElement GetDerivedElementFromTheScope(XElement element, IEnumerable <XElement> collection, NestingType type, string derivedName)
            {
                var result = collection.FirstOrDefault(x => x.Name == type.ToString().ToLower() && ElementNameEquals(x, derivedName));

                if (result == null)
                {
                    var name = GetMandatoryField(element, "name");
                    throw new RecoverableException($"The SVD {type} '{name}' derives from '{derivedName}', but '{derivedName}' cannot be found.");
                }
                return(result);
            }