original_string: public function finish($timestamp = null, $userid = null) {
          $this->convert_autosaved_step_to_real_step();
          $this->process_action(array('-finish' => 1), $timestamp, $userid);
      }
code: public function finish($timestamp = null, $userid = null) {
          $this->convert_autosaved_step_to_real_step();
          $this->process_action(array('-finish' => 1), $timestamp, $userid);
      }
code_tokens: public function finish ( $ timestamp = null , $ userid = null ) { $ this -> convert_autosaved_step_to_real_step ( ) ; $ this -> process_action ( array ( '-finish' => 1 ) , $ timestamp , $ userid ) ; }
docstring: Perform a finish action on this question attempt. This corresponds to an
  external finish action, for example the user pressing Submit all and finish
  in the quiz, rather than using one of the controls that is part of the
  question.
  
  @param int $timestamp the time to record for the action. (If not given, use now.)
  @param int $userid the user to attribute the aciton to. (If not given, use the current user.)
docstring_tokens: Perform a finish action on this question attempt . This corresponds to an external finish action for example the user pressing Submit all and finish in the quiz rather than using one of the controls that is part of the question .