Думал, это больше займёт по времени, но таки сделал конвертеры типов. Теперь константы можно определять, задавая значение другого типа, и оно будет преобразовано к типу константы.
По ходу исправил несколько старых ошибок. Вспомнилось, как писал этот код - преобразование числа с плавающей точкой в токен.
Это довольно нетривиальная задача (встречал на форумах вопрос, как это сделать) с точки зрения большой вариативности. Когда вариативность маленькая - несколько перечислимых вариантов, то алгоритм написать просто. Когда вариантов много, то алгоритм сильно усложняется и при его составлении легко ошибиться сразу в нескольких местах.
Потом смотришь - все варианты вроде работают, но со временем вдруг выясняется, что один из вариантов работает неправильно. Начинаешь исправлять - съезжает что-то ещё. Сидишь, ломаешь голову, размышляя, а как оно должно быть на самом деле.
В случае со старыми алгоритмами даже в отладчике не так-то просто понять, а что там вообще происходит, в этой функции в 150 строк.
У одного коллеги была функция размером в 2 Мегабайта. Это было конечно эпично.
Итак, константы сделаны, я думаю, что наверное пора сделать переменные. Но это завтра - сегодня мозги уже немного "кипят". День прошёл в отладке.
Комментариев нет:
Отправить комментарий