Предлагается такой алгоритм устранения затенения одних символов другими:
10 При появлении затенения возникает предупреждение
20 создаём способ распечатки компилятором исходных текстов из дерева разбора, при котором любому символу, затеняющему вышестоящий, приписывается приставка зт_ или какая иная
30 прогоняем все исходники через этот конвертер
40 компилируем всё и смотрим, исчезли ли предупреждения
50 если предупреждения остались, переходим к пункту 30
МихалНик, что скажете, сработает такой алгоритм?
автоматическое устранение затенения
Re: автоматическое устранение затенения
Для надежности в приставку надо нумерацию уровня вложенности.БудДен писал(а): ↑03.02.21 10:21Предлагается такой алгоритм устранения затенения одних символов другими:
10 При появлении затенения возникает предупреждение
20 создаём способ распечатки компилятором исходных текстов из дерева разбора, при котором любому символу, затеняющему вышестоящий, приписывается приставка зт_ или какая иная
30 прогоняем все исходники через этот конвертер
40 компилируем всё и смотрим, исчезли ли предупреждения
50 если предупреждения остались, переходим к пункту 30
МихалНик, что скажете, сработает такой алгоритм?
Re: автоматическое устранение затенения
А вспомнил, там можно приставки для улучшения читаемости типа вх_/вых_/изм_/врем_ зависимости от того параметр или просто локальная.
Re: автоматическое устранение затенения
вх/вых - ну можно попробовать, но это усложнение. Я думаю, что при многократной вложенности автоматически он превратится в двойное добавление приставки, вряд ли будет больше трёх где-либо.
Re: автоматическое устранение затенения
Можно и просто вручную переименовывать так зт_. Это просто мысль как сократить время на придумывание имен, улучшая понятность исходников.
Re: автоматическое устранение затенения
Можно попробовать и вручную, но тут при вложенности больше 2 как раз и можно насажать тех самых ужасных ошибок.
В общем, пока что я планирую грести в сторону рефакторинга "переименуй частный идентификатор" - он всё равно нужен, потому что некоторые переводы я потом переделывал, а менять приходится не только исходник, но и словарь для перевода этого модуля - иначе потом перевод зависимых модулей разваливается. Да и вообще, такой рефакторинг нужен.
Имея такой рефакторинг, можно и в полуручном режиме переводить, т.е. говорить, что префикс мы добавляем вручную, а саму замену будет делать компилятор.
В общем, пока что я планирую грести в сторону рефакторинга "переименуй частный идентификатор" - он всё равно нужен, потому что некоторые переводы я потом переделывал, а менять приходится не только исходник, но и словарь для перевода этого модуля - иначе потом перевод зависимых модулей разваливается. Да и вообще, такой рефакторинг нужен.
Имея такой рефакторинг, можно и в полуручном режиме переводить, т.е. говорить, что префикс мы добавляем вручную, а саму замену будет делать компилятор.