Пример #1
0
 internal static void TestSequence(int level, JetBrains.ReSharper.PsiPlugin.Tree.ISequence param, String caller)
 {
     if (!CanVisitFurther(param))
     {
         return;
     }
     VisitElement(level, param, caller);
 }
Пример #2
0
 public virtual JetBrains.ReSharper.PsiPlugin.Tree.ISequence SetSequence(JetBrains.ReSharper.PsiPlugin.Tree.ISequence 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.ISequence)result);
         }
         else
         {
             if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.OR)
             {
                 current = next;
             }
             else
             {
                 return((JetBrains.ReSharper.PsiPlugin.Tree.ISequence)result);
             }
         }
         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.SEQUENCE)
             {
                 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.ISequence)result);
     }
 }
Пример #3
0
 internal static void TestChoiceTail(int level, JetBrains.ReSharper.PsiPlugin.Tree.IChoiceTail param, String caller)
 {
     if (!CanVisitFurther(param))
     {
         return;
     }
     VisitElement(level, param, caller);
     {
         JetBrains.ReSharper.PsiPlugin.Tree.ISequence child = ((JetBrains.ReSharper.PsiPlugin.Tree.IChoiceTail)param).Sequence;
         TestSequence(level + 1, (JetBrains.ReSharper.PsiPlugin.Tree.ISequence)child, "Sequence");
     }
 }
Пример #4
0
        public static JetBrains.ReSharper.PsiPlugin.Tree.IChoiceTail GetBySequence(JetBrains.ReSharper.PsiPlugin.Tree.ISequence param)
        {
            if (param == null)
            {
                return(null);
            }
            TreeElement current = (TreeElement)param;

            if (current.parent is JetBrains.ReSharper.PsiPlugin.Tree.Impl.ChoiceTail)
            {
                if (current.parent.GetChildRole(current) != JetBrains.ReSharper.PsiPlugin.Tree.Impl.ChoiceTail.PSI_SEQUENCE)
                {
                    return(null);
                }
                current = current.parent;
            }
            else
            {
                return(null);
            }
            return((JetBrains.ReSharper.PsiPlugin.Tree.IChoiceTail)current);
        }
 public virtual void VisitSequence([JetBrains.Annotations.NotNull] JetBrains.ReSharper.PsiPlugin.Tree.ISequence sequenceParam, TContext context)
 {
     VisitNode(sequenceParam, context);
 }