Beispiel #1
0
 internal static void TestOptionStringValue(int level, JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue param, String caller)
 {
     if (!CanVisitFurther(param))
     {
         return;
     }
     VisitElement(level, param, caller);
 }
Beispiel #2
0
 internal static void TestOptionDefinition(int level, JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition param, String caller)
 {
     if (!CanVisitFurther(param))
     {
         return;
     }
     VisitElement(level, param, caller);
     {
         JetBrains.ReSharper.Psi.Tree.ITokenNode child = ((JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition)param).OptionIdentifierValue;
         TestTokenNode(level + 1, (JetBrains.ReSharper.Psi.Tree.ITokenNode)child, "OptionIdentifierValue");
     }
     {
         JetBrains.ReSharper.Psi.Tree.ITokenNode child = ((JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition)param).OptionIntegerValue;
         TestTokenNode(level + 1, (JetBrains.ReSharper.Psi.Tree.ITokenNode)child, "OptionIntegerValue");
     }
     {
         JetBrains.ReSharper.PsiPlugin.Tree.IOptionName child = ((JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition)param).OptionName;
         TestOptionName(level + 1, (JetBrains.ReSharper.PsiPlugin.Tree.IOptionName)child, "OptionName");
     }
     {
         JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue child = ((JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition)param).OptionStringValue;
         TestOptionStringValue(level + 1, (JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)child, "OptionStringValue");
     }
 }
