private static int CompareModules(AST <Node> mod1, AST <Node> mod2) { var prog1 = (Program)mod1.GetPathParent(); var prog2 = (Program)mod2.GetPathParent(); var cmp = ProgramName.Compare(prog1.Name, prog2.Name); if (cmp != 0) { return(cmp); } string name1, name2; mod1.Node.TryGetStringAttribute(AttributeKind.Name, out name1); mod2.Node.TryGetStringAttribute(AttributeKind.Name, out name2); return(string.CompareOrdinal(name1, name2)); }