/** * 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; }