defined_type


INSTANCE defined_type#1;
	name = "choice";
	tipe = select_type({entity_type#3, defined_type#10});
END_INSTANCE;

INSTANCE defined_type#2;
	name = "constrainee";
	tipe = select_type({entity_type#4, entity_type#6});
END_INSTANCE;

INSTANCE defined_type#3;
	name = "bound_kind";
	tipe = enumeration_type(["lower", "upper"]);
END_INSTANCE;

INSTANCE defined_type#4;
	name = "real_literal";
	tipe = simple_type(real_type);
END_INSTANCE;

INSTANCE defined_type#5;
	name = "built_in";
	tipe = enumeration_type(["e", "pie", "this", "infinity"]);
END_INSTANCE;

INSTANCE defined_type#6;
	name = "binary_operator";
	tipe = enumeration_type(["less_than", "less_than_or_equals", "greater_than", "greater_than_or_equals", "equals", "not_equals", "instance_equals", "instance_not_equals", "in_operator", "like_operator", "add", "subtract", "or_operator", "xor_operator", "multiply", "divide", "div_operator", "mod_operator", "and_operator", "complex_constructor", "exponent"]);
END_INSTANCE;

INSTANCE defined_type#7;
	name = "enumeration_type";
	tipe = aggregation_type#1;
END_INSTANCE;

INSTANCE defined_type#8;
	name = "select_type";
	tipe = aggregation_type#2;
END_INSTANCE;

INSTANCE defined_type#9;
	name = "integer_literal";
	tipe = simple_type(integer_type);
END_INSTANCE;

INSTANCE defined_type#10;
	name = "symbol";
	tipe = simple_type(string_type);
END_INSTANCE;

INSTANCE defined_type#11;
	name = "literal";
	tipe = select_type({defined_type#9, defined_type#4, defined_type#12, defined_type#20, defined_type#19});
END_INSTANCE;

INSTANCE defined_type#12;
	name = "logical_literal";
	tipe = simple_type(logical_type);
END_INSTANCE;

INSTANCE defined_type#13;
	name = "built_in_function";
	tipe = enumeration_type(["abs_function", "acos_function", "asin_function", "atan_function", "blength_function", "cos_function", "exists_function", "exp_function", "format_function", "hibound_function", "hiindex_function", "length_function", "lobound_function", "log_function", "log10_function", "log2_function", "loindex_function", "nvl_function", "odd_function", "rolesof_function", "sin_function", "sizeof_function", "sqrt_function", "tan_function", "typeof_function", "usedin_function", "value_function", "value_in_function", "value_unique_function"]);
END_INSTANCE;

INSTANCE defined_type#14;
	name = "qualifier_kind";
	tipe = enumeration_type(["dot", "backslash", "subscript"]);
END_INSTANCE;

INSTANCE defined_type#15;
	name = "supertype_expression";
	tipe = select_type({entity_type#4, entity_type#25, entity_type#26, entity_type#27});
END_INSTANCE;

INSTANCE defined_type#16;
	name = "unary_operator";
	tipe = enumeration_type(["not_operator", "unary_minus"]);
END_INSTANCE;

INSTANCE defined_type#17;
	name = "parameter_type";
	tipe = select_type({defined_type#21, entity_type#24, entity_type#2});
END_INSTANCE;

INSTANCE defined_type#18;
	name = "underlying_type";
	tipe = select_type({entity_type#1, defined_type#21, entity_type#24, defined_type#8, defined_type#7});
END_INSTANCE;

INSTANCE defined_type#19;
	name = "binary_literal";
	tipe = simple_type(binary_type);
END_INSTANCE;

INSTANCE defined_type#20;
	name = "string_literal";
	tipe = simple_type(string_type);
END_INSTANCE;

INSTANCE defined_type#21;
	name = "simple_type";
	tipe = enumeration_type(["boolean_type", "logical_type", "number_type", "integer_type", "real_type", "string_type", "binary_type"]);
END_INSTANCE;

INSTANCE defined_type#22;
	name = "aggregate_kind";
	tipe = enumeration_type(["set_type", "bag_type", "list_type", "array_type"]);
END_INSTANCE;


INSTANCE defined_type#23;
	tipe = enumeration_type(?list);
END_INSTANCE;



INSTANCE defined_type#24;
	tipe = select_type(?set);
END_INSTANCE;



INSTANCE defined_type#25;
	tipe = enumeration_type(?list);
END_INSTANCE;



INSTANCE defined_type#26;
	tipe = select_type(?set);
END_INSTANCE;


INSTANCE defined_type#27;
	name = "university_role";
	tipe = select_type({entity_type#46, entity_type#48});
END_INSTANCE;