let of_parser g n
                  (p : (Token.t * token_info) Stream.t -> 'a) : 'a t =
                  let f ts = Action.mk (p ts)
                  in
                    {
                      egram = g;
                      ename = n;
                      estart = (fun _ -> f);
                      econtinue =
                        (fun _ _ _ (__strm : _ Stream.t) ->
                           raise Stream.Failure);
                      edesc = Dparser f;
                    }