| [],[] -> 0
| [],_ -> ~-1
| _,[] -> 1
- | ((s1::tl1) as x),((s2::tl2) as y) ->
+ | ((s1::tl1) ),((s2::tl2) ) ->
if Gramext.eq_symbol s1 s2 then aux (tl1,tl2)
- else Pervasives.compare x y
+ else
+ let res =
+ try Pervasives.compare s1 s2
+ with Invalid_argument _ -> 0
+ in
+ if res = 0 then aux (tl1, tl2) else res
in
aux (x,y)