Транслятор из какого-нибудь языка в php

dfilatov

Новичок
Транслятор из какого-нибудь языка в php

Посоветуйте что-то типа транслятора (написанного на php) какого-нибудь языка (типа lua) с простыми возможностями (условия, циклы, функции) . Вообщем, нужна возможность давать из вне вводить какие-то простейшие конструкции на каком-нибудь языке, которые будут транслироваться на ходу в нужные вызовы php.
Обгуглился, но так и не смог найти ничего подходящего (нашел несколько реализаций транслятора js в php, но они кривые) :(
 

no_santa

Снегур
Много лет работаю в php, второй год работаю в lua ;)

Отвечу - php похож на lua, и наоборот. Это два достаточно одинаковых по сути и по уровню абстракции интерпретируемых языка, но с совершенно различным назначением! Может быть, именно поэтому никогда не вставала задача транслировать одно из другого....

Lua в первую очередь хорош для AI, php сделан для www серверов.... Если тебе надо сделать сетевую часть для игрушки - для этого есть масса доступных библиотек на си, в том числе свободных. Если наоборот - опять-же, без сей тебе не обойтись, по-любому.

Кроме того, не надо делать мультиплейер на php. Апач для этого попросту не предназначен, повесишь ты его (пробовал - повесил с тремя клиентами). Понимаешь, или тоже разжевать?

Если я тебя неправильно понял, тогда прошу сюда: http://phpclub.ru/faq/UMLDesigning?v=r56

P.S. php, даром что типа теперь стал "ООП", но вызовов, в том-же смысле, что и Огр, не поддерживает :)
 

dfilatov

Новичок
Ты меня не понял. Мне нужен простейший язык, который будет работать в некоем сэндбоксе. Что-то типа макроязыка. Грубо говоря, чтобы пользователи могли вводить простые конструкции на некотором простом ограниченном скриптовом языке, который будет транслироваться в php.
 

HraKK

Мудак
Команда форума
Обьясни подробнее что за пользователи и что ты делаешь. Иначе толку не будет.
 

dfilatov

Новичок
Нет, не шаблонизатор. Есть система, построенная на xml/xsl. Хотелось бы иметь возможность встраивать в xml некие управляющие конструкции на каком-нибудь простом языке, что-то типа:

PHP:
<block>
<![CDATA[
if request.hasArg('test') {
  holder.set('test', request.getArg('test'));
}
]]>
</block>
При этом то, что именно доступно из таких конструкций, должно контролироваться.
 

dfilatov

Новичок
а как контролировать допустимые конструкции, как ограничивать доступ ко всяким суперглобальным штукам? проверять регэкспами все варианты и эвалить?
 

AmdY

Пью пиво
Команда форума
http://www.php.net/manual/ru/xsltprocessor.registerphpfunctions.php
 

dfilatov

Новичок
registerphpfunctions не подходит, все должно происходить до этапа наложения основного xsl. А создавать для каждого такого блока объект xsltprocessor и трансформить слишком накладно.
 
Сверху