Есть ли способ заменить ключевые слова в программе на python другими символами, используя модуль ast? - PullRequest
0 голосов
/ 12 июля 2019

Я бы хотел иметь возможность циклически проходить по строкам программы на Python и заменять определенные ключевые слова языка (например, if, and, True, yield и т. Д.) Собственными символами. Я читал документацию по модулю python AST и не уверен, есть ли способ заменить ключевые слова языка Python чем-то другим. Я бы хотел избежать использования регулярных выражений, потому что это становится очень сложным и очень быстрым, например, замена ключевого слова if потребует проверки, появляется ли этот символ в комментарии или в строке и т. Д., И это глупо, так как синтаксический анализ уже реализован. в АСТ.

Пример того, что я хотел бы сделать, выглядит следующим образом:

import os

if "if" in "contains an if":  # checks for 'if'
    print("string contained an 'if'")

будет идти к:

<alt-import-token> os

<alt-if-token> "if" <alt-in-token> "contains an if":  # checks for 'if'
    print("string contained an 'if'")

Обратите внимание, как сохраняются ключевые слова в комментариях и строках. Именно из-за этой сложности я предпочел бы использовать что-то другое, чем регулярное выражение.

Если у кого-нибудь есть какие-либо предложения относительно подхода, AST или другого, я был бы очень признателен!

Приветствия

...