original_string: public function setFoo($arg1, $arg2 = 0)
      {
          /*
           * This is a "Block Comment." The format is the same as
           * Docblock Comments except there is only one asterisk at the
           * top. phpDocumentor doesn't parse these.
           */
          if (is_int($arg1)) {
              throw new \Exception("First argument should be string");
          }
  
          if ($arg1 == 'good' || $arg1 == 'fair') {
              $this->foo = $arg1;
              return 1;
          } elseif ($arg1 == 'poor' && $arg2 > 1) {
              $this->foo = 'poor';
              return 2;
          } else {
              return false;
          }
      }
code: public function setFoo($arg1, $arg2 = 0)
      {
          /*
           * This is a "Block Comment." The format is the same as
           * Docblock Comments except there is only one asterisk at the
           * top. phpDocumentor doesn't parse these.
           */
          if (is_int($arg1)) {
              throw new \Exception("First argument should be string");
          }
  
          if ($arg1 == 'good' || $arg1 == 'fair') {
              $this->foo = $arg1;
              return 1;
          } elseif ($arg1 == 'poor' && $arg2 > 1) {
              $this->foo = 'poor';
              return 2;
          } else {
              return false;
          }
      }
code_tokens: public function setFoo ( $ arg1 , $ arg2 = 0 ) { /*
           * This is a "Block Comment." The format is the same as
           * Docblock Comments except there is only one asterisk at the
           * top. phpDocumentor doesn't parse these.
           */ if ( is_int ( $ arg1 ) ) { throw new \ Exception ( "First argument should be string" ) ; } if ( $ arg1 == 'good' || $ arg1 == 'fair' ) { $ this -> foo = $ arg1 ; return 1 ; } elseif ( $ arg1 == 'poor' && $ arg2 > 1 ) { $ this -> foo = 'poor' ; return 2 ; } else { return false ; } }
docstring: Registers the status of foo's universe
  
  Summaries for methods should use 3rd person declarative rather
  than 2nd person imperative, beginning with a verb phrase.
  
  Summaries should add description beyond the method's name. The
  best method names are "self-documenting", meaning they tell you
  basically what the method does.  If the summary merely repeats
  the method name in sentence form, it is not providing more
  information.
  
  Below are the tags commonly used for methods.  A `param` tag is
  required for each parameter the method has.  The `return` tag are
  mandatory.  The `throws` tag is required if the method uses exceptions.
  The remainder should only be used when necessary.
  Please use them in the order they appear here. phpDocumentor has
  several other tags available, feel free to use them.
  
  The `param` tag contains the data type, then the parameter's
  name, followed by a description.  By convention, the first noun in
  the description is the data type of the parameter.  Articles like
  "a", "an", and  "the" can precede the noun. The descriptions
  should start with a phrase. If further description is necessary,
  follow with sentences. Having two spaces between the name and the
  description aids readability.
  
  When writing a phrase, do not capitalize and do not end with a period.
  When writing a phrase followed by a sentence, do not capitalize the
  phrase, but end it with a period to distinguish it from the start
  of the next sentence
  
  Return tags should contain the data type then a description of
  the data returned. The data type can be any of PHP's data types
  (int, float, bool, string, array, object, resource, mixed)
  and should contain the type primarily returned. For example, if
  a method returns an object when things work correctly but false
  when an error happens, say 'object' rather than 'mixed'.
  Use 'void' if nothing is returned.
  
  Here's an example of how to format examples:
  <code>
  try {
  $dockBlock = new DockBlock();
  $dockBlock->setFoo('Bar');
  } catch (\Exception $e) {
  echo $e->getMessage();
  }
  </code>
  
  Syntax and order of tags:
  @.param      [Type] [name] [<description>]
  @.return     [Type] [<description>]
  @.throws     [Type] [<description>]
  
  @.see        [URI | FQSEN] [<description>]
  @.since      [version] [<description>]
  @.deprecated [version] [<description>]
  
  @param  string $arg1 the string to quote
  @param  int    $arg2 an integer of how many problems happened.
  Indent to the description's starting point
  for long ones.
  
  @return int the integer of the set mode used. FALSE if foo
  foo could not be set.
  
  @throws \Exception if first argument is not a string
  
  @see        DockBlock::$foo, DockBlock::setFoo()
  @since      1.3.0 Added the $arg2
  @since      1.2.0
  @deprecated 2.0.0
docstring_tokens: Registers the status of foo s universe