- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
function t($text, $parameters = null) {
$lang = empty($_COOKIE['lang']) ? 'ru' : $_COOKIE['lang'];
$result = !array_key_exists($text, Application_Model_Translate::$lang_package) || ($lang == 'ru') ? $text :
Application_Model_Translate::$lang_package[$text][(int) ($lang == 'en')];
if (isset($parameters)) {
if (!is_array($parameters))
$parameters = array($parameters);
foreach ($parameters as &$param)
$param = addslashes($param);
eval('$result = sprintf($result, "'. implode('","', $parameters) . '");');
}
return $result;
}
Автор явно не знал про call_user_func_array :)
Но это каким уровнем упоротости нужно быть, чтобы искать интерпретатор крестов для своего движка.
Никак от лени учить новый язык.
Очень важно, чтобы интерпретатор крестов был написан на крестах. Тогда можно запустить кресты в крестах в крестах в крестах...
http://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B5%D1%81%D1%82%D1%8B
http://www.gamedev.ru/flame/forum/?id=184799
Читал по диагонали, кода не нашел. Тема скушная, так что заходить не стоит. Как я понял автору лень изучать новый язык и он хочет запилить скрипты на крестах, но они долго компилируются и не имеют рефлексии, поэтому хочет взять интерпретатор.
Дальше не читал.
cling уже сделали. Автор - слоупок
https://www.youtube.com/watch?v=BrjV1ZgYbbA
Тебе суда:
http://fskn.gov.ru/pages/main/prevent/13250/index.shtml
Не говоря уже о том, что это лишь препроцессор сишки.
Конечно можно:
#include "кококомпилируемый_во_время_кокомпиляции _кококод.cpp"
Чтобы
template <const char* Code> ...
Так то в mpl есть и рекурсия,и условия, и строки, и списки... И теоретически можно было бы запилить компилятор крестов... Но это все дико жрет память, из-за того что это по сути чисто функциональный язык, а сборщика мусора само-собой нету.
Короче в теории можно. А на практике у тебя не хватит памяти, терпения, и места на винте под вывод ошибок ко-ко-компиляции.
Садись, двойка. Правильный вывод: текущие архитектуры - говно, т.к. не позволяют юзать бесконечный объем памяти, а поэтому не эквивалентны машине тьюринга. При бесконечной памяти все отлично работает ;)
Ааа!
Надеюсь в /dev/null хватит?
Если не хватит, можно заюзать облако
Хватит что бы записать иммутабильную машину тьюринга.
Но можно еще вкладывать шаблон в параметр шаблона :) Или там и глубину тоже зарезали где-нибудь в районе 64?
По-моему тоже замечательно. Ведь, строковой ключ в массиве - потеря производительности! Автор его умело сконвертировал в интеджер, обломав тем самым прожорливый ПХП-рантайм!