Самый простой способ - это создать токенайзер языка Python и выбрать все токены с постоянным числом.
Наш механизм поиска исходного кода выполняет поиск по токенам языка из больших наборов файлов, управляемых токенайзерами языка.(около 40 из них, включая Python 2 и 3).Один формирует запросы, устанавливая ограничения на последовательности токенов, например
I=*abc* '('
, что означает «найти идентификаторы, содержащие буквы« abc », за которыми следует левый маркер».и распечатать найденные экземпляры.[Такие запросы автоматически игнорируют пробелы и маркеры комментариев]
Требуемый запрос может быть задан в виде:
N>2
, что означает «найти число токенов со значением больше 2», принимая 0 и1 не считаются магическими константами.(ИМХО они такие же магические, как и другие, но есть место для разногласий, и я хотел бы привести пример, который не был полностью тривиальным).
Вы можете повторить это с помощью генератора лексеров (см. «Сгибание»).) с каким-то настраиваемым кодом сверху, который фильтрует числовые токены.