let extend entry (position, rules) =
                  let elev = levels_of_rules entry position rules
                  in
                    (entry.edesc <- Dlevels elev;
                     entry.estart <-
                       (fun lev strm ->
                          let f = Parser.start_parser_of_entry entry
                          in (entry.estart <- f; f lev strm));
                     entry.econtinue <-
                       fun lev bp a strm ->
                         let f = Parser.continue_parser_of_entry entry
                         in (entry.econtinue <- f; f lev bp a strm))