public static void add_function_to_type(string oper_name, type_node to, function_node fn) { to.add_name(oper_name, new SymbolInfo(fn)); }
public static basic_function_node make_unary_empty_operator(string operator_name, type_node to, type_node ret_value_type) { basic_function_node bfn = create_emty_function(ret_value_type, operator_name); to.add_name(operator_name,new SymbolInfo(bfn)); return bfn; }
public static basic_function_node make_unary_operator(string operator_name, type_node to, SemanticTree.basic_function_type bft, type_node ret_value_type) { basic_function_node bfn = new basic_function_node(bft, ret_value_type,true); basic_parameter par = new basic_parameter(compiler_string_consts.unary_param_name, to, SemanticTree.parameter_type.value, bfn); bfn.parameters.AddElement(par); to.add_name(operator_name, new SymbolInfo(bfn)); add_stand_type(bft, bfn); return bfn; }
public static basic_function_node make_common_binary_operation(string operator_name, type_node def_type,type_node left,type_node right, SemanticTree.basic_function_type bft,type_node ret_value_type) { basic_function_node bfn = new basic_function_node(bft, ret_value_type,true,operator_name); basic_parameter par_left = new basic_parameter(compiler_string_consts.left_param_name, left, SemanticTree.parameter_type.value, bfn); basic_parameter par_right = new basic_parameter(compiler_string_consts.right_param_name, right, SemanticTree.parameter_type.value, bfn); bfn.parameters.AddElement(par_left); bfn.parameters.AddElement(par_right); def_type.add_name(operator_name, new SymbolInfo(bfn)); add_stand_type(bft, bfn); return bfn; }
private static basic_function_node make_object_operator(type_node ctn, SemanticTree.basic_function_type bas_ft, string name, type_node ret_type, SemanticTree.parameter_type first_parameter_type) { basic_function_node bfn = new basic_function_node(bas_ft, ret_type,true,name); basic_parameter to = new basic_parameter(compiler_string_consts.left_param_name, ctn, first_parameter_type, bfn); basic_parameter from = new basic_parameter(compiler_string_consts.right_param_name, ctn, SemanticTree.parameter_type.value, bfn); bfn.parameters.AddElement(to); bfn.parameters.AddElement(from); ctn.add_name(name, new SymbolInfo(bfn)); add_stand_type(bas_ft, bfn); return bfn; }
public static void AddTypeToShortStringTypeList(type_node tn) { instance.ShortStringTypes.Add((tn as short_string_type_node).Length,tn as short_string_type_node); tn.add_name(compiler_string_consts.plus_name,new SymbolInfo(SystemLibrary.SystemLibrary.string_add)); }