Esempio n. 1
0
        internal static void SetModifiers(AstNode node, Modifiers newValue)
        {
            Modifiers oldValue     = GetModifiers(node);
            AstNode   insertionPos = node.GetChildrenByRole(AttributeRole).LastOrDefault();

            foreach (Modifiers m in CSharpModifierToken.AllModifiers)
            {
                if ((m & newValue) != 0)
                {
                    if ((m & oldValue) == 0)
                    {
                        // Modifier was added
                        var newToken = new CSharpModifierToken(AstLocation.Empty, m);
                        node.InsertChildAfter(insertionPos, newToken, ModifierRole);
                        insertionPos = newToken;
                    }
                    else
                    {
                        // Modifier already exists
                        insertionPos = node.GetChildrenByRole(ModifierRole).First(t => t.Modifier == m);
                    }
                }
                else
                {
                    if ((m & oldValue) != 0)
                    {
                        // Modifier was removed
                        node.GetChildrenByRole(ModifierRole).First(t => t.Modifier == m).Remove();
                    }
                }
            }
        }
		internal static void SetModifiers(AstNode node, Modifiers newValue)
		{
			Modifiers oldValue = GetModifiers(node);
			AstNode insertionPos = node.GetChildrenByRole(AttributeRole).LastOrDefault();
			foreach (Modifiers m in CSharpModifierToken.AllModifiers) {
				if ((m & newValue) != 0) {
					if ((m & oldValue) == 0) {
						// Modifier was added
						var newToken = new CSharpModifierToken(AstLocation.Empty, m);
						node.InsertChildAfter(insertionPos, newToken, ModifierRole);
						insertionPos = newToken;
					} else {
						// Modifier already exists
						insertionPos = node.GetChildrenByRole(ModifierRole).First(t => t.Modifier == m);
					}
				} else {
					if ((m & oldValue) != 0) {
						// Modifier was removed
						node.GetChildrenByRole (ModifierRole).First(t => t.Modifier == m).Remove();
					}
				}
			}
		}
        protected internal override bool DoMatch(AstNode other, Match match)
        {
            CSharpModifierToken o = other as CSharpModifierToken;

            return(o != null && this.modifier == o.modifier);
        }