Python генерирует разные файлы из одного файла

То, что я пытаюсь сделать, это использовать Python для разбора скрипта bob.ps и вывод bob.py а также bob.cpp в зависимости от ввода пользователя.

допустим, мы имели bob.ps который похож на питон простой язык

#comment
use ShowBase
# Load the environment model.
environ = loadModel 'cube'
# Reparent the model to render.
render environ
run

Пользователь должен будет запустить скрипт Python с такими командами, как: $ python main.py -py -c ++
и это приведет к созданию следующих сценариев Python и C ++:

from direct.showbase.ShowBase import ShowBase
class MyApp(ShowBase):

def __init__(self):
ShowBase.__init__(self)
# Load the environment model.
self.environ = self.loader.loadModel("models/environment")
# Reparent the model to render.
self.environ.reparentTo(self.render)
app = MyApp()
app.run()

и с ++

#include "pandaFramework.h"#include "pandaSystem.h"
int main(int argc, char *argv[]) {
// Load the window and set its title.
PandaFramework framework;
framework.open_framework(argc, argv);
framework.set_window_title("My Panda3D Window");
WindowFramework *window = framework.open_window();
// Load the environment model.
NodePath environ = window->load_model(framework.get_models(), "models/environment");
// Reparent the model to render.
environ.reparent_to(window->get_render());
// Run the engine.
framework.main_loop();
// Shut down the engine when done.
framework.close_framework();
return (0);
}

Эта проблема

Я провел некоторое время, просматривая Интернет для ответов. Я обнаружил, что мне нужно разобрать bob.ps и использовать lexer. Я попытался немного возиться с PLY-3.4, и он не совсем то, что я хочу достичь. Мне не нужно / не нужно выполнять код при синтаксическом анализе, вместо этого я намерен только генерировать эквивалентный код на python / c ++.

Как лучше всего подойти к этой проблеме, есть ли какой-нибудь модуль / книга / статья / учебник по этой конкретной теме? Я действительно врезался в стену и не знаю, где искать.
Любая помощь высоко ценится.

-2

Решение

То, что вы хотите сделать здесь, немного похоже на компилятор.
Вы хотите скомпилировать «ps» в python или cpp.

Стандартные инструменты для этого — lex и yacc, и везде есть много литературы.

1

Другие решения


По вопросам рекламы [email protected]