Рефакторинг, рефакторинг, рефакторинг
Сложно назвать точную цифру, но навскидку — сложность разбора синтаксиса C++ где-то в три раза выше сложности разбора обычного Си. В этом сообщении не будет новых примеров, показывающих чему научился синтаксический анализатор за прошедшую неделю. Эта неделя ушла на рефакторинг кода, в результате которого анализатор научился делать то, что умел и неделю назад. Видимые изменения коснулись разбора статических членов класса — теперь они распознаются корректно. Помимо этого пришлось отказаться от точного воспроизведения исходного кода. Например, исходная конструкция
typedef struct { int a; int b } newtype, *pnewtype;
выродится в такой код
struct anon_struct_1 { int a; int b };
typedef struct anon_struct_1 newtype;
typedef struct anon_struct_1 * pnewtype;
В результате рефакторинга была значительно перестроена иерархия классов синтаксического анализатора и, как результат, исходный код «похудел» приблизительно в два раза. Посмотрим, каких результатов удастся достичь за следующую неделю.
Оставить комментарий