original_string: public function traverse(callable $callable)
      {
          foreach ($this->getField() as $field) {
              $this->_traverseValue($field, $callable);
          }
  
          $value = $this->getValue();
          if ($value instanceof ExpressionInterface) {
              $callable($value);
              $value->traverse($callable);
  
              return;
          }
  
          foreach ($value as $i => $val) {
              if ($this->isMulti()) {
                  foreach ($val as $v) {
                      $this->_traverseValue($v, $callable);
                  }
              } else {
                  $this->_traverseValue($val, $callable);
              }
          }
      }
code: public function traverse(callable $callable)
      {
          foreach ($this->getField() as $field) {
              $this->_traverseValue($field, $callable);
          }
  
          $value = $this->getValue();
          if ($value instanceof ExpressionInterface) {
              $callable($value);
              $value->traverse($callable);
  
              return;
          }
  
          foreach ($value as $i => $val) {
              if ($this->isMulti()) {
                  foreach ($val as $v) {
                      $this->_traverseValue($v, $callable);
                  }
              } else {
                  $this->_traverseValue($val, $callable);
              }
          }
      }
code_tokens: public function traverse ( callable $ callable ) { foreach ( $ this -> getField ( ) as $ field ) { $ this -> _traverseValue ( $ field , $ callable ) ; } $ value = $ this -> getValue ( ) ; if ( $ value instanceof ExpressionInterface ) { $ callable ( $ value ) ; $ value -> traverse ( $ callable ) ; return ; } foreach ( $ value as $ i => $ val ) { if ( $ this -> isMulti ( ) ) { foreach ( $ val as $ v ) { $ this -> _traverseValue ( $ v , $ callable ) ; } } else { $ this -> _traverseValue ( $ val , $ callable ) ; } } }
docstring: Traverses the tree of expressions stored in this object, visiting first
  expressions in the left hand side and then the rest.
  
  Callback function receives as its only argument an instance of an ExpressionInterface
  
  @param callable $callable The callable to apply to sub-expressions
  @return void
docstring_tokens: Traverses the tree of expressions stored in this object visiting first expressions in the left hand side and then the rest .