Я бы хотел иметь возможность циклически проходить по строкам программы на 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 или другого, я был бы очень признателен!
Приветствия