// Translation-related utilities

        public List <string> GetConditionCategories(Cond cond)
        {
            List <string> ret = new List <string>();

            void addCategory(string docName)
            {
                if (CondDocs.TryGetValue(docName, out FunctionDoc doc))
                {
                    string cat = doc.ConditionDoc.Category;
                    if (cat != null && !ret.Contains(cat))
                    {
                        ret.Add(cat);
                    }
                }
            }

            cond.WalkCond(c =>
            {
                if (c is CmdCond || c is CompareCond)
                {
                    addCategory(c.DocName);
                }
            });
            return(ret);
        }