function build() { self::$code = self::getTmpl(self::$tpl); for ($i = 0; $i < self::$iteration; $i++) { self::testVars(); /* Подключаем инклюды */ self::$code = self::parseInclude(self::$code); } // код шаблона сформирован из переменных и инклюдов /* Resolver */ if (self::$resolver) { self::$code = resolver::getHandlers(self::$code); } /* Вырезание кода и переменных, которые не должны быть обработаны */ self::$code = self::clearParseSet(self::$code, self::$regex_n_vars, &self::$n_buffer); self::$code = self::clearParseSet(self::$code, self::$regex_s_vars, &self::$s_buffer); /* Parsing rolls */ self::$code = self::parseRolls(self::$code); /* Parsing tree */ self::$code = self::parseTree(self::$code); /* Parsing sections */ self::$code = self::parseSections(self::$code); /* Parsing vars */ self::$code = self::parseVars(self::$code); /* Non parse */ self::$code = self::clearParseSet(self::$code, self::$regex_non, &self::$non_buffer); /* Parsing lang vars */ self::$code = self::parseLangVars(self::$code); /* Clear */ self::$code = self::clearUnusedVars(self::$code); /* Возвращение кода и перемнных, которые не должны быть обработаны */ self::$code = self::clearParseGet(self::$code, &self::$non_buffer, false); self::$code = self::clearParseGet(self::$code, &self::$n_buffer, '{', '}'); self::$code = self::clearParseGet(self::$code, &self::$s_buffer, '{ ', '}'); f::collect(); return self::$code; }