Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2011, 00:17   #1
epishev
Новичок
Джуниор
 
Регистрация: 15.03.2011
Сообщений: 3
Вопрос Запуск С++ кода из XML файла

Всем привет!
Нужна помощь…, есть такая задача:

Предисловие: Есть две отдельные программы: «Редактор уровней»

(
результат работы - XML файл (содержит описание объектов, их свойств, и самое главное псевдокод)

Пример объекта в XML файле:

<object id="image" hint="" s1="if cursor() {take(image)}" image_id="scene1/image.png" />
)
и "программная часть" в данном случаи - игры, берущая все данные об уровне из XML файла (описанного выше).
Функционал функций cursor(), take() и т.д. описан в «программной» части игры.

Сам вопрос:
Как запустить на исполнение код, находящийся в параметре s1?
По-другому сформулирую: Как выполнить код взятый из текстового файла?

Желательно обойтись функционалом С++…
Возможно ли это?? Или придется прикручивать скриптовый язык (например, лау)?

Буду благодарен за любую помощь будь то просто намек в нужную сторону, ссылка на статью, или готовый, полностью прокомментированный тутолреал =)

Заранее большое спасибо!
epishev вне форума Ответить с цитированием
Старый 15.03.2011, 00:44   #2
Dayman
Форумчанин
 
Аватар для Dayman
 
Регистрация: 12.01.2011
Сообщений: 186
По умолчанию

ИМХО без скриптового языка не обойтись.
Если без "if cursor()", то решение в лоб:
Код:
// Парсинг строки атрибута s1.
if(s1==TAKE_FUNCTION)
{
// Проверка атрибута image_id take(image);
} else if(s1==SOME_OTHER_FUNCTION){} else {
// Unknown function handling
}
Lingua c++ non penis caninus est.

Последний раз редактировалось Dayman; 15.03.2011 в 02:10.
Dayman вне форума Ответить с цитированием
Старый 15.03.2011, 00:50   #3
epishev
Новичок
Джуниор
 
Регистрация: 15.03.2011
Сообщений: 3
Вопрос

А если в S1 не одна функция....

s1="take(image) hide(image1) disable(image2)"

то как??
epishev вне форума Ответить с цитированием
Старый 15.03.2011, 01:25   #4
Dayman
Форумчанин
 
Аватар для Dayman
 
Регистрация: 12.01.2011
Сообщений: 186
По умолчанию

Рекурсия поможет.
Код:
void Parse(string _attrib){
if(_attrib.empty())
return;
// Парсинг _attrib строки атрибута s1. if(s1==TAKE_FUNCTION) { // Проверка атрибута image_id take(image); } else if(s1==SOME_OTHER_FUNCTION){} else { // Unknown function handling } // Изымаем первую функцию из _attrib if(_attrib.empty())
return;
else
Parse(_attrib);
}
Все это sort of псевдокод естественно
Lingua c++ non penis caninus est.

Последний раз редактировалось Dayman; 15.03.2011 в 02:10.
Dayman вне форума Ответить с цитированием
Старый 15.03.2011, 07:45   #5
epishev
Новичок
Джуниор
 
Регистрация: 15.03.2011
Сообщений: 3
Вопрос

Цитата:
Сообщение от Dayman Посмотреть сообщение
Все это sort of псевдокод естественно
В принципе, я думаю, можно и с if изловчится…
Добавить структуру if(){} else{}end
При нахождении If в строке проверяем все параметры, находящиеся в (…) (функции возвращающие истина, ложь) дальше, проверяем, обрабатываем функций в {…} по твоему алгоритму. Дальше проверяем на наличие else и т.д.

Как думаете?
А вообще за подсказку большое спасибо!

Еще вопрос вы работали с интерпретаторами, например:
http://root.cern.ch/drupal/content/cint
http://www.softintegration.com/
http://root.cern.ch/root/CintInterpreter.html

… их можно использовать этой цели?
epishev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чтение из XML файла frankk WPF, UWP, WinRT, XAML 0 09.02.2011 16:42
сформировать xml-файл на основе другого xml-файла NieL Общие вопросы Delphi 2 21.12.2010 15:49
Запуск конкретной программы из кода и передача файла в нее almostdj Общие вопросы .NET 0 07.12.2010 17:37
Обработка XML-файла Driver_09 Помощь студентам 3 25.05.2010 16:38
запуск кода по плану ilma55 SQL, базы данных 0 18.03.2010 16:20