/// <summary> /// Конструктор класса. /// </summary> /// <param name="inc_method">Метод получения следующего значения порядкового типа.</param> /// <param name="dec_method">Метод получения предыдущего значения порядкового типа.</param> /// <param name="lower_eq_method">Метод сравнения двух значений данного типа. Принимает два значения перечислимого типа и возвращаит true если левое меньше или равро правого. Иначе false.</param> /// <param name="greater_eq_method">Метод сравнения двух значений данного типа. Принимает два значения перечислимого типа и возвращаит true если левое больше или равро правого. Иначе false.</param> /// <param name="lower_value">Наименьшее значени перечислимого типа.</param> /// <param name="upper_value">Наибольшее значение перечеслимого типа.</param> /// <param name="value_to_int">Метод преобразования значения перечислимого типа в целое число.</param> /// <param name="ordinal_type_to_int_method">Делегат, который позволяет преобразовывать значение перечислимого типа в целое во время компиляции.</param> public ordinal_type_interface(function_node inc_method, function_node dec_method, function_node inc_value_method, function_node dec_value_method, function_node lower_eq_method, function_node greater_eq_method, function_node lower_method, function_node greater_method, constant_node lower_value, constant_node upper_value, function_node value_to_int, ordinal_type_to_int ordinal_type_to_int_method) { _inc_method = inc_method; _dec_method = dec_method; _inc_value_method = inc_value_method; _dec_value_method = dec_value_method; _lower_eq_method = lower_eq_method; _greater_eq_method = greater_eq_method; _lower_method = lower_method; _greater_method = greater_method; _lower_value = lower_value; _upper_value = upper_value; _value_to_int = value_to_int; _ordinal_type_to_int = ordinal_type_to_int_method; }
/// <summary> /// Конструктор узла. /// </summary> /// <param name="name">Имя константы.</param> /// <param name="cn">Значение константы.</param> /// <param name="loc">Расположение константы.</param> public constant_definition_node(string name, constant_node cn, location loc) { _name = name; _cn = cn; _loc = loc; }
/// <summary> /// Конструктор класса. /// </summary> /// <param name="name">Имя константы.</param> /// <param name="cn">Значение константы.</param> /// <param name="loc">Расположение константы.</param> /// <param name="comprehensive_function">Функция, содержащая константу.</param> public function_constant_definition(string name, constant_node cn, location loc, common_function_node comprehensive_function) : base(name, cn, loc) { _comprehensive_function = comprehensive_function; }
/// <summary> /// Конструктор класса. /// </summary> public compiled_class_constant_definition(System.Reflection.FieldInfo fi, constant_node cn) : base(fi.Name, cn, null) { _comprehensive_type = compiled_type_node.get_type_node(fi.DeclaringType); _fi = fi; }
/// <summary> /// Конструктор класса. /// </summary> /// <param name="name">Имя константы.</param> /// <param name="cn">Значение константы.</param> /// <param name="loc">Расположение константы.</param> /// <param name="comprehensive_type">Тип, содержащий константу.</param> public class_constant_definition(string name, constant_node cn, location loc, common_type_node comprehensive_type, SemanticTree.field_access_level field_access_level) : base(name, cn, loc) { _comprehensive_type = comprehensive_type; _fal = field_access_level; }
/// <summary> /// Конструктор класса. /// </summary> /// <param name="name">Имя константы.</param> /// <param name="cn">Значени константы.</param> /// <param name="loc">Расположение определения константы.</param> /// <param name="comprehensive_namespace">Пространство имен в котором определена константа.</param> public namespace_constant_definition(string name, constant_node cn, location loc, common_namespace_node comprehensive_namespace) : base(name, cn, loc) { _comprehensive_namespace = comprehensive_namespace; }