123456789101112131415161718192021222324252627282930313233343536373839(*
* zed_utils.ml
* -----------
* Copyright : (c) 2019, ZAN DoYe <zandoye@gmail.com>
* Licence : BSD3
*
* This file is a part of Zed, an editor engine.
*)letarray_reva=letlen=Array.lengtha-1inArray.initlen(funi->a.(len-i))letreclist_compare?(compare=compare)l1l2=matchl1,l2with|[],[]->0|[],_->-1|_,[]->1|h1::t1,h2::t2->matchcompareh1h2with|0->list_compare~comparet1t2|_asr->rletarray_compare?(compare=compare)a1a2=letlen1=Array.lengtha1andlen2=Array.lengtha2inletreccompare_auxpos=letremain1=len1-posandremain2=len2-posinifremain1<=0&&remain2<=0then0elseifremain1<=0&&remain2>0then-1elseifremain1>0&&remain2<=0then1elsematchcomparea1.(pos)a2.(pos)with|0->compare_aux(pos+1)|_asr->rincompare_aux0