public string ToString(Factor2String translator)
                    {
                        string r = string.Empty;

                        if (not)
                        {
                            r += "!";
                        }

                        r += sub.ToString(translator);
                        return(r);
                    }
                        public string ToString(Factor2String translator)
                        {
                            string r = string.Empty;

                            if (isNode)
                            {
                                r += translator(factor);
                            }
                            else
                            {
                                r += "(" + sub.ToString(translator) + ")";
                            }
                            return(r);
                        }
                public string ToString(Factor2String translator)
                {
                    string r = string.Empty;

                    foreach (NotExpression x in and)
                    {
                        if (r.Length > 0)
                        {
                            r += "*";
                        }

                        r += x.ToString(translator);
                    }
                    return(r);
                }
 public string ToString(Factor2String translator)
 {
     return(exp.ToString(translator));
 }