Ejemplo n.º 1
0
        private void mark_int_as_ordinal()
        {
            ordinal_type_interface oti = new ordinal_type_interface();

            oti.inc_method = create_oti_method(SemanticTree.basic_function_type.iinc, _integer_type);
            oti.dec_method = create_oti_method(SemanticTree.basic_function_type.idec, _integer_type);

            SymbolInfo          si  = _integer_type.find_in_additional_names(compiler_string_consts.greq_name);
            basic_function_node bfn = (basic_function_node)si.sym_info;

            oti.greater_eq_method = bfn;

            si  = _integer_type.find_in_additional_names(compiler_string_consts.smeq_name);
            bfn = (basic_function_node)si.sym_info;

            oti.lower_eq_method = bfn;

            constant_node cn_max = new int_const_node(int.MinValue, _integer_type);
            constant_node cn_min = new int_const_node(int.MinValue, _integer_type);

            oti.upper_value = cn_max;
            oti.lower_value = cn_min;

            parameterArrayList  pal = new parameterArrayList();
            empty_function_node efn = new empty_function_node(pal, _integer_type);
            common_parameter    cp  = new common_parameter(compiler_string_consts.unary_param_name, _integer_type,
                                                           SemanticTree.parameter_type.value, null);

            oti.value_to_int        = efn;
            oti.ordinal_type_to_int = new ordinal_type_to_int(int_to_int);
            _integer_type.add_internal_interface(oti);
        }
Ejemplo n.º 2
0
        //End: No v drugom smisle reference.

        public void make_empty_operator(string name, compiled_type_node ctn)
        {
            parameterArrayList  pars = new parameterArrayList();
            empty_function_node efn  = new empty_function_node(pars, ctn);

            efn.is_overload = true;
            basic_parameter par = new basic_parameter(compiler_string_consts.unary_param_name, ctn,
                                                      SemanticTree.parameter_type.value, null);

            pars.Add(par);
            ctn.add_additional_name(name, new SymbolInfo(efn));
        }
Ejemplo n.º 3
0
		private void mark_int_as_ordinal()
		{
			ordinal_type_interface oti=new ordinal_type_interface();
			oti.inc_method=create_oti_method(SemanticTree.basic_function_type.iinc,_integer_type);
			oti.dec_method=create_oti_method(SemanticTree.basic_function_type.idec,_integer_type);
			
			SymbolInfo si=_integer_type.find_in_additional_names(compiler_string_consts.greq_name);
			basic_function_node bfn=(basic_function_node)si.sym_info;
			
			oti.greater_eq_method=bfn;

			si=_integer_type.find_in_additional_names(compiler_string_consts.smeq_name);
			bfn=(basic_function_node)si.sym_info;

			oti.lower_eq_method=bfn;

			constant_node cn_max=new int_const_node(int.MinValue,_integer_type);
			constant_node cn_min=new int_const_node(int.MinValue,_integer_type);

			oti.upper_value=cn_max;
			oti.lower_value=cn_min;

			parameterArrayList pal=new parameterArrayList();
			empty_function_node efn=new empty_function_node(pal,_integer_type);
			common_parameter cp=new common_parameter(compiler_string_consts.unary_param_name,_integer_type,
				SemanticTree.parameter_type.value,null);
			
			oti.value_to_int=efn;
			oti.ordinal_type_to_int=new ordinal_type_to_int(int_to_int);
			_integer_type.add_internal_interface(oti);
		}
Ejemplo n.º 4
0
		//End: No v drugom smisle reference.

		public void make_empty_operator(string name,compiled_type_node ctn)
		{
			parameterArrayList pars=new parameterArrayList();
			empty_function_node efn=new empty_function_node(pars,ctn);
			efn.is_overload=true;
			basic_parameter par=new basic_parameter(compiler_string_consts.unary_param_name,ctn,
				SemanticTree.parameter_type.value,null);
			pars.Add(par);
			ctn.add_additional_name(name,new SymbolInfo(efn));
		}