type token = LPAR | RPAR | LAPAR | RAPAR | LSPAR | RSPAR
          | PLUS
          | MID
          | PARAM of char list
          | NONTERM of char list
          | TERM of char list

val lexer : char Stream.t -> token Stream.t