
  PROCEDURE [INLINE] clp$update_parse_state
    (    source_parse: clt$parse_state;
     VAR target_parse: clt$parse_state);

?? PUSH (LISTEXT := ON) ??

    IF source_parse.text = NIL THEN
      clp$initialize_parse_state (target_parse.text, target_parse.units_array,
            target_parse);
    ELSE
      target_parse.index := source_parse.index;
      target_parse.units_array_index := source_parse.units_array_index;
      target_parse.index_limit := source_parse.index_limit;
      target_parse.unit := source_parse.unit;
      target_parse.unit_index := source_parse.unit_index;
      target_parse.unit_is_space := source_parse.unit_is_space;
      target_parse.previous_unit_is_space :=
            source_parse.previous_unit_is_space;
      target_parse.previous_non_space_unit :=
            source_parse.previous_non_space_unit;
      target_parse.previous_non_space_unit_index :=
            source_parse.previous_non_space_unit_index;
    IFEND;

  PROCEND clp$update_parse_state;

*copyc clt$parse_state
?? POP ??
*copyc clp$initialize_parse_state
