コード例 #1
0
 /**
  * Generates code for a function
  *
  * @param XmlImportAstSpintax $expression
  * @return string
  */
 private function generateForSpintax(XmlImportAstSpintax $spintax)
 {
     $result = '';
     $arguments = $spintax->getArguments();
     $elements = array();
     $buf = array();
     for ($i = 0; $i < count($arguments); $i++) {
         if ($arguments[$i]->getValue() != '|') {
             array_push($buf, $this->generateForExpression($arguments[$i], true));
         } else {
             array_push($elements, $buf);
             $buf = array();
         }
     }
     array_push($elements, $buf);
     if (!empty($elements) and is_array($elements)) {
         $spintax_arr = $this->generateVariation($elements);
         foreach ($spintax_arr as $key => $value) {
             $result .= "\"<p>\"." . implode(".", $value) . ".\"</p>\"";
             if ($key != count($spintax_arr) - 1) {
                 $result .= ".";
             }
         }
     }
     return $result;
 }