Beispiel #3
0
        public static JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition GetByOptionStringValue(JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue param)
        {
            if (param == null)
            {
                return(null);
            }
            TreeElement current = (TreeElement)param;

            if (current.parent is JetBrains.ReSharper.PsiPlugin.Tree.Impl.OptionDefinition)
            {
                if (current.parent.GetChildRole(current) != JetBrains.ReSharper.PsiPlugin.Tree.Impl.OptionDefinition.PSI_OPTION_STRING_VALUE)
                {
                    return(null);
                }
                current = current.parent;
            }
            else
            {
                return(null);
            }
            return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition)current);
        }
 public virtual void VisitOptionStringValue([JetBrains.Annotations.NotNull] JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue optionStringValueParam, TContext context)
 {
     VisitNode(optionStringValueParam, context);
 }
 public virtual JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue SetOptionStringValue(JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue param)
 {
     using (JetBrains.Application.WriteLockCookie.Create(this.IsPhysical()))
     {
         TreeElement current = null, next = GetNextFilteredChild(current), result = null;
         next = GetNextFilteredChild(current);
         if (next == null)
         {
             return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result);
         }
         else
         {
             if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.OPTION_NAME)
             {
                 current = next;
             }
             else
             {
                 return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result);
             }
         }
         next = GetNextFilteredChild(current);
         if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.EQ)
         {
             next = GetNextFilteredChild(current);
             if (next == null)
             {
                 result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty));
             }
             else
             {
                 if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.EQ)
                 {
                     if (param != null)
                     {
                         current = next;
                     }
                     else
                     {
                         current = GetNextFilteredChild(next);
                         JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                     }
                 }
                 else
                 {
                     return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result);
                 }
             }
             next = GetNextFilteredChild(current);
             if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.IDENTIFIER)
             {
                 next = GetNextFilteredChild(current);
                 if (next == null)
                 {
                     if (param == null)
                     {
                         return(null);
                     }
                     result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                 }
                 else
                 {
                     if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.IDENTIFIER)
                     {
                         if (param != null)
                         {
                             result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         }
                         else
                         {
                             current = GetNextFilteredChild(next);
                             JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                         }
                     }
                     else
                     {
                         if (param == null)
                         {
                             return(null);
                         }
                         result  = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         current = next;
                     }
                 }
             }
             else if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.OPTION_STRING_VALUE)
             {
                 next = GetNextFilteredChild(current);
                 if (next == null)
                 {
                     if (param == null)
                     {
                         return(null);
                     }
                     result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                 }
                 else
                 {
                     if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.OPTION_STRING_VALUE)
                     {
                         if (param != null)
                         {
                             result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         }
                         else
                         {
                             current = GetNextFilteredChild(next);
                             JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                         }
                     }
                     else
                     {
                         if (param == null)
                         {
                             return(null);
                         }
                         result  = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         current = next;
                     }
                 }
             }
             else if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.INTEGER_LITERAL)
             {
                 next = GetNextFilteredChild(current);
                 if (next == null)
                 {
                     if (param == null)
                     {
                         return(null);
                     }
                     result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                 }
                 else
                 {
                     if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.INTEGER_LITERAL)
                     {
                         if (param != null)
                         {
                             result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         }
                         else
                         {
                             current = GetNextFilteredChild(next);
                             JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                         }
                     }
                     else
                     {
                         if (param == null)
                         {
                             return(null);
                         }
                         result  = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         current = next;
                     }
                 }
             }
             else
             {
                 next = GetNextFilteredChild(current);
                 if (next == null)
                 {
                     if (param == null)
                     {
                         return(null);
                     }
                     result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                 }
                 else
                 {
                     if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.IDENTIFIER)
                     {
                         if (param != null)
                         {
                             result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         }
                         else
                         {
                             current = GetNextFilteredChild(next);
                             JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                         }
                     }
                     else
                     {
                         if (param == null)
                         {
                             return(null);
                         }
                         result  = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         current = next;
                     }
                 }
             }
         }
         else if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.COLON)
         {
             next = GetNextFilteredChild(current);
             if (next == null)
             {
                 result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty));
             }
             else
             {
                 if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.COLON)
                 {
                     if (param != null)
                     {
                         current = next;
                     }
                     else
                     {
                         current = GetNextFilteredChild(next);
                         JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                     }
                 }
                 else
                 {
                     return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result);
                 }
             }
             next = GetNextFilteredChild(current);
             if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.PLUS)
             {
                 next = GetNextFilteredChild(current);
                 if (next == null)
                 {
                     result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty));
                 }
                 else
                 {
                     if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.PLUS)
                     {
                         if (param != null)
                         {
                             current = next;
                         }
                         else
                         {
                             current = GetNextFilteredChild(next);
                             JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                         }
                     }
                     else
                     {
                         return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result);
                     }
                 }
                 next = GetNextFilteredChild(current);
                 if (next == null)
                 {
                     result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty));
                 }
                 else
                 {
                     if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.RULE_NAME)
                     {
                         if (param != null)
                         {
                             current = next;
                         }
                         else
                         {
                             current = GetNextFilteredChild(next);
                             JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                         }
                     }
                     else
                     {
                         return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result);
                     }
                 }
             }
             else if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.LPARENTH)
             {
                 next = GetNextFilteredChild(current);
                 if (next == null)
                 {
                     result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty));
                 }
                 else
                 {
                     if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.LPARENTH)
                     {
                         if (param != null)
                         {
                             current = next;
                         }
                         else
                         {
                             current = GetNextFilteredChild(next);
                             JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                         }
                     }
                     else
                     {
                         return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result);
                     }
                 }
                 next = GetNextFilteredChild(current);
                 if (next == null)
                 {
                     result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty));
                 }
                 else
                 {
                     if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.STRING_LITERAL)
                     {
                         if (param != null)
                         {
                             current = next;
                         }
                         else
                         {
                             current = GetNextFilteredChild(next);
                             JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                         }
                     }
                     else
                     {
                         return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result);
                     }
                 }
                 next = GetNextFilteredChild(current);
                 if (next == null)
                 {
                     result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty));
                 }
                 else
                 {
                     if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.RULE_NAME)
                     {
                         if (param != null)
                         {
                             current = next;
                         }
                         else
                         {
                             current = GetNextFilteredChild(next);
                             JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                         }
                     }
                     else
                     {
                         return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result);
                     }
                 }
                 while (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.SEMICOLON)
                 {
                     next = GetNextFilteredChild(current);
                     if (next == null)
                     {
                         result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty));
                     }
                     else
                     {
                         if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.SEMICOLON)
                         {
                             if (param != null)
                             {
                                 current = next;
                             }
                             else
                             {
                                 current = GetNextFilteredChild(next);
                                 JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                             }
                         }
                         else
                         {
                             return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result);
                         }
                     }
                     next = GetNextFilteredChild(current);
                     if (next == null)
                     {
                         result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty));
                     }
                     else
                     {
                         if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.STRING_LITERAL)
                         {
                             if (param != null)
                             {
                                 current = next;
                             }
                             else
                             {
                                 current = GetNextFilteredChild(next);
                                 JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                             }
                         }
                         else
                         {
                             return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result);
                         }
                     }
                     next = GetNextFilteredChild(current);
                     if (next == null)
                     {
                         result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty));
                     }
                     else
                     {
                         if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.RULE_NAME)
                         {
                             if (param != null)
                             {
                                 current = next;
                             }
                             else
                             {
                                 current = GetNextFilteredChild(next);
                                 JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                             }
                         }
                         else
                         {
                             return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result);
                         }
                     }
                 }
                 next = GetNextFilteredChild(current);
                 if (next == null)
                 {
                     result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty));
                 }
                 else
                 {
                     if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.RPARENTH)
                     {
                         if (param != null)
                         {
                             current = next;
                         }
                         else
                         {
                             current = GetNextFilteredChild(next);
                             JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                         }
                     }
                     else
                     {
                         return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result);
                     }
                 }
             }
             else
             {
                 // in case we have multiple lookahead elements and we've failed to find any
                 return(null);
             }
         }
         else
         {
             next = GetNextFilteredChild(current);
             if (next == null)
             {
                 result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty));
             }
             else
             {
                 if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.EQ)
                 {
                     if (param != null)
                     {
                         current = next;
                     }
                     else
                     {
                         current = GetNextFilteredChild(next);
                         JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                     }
                 }
                 else
                 {
                     return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result);
                 }
             }
             next = GetNextFilteredChild(current);
             if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.IDENTIFIER)
             {
                 next = GetNextFilteredChild(current);
                 if (next == null)
                 {
                     if (param == null)
                     {
                         return(null);
                     }
                     result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                 }
                 else
                 {
                     if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.IDENTIFIER)
                     {
                         if (param != null)
                         {
                             result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         }
                         else
                         {
                             current = GetNextFilteredChild(next);
                             JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                         }
                     }
                     else
                     {
                         if (param == null)
                         {
                             return(null);
                         }
                         result  = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         current = next;
                     }
                 }
             }
             else if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.OPTION_STRING_VALUE)
             {
                 next = GetNextFilteredChild(current);
                 if (next == null)
                 {
                     if (param == null)
                     {
                         return(null);
                     }
                     result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                 }
                 else
                 {
                     if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.OPTION_STRING_VALUE)
                     {
                         if (param != null)
                         {
                             result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         }
                         else
                         {
                             current = GetNextFilteredChild(next);
                             JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                         }
                     }
                     else
                     {
                         if (param == null)
                         {
                             return(null);
                         }
                         result  = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         current = next;
                     }
                 }
             }
             else if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.INTEGER_LITERAL)
             {
                 next = GetNextFilteredChild(current);
                 if (next == null)
                 {
                     if (param == null)
                     {
                         return(null);
                     }
                     result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                 }
                 else
                 {
                     if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.INTEGER_LITERAL)
                     {
                         if (param != null)
                         {
                             result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         }
                         else
                         {
                             current = GetNextFilteredChild(next);
                             JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                         }
                     }
                     else
                     {
                         if (param == null)
                         {
                             return(null);
                         }
                         result  = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         current = next;
                     }
                 }
             }
             else
             {
                 next = GetNextFilteredChild(current);
                 if (next == null)
                 {
                     if (param == null)
                     {
                         return(null);
                     }
                     result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                 }
                 else
                 {
                     if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.IDENTIFIER)
                     {
                         if (param != null)
                         {
                             result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         }
                         else
                         {
                             current = GetNextFilteredChild(next);
                             JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next);
                         }
                     }
                     else
                     {
                         if (param == null)
                         {
                             return(null);
                         }
                         result  = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param);
                         current = next;
                     }
                 }
             }
         }
         return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result);
     }
 }