type syntree = Term    of char list
             | NonTerm of char list
             | Param   of char list
             | Opt     of syntree
             | Rep     of syntree
             | TermRep of syntree * syntree
             | OptRep  of syntree
             | OrList  of syntree list
             | Con     of syntree * syntree

val analyse : char Stream.t -> syntree
