original_string: public function and_(HTML_QuickForm2_Rule $next)
      {
          if ($next instanceof HTML_QuickForm2_Rule_Required) {
              throw new HTML_QuickForm2_InvalidArgumentException(
                  'and_(): Cannot add a "required" rule'
              );
          }
          $this->chainedRules[count($this->chainedRules) - 1][] = $next;
          return $this;
      }
code: public function and_(HTML_QuickForm2_Rule $next)
      {
          if ($next instanceof HTML_QuickForm2_Rule_Required) {
              throw new HTML_QuickForm2_InvalidArgumentException(
                  'and_(): Cannot add a "required" rule'
              );
          }
          $this->chainedRules[count($this->chainedRules) - 1][] = $next;
          return $this;
      }
code_tokens: public function and_ ( HTML_QuickForm2_Rule $ next ) { if ( $ next instanceof HTML_QuickForm2_Rule_Required ) { throw new HTML_QuickForm2_InvalidArgumentException ( 'and_(): Cannot add a "required" rule' ) ; } $ this -> chainedRules [ count ( $ this -> chainedRules ) - 1 ] [ ] = $ next ; return $ this ; }
docstring: Adds a rule to the chain with an "and" operator
  
  Evaluation is short-circuited, next rule will not be evaluated if the
  previous one returns false. The method is named this way because "and" is
  a reserved word in PHP.
  
  @param    HTML_QuickForm2_Rule
  @return   HTML_QuickForm2_Rule    first rule in the chain (i.e. $this)
  @throws   HTML_QuickForm2_InvalidArgumentException    when trying to add
  a "required" rule to the chain
docstring_tokens: Adds a rule to the chain with an and operator