Skip to content

Compiler v2.0.0

Compare
Choose a tag to compare
@Victor-Y-Fadeev Victor-Y-Fadeev released this 15 Jun 11:07
· 1963 commits to master since this release
ffdabda

Добавлена полноценная реализация интерфейса дерева:

tree

Создана библиотека работы с Хеш-таблицей:

hash hash_create(const size_t alloc);

size_t hash_add(hash *const hs, const item_t key, const size_t amount);
size_t hash_get_index(const hash *const hs, const item_t key);
size_t hash_get_amount(const hash *const hs, const item_t key);
item_t hash_get(const hash *const hs, const item_t key, const size_t num);
size_t hash_set(hash *const hs, const item_t key, const size_t num, const item_t value);

item_t hash_get_key(const hash *const hs, const size_t index);
size_t hash_get_amount_by_index(const hash *const hs, const size_t index);
item_t hash_get_by_index(const hash *const hs, const size_t index, const size_t num);
int hash_set_by_index(hash *const hs, const size_t index, const size_t num, const item_t value);

bool hash_is_correct(const hash *const hs);

int hash_clear(hash *const hs);

Отсортированы константы компилятора (файлы defs.h и tokens.h):

  • Константы сгруппированы по соответствующим перечислениям (enum)
  • Добавлены Doxygen-комментарии
  • Стандартизирован формат именования, Snake case в верхнем регистре

Общие исправления и улучшения:

  • Исправлено построение дерева для инициализаторов массивов и объявлений структур
  • Добавлен флаг -Wno для "отключения" восстановления после ошибок
  • Макросы GENERATE_TREE и GENERATE_CODES привязаны к Debug конфигурации проекта
  • Отключен цветной вывод в Debug сборках macOS
  • Добавлены модификаторы static и inline для приватных функций (там где это уместно)
  • Внедрено использование типа bool (библиотека <stdbool.h>)
  • Исправлено форматирование печати size_t (%zi заменен на %zu)
  • Добавлены пропущенные запятые в конце enum
  • Удалены лишние пробелы и табуляции в конце строк