int cmp(const Lemma * lt) { assert(Type != 0); assert(lt->Type != 0); int strdif = strcmp(Type,lt->Type); if(strdif) return strdif; assert(BaseForm != 0); assert(lt->BaseForm != 0); strdif = strcmp(BaseForm,lt->BaseForm); if(strdif) return strdif; if(S.Offset > lt->S.Offset) return 1; else if(S.Offset < lt->S.Offset) return -1; if(S.frequency > lt->S.frequency) return 1; else if(S.frequency < lt->S.frequency) return -1; if(next) { assert(lt->next); return next->cmp(lt->next); } else return 0; }
int cmp(const Lemma * lt) { int d = Type - lt->Type; if(d) return d; d = BaseForm - lt->BaseForm; if(d) return d; d = S.Offset - lt->S.Offset; if(d) return d; d = S.frequency - lt->S.frequency; if(d) return d; if(next) { assert(lt->next); return next->cmp(lt->next); } else return 0; }