private static SyntaxNode TryGetParentMethod(SyntaxNode syntaxNode)
        {
            if (syntaxNode?.Parent == null)
            {
                return((SyntaxNode)null);
            }
            switch (syntaxNode.Parent.Kind)
            {
            case SyntaxKind.TriggerDeclaration:
            case SyntaxKind.MethodDeclaration:
                return(syntaxNode.Parent);

            default:
                return(IdentifierUtilities.TryGetParentMethod(syntaxNode.Parent));
            }
        }
        internal static bool IdentifierIsLocalVariable(IdentifierNameSyntax identifier)
        {
            SyntaxNode parentMethod = IdentifierUtilities.TryGetParentMethod(identifier.Parent);
            SyntaxKind?kind         = parentMethod?.Kind;

            if (kind.HasValue)
            {
                switch (kind.GetValueOrDefault())
                {
                case SyntaxKind.TriggerDeclaration:
                    return(IdentifierUtilities.VerifyIdentifierIsInMethodTriggerVarParamList <TriggerDeclarationSyntax>((TriggerDeclarationSyntax)parentMethod, identifier));

                case SyntaxKind.MethodDeclaration:
                    return(IdentifierUtilities.VerifyIdentifierIsInMethodTriggerVarParamList <MethodDeclarationSyntax>((MethodDeclarationSyntax)parentMethod, identifier));
                }
            }
            return(false);
        }