Какие типы шаблонов я могу применить к коду, чтобы упростить перевод на другой язык программирования? [закрыто]

Я собираюсь выполнить побочный проект, целью которого является перевод кода с одного языка программирования на другой. Языки, на которых я начинаю с PHP и Python (с Python на PHP должно быть проще начать), но в идеале я мог бы добавить другие языки с (относительной) легкостью. План таков:

  • Это ориентировано на веб-разработку. Оригинал и целевой код будет находиться поверх фреймворков (которые мне тоже придется написать). Эти платформы будут охватывать шаблон проектирования MVC и следовать строгим соглашениям о кодировании. Это должно несколько упростить перевод.

  • Я также смотрю на IOC и внедрение зависимостей, поскольку они могут упростить процесс перевода и уменьшить вероятность ошибок.

  • Я воспользуюсь модулем синтаксического анализатора Python , который позволяет мне возиться с абстрактное синтаксическое дерево. По-видимому, самое близкое, что я могу получить с PHP, - это token_get_all () , что является началом.

  • С этого момента я могу создавать AST, таблицы символов и поток управления.

Тогда я могу начать выводить код. Мне не нужен идеальный перевод . Мне все равно придется просмотреть сгенерированный код и исправить проблемы. В идеале переводчик должен отмечать проблемные переводы.

Прежде чем вы спросите " __call () и передать аргументы . Если я перегружаю метод __call в классе PHP, как я могу вызвать реальный метод, если мой код не делает ничего другого? Например: публичная функция __call ($ name, $ arguments) format = xmlfm

Есть ли существующая библиотека для Python, которую я могу использовать для создания массива с отображением субъектов и значений?

Например:

{height_ft,6},{nationality, American}

15
задан Termininja 6 March 2016 в 08:11
поделиться

4 ответа

Похоже, вы действительно хотите иметь возможность разбирать разметку MediaWiki. Существует библиотека python, разработанная для этой цели, называется mwlib. Вы можете использовать встроенные в python пакеты XML для извлечения содержимого страницы из ответа API, затем передать это содержимое в парсер mwlib для создания объектного представления, которое вы можете просматривать и анализировать в коде для извлечения нужной вам информации. mwlib имеет лицензию BSD.

11
ответ дан 1 December 2019 в 03:51
поделиться

Только что наткнулся на библиотеку на PyPi, wikidump , которая утверждает, что предоставляет

инструменты для манипулирования и извлечения данных из дампов википедии

Я еще не использовал его, так что вы можете сами попробовать ...

6
ответ дан 1 December 2019 в 03:51
поделиться

Я бы посоветовал взглянуть на использование Beautiful Soup и просто получить страницу Википедии в HTML вместо использования API.

Попробую выложить пример.

-6
ответ дан 1 December 2019 в 03:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: