/**
  * converts directive object to plain with its inner directives as plain too
  * @param iDirective $directive
  * @param int $nestLevel
  * @return array
  */
 protected function directiveToPlain(iDirective $directive, $nestLevel = 0)
 {
     $tabulation = $nestLevel > 0 ? str_repeat("  ", $nestLevel) : "";
     if ($directive->isSection()) {
         $directiveText = $this->customFilter($directive, "<{$directive->getName()} {$directive->getValue()}>");
         $directivePlain = $tabulation . $directiveText . "\n";
         foreach ($directive->getInnerDirectives() as $innerDirective) {
             $directivePlain .= $this->directiveToPlain($innerDirective, $nestLevel + 1);
         }
         $directivePlain .= $tabulation . "</{$directive->getName()}>\n";
     } else {
         $directiveText = $this->customFilter($directive, "{$directive->getName()} {$directive->getValue()}");
         $directivePlain = $tabulation . $directiveText . "\n";
     }
     return $directivePlain;
 }