Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Задание 1. Построить дерево, содержащее информацию об идентификаторах анализируемой компилятором программы.

Каждая вершина дерева содержит следующую информацию об идентификаторе:

Имя идентификатора. Значение хеш-функции, вычисленной по имени идентификатора. Способ использования идентификатора – одно из значений перечислимого типа (CLASSES, CONSTS, VARS, METHODS). Информация о типе идентификатора – одно из значений перечислимого типа (int_type, float_type, bool_type, char_type, string_type, class_type). Если идентификатор является константой (способ использования CONSTS), то в вершине дерева необходимо хранить значение этой константы. Если идентификатор является методом (способ использования METHODS), то необходимо хранить информацию о линейном списке параметров метода: тип параметра, способ передачи параметра (по значению, по ссылке, out). Ссылки на левое и правое поддеревья.

Вершины дерева упорядочиваются в зависимости от значения хэш-функции вычисленной по имени идентификатора.

Шаги выполнения задания:

Создать обобщенный класс/структуру «Бинарное дерево». Создать класс/структуру «Идентификатор». Создать 7-10 экземпляров класса/структуры «Дерево идентификаторов», содержащих информацию о различных идентификаторах. В качестве «бонуса» написать модуль, позволяющий выполнять парсинг файла, в котором описаны идентификаторы исходной программы. Пример структуры файла приведен ниже.

Структура файла с описанием идентификаторов:

int a;

const float c = 10;

class MyClass;

string method1 (int x1, ref char x2, out float x3);

Пример дерева для данного фрагмента исходной программы представлен ниже: