private static string HandleNegativeBrackets(string task)
        {
            IEnumerable <string> taskInBrackets = Regex.Split(task.Replace(" ", ""), "([-]{1}[(]{1}|[(]{1}|[)]{1})").Where(i => i != "").ToArray();

            string taskWithWrappedNegativeBrackets = "";
            var    bracketsCache = new Stack <string>();
            string lastLine      = "";

            // Handling negative brackets
            foreach (string currentLine in taskInBrackets)
            {
                if (CalculatorUtilities.IsOperator(lastLine.LastOrDefault().ToString()) && currentLine.Equals("-("))
                {
                    bracketsCache.Push("-(");
                    taskWithWrappedNegativeBrackets += "(0";
                }

                if (lastLine.Equals("-(") && currentLine.Equals("-("))
                {
                    taskWithWrappedNegativeBrackets += "0";
                }

                else if (currentLine.Equals("(") && bracketsCache.Count > 0)
                {
                    bracketsCache.Push("(");
                }

                else if (currentLine.Equals(")") && bracketsCache.Count > 0 && bracketsCache.Pop().Equals("-("))
                {
                    taskWithWrappedNegativeBrackets += ")";
                }


                lastLine = currentLine;
                taskWithWrappedNegativeBrackets += currentLine;
            }

            return(taskWithWrappedNegativeBrackets);
        }
 private bool IsNegative(string currentLine)
 {
     return((_taskLineBefore == "" || _taskLineBefore == "(" || CalculatorUtilities.IsOperator(_taskLineBefore)) && currentLine.Equals("-"));
 }