У меня есть двоичное приложение, которое статически связано с Tcl, а внешний интерфейс - интерпретатор Tcl. Я хотел бы предложить пользователям возможность использовать Python для выполнения тех же команд, что и для ключевых слов. Пример синтаксиса Tcl:
set_foo -foo 1.0 -bar 3.0 -cat x
так что эквивалент Python может выглядеть так:
set_foo(foo=1.0, bar=3.0, cat="x")
Лучше ли собирать программу дважды, одну как приложение Tcl, другую как приложение Python? Или просто сохранить все как Tcl, и иметь команду, которая вызовет скрипт Python в своем интерпретаторе?
Команды реализованы таким образом, что они ничего не знают об используемом языке сценариев. API:
void set_fooCmd(Handler &data);
, а Handler - это класс C ++, который обрабатывает параметры и предоставляет их реализации команды. Пока что обработчик реализован для Tcl, но не для Python.
Весь код, напрямую взаимодействующий с Tcl, находится в своем собственном каталоге и абстрагирует вызовы от остальной части программы.
Обновление:
Это не повторяющийся вопрос к:
Выбор внешнего интерфейса / интерпретатора для научного кода
поскольку они спрашивают, переходить ли из Tcl в Python или Matlab. Я уже знаю, что хочу поддерживать и Tcl, и Python, и мне очень хотелось бы знать, какие подходы использовали люди. Такие как:
- Вызов интерпретатора Python из Tcl
- Компиляция отдельных приложений для внешнего интерфейса Python и внешнего интерфейса Tcl.
- Какой-то другой подход.