generate_IEC_std.py
changeset 410 e1d4e9a93186
parent 406 af07b091bbee
child 458 6e4ad5af894d
equal deleted inserted replaced
409:34c9f624c2fe 410:e1d4e9a93186
   229 }while(param_value != NULL);
   229 }while(param_value != NULL);
   230 """%(fdecl["baseinputnumber"] + 2)
   230 """%(fdecl["baseinputnumber"] + 2)
   231         
   231         
   232         result_type_rule = fdecl["return_type_rule"]
   232         result_type_rule = fdecl["return_type_rule"]
   233         res += {
   233         res += {
   234             "copy_input" : "symbol_c * return_type_symbol = last_type_symbol;\n",
   234             "copy_input" : """symbol_c * return_type_symbol;
       
   235 if (search_expression_type->is_literal_integer_type(last_type_symbol))
       
   236     return_type_symbol = &search_constant_type_c::%s_type_name;
       
   237 else
       
   238     return_type_symbol = last_type_symbol;
       
   239 """%({True: "lword", False: """lint_type_name;
       
   240 else if (search_expression_type->is_literal_real_type(last_type_symbol))
       
   241     return_type_symbol = &search_constant_type_c::lreal"""}[reduce(lambda x, y: x or y, [paramtype == "ANY_BIT" for paramname,paramtype,unused in fdecl["inputs"]], False)]),
   235             "defined" : "symbol_c * return_type_symbol = &search_constant_type_c::%s_type_name;\n"%fdecl["outputs"][0][1].lower(),
   242             "defined" : "symbol_c * return_type_symbol = &search_constant_type_c::%s_type_name;\n"%fdecl["outputs"][0][1].lower(),
   236             }.get(result_type_rule, "symbol_c * return_type_symbol = %s;\n"%result_type_rule)
   243             }.get(result_type_rule, "symbol_c * return_type_symbol = %s;\n"%result_type_rule)
   237         
   244         
   238         if not do_type_search_only:
   245         if not do_type_search_only:
   239             if code_gen[0] is not None:
   246             if code_gen[0] is not None: