Ejemplo n.º 1
0
 internal static void TestRuleBody(int level, JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody param, String caller)
 {
     if (!CanVisitFurther(param))
     {
         return;
     }
     VisitElement(level, param, caller);
 }
        public static JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaration GetByBody(JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody param)
        {
            if (param == null)
            {
                return(null);
            }
            TreeElement current = (TreeElement)param;

            if (current.parent is JetBrains.ReSharper.PsiPlugin.Tree.Impl.RuleDeclaration)
            {
                if (current.parent.GetChildRole(current) != JetBrains.ReSharper.PsiPlugin.Tree.Impl.RuleDeclaration.PSI_BODY)
                {
                    return(null);
                }
                current = current.parent;
            }
            else
            {
                return(null);
            }
            return((JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaration)current);
        }
Ejemplo n.º 3
0
 internal static void TestRuleDeclaration(int level, JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaration param, String caller)
 {
     if (!CanVisitFurther(param))
     {
         return;
     }
     VisitElement(level, param, caller);
     {
         JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody child = ((JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaration)param).Body;
         TestRuleBody(level + 1, (JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody)child, "Body");
     }
     {
         JetBrains.ReSharper.PsiPlugin.Tree.IExtrasDefinition child = ((JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaration)param).Extras;
         TestExtrasDefinition(level + 1, (JetBrains.ReSharper.PsiPlugin.Tree.IExtrasDefinition)child, "Extras");
     }
     {
         JetBrains.ReSharper.PsiPlugin.Tree.IRuleBracketTypedParameters child = ((JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaration)param).Parameters;
         TestRuleBracketTypedParameters(level + 1, (JetBrains.ReSharper.PsiPlugin.Tree.IRuleBracketTypedParameters)child, "Parameters");
     }
     {
         JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaredName child = ((JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaration)param).RuleName;
         TestRuleDeclaredName(level + 1, (JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaredName)child, "RuleName");
     }
 }
 public virtual void VisitRuleBody([JetBrains.Annotations.NotNull] JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody ruleBodyParam, TContext context)
 {
     VisitNode(ruleBodyParam, context);
 }
Ejemplo n.º 5
0
 public virtual JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody SetBody(JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody param)
 {
     using (JetBrains.Application.WriteLockCookie.Create(this.IsPhysical()))
     {
         TreeElement current = null, next = GetNextFilteredChild(current), result = null;
         while (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.MODIFIER)
         {
             next = GetNextFilteredChild(current);
             if (next == null)
             {
                 return((JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody)result);
             }
             else
             {
                 if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.MODIFIER)
                 {
                     current = next;
                 }
                 else
                 {
                     return((JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody)result);
                 }
             }
         }
         next = GetNextFilteredChild(current);
         if (next == null)
         {
             return((JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody)result);
         }
         else
         {
             if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.RULE_DECLARED_NAME)
             {
                 current = next;
             }
             else
             {
                 return((JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody)result);
             }
         }
         next = GetNextFilteredChild(current);
         if (next != null && (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.ROLE_GETTER_PARAMETER))
         {
             next = GetNextFilteredChild(current);
             if (next == null)
             {
                 return((JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody)result);
             }
             else
             {
                 if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.ROLE_GETTER_PARAMETER)
                 {
                     current = next;
                 }
                 else
                 {
                     return((JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody)result);
                 }
             }
         }
         next = GetNextFilteredChild(current);
         if (next != null && (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.RULE_BRACKET_TYPED_PARAMETERS))
         {
             next = GetNextFilteredChild(current);
             if (next == null)
             {
                 return((JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody)result);
             }
             else
             {
                 if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.RULE_BRACKET_TYPED_PARAMETERS)
                 {
                     current = next;
                 }
                 else
                 {
                     return((JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody)result);
                 }
             }
         }
         next = GetNextFilteredChild(current);
         if (next != null && (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.OPTIONS_DEFINITION))
         {
             next = GetNextFilteredChild(current);
             if (next == null)
             {
                 return((JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody)result);
             }
             else
             {
                 if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.OPTIONS_DEFINITION)
                 {
                     current = next;
                 }
                 else
                 {
                     return((JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody)result);
                 }
             }
         }
         next = GetNextFilteredChild(current);
         if (next != null && (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.EXTRAS_DEFINITION))
         {
             next = GetNextFilteredChild(current);
             if (next == null)
             {
                 return((JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody)result);
             }
             else
             {
                 if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.EXTRAS_DEFINITION)
                 {
                     current = next;
                 }
                 else
                 {
                     return((JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody)result);
                 }
             }
         }
         next = GetNextFilteredChild(current);
         if (next == null)
         {
             return((JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody)result);
         }
         else
         {
             if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.COLON)
             {
                 current = next;
             }
             else
             {
                 return((JetBrains.ReSharper.PsiPlugin.Tree.IRuleBody)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.RULE_BODY)
             {
                 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.IRuleBody)result);
     }
 